Commit 4a6180ea authored by Oder Chiou's avatar Oder Chiou Committed by Mark Brown
Browse files

ASoC: rt5514: add rt5514 codec driver



This is the initial codec driver for rt5514. The codec includes a low power
DSP for voice wake up. The register address is incremental by 4 in the DSP
memory map. In order to recover the codec settings in the codec mode and
manipulate the DSP mode for voice wake up, we use the multi-level register
map. One is for ALSA API in codec mode that can be recovered by cache
before recording. Another is for DSP related settings that can be accessed
with 32bit address of the DSP in the application of voice wake up.

Signed-off-by: default avatarOder Chiou <oder_chiou@realtek.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 92e963f5
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
RT5514 audio CODEC

This device supports I2C only.

Required properties:

- compatible : "realtek,rt5514".

- reg : The I2C address of the device.

Pins on the device (for linking into audio routes) for RT5514:

  * DMIC1L
  * DMIC1R
  * DMIC2L
  * DMIC2R
  * AMICL
  * AMICR

Example:

codec: rt5514@57 {
	compatible = "realtek,rt5514";
	reg = <0x57>;
};
+6 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_PCM512x_SPI if SPI_MASTER
	select SND_SOC_RT286 if I2C
	select SND_SOC_RT298 if I2C
	select SND_SOC_RT5514 if I2C
	select SND_SOC_RT5616 if I2C
	select SND_SOC_RT5631 if I2C
	select SND_SOC_RT5640 if I2C
@@ -565,6 +566,7 @@ config SND_SOC_PCM512x_SPI

config SND_SOC_RL6231
	tristate
	default y if SND_SOC_RT5514=y
	default y if SND_SOC_RT5616=y
	default y if SND_SOC_RT5640=y
	default y if SND_SOC_RT5645=y
@@ -572,6 +574,7 @@ config SND_SOC_RL6231
	default y if SND_SOC_RT5659=y
	default y if SND_SOC_RT5670=y
	default y if SND_SOC_RT5677=y
	default m if SND_SOC_RT5514=m
	default m if SND_SOC_RT5616=m
	default m if SND_SOC_RT5640=m
	default m if SND_SOC_RT5645=m
@@ -595,6 +598,9 @@ config SND_SOC_RT298
	tristate
	depends on I2C

config SND_SOC_RT5514
	tristate

config SND_SOC_RT5616
	tristate

+2 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ snd-soc-rl6231-objs := rl6231.o
snd-soc-rl6347a-objs := rl6347a.o
snd-soc-rt286-objs := rt286.o
snd-soc-rt298-objs := rt298.o
snd-soc-rt5514-objs := rt5514.o
snd-soc-rt5616-objs := rt5616.o
snd-soc-rt5631-objs := rt5631.o
snd-soc-rt5640-objs := rt5640.o
@@ -296,6 +297,7 @@ obj-$(CONFIG_SND_SOC_RL6231) += snd-soc-rl6231.o
obj-$(CONFIG_SND_SOC_RL6347A)	+= snd-soc-rl6347a.o
obj-$(CONFIG_SND_SOC_RT286)	+= snd-soc-rt286.o
obj-$(CONFIG_SND_SOC_RT298)	+= snd-soc-rt298.o
obj-$(CONFIG_SND_SOC_RT5514)	+= snd-soc-rt5514.o
obj-$(CONFIG_SND_SOC_RT5616)	+= snd-soc-rt5616.o
obj-$(CONFIG_SND_SOC_RT5631)	+= snd-soc-rt5631.o
obj-$(CONFIG_SND_SOC_RT5640)	+= snd-soc-rt5640.o