Skip to content

Commit 3f57a3b

Browse files
M-Vaittinenjic23
authored andcommitted
iio: adc: Support ROHM BD79124 ADC
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 do not support the BD79124's manual measurement mode but implement the measurements using automatic measurement mode, relying on the BD79124's ability of storing latest measurements into register. Support also 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, prevent the user-space from choking on the events and mask the received event for a fixed duration (1 second) when an event is handled. The ADC input pins can be also configured as general purpose outputs. Make those pins which don't have corresponding ADC channel node in the device-tree controllable as GPO. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://patch.msgid.link/ca3886c9abcb268ca976e62cd7da28bf5d6e6382.1742560649.git.mazziesaccount@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
1 parent 19d8a86 commit 3f57a3b

File tree

3 files changed

+1160
-0
lines changed

3 files changed

+1160
-0
lines changed

drivers/iio/adc/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,18 @@ config RN5T618_ADC
12351235
This driver can also be built as a module. If so, the module
12361236
will be called rn5t618-adc.
12371237

1238+
config ROHM_BD79124
1239+
tristate "Rohm BD79124 ADC driver"
1240+
depends on I2C
1241+
select REGMAP_I2C
1242+
select IIO_ADC_HELPER
1243+
help
1244+
Say yes here to build support for the ROHM BD79124 ADC. The
1245+
ROHM BD79124 is a 12-bit, 8-channel, SAR ADC. The ADC supports
1246+
also an automatic measurement mode, with an alarm interrupt for
1247+
out-of-window measurements. The window is configurable for each
1248+
channel.
1249+
12381250
config ROCKCHIP_SARADC
12391251
tristate "Rockchip SARADC driver"
12401252
depends on ARCH_ROCKCHIP || COMPILE_TEST

drivers/iio/adc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ obj-$(CONFIG_QCOM_VADC_COMMON) += qcom-vadc-common.o
112112
obj-$(CONFIG_RCAR_GYRO_ADC) += rcar-gyroadc.o
113113
obj-$(CONFIG_RICHTEK_RTQ6056) += rtq6056.o
114114
obj-$(CONFIG_RN5T618_ADC) += rn5t618-adc.o
115+
obj-$(CONFIG_ROHM_BD79124) += rohm-bd79124.o
115116
obj-$(CONFIG_ROCKCHIP_SARADC) += rockchip_saradc.o
116117
obj-$(CONFIG_RZG2L_ADC) += rzg2l_adc.o
117118
obj-$(CONFIG_SC27XX_ADC) += sc27xx_adc.o

0 commit comments

Comments
 (0)