Re: [PATCH v2 16/29] dt-bindings:iio:dac:ti,dac082s085 yaml conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 14 Mar 2021 19:07:54 +0000
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:

> On Sun, 8 Nov 2020 16:34:51 +0000
> Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> 
> > On Mon, 2 Nov 2020 20:21:08 -0600
> > Rob Herring <robh@xxxxxxxxxx> wrote:
> >   
> > > On Sat, Oct 31, 2020 at 01:40:57PM +0000, Jonathan Cameron wrote:    
> > > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > > > 
> > > > Fairly simple conversion with the exception of the XOR between
> > > > spi-cpha and spi-cpol.
> > > > 
> > > > Is there a better way to specify that?
> > > > 
> > > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > > > Cc: Lukas Wunner <lukas@xxxxxxxxx>
> > > > ---
> > > > v2:
> > > > * Family typo
> > > > * Put back the reference regulator in example.
> > > > * Added checking of XOR of spi-cpha and spi-cpol
> > > >   (dropped Rob Herrings Reviewed-by due to this change)
> > > >   
> > > >  .../bindings/iio/dac/ti,dac082s085.yaml       | 79 +++++++++++++++++++
> > > >  .../bindings/iio/dac/ti-dac082s085.txt        | 34 --------
> > > >  2 files changed, 79 insertions(+), 34 deletions(-)
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/iio/dac/ti,dac082s085.yaml b/Documentation/devicetree/bindings/iio/dac/ti,dac082s085.yaml
> > > > new file mode 100644
> > > > index 000000000000..192b314c99d1
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/iio/dac/ti,dac082s085.yaml
> > > > @@ -0,0 +1,79 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/iio/dac/ti,dac082s085.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Texas Instruments DAC082s085 and similar DACs
> > > > +
> > > > +description:
> > > > +  A family of Texas Instruments 8/10/12-bit 2/4-channel DACs
> > > > +
> > > > +maintainers:
> > > > +  - Lukas Wunner <lukas@xxxxxxxxx>
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +    enum:
> > > > +      - ti,dac082s085
> > > > +      - ti,dac102s085
> > > > +      - ti,dac122s085
> > > > +      - ti,dac084s085
> > > > +      - ti,dac104s085
> > > > +      - ti,dac124s085
> > > > +
> > > > +  reg:
> > > > +    maxItems: 1
> > > > +
> > > > +  spi-cpha: true
> > > > +  spi-cpol:
> > > > +    description:
> > > > +      Should be either spi-cpha, or spi-cpol but not both.
> > > > +
> > > > +  vref-supply:
> > > > +    description: Needed to provide output scaling.
> > > > +
> > > > +  spi-max-frequency: true
> > > > +
> > > > +required:
> > > > +  - compatible
> > > > +  - reg
> > > > +  - vref-supply
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +allOf:
> > > > +  - $ref: '#/definitions/cpolXORcpha'
> > > > +
> > > > +definitions:
> > > > +  cpolXORcpha:      
> > > 
> > > No need for a definition. Just put the below in the allOf entry.    
> > 
> > I can't figure out the syntax to do that.
> > If I put it directly there I get, 
> > 
> > ... iio/dac/ti,dac082s085.yaml: allOf:0: 'not' is not one of ['$ref', 'if', 'then', 'else']
> > 
> > The use of $ref was the only way I could find to get around this.
> > What other option is there?  My Yaml is still largely cut and paste
> > based so not sure I fully understand the restrictions that are applied.  
> 
> Hi Rob,
> 
> I've had another go at playing with the syntax but still can't find a way around the above
> issue if I try to get rid of the definitions block as you suggest.
> 
> Any pointers on the syntax very much appreciated!

Little more digging.  So that restriction is coming from base.yaml

Not sure if the following 'fix' is fine though.. :)

diff --git a/meta-schemas/base.yaml b/meta-schemas/base.yaml
index a63e1ec18b2a..6d38ed1be3d2 100644
--- a/meta-schemas/base.yaml
+++ b/meta-schemas/base.yaml
@@ -39,6 +39,7 @@ properties:
           - if
           - then
           - else
+          - not
   anyOf: true
   oneOf: true
   definitions: true

> 
> Thanks
> 
> Jonathan
> 
> > 
> > Thanks,
> > 
> > Jonathan
> > 
> > 
> >   
> > >     
> > > > +    not:
> > > > +      required: [spi-cpha, spi-cpol]
> > > > +    oneOf:
> > > > +      - required:
> > > > +          - spi-cpha
> > > > +      - required:
> > > > +          - spi-cpol
> > > > +
> > > > +examples:
> > > > +  - |
> > > > +    vref_2v5_reg: regulator-vref {
> > > > +        compatible = "regulator-fixed";
> > > > +        regulator-name = "2v5";
> > > > +        regulator-min-microvolt = <2500000>;
> > > > +        regulator-max-microvolt = <2500000>;
> > > > +        regulator-always-on;
> > > > +    };
> > > > +    spi {
> > > > +        #address-cells = <1>;
> > > > +        #size-cells = <0>;
> > > > +
> > > > +        dac@0 {
> > > > +            compatible = "ti,dac082s085";
> > > > +            reg = <0>;
> > > > +            spi-max-frequency = <40000000>;
> > > > +            spi-cpol;
> > > > +            vref-supply = <&vref_2v5_reg>;
> > > > +        };
> > > > +    };
> > > > +...
> > > > diff --git a/Documentation/devicetree/bindings/iio/dac/ti-dac082s085.txt b/Documentation/devicetree/bindings/iio/dac/ti-dac082s085.txt
> > > > deleted file mode 100644
> > > > index 9cb0e10df704..000000000000
> > > > --- a/Documentation/devicetree/bindings/iio/dac/ti-dac082s085.txt
> > > > +++ /dev/null
> > > > @@ -1,34 +0,0 @@
> > > > -Texas Instruments 8/10/12-bit 2/4-channel DAC driver
> > > > -
> > > > -Required properties:
> > > > - - compatible:		Must be one of:
> > > > -			"ti,dac082s085"
> > > > -			"ti,dac102s085"
> > > > -			"ti,dac122s085"
> > > > -			"ti,dac084s085"
> > > > -			"ti,dac104s085"
> > > > -			"ti,dac124s085"
> > > > - - reg: 		Chip select number.
> > > > - - spi-cpha, spi-cpol:	SPI mode (0,1) or (1,0) must be used, so specify
> > > > -			either spi-cpha or spi-cpol (but not both).
> > > > - - vref-supply: 	Phandle to the external reference voltage supply.
> > > > -
> > > > -For other required and optional properties of SPI slave nodes please refer to
> > > > -../../spi/spi-bus.txt.
> > > > -
> > > > -Example:
> > > > -	vref_2v5_reg: regulator-vref {
> > > > -		compatible = "regulator-fixed";
> > > > -		regulator-name = "2v5";
> > > > -		regulator-min-microvolt = <2500000>;
> > > > -		regulator-max-microvolt = <2500000>;
> > > > -		regulator-always-on;
> > > > -	};
> > > > -
> > > > -	dac@0 {
> > > > -		compatible = "ti,dac082s085";
> > > > -		reg = <0>;
> > > > -		spi-max-frequency = <40000000>;
> > > > -		spi-cpol;
> > > > -		vref-supply = <&vref_2v5_reg>;
> > > > -	};
> > > > -- 
> > > > 2.28.0
> > > >       
> >   
> 




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux