From 8b34d69e0443a1ef28f0526ecfbd5bc29821e2ba Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Tue, 19 Nov 2019 17:51:47 +0800 Subject: [PATCH] ASoC: codecs: Adds support for rk3228 codec This patch adds driver support for rk3228 codec. Replace digital_mute with mute_stream Change-Id: Icf83257726f12558cbdde4d4b2876dc8a3123626 Signed-off-by: Sugar Zhang --- sound/soc/codecs/Kconfig | 5 +++++ sound/soc/codecs/Makefile | 2 ++ sound/soc/codecs/rk3228_codec.c | 5 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 1d7afa84f160..55bf97c6cb3f 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -152,6 +152,7 @@ config SND_SOC_ALL_CODECS imply SND_SOC_PCM512x_SPI imply SND_SOC_RK1000 imply SND_SOC_RK312X + imply SND_SOC_RK3228 imply SND_SOC_RK3328 imply SND_SOC_RK817 imply SND_SOC_RT274 @@ -1031,6 +1032,10 @@ config SND_SOC_RK312X select REGMAP_MMIO tristate "Rockchip RK312X CODEC" +config SND_SOC_RK3228 + select REGMAP_MMIO + tristate "Rockchip RK3228 CODEC" + config SND_SOC_RK3328 tristate "Rockchip RK3328 audio CODEC" select REGMAP_MMIO diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index 7f9aeaa98dc7..bd12074641b5 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -157,6 +157,7 @@ snd-soc-pcm512x-i2c-objs := pcm512x-i2c.o snd-soc-pcm512x-spi-objs := pcm512x-spi.o snd-soc-rk1000-objs := rk1000_codec.o snd-soc-rk312x-objs := rk312x_codec.o +snd-soc-rk3228-objs := rk3228_codec.o snd-soc-rk3328-objs := rk3328_codec.o snd-soc-rk817-objs := rk817_codec.o snd-soc-rl6231-objs := rl6231.o @@ -469,6 +470,7 @@ obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o obj-$(CONFIG_SND_SOC_RK1000) += snd-soc-rk1000.o obj-$(CONFIG_SND_SOC_RK312X) += snd-soc-rk312x.o +obj-$(CONFIG_SND_SOC_RK3228) += snd-soc-rk3228.o obj-$(CONFIG_SND_SOC_RK3328) += snd-soc-rk3328.o obj-$(CONFIG_SND_SOC_RK817) += snd-soc-rk817.o obj-$(CONFIG_SND_SOC_RL6231) += snd-soc-rl6231.o diff --git a/sound/soc/codecs/rk3228_codec.c b/sound/soc/codecs/rk3228_codec.c index deed95929d88..d82eec871ac8 100644 --- a/sound/soc/codecs/rk3228_codec.c +++ b/sound/soc/codecs/rk3228_codec.c @@ -113,7 +113,7 @@ static void rk3228_analog_output(struct rk3228_codec_priv *rk3228, int mute) gpiod_set_value(rk3228->spk_en_gpio, mute); } -static int rk3228_digital_mute(struct snd_soc_dai *dai, int mute) +static int rk3228_digital_mute(struct snd_soc_dai *dai, int mute, int stream) { struct snd_soc_component *component = dai->component; struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); @@ -326,9 +326,10 @@ static void rk3228_pcm_shutdown(struct snd_pcm_substream *substream, static struct snd_soc_dai_ops rk3228_dai_ops = { .hw_params = rk3228_hw_params, .set_fmt = rk3228_set_dai_fmt, - .digital_mute = rk3228_digital_mute, + .mute_stream = rk3228_digital_mute, .startup = rk3228_pcm_startup, .shutdown = rk3228_pcm_shutdown, + .no_capture_mute = 1, }; static struct snd_soc_dai_driver rk3228_dai[] = {