Unverified Commit aab1ad11 authored by Seven Lee's avatar Seven Lee Committed by Mark Brown
Browse files

ASoC: nau8821: new driver



The driver is for codec NAU88L21 of Nuvoton Technology Corporation.
The NAU88L21 is an ultra-low power high performance audio codec that
supports both analog and digital audio functions.

Signed-off-by: default avatarSeven Lee <wtli@nuvoton.com>
Link: https://lore.kernel.org/r/20211001103108.3297848-1-wtli@nuvoton.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 27547a39
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
Nuvoton NAU88L21 audio codec

This device supports I2C only.

Required properties:
  - compatible : Must be "nuvoton,nau8821"

  - reg : the I2C address of the device. This is either 0x1B (CSB=0) or 0x54 (CSB=1).

Optional properties:
  - nuvoton,jkdet-enable: Enable jack detection via JKDET pin.
  - nuvoton,jkdet-pull-enable: Enable JKDET pin pull. If set - pin pull enabled,
      otherwise pin in high impedance state.
  - nuvoton,jkdet-pull-up: Pull-up JKDET pin. If set then JKDET pin is pull up, otherwise pull down.
  - nuvoton,jkdet-polarity: JKDET pin polarity. 0 - active high, 1 - active low.

  - nuvoton,vref-impedance: VREF Impedance selection
      0 - Open
      1 - 25 kOhm
      2 - 125 kOhm
      3 - 2.5 kOhm

  - nuvoton,micbias-voltage: Micbias voltage level.
      0 - VDDA
      1 - VDDA
      2 - VDDA * 1.1
      3 - VDDA * 1.2
      4 - VDDA * 1.3
      5 - VDDA * 1.4
      6 - VDDA * 1.53
      7 - VDDA * 1.53

  - nuvoton,jack-insert-debounce: number from 0 to 7 that sets debounce time to 2^(n+2) ms
  - nuvoton,jack-eject-debounce: number from 0 to 7 that sets debounce time to 2^(n+2) ms

  - nuvoton,dmic-clk-threshold: the ADC threshold of DMIC clock.


Example:

  headset: nau8821@1b {
      compatible = "nuvoton,nau8821";
      reg = <0x1b>;
      interrupt-parent = <&gpio>;
      interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
      nuvoton,jkdet-enable;
      nuvoton,jkdet-pull-enable;
      nuvoton,jkdet-pull-up;
      nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
      nuvoton,vref-impedance = <2>;
      nuvoton,micbias-voltage = <6>;
      nuvoton,jack-insert-debounce = <7>;
      nuvoton,jack-eject-debounce = <7>;
      nuvoton,dmic-clk-threshold = 3072000;
  };
+5 −0
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@ config SND_SOC_ALL_CODECS
	imply SND_SOC_NAU8315
	imply SND_SOC_NAU8540
	imply SND_SOC_NAU8810
	imply SND_SOC_NAU8821
	imply SND_SOC_NAU8822
	imply SND_SOC_NAU8824
	imply SND_SOC_NAU8825
@@ -1922,6 +1923,10 @@ config SND_SOC_NAU8810
	tristate "Nuvoton Technology Corporation NAU88C10 CODEC"
	depends on I2C

config SND_SOC_NAU8821
	tristate "Nuvoton Technology Corporation NAU88L21 CODEC"
	depends on I2C

config SND_SOC_NAU8822
	tristate "Nuvoton Technology Corporation NAU88C22 CODEC"
	depends on I2C
+2 −0
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ snd-soc-mt6660-objs := mt6660.o
snd-soc-nau8315-objs := nau8315.o
snd-soc-nau8540-objs := nau8540.o
snd-soc-nau8810-objs := nau8810.o
snd-soc-nau8821-objs := nau8821.o
snd-soc-nau8822-objs := nau8822.o
snd-soc-nau8824-objs := nau8824.o
snd-soc-nau8825-objs := nau8825.o
@@ -473,6 +474,7 @@ obj-$(CONFIG_SND_SOC_MT6660) += snd-soc-mt6660.o
obj-$(CONFIG_SND_SOC_NAU8315)   += snd-soc-nau8315.o
obj-$(CONFIG_SND_SOC_NAU8540)   += snd-soc-nau8540.o
obj-$(CONFIG_SND_SOC_NAU8810)   += snd-soc-nau8810.o
obj-$(CONFIG_SND_SOC_NAU8821)   += snd-soc-nau8821.o
obj-$(CONFIG_SND_SOC_NAU8822)   += snd-soc-nau8822.o
obj-$(CONFIG_SND_SOC_NAU8824)   += snd-soc-nau8824.o
obj-$(CONFIG_SND_SOC_NAU8825)   += snd-soc-nau8825.o
+1712 −0

File added.

Preview size limit exceeded, changes collapsed.

+533 −0

File added.

Preview size limit exceeded, changes collapsed.