diff options
author | Bard Liao <bardliao@realtek.com> | 2014-06-20 14:41:13 +0800 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-07-04 18:50:51 +0100 |
commit | 07cf7cbadb4d97a78be61119a406de8fe446467e (patch) | |
tree | f237a61b13b5fc250909720a30b3e5eb2ba62b72 /sound/soc/codecs/Kconfig | |
parent | 7171511eaec5bf23fb06078f59784a3a0626b38f (diff) | |
download | lwn-07cf7cbadb4d97a78be61119a406de8fe446467e.tar.gz lwn-07cf7cbadb4d97a78be61119a406de8fe446467e.zip |
ASoC: add RT286 CODEC driver
This patch adds Realtek ALC286 codec driver.
ALC286 is a dual mode codec, which can run as HD-A or I2S mode.
It is controlled by HD-A verb commands via I2C protocol.
The following is the I/O difference between ALC286 and general I2S codecs.
1. A HD-A verb command contains three parts, NID, VID, and PID.
And an I2S command contains only two parts: address and data.
2. Not only the register address is written, but the read command also
includes the entire write command.
3. rt286 uses different registers for read and write the same bits.
We map verb command to regmap structure. However, we read most registers from
cache to prevent the asymmetry read/write issue in rt286.
Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Gustaw Lewandowski <gustaw.lewandowski@intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/codecs/Kconfig')
-rw-r--r-- | sound/soc/codecs/Kconfig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index cbfa1e18f651..115e5de7b7eb 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -74,6 +74,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_PCM3008 select SND_SOC_PCM512x_I2C if I2C select SND_SOC_PCM512x_SPI if SPI_MASTER + select SND_SOC_RT286 if I2C select SND_SOC_RT5631 if I2C select SND_SOC_RT5640 if I2C select SND_SOC_RT5645 if I2C @@ -449,6 +450,9 @@ config SND_SOC_RL6231 default m if SND_SOC_RT5645=m default m if SND_SOC_RT5651=m +config SND_SOC_RT286 + tristate + config SND_SOC_RT5631 tristate |