Message ID | 20210825152518.379386-34-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | TI AM437X ADC1 | expand |
On Wed, 25 Aug 2021 17:25:11 +0200 Miquel Raynal <miquel.raynal@bootlin.com> 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@bootlin.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > 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; > } >
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; }
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@bootlin.com> --- drivers/iio/adc/ti_am335x_adc.c | 47 +++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 20 deletions(-)