Hi Anatol,
Thanks for your suggestion. We are working on different architectures to support NAU8825 ALSA driver, and I also think it is better we can have a cooperation for driver development and upstream. We have checked your code, and we think your implement version should more follow the ALSA upstream coding standards.
We have another version of ALSA driver, which also supports most features as you listed. And I think you already got it from our HW engineers. The major difference between our architectures should be the flow and sequence in sleep mode, and some other architecture dependence codes.
For the upstream, we think it is better to have only one version source and could support different architectures. Do you agree to use your version to go on the upstream in future? If yes, we can port your driver to our test platform, and then give the feedback to you.
On 2015/7/23 上午 01:57, Anatol Pomozov wrote:
Hi Chih-Chiang
On Mon, Jul 13, 2015 at 12:33 AM, Chih-Chiang Chang ccchang12@nuvoton.com wrote:
The NAU88L25 is an ultra-low power high performance audio codec designed for smartphone, tablet PC, and other portable devices by Nuvoton, now add linux driver support for it.
At ChromeOS we work with Nuvoton hw engineers on driver for this nice chip as well.
Here is current driver code https://github.com/anatol/linux/blob/nau8825/sound/soc/codecs/nau8825.c
The functionality is mostly ready. Our driver handles playback, capture, mic jack detection, an button presses (4 buttons according Android specification). We need to resolve a few remaining issues, such as
- chip needs better way to recognize high-impedance input (e.g. Bose
Quiet Comfort 15 headset)
- implement headset cross talk automatic configuration
- general code cleanup
But otherwise driver is functional and used for testing in our next generation device.
What do you think about joining efforts on this software development to make great driver for this chip?
Signed-off-by: Chih-Chiang Chang ccchang12@nuvoton.com
v3->v2:
- fix the wrong definition of reg_default
- fix the flow of set_sys_clk() and nau8825_set_bias_level()
- remove unnecessary code in nau8825_volatile_register() and
nau8825_i2c_probe()
- add trigger function for ADC/DAC control
- add some register definitions
- fix some coding style issues
v2->v1:
- fixes according to Lars-Peter Clausen's review comments
- removes unused platform data file
- corrects the naming of DAPM input widget
- fixes some wrong coding of SOC widgets and other codes
- adds definition and remark for config FLL clock
- moves the code of reset hardware registers from codec_probe() to
i2c_probe()
- removes unused codes
sound/soc/codecs/Kconfig | 5 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/nau8825.c | 724 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/nau8825.h | 399 +++++++++++++++++++++++++ 4 files changed, 1130 insertions(+) create mode 100644 sound/soc/codecs/nau8825.c create mode 100644 sound/soc/codecs/nau8825.h