Hello Johnathan, am I allowed to declare the property within the if block like this? # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright 2019-2020 Artur Rojek %YAML 1.2 --- $id: "http://devicetree.org/schemas/iio/adc/ingenic,adc.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: Ingenic JZ47xx ADC controller IIO bindings maintainers: - Artur Rojek <contact@xxxxxxxxxxxxxx> description: > Industrial I/O subsystem bindings for ADC controller found in Ingenic JZ47xx SoCs. ADC clients must use the format described in https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml, giving a phandle and IIO specifier pair ("io-channels") to the ADC controller. properties: compatible: enum: - ingenic,jz4725b-adc - ingenic,jz4740-adc - ingenic,jz4760-adc - ingenic,jz4760b-adc - ingenic,jz4770-adc '#io-channel-cells': const: 1 description: Must be set to <1> to indicate channels are selected by index. reg: maxItems: 1 clocks: maxItems: 1 clock-names: items: - const: adc interrupts: maxItems: 1 allOf: - if: properties: compatible: contains: enum: - ingenic,jz4760b-adc then: properties: ingenic,use-internal-divider: description: If present, battery voltage is read from the VBAT_IR pin, which has an internal 1/4 divider. If absent, it is read through the VBAT_ER pin, which does not have such a divider. type: boolean required: - compatible - '#io-channel-cells' - reg - clocks - clock-names - interrupts additionalProperties: false examples: - | #include <dt-bindings/clock/jz4740-cgu.h> #include <dt-bindings/iio/adc/ingenic,adc.h> adc@10070000 { compatible = "ingenic,jz4740-adc"; #io-channel-cells = <1>; reg = <0x10070000 0x30>; clocks = <&cgu JZ4740_CLK_ADC>; clock-names = "adc"; interrupt-parent = <&intc>; interrupts = <18>; }; On Fri, Jul 23, 2021 at 6:17 PM Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote: > > On Fri, 23 Jul 2021 10:58:13 +0200 > Christophe Branchereau <cbranchereau@xxxxxxxxx> wrote: > > > The jz4760b variant differs slightly from the jz4760, add a property to > > let users sample the internal divider if needed and document it. > > > > Signed-off-by: Christophe Branchereau <cbranchereau@xxxxxxxxx> > > --- > > .../devicetree/bindings/iio/adc/ingenic,adc.yaml | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/iio/adc/ingenic,adc.yaml b/Documentation/devicetree/bindings/iio/adc/ingenic,adc.yaml > > index 433a3fb55a2e..0dc42959a64f 100644 > > --- a/Documentation/devicetree/bindings/iio/adc/ingenic,adc.yaml > > +++ b/Documentation/devicetree/bindings/iio/adc/ingenic,adc.yaml > > @@ -23,6 +23,8 @@ properties: > > enum: > > - ingenic,jz4725b-adc > > - ingenic,jz4740-adc > > + - ingenic,jz4760-adc > > + - ingenic,jz4760b-adc > > - ingenic,jz4770-adc > > > > '#io-channel-cells': > > @@ -43,6 +45,13 @@ properties: > > interrupts: > > maxItems: 1 > > > > + ingenic,use-internal-divider: > > + description: > > + This property can be used to set VBAT_SEL in the JZ4760B CFG register > > + to sample the battery voltage from the internal divider. If absent, it > > + will sample the external divider. > > + type: boolean > > + > See reply to the v1 patch for hint on how to 'enforce' that this > only exists for the jz4760b > > Thanks, > > Jonathan > > > required: > > - compatible > > - '#io-channel-cells' >