Re: [PATCH v5 07/10] iio: adc: Support ROHM BD79124 ADC

From: Matti Vaittinen
Date: Mon Mar 10 2025 - 04:46:58 EST


On 08/03/2025 18:44, Jonathan Cameron wrote:
On Mon, 3 Mar 2025 13:33:39 +0200
Matti Vaittinen <mazziesaccount@xxxxxxxxx> wrote:

The ROHM BD79124 is a 12-bit, 8-channel, SAR ADC. The ADC supports
an automatic measurement mode, with an alarm interrupt for out-of-window
measurements. The window is configurable for each channel.

The I2C protocol for manual start of the measurement and data reading is
somewhat peculiar. It requires the master to do clock stretching after
sending the I2C slave-address until the slave has captured the data.
Needless to say this is not well suopported by the I2C controllers.

Thus the driver does not support the BD79124's manual measurement mode
but implements the measurements using automatic measurement mode relying
on the BD79124's ability of storing latest measurements into register.

The driver does also support configuring the threshold events for
detecting the out-of-window events.

The BD79124 keeps asserting IRQ for as long as the measured voltage is
out of the configured window. Thus the driver masks the received event
for a fixed duration (1 second) when an event is handled. This prevents
the user-space from choking on the events

The ADC input pins can be also configured as general purpose outputs.
Those pins which don't have corresponding ADC channel node in the
device-tree will be controllable as GPO.

Signed-off-by: Matti Vaittinen <mazziesaccount@xxxxxxxxx>
Hi Matti

Just a few really trivial comments. If all else in the
set was resolved I'd probably have applied with a tweak or two

Thanks,

Jonathan

obj-$(CONFIG_SC27XX_ADC) += sc27xx_adc.o
diff --git a/drivers/iio/adc/rohm-bd79124.c b/drivers/iio/adc/rohm-bd79124.c
new file mode 100644
index 000000000000..466c7decf8fc
--- /dev/null
+++ b/drivers/iio/adc/rohm-bd79124.c
@@ -0,0 +1,1108 @@
...

+
+/* Read-only regs */

Given naming this is pretty obvious.
> I would drop the comment

I will drop this, although I am not sure it is as self explatonary as one thinks. I've seen people getting this wrong because the logic of regmap-ranges is kind of reversed. (Eg, read-only is done by adding range to wr_tables and not to rd_tables - as a no-range).

Thanks for the review, and rest of the comments just agreed with.

-- Matti