iio: adc: stm32-dfsdm: fix clock source selection
Add missing clock source selection. In case "audio" clock is provided,
it's unused currently: "dfsdm" clock is wrongly used by default.
Fixes: bed73904e7
("IIO: ADC: add stm32 DFSDM core support")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
c278609bdd
commit
179858efd9
@ -83,7 +83,7 @@ int stm32_dfsdm_start_dfsdm(struct stm32_dfsdm *dfsdm)
|
|||||||
{
|
{
|
||||||
struct dfsdm_priv *priv = container_of(dfsdm, struct dfsdm_priv, dfsdm);
|
struct dfsdm_priv *priv = container_of(dfsdm, struct dfsdm_priv, dfsdm);
|
||||||
struct device *dev = &priv->pdev->dev;
|
struct device *dev = &priv->pdev->dev;
|
||||||
unsigned int clk_div = priv->spi_clk_out_div;
|
unsigned int clk_div = priv->spi_clk_out_div, clk_src;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (atomic_inc_return(&priv->n_active_ch) == 1) {
|
if (atomic_inc_return(&priv->n_active_ch) == 1) {
|
||||||
@ -100,6 +100,14 @@ int stm32_dfsdm_start_dfsdm(struct stm32_dfsdm *dfsdm)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* select clock source, e.g. 0 for "dfsdm" or 1 for "audio" */
|
||||||
|
clk_src = priv->aclk ? 1 : 0;
|
||||||
|
ret = regmap_update_bits(dfsdm->regmap, DFSDM_CHCFGR1(0),
|
||||||
|
DFSDM_CHCFGR1_CKOUTSRC_MASK,
|
||||||
|
DFSDM_CHCFGR1_CKOUTSRC(clk_src));
|
||||||
|
if (ret < 0)
|
||||||
|
goto disable_aclk;
|
||||||
|
|
||||||
/* Output the SPI CLKOUT (if clk_div == 0 clock if OFF) */
|
/* Output the SPI CLKOUT (if clk_div == 0 clock if OFF) */
|
||||||
ret = regmap_update_bits(dfsdm->regmap, DFSDM_CHCFGR1(0),
|
ret = regmap_update_bits(dfsdm->regmap, DFSDM_CHCFGR1(0),
|
||||||
DFSDM_CHCFGR1_CKOUTDIV_MASK,
|
DFSDM_CHCFGR1_CKOUTDIV_MASK,
|
||||||
|
Loading…
Reference in New Issue
Block a user