From 75cc610f8626224c2af4e170d09f2923a363f952 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Tue, 3 Jul 2018 11:02:16 +0800 Subject: [PATCH] ASoC: rockchip: vad: add support for 'rockchip,acodec-cfg' rockchip,acodec-cfg: config acodec after voice activity detection. Change-Id: I8786688df872e258dd96144130aaacdbf1d99ce3 Signed-off-by: Sugar Zhang --- Documentation/devicetree/bindings/sound/rockchip,vad.txt | 3 +++ sound/soc/rockchip/rockchip_vad.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/rockchip,vad.txt b/Documentation/devicetree/bindings/sound/rockchip,vad.txt index 83ffa22608eb..549a30216f83 100644 --- a/Documentation/devicetree/bindings/sound/rockchip,vad.txt +++ b/Documentation/devicetree/bindings/sound/rockchip,vad.txt @@ -16,6 +16,9 @@ Required properties: - 1: begin to store the data after vad is enabled. - 2: don't store the data. +Optional properties: +- rockchip,acodec-cfg: boolean, config acodec after voice activity detection. + Example for rk3308 VAD controller: vad: vad@ff3c0000 { diff --git a/sound/soc/rockchip/rockchip_vad.c b/sound/soc/rockchip/rockchip_vad.c index 423337706581..291451d64629 100644 --- a/sound/soc/rockchip/rockchip_vad.c +++ b/sound/soc/rockchip/rockchip_vad.c @@ -65,6 +65,7 @@ struct rockchip_vad { u32 buffer_time; /* msec */ struct dentry *debugfs_dir; void *buf; + bool acodec_cfg; }; struct audio_src_addr_map { @@ -421,6 +422,9 @@ static int rockchip_vad_config_acodec(struct snd_pcm_hw_params *params, struct rockchip_vad *vad = snd_soc_codec_get_drvdata(codec); unsigned int val = 0; + if (!vad->acodec_cfg) + return 0; + val = ACODEC_BASE + ACODEC_ADC_ANA_CON0; regmap_write(vad->regmap, VAD_ID_ADDR, val); @@ -742,6 +746,7 @@ static int rockchip_vad_probe(struct platform_device *pdev) vad->dev = &pdev->dev; + vad->acodec_cfg = of_property_read_bool(np, "rockchip,acodec-cfg"); of_property_read_u32(np, "rockchip,mode", &vad->mode); of_property_read_u32(np, "rockchip,det-channel", &vad->audio_chnl); of_property_read_u32(np, "rockchip,buffer-time-ms", &vad->buffer_time);