summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_micfil.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2022-04-14 19:22:42 +0300
committerMark Brown <broonie@kernel.org>2022-04-19 14:06:23 +0300
commitbe6aeee2eb82e5ae57f8cc613c0b6cc3e8d33664 (patch)
treed210c649643120fa7f71573fbc85c77b9c9156f4 /sound/soc/fsl/fsl_micfil.c
parentfb855b8d46a17c9bb5562e315158de52b18b7e62 (diff)
downloadlinux-be6aeee2eb82e5ae57f8cc613c0b6cc3e8d33664.tar.xz
ASoC: fsl_micfil: Drop get_pdm_clk()
get_pdm_clk() calculates the PDM clock based on the quality setting, but really the PDM clock is independent of the quality, it's always rate * 4 * micfil->osr. Just drop the function and do the calculation in the caller. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com> Link: https://lore.kernel.org/r/20220414162249.3934543-15-s.hauer@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/fsl/fsl_micfil.c')
-rw-r--r--sound/soc/fsl/fsl_micfil.c38
1 files changed, 1 insertions, 37 deletions
diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
index a35c1c580dbc..3ddc988b4fe6 100644
--- a/sound/soc/fsl/fsl_micfil.c
+++ b/sound/soc/fsl/fsl_micfil.c
@@ -110,42 +110,6 @@ static const struct snd_kcontrol_new fsl_micfil_snd_controls[] = {
snd_soc_get_enum_double, snd_soc_put_enum_double),
};
-static inline int get_pdm_clk(struct fsl_micfil *micfil,
- unsigned int rate)
-{
- u32 ctrl2_reg;
- int qsel;
- int bclk;
- int osr = MICFIL_OSR_DEFAULT;
-
- regmap_read(micfil->regmap, REG_MICFIL_CTRL2, &ctrl2_reg);
- qsel = FIELD_GET(MICFIL_CTRL2_QSEL, ctrl2_reg);
-
- switch (qsel) {
- case MICFIL_QSEL_HIGH_QUALITY:
- bclk = rate * 8 * osr / 2; /* kfactor = 0.5 */
- break;
- case MICFIL_QSEL_MEDIUM_QUALITY:
- case MICFIL_QSEL_VLOW0_QUALITY:
- bclk = rate * 4 * osr * 1; /* kfactor = 1 */
- break;
- case MICFIL_QSEL_LOW_QUALITY:
- case MICFIL_QSEL_VLOW1_QUALITY:
- bclk = rate * 2 * osr * 2; /* kfactor = 2 */
- break;
- case MICFIL_QSEL_VLOW2_QUALITY:
- bclk = rate * osr * 4; /* kfactor = 4 */
- break;
- default:
- dev_err(&micfil->pdev->dev,
- "Please make sure you select a valid quality.\n");
- bclk = -1;
- break;
- }
-
- return bclk;
-}
-
static inline int get_clk_div(struct fsl_micfil *micfil,
unsigned int rate)
{
@@ -154,7 +118,7 @@ static inline int get_clk_div(struct fsl_micfil *micfil,
mclk_rate = clk_get_rate(micfil->mclk);
- clk_div = mclk_rate / (get_pdm_clk(micfil, rate) * 2);
+ clk_div = mclk_rate / (rate * MICFIL_OSR_DEFAULT * 8);
return clk_div;
}