On Wed, 25 Aug 2021 17:25:11 +0200 Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > Move the checks over the delays provided in the device tree to the > location where these values are read to clarify where they come from. > > There are no functional changes besides the device structure used to > display the warnings: let's use the ADC instead of the MFD device. > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> Acked-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > --- > drivers/iio/adc/ti_am335x_adc.c | 47 +++++++++++++++++++-------------- > 1 file changed, 27 insertions(+), 20 deletions(-) > > diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c > index 00bbf557e86c..4eaf5b031707 100644 > --- a/drivers/iio/adc/ti_am335x_adc.c > +++ b/drivers/iio/adc/ti_am335x_adc.c > @@ -97,7 +97,6 @@ static u32 get_adc_step_bit(struct tiadc_device *adc_dev, int chan) > static void tiadc_step_config(struct iio_dev *indio_dev) > { > struct tiadc_device *adc_dev = iio_priv(indio_dev); > - struct device *dev = adc_dev->mfd_tscadc->dev; > unsigned int stepconfig; > int i, steps = 0; > > @@ -115,12 +114,6 @@ static void tiadc_step_config(struct iio_dev *indio_dev) > > chan = adc_dev->channel_line[i]; > > - if (adc_dev->step_avg[i] > STEPCONFIG_AVG_16) { > - dev_warn(dev, "chan %d step_avg truncating to %d\n", > - chan, STEPCONFIG_AVG_16); > - adc_dev->step_avg[i] = STEPCONFIG_AVG_16; > - } > - > if (adc_dev->step_avg[i]) > stepconfig = STEPCONFIG_AVG(ffs(adc_dev->step_avg[i]) - 1) | > STEPCONFIG_FIFO1; > @@ -135,18 +128,6 @@ static void tiadc_step_config(struct iio_dev *indio_dev) > STEPCONFIG_INM_ADCREFM | STEPCONFIG_RFP_VREFP | > STEPCONFIG_RFM_VREFN); > > - if (adc_dev->open_delay[i] > STEPDELAY_OPEN_MASK) { > - dev_warn(dev, "chan %d open delay truncating to 0x3FFFF\n", > - chan); > - adc_dev->open_delay[i] = STEPDELAY_OPEN_MASK; > - } > - > - if (adc_dev->sample_delay[i] > 0xFF) { > - dev_warn(dev, "chan %d sample delay truncating to 0xFF\n", > - chan); > - adc_dev->sample_delay[i] = 0xFF; > - } > - > tiadc_writel(adc_dev, REG_STEPDELAY(steps), > STEPDELAY_OPEN(adc_dev->open_delay[i]) | > STEPDELAY_SAMPLE(adc_dev->sample_delay[i])); > @@ -552,6 +533,7 @@ static int tiadc_parse_dt(struct platform_device *pdev, > const __be32 *cur; > int channels = 0; > u32 val; > + int i; > > of_property_for_each_u32(node, "ti,adc-channels", prop, cur, val) { > adc_dev->channel_line[channels] = val; > @@ -564,6 +546,8 @@ static int tiadc_parse_dt(struct platform_device *pdev, > channels++; > } > > + adc_dev->channels = channels; > + > of_property_read_u32_array(node, "ti,chan-step-avg", > adc_dev->step_avg, channels); > of_property_read_u32_array(node, "ti,chan-step-opendelay", > @@ -571,7 +555,30 @@ static int tiadc_parse_dt(struct platform_device *pdev, > of_property_read_u32_array(node, "ti,chan-step-sampledelay", > adc_dev->sample_delay, channels); > > - adc_dev->channels = channels; > + for (i = 0; i < adc_dev->channels; i++) { > + int chan; > + > + chan = adc_dev->channel_line[i]; > + > + if (adc_dev->step_avg[i] > STEPCONFIG_AVG_16) { > + dev_warn(&pdev->dev, "chan %d step_avg truncating to %d\n", > + chan, STEPCONFIG_AVG_16); > + adc_dev->step_avg[i] = STEPCONFIG_AVG_16; > + } > + > + if (adc_dev->open_delay[i] > STEPDELAY_OPEN_MASK) { > + dev_warn(&pdev->dev, "chan %d open delay truncating to 0x3FFFF\n", > + chan); > + adc_dev->open_delay[i] = STEPDELAY_OPEN_MASK; > + } > + > + if (adc_dev->sample_delay[i] > 0xFF) { > + dev_warn(&pdev->dev, "chan %d sample delay truncating to 0xFF\n", > + chan); > + adc_dev->sample_delay[i] = 0xFF; > + } > + } > + > return 0; > } >