diff --git a/sound/soc/rockchip/rockchip_pdm_v2.c b/sound/soc/rockchip/rockchip_pdm_v2.c index 6dcd9a2b0e73..8f35e7c695bc 100644 --- a/sound/soc/rockchip/rockchip_pdm_v2.c +++ b/sound/soc/rockchip/rockchip_pdm_v2.c @@ -821,6 +821,14 @@ static int rockchip_pdm_v2_probe(struct platform_device *pdev) */ pdm->version = (pdm->version >> 16) & 0xffff; + if (pdm->version == RK3506_PDM) { + regmap_update_bits(pdm->regmap, PDM_V2_GAIN_CTRL, PDM_V2_GAIN_CTRL_MSK, + PDM_V2_GAIN_CTRL_0DB); + } else if (pdm->version == RK3576_PDM) { + regmap_update_bits(pdm->regmap, PDM_V2_FILTER_CTRL, PDM_V2_GAIN_MSK, + PDM_V2_GAIN_0DB); + } + ret = rockchip_pdm_v2_path_parse(pdm, node); if (ret != 0 && ret != -ENOENT) goto err_hclk; diff --git a/sound/soc/rockchip/rockchip_pdm_v2.h b/sound/soc/rockchip/rockchip_pdm_v2.h index 86bf17918e1a..ed2144d5dbc7 100644 --- a/sound/soc/rockchip/rockchip_pdm_v2.h +++ b/sound/soc/rockchip/rockchip_pdm_v2.h @@ -150,5 +150,6 @@ #define PDM_V2_GAIN_CTRL_SHIFT 1 #define PDM_V2_GAIN_CTRL_MIN 0 #define PDM_V2_GAIN_CTRL_MAX 0x7f +#define PDM_V2_GAIN_CTRL_0DB (175 << 0) #endif