From: Olivier Moysan <olivier.moysan@foss.st.com> To: Alexandre Torgue <alexandre.torgue@foss.st.com>, Andy Shevchenko <andy.shevchenko@gmail.com>, Fabrice Gasnier <fabrice.gasnier@foss.st.com>, Jonathan Cameron <jic23@kernel.org>, Lars-Peter Clausen <lars@metafoo.de>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, <nuno.sa@analog.com>, Olivier Moysan <olivier.moysan@foss.st.com>, Paul Cercueil <paul@crapouillou.net>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, Wan Jiabing <wanjiabing@vivo.com>, Yannick Brosseau <yannick.brosseau@gmail.com> Cc: <linux-arm-kernel@lists.infradead.org>, <linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-stm32@st-md-mailman.stormreply.com> Subject: [PATCH v3 1/8] iio: adc: stm32-adc: fix channel sampling time init Date: Wed, 5 Oct 2022 18:14:17 +0200 [thread overview] Message-ID: <20221005161424.4537-2-olivier.moysan@foss.st.com> (raw) In-Reply-To: <20221005161424.4537-1-olivier.moysan@foss.st.com> Fix channel init for ADC generic channel bindings. In generic channel initialization, stm32_adc_smpr_init() is called to initialize channel sampling time. The "st,min-sample-time-ns" property is an optional property. If it is not defined, stm32_adc_smpr_init() is currently skipped. However stm32_adc_smpr_init() must always be called, to force a minimum sampling time for the internal channels, as the minimum sampling time is known. Make stm32_adc_smpr_init() call unconditional. Fixes: 796e5d0b1e9b ("iio: adc: stm32-adc: use generic binding for sample-time") Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com> --- drivers/iio/adc/stm32-adc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 6256977eb7f7..3cda529f081d 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -2086,18 +2086,19 @@ static int stm32_adc_generic_chan_init(struct iio_dev *indio_dev, stm32_adc_chan_init_one(indio_dev, &channels[scan_index], val, vin[1], scan_index, differential); + val = 0; ret = fwnode_property_read_u32(child, "st,min-sample-time-ns", &val); /* st,min-sample-time-ns is optional */ - if (!ret) { - stm32_adc_smpr_init(adc, channels[scan_index].channel, val); - if (differential) - stm32_adc_smpr_init(adc, vin[1], val); - } else if (ret != -EINVAL) { + if (ret && ret != -EINVAL) { dev_err(&indio_dev->dev, "Invalid st,min-sample-time-ns property %d\n", ret); goto err; } + stm32_adc_smpr_init(adc, channels[scan_index].channel, val); + if (differential) + stm32_adc_smpr_init(adc, vin[1], val); + scan_index++; } -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Olivier Moysan <olivier.moysan@foss.st.com> To: Alexandre Torgue <alexandre.torgue@foss.st.com>, Andy Shevchenko <andy.shevchenko@gmail.com>, Fabrice Gasnier <fabrice.gasnier@foss.st.com>, Jonathan Cameron <jic23@kernel.org>, Lars-Peter Clausen <lars@metafoo.de>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, <nuno.sa@analog.com>, Olivier Moysan <olivier.moysan@foss.st.com>, Paul Cercueil <paul@crapouillou.net>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, Wan Jiabing <wanjiabing@vivo.com>, Yannick Brosseau <yannick.brosseau@gmail.com> Cc: <linux-arm-kernel@lists.infradead.org>, <linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-stm32@st-md-mailman.stormreply.com> Subject: [PATCH v3 1/8] iio: adc: stm32-adc: fix channel sampling time init Date: Wed, 5 Oct 2022 18:14:17 +0200 [thread overview] Message-ID: <20221005161424.4537-2-olivier.moysan@foss.st.com> (raw) In-Reply-To: <20221005161424.4537-1-olivier.moysan@foss.st.com> Fix channel init for ADC generic channel bindings. In generic channel initialization, stm32_adc_smpr_init() is called to initialize channel sampling time. The "st,min-sample-time-ns" property is an optional property. If it is not defined, stm32_adc_smpr_init() is currently skipped. However stm32_adc_smpr_init() must always be called, to force a minimum sampling time for the internal channels, as the minimum sampling time is known. Make stm32_adc_smpr_init() call unconditional. Fixes: 796e5d0b1e9b ("iio: adc: stm32-adc: use generic binding for sample-time") Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com> --- drivers/iio/adc/stm32-adc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 6256977eb7f7..3cda529f081d 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -2086,18 +2086,19 @@ static int stm32_adc_generic_chan_init(struct iio_dev *indio_dev, stm32_adc_chan_init_one(indio_dev, &channels[scan_index], val, vin[1], scan_index, differential); + val = 0; ret = fwnode_property_read_u32(child, "st,min-sample-time-ns", &val); /* st,min-sample-time-ns is optional */ - if (!ret) { - stm32_adc_smpr_init(adc, channels[scan_index].channel, val); - if (differential) - stm32_adc_smpr_init(adc, vin[1], val); - } else if (ret != -EINVAL) { + if (ret && ret != -EINVAL) { dev_err(&indio_dev->dev, "Invalid st,min-sample-time-ns property %d\n", ret); goto err; } + stm32_adc_smpr_init(adc, channels[scan_index].channel, val); + if (differential) + stm32_adc_smpr_init(adc, vin[1], val); + scan_index++; } -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-10-05 16:15 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-10-05 16:14 [PATCH v3 0/8] iio: stm32-adc: add support of adc for stm32mp13 Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan [this message] 2022-10-05 16:14 ` [PATCH v3 1/8] iio: adc: stm32-adc: fix channel sampling time init Olivier Moysan 2022-10-09 12:42 ` Jonathan Cameron 2022-10-09 12:42 ` Jonathan Cameron 2022-10-05 16:14 ` [PATCH v3 2/8] dt-bindings: iio: adc: stm32-adc: add stm32mp13 compatibles Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-09 12:46 ` Jonathan Cameron 2022-10-09 12:46 ` Jonathan Cameron 2022-10-05 16:14 ` [PATCH v3 3/8] iio: adc: stm32-adc: add stm32mp13 support Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` [PATCH v3 4/8] iio: adc: stm32: manage min sampling time on all internal channels Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` [PATCH v3 5/8] ARM: dts: stm32: add adc support to stm32mp13 Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` [PATCH v3 6/8] ARM: dts: stm32: add adc pins muxing on stm32mp135f-dk Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` [PATCH v3 7/8] ARM: dts: stm32: add dummy vdd_adc regulator " Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan 2022-10-05 16:14 ` [PATCH v3 8/8] ARM: dts: stm32: add adc support " Olivier Moysan 2022-10-05 16:14 ` Olivier Moysan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221005161424.4537-2-olivier.moysan@foss.st.com \ --to=olivier.moysan@foss.st.com \ --cc=alexandre.torgue@foss.st.com \ --cc=andy.shevchenko@gmail.com \ --cc=bigeasy@linutronix.de \ --cc=fabrice.gasnier@foss.st.com \ --cc=jic23@kernel.org \ --cc=lars@metafoo.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=nuno.sa@analog.com \ --cc=paul@crapouillou.net \ --cc=wanjiabing@vivo.com \ --cc=yannick.brosseau@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.