The ROHM BD79105 is a simple, 16-bit, 1-channel ADC with a 'CONVSTART'
pin used to start the ADC conversion. Other than the 'CONVSTART', there
are 3 supply pins (one used as a reference), analog inputs, ground and
communication pins. It's worth noting that the pin somewhat confusingly
labeled as 'DIN', is a pin which should be used as a chip-select. The IC
does not have any writable registers.
The device is designed so that the output pin can, in addition to
outputting the data, be used as a 'data-ready'-IRQ. This, however, would
require the IRQ to be masked from host side for the duration of the data
reads - and it wouldn't also work when the SPI is shared. (As access to
the other SPI devices would cause data line changes to be detected as
IRQs - and the BD79105 provides no means to detect if it has generated
an IRQ).
Hence the device-tree does not contain any IRQ properties.
Add a compatible for the bd79105.
Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
---
Revision history:
v2 => :
- No changes
v1 => v2:
- BD79105 can provide data-ready IRQ (or GPIO) via DOUT-pin.
---
.../bindings/iio/adc/adi,ad7476.yaml | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml
index d0cb32f136e5..c411a7467651 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml
@@ -41,6 +41,7 @@ properties:
- adi,ad7910
- adi,ad7920
- adi,ad7940
+ - rohm,bd79105
- ti,adc081s
- ti,adc101s
- ti,adc121s
@@ -55,6 +56,11 @@ properties:
reg:
maxItems: 1
+ interrupts:
+ description:
+ The data-ready interrupt. Provided via DOUT pin.
+ maxItems: 1
+
vcc-supply:
description:
Main powersupply voltage for the chips, sometimes referred to as VDD on
@@ -75,6 +81,10 @@ properties:
description: A GPIO used to trigger the start of a conversion
maxItems: 1
+ rdy-gpios:
+ description: A GPIO for detecting the data-ready.
+ maxItems: 1
+
required:
- compatible
- reg
@@ -82,6 +92,20 @@ required:
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
+# Devices with an IRQ
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rohm,bd79105
+ then:
+ properties:
+ interrupts: true
+ else:
+ properties:
+ interrupts: false
+
# Devices where reference is vcc
- if:
properties:
@@ -115,6 +139,7 @@ allOf:
- adi,ad7274
- adi,ad7475
- lltc,ltc2314-14
+ - rohm,bd79105
then:
properties:
vref-supply: true
@@ -131,6 +156,7 @@ allOf:
- adi,ad7274
- adi,ad7475
- lltc,ltc2314-14
+ - rohm,bd79105
then:
required:
- vref-supply
@@ -141,12 +167,28 @@ allOf:
enum:
- adi,ad7475
- adi,ad7495
+ - rohm,bd79105
then:
properties:
vdrive-supply: true
else:
properties:
vdrive-supply: false
+
+ # Devices which support polling the data-ready via GPIO
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rohm,bd79105
+ then:
+ properties:
+ rdy-gpios: true
+ else:
+ properties:
+ rdy-gpios: false
+
- if:
properties:
compatible:
@@ -154,6 +196,7 @@ allOf:
enum:
- adi,ad7091
- adi,ad7091r
+ - rohm,bd79105
then:
properties:
adi,conversion-start-gpios: true
@@ -161,6 +204,17 @@ allOf:
properties:
adi,conversion-start-gpios: false
+ # Devices with a convstart GPIO where it is not optional
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rohm,bd79105
+ then:
+ required:
+ - adi,conversion-start-gpios
+
unevaluatedProperties: false
examples:
--
2.50.1
On Fri, 8 Aug 2025 11:54:25 +0300 Matti Vaittinen <mazziesaccount@gmail.com> wrote: > The ROHM BD79105 is a simple, 16-bit, 1-channel ADC with a 'CONVSTART' > pin used to start the ADC conversion. Other than the 'CONVSTART', there > are 3 supply pins (one used as a reference), analog inputs, ground and > communication pins. It's worth noting that the pin somewhat confusingly > labeled as 'DIN', is a pin which should be used as a chip-select. The IC > does not have any writable registers. > > The device is designed so that the output pin can, in addition to > outputting the data, be used as a 'data-ready'-IRQ. This, however, would > require the IRQ to be masked from host side for the duration of the data > reads - and it wouldn't also work when the SPI is shared. (As access to > the other SPI devices would cause data line changes to be detected as > IRQs - and the BD79105 provides no means to detect if it has generated > an IRQ). > > Hence the device-tree does not contain any IRQ properties. Commit message needs an update as it now allows for IRQ properties. > > Add a compatible for the bd79105. > > Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> > > --- > Revision history: > v2 => : > - No changes > > v1 => v2: > - BD79105 can provide data-ready IRQ (or GPIO) via DOUT-pin. > --- > .../bindings/iio/adc/adi,ad7476.yaml | 54 +++++++++++++++++++ > 1 file changed, 54 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml > index d0cb32f136e5..c411a7467651 100644 > --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml > @@ -41,6 +41,7 @@ properties: > - adi,ad7910 > - adi,ad7920 > - adi,ad7940 > + - rohm,bd79105 > - ti,adc081s > - ti,adc101s > - ti,adc121s > @@ -55,6 +56,11 @@ properties: > reg: > maxItems: 1 > > + interrupts: > + description: > + The data-ready interrupt. Provided via DOUT pin. > + maxItems: 1 > + > vcc-supply: > description: > Main powersupply voltage for the chips, sometimes referred to as VDD on > @@ -75,6 +81,10 @@ properties: > description: A GPIO used to trigger the start of a conversion > maxItems: 1 > > + rdy-gpios: > + description: A GPIO for detecting the data-ready. > + maxItems: 1 > + > required: > - compatible > - reg > @@ -82,6 +92,20 @@ required: > allOf: > - $ref: /schemas/spi/spi-peripheral-props.yaml# > > +# Devices with an IRQ > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rohm,bd79105 > + then: > + properties: > + interrupts: true It's been a while since I wrote one of these, but do we need the true bit given we have already specified the interrupts property. I think we only need to do the setting to false on an if: not: > + else: > + properties: > + interrupts: false > + > # Devices where reference is vcc > - if: > properties: > @@ -115,6 +139,7 @@ allOf: > - adi,ad7274 > - adi,ad7475 > - lltc,ltc2314-14 > + - rohm,bd79105 > then: > properties: > vref-supply: true > @@ -131,6 +156,7 @@ allOf: > - adi,ad7274 > - adi,ad7475 > - lltc,ltc2314-14 > + - rohm,bd79105 > then: > required: > - vref-supply > @@ -141,12 +167,28 @@ allOf: > enum: > - adi,ad7475 > - adi,ad7495 > + - rohm,bd79105 > then: > properties: > vdrive-supply: true > else: > properties: > vdrive-supply: false > + > + # Devices which support polling the data-ready via GPIO > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rohm,bd79105 > + then: > + properties: > + rdy-gpios: true As above, I believe we only need the not case. > + else: > + properties: > + rdy-gpios: false > + > - if: > properties: > compatible: > @@ -154,6 +196,7 @@ allOf: > enum: > - adi,ad7091 > - adi,ad7091r > + - rohm,bd79105 > then: > properties: > adi,conversion-start-gpios: true > @@ -161,6 +204,17 @@ allOf: > properties: > adi,conversion-start-gpios: false > > + # Devices with a convstart GPIO where it is not optional > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rohm,bd79105 > + then: > + required: > + - adi,conversion-start-gpios > + > unevaluatedProperties: false > > examples:
On 09/08/2025 22:21, Jonathan Cameron wrote: > On Fri, 8 Aug 2025 11:54:25 +0300 > Matti Vaittinen <mazziesaccount@gmail.com> wrote: > >> The ROHM BD79105 is a simple, 16-bit, 1-channel ADC with a 'CONVSTART' >> pin used to start the ADC conversion. Other than the 'CONVSTART', there >> are 3 supply pins (one used as a reference), analog inputs, ground and >> communication pins. It's worth noting that the pin somewhat confusingly >> labeled as 'DIN', is a pin which should be used as a chip-select. The IC >> does not have any writable registers. >> >> The device is designed so that the output pin can, in addition to >> outputting the data, be used as a 'data-ready'-IRQ. This, however, would >> require the IRQ to be masked from host side for the duration of the data >> reads - and it wouldn't also work when the SPI is shared. (As access to >> the other SPI devices would cause data line changes to be detected as >> IRQs - and the BD79105 provides no means to detect if it has generated >> an IRQ). >> >> Hence the device-tree does not contain any IRQ properties. > > Commit message needs an update as it now allows for IRQ properties. Ah, true. Thanks :) > >> >> Add a compatible for the bd79105. >> >> Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> >> >> --- >> Revision history: >> v2 => : >> - No changes >> >> v1 => v2: >> - BD79105 can provide data-ready IRQ (or GPIO) via DOUT-pin. >> --- >> .../bindings/iio/adc/adi,ad7476.yaml | 54 +++++++++++++++++++ >> 1 file changed, 54 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml >> index d0cb32f136e5..c411a7467651 100644 >> --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml >> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7476.yaml >> @@ -41,6 +41,7 @@ properties: >> - adi,ad7910 >> - adi,ad7920 >> - adi,ad7940 >> + - rohm,bd79105 >> - ti,adc081s >> - ti,adc101s >> - ti,adc121s >> @@ -55,6 +56,11 @@ properties: >> reg: >> maxItems: 1 >> >> + interrupts: >> + description: >> + The data-ready interrupt. Provided via DOUT pin. >> + maxItems: 1 >> + >> vcc-supply: >> description: >> Main powersupply voltage for the chips, sometimes referred to as VDD on >> @@ -75,6 +81,10 @@ properties: >> description: A GPIO used to trigger the start of a conversion >> maxItems: 1 >> >> + rdy-gpios: >> + description: A GPIO for detecting the data-ready. >> + maxItems: 1 >> + >> required: >> - compatible >> - reg >> @@ -82,6 +92,20 @@ required: >> allOf: >> - $ref: /schemas/spi/spi-peripheral-props.yaml# >> >> +# Devices with an IRQ >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - rohm,bd79105 >> + then: >> + properties: >> + interrupts: true > > It's been a while since I wrote one of these, but do we need > the true bit given we have already specified the interrupts > property. I think we only need to do the setting to false > on an if: not: I think you're right. I just used same approach that had already been used throughout this binding. I'll try dropping the 'true'-branches, but then also the other 'true'-branches should be dropped from the binding. I'll just do that and send v4. Let's see what Rob/Krzk/Conor have to say :) Yours, -- Matti
© 2016 - 2025 Red Hat, Inc.