diff mbox series

[20/29] dt-bindings:iio:dac:microchip,mcp4725 yaml conversion

Message ID 20201011170749.243680-21-jic23@kernel.org (mailing list archive)
State New
Headers show
Series dt-bindings:iio: Another set of yaml conversions. | expand

Commit Message

Jonathan Cameron Oct. 11, 2020, 5:07 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

I'm not sure vdd-supply absolutely has to be provided if vref-supply
is, but as the previous binding docs stated it was required it seems
reasonable to leave it as such.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc:  Tomas Novotny <tomas@novotny.cz>
---
 .../devicetree/bindings/iio/dac/mcp4725.txt   | 35 ---------
 .../bindings/iio/dac/microchip,mcp4725.yaml   | 71 +++++++++++++++++++
 2 files changed, 71 insertions(+), 35 deletions(-)

Comments

Tomas Novotny Oct. 12, 2020, 2:02 p.m. UTC | #1
Hi Jonathan,

On Sun, 11 Oct 2020 18:07:40 +0100
Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> I'm not sure vdd-supply absolutely has to be provided if vref-supply
> is, but as the previous binding docs stated it was required it seems
> reasonable to leave it as such.

Good catch. Vdd is useless on MCP4726 if Vref is specified. The driver
requires Vdd...

How to proceed there?

Thanks,

Tomas

> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc:  Tomas Novotny <tomas@novotny.cz>
> ---
>  .../devicetree/bindings/iio/dac/mcp4725.txt   | 35 ---------
>  .../bindings/iio/dac/microchip,mcp4725.yaml   | 71 +++++++++++++++++++
>  2 files changed, 71 insertions(+), 35 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt b/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> deleted file mode 100644
> index 1bc6c093fbfe..000000000000
> --- a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -Microchip mcp4725 and mcp4726 DAC device driver
> -
> -Required properties:
> -	- compatible: Must be "microchip,mcp4725" or "microchip,mcp4726"
> -	- reg: Should contain the DAC I2C address
> -	- vdd-supply: Phandle to the Vdd power supply. This supply is used as a
> -	  voltage reference on mcp4725. It is used as a voltage reference on
> -	  mcp4726 if there is no vref-supply specified.
> -
> -Optional properties (valid only for mcp4726):
> -	- vref-supply: Optional phandle to the Vref power supply. Vref pin is
> -	  used as a voltage reference when this supply is specified.
> -	- microchip,vref-buffered: Boolean to enable buffering of the external
> -	  Vref pin. This boolean is not valid without the vref-supply. Quoting
> -	  the datasheet: This is offered in cases where the reference voltage
> -	  does not have the current capability not to drop its voltage when
> -	  connected to the internal resistor ladder circuit.
> -
> -Examples:
> -
> -	/* simple mcp4725 */
> -	mcp4725@60 {
> -		compatible = "microchip,mcp4725";
> -		reg = <0x60>;
> -		vdd-supply = <&vdac_vdd>;
> -	};
> -
> -	/* mcp4726 with the buffered external reference voltage */
> -	mcp4726@60 {
> -		compatible = "microchip,mcp4726";
> -		reg = <0x60>;
> -		vdd-supply = <&vdac_vdd>;
> -		vref-supply = <&vdac_vref>;
> -		microchip,vref-buffered;
> -	};
> diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> new file mode 100644
> index 000000000000..271998610ceb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> @@ -0,0 +1,71 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4725.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip mcp4725 and mcp4726 DAC
> +
> +maintainers:
> +  - Tomas Novotny <tomas@novotny.cz>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - microchip,mcp4725
> +      - microchip,mcp4726
> +
> +  reg:
> +    maxItems: 1
> +
> +  vdd-supply:
> +    description: |
> +      Provides both power and acts as the reference supply on the mcp4725.
> +      For the mcp4726 it will be used as the reference voltage if vref-supply
> +      is not provided.
> +
> +  vref-supply:
> +    description:
> +      Vref pin is used as a voltage reference when this supply is specified.
> +
> +  microchip,vref-buffered:
> +    type: boolean
> +    description: |
> +      Enable buffering of the external Vref pin. This boolean is not valid
> +      without the vref-supply. Quoting the datasheet: This is offered in
> +      cases where the reference voltage does not have the current
> +      capability not to drop its voltage when connected to the internal
> +      resistor ladder circuit.
> +
> +allOf:
> +  - if:
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              const: microchip,mcp4726
> +    then:
> +      properties:
> +        vref-supply: false
> +        microchip,vref-buffered: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - vdd-supply
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        mcp4725@60 {
> +            compatible = "microchip,mcp4725";
> +            reg = <0x60>;
> +            vdd-supply = <&vdac_vdd>;
> +        };
> +    };
> +...
Jonathan Cameron Oct. 12, 2020, 2:39 p.m. UTC | #2
On Mon, 12 Oct 2020 16:02:30 +0200
Tomas Novotny <tomas@novotny.cz> wrote:

> Hi Jonathan,
> 
> On Sun, 11 Oct 2020 18:07:40 +0100
> Jonathan Cameron <jic23@kernel.org> wrote:
> 
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > 
> > I'm not sure vdd-supply absolutely has to be provided if vref-supply
> > is, but as the previous binding docs stated it was required it seems
> > reasonable to leave it as such.  
> 
> Good catch. Vdd is useless on MCP4726 if Vref is specified. The driver
> requires Vdd...

The driver will get the regulator but as it's not via an optional
call it the regulator core will provide a stub regulator.
If the ref regulator is present, all that will happen with vdd is
a regulator_enable() call which is fine with a stub regulator (it's
a noop).   So we should be good to update the binding to specify
the requirement.   Perhaps it's one to do as a follow up patch?
Given any existing DT must be providing that regulator, there is
no rush for us to fix it :)

> 
> How to proceed there?
> 
> Thanks,
> 
> Tomas
> 
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > Cc:  Tomas Novotny <tomas@novotny.cz>
> > ---
> >  .../devicetree/bindings/iio/dac/mcp4725.txt   | 35 ---------
> >  .../bindings/iio/dac/microchip,mcp4725.yaml   | 71 +++++++++++++++++++
> >  2 files changed, 71 insertions(+), 35 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt b/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> > deleted file mode 100644
> > index 1bc6c093fbfe..000000000000
> > --- a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> > +++ /dev/null
> > @@ -1,35 +0,0 @@
> > -Microchip mcp4725 and mcp4726 DAC device driver
> > -
> > -Required properties:
> > -	- compatible: Must be "microchip,mcp4725" or "microchip,mcp4726"
> > -	- reg: Should contain the DAC I2C address
> > -	- vdd-supply: Phandle to the Vdd power supply. This supply is used as a
> > -	  voltage reference on mcp4725. It is used as a voltage reference on
> > -	  mcp4726 if there is no vref-supply specified.
> > -
> > -Optional properties (valid only for mcp4726):
> > -	- vref-supply: Optional phandle to the Vref power supply. Vref pin is
> > -	  used as a voltage reference when this supply is specified.
> > -	- microchip,vref-buffered: Boolean to enable buffering of the external
> > -	  Vref pin. This boolean is not valid without the vref-supply. Quoting
> > -	  the datasheet: This is offered in cases where the reference voltage
> > -	  does not have the current capability not to drop its voltage when
> > -	  connected to the internal resistor ladder circuit.
> > -
> > -Examples:
> > -
> > -	/* simple mcp4725 */
> > -	mcp4725@60 {
> > -		compatible = "microchip,mcp4725";
> > -		reg = <0x60>;
> > -		vdd-supply = <&vdac_vdd>;
> > -	};
> > -
> > -	/* mcp4726 with the buffered external reference voltage */
> > -	mcp4726@60 {
> > -		compatible = "microchip,mcp4726";
> > -		reg = <0x60>;
> > -		vdd-supply = <&vdac_vdd>;
> > -		vref-supply = <&vdac_vref>;
> > -		microchip,vref-buffered;
> > -	};
> > diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> > new file mode 100644
> > index 000000000000..271998610ceb
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> > @@ -0,0 +1,71 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4725.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Microchip mcp4725 and mcp4726 DAC
> > +
> > +maintainers:
> > +  - Tomas Novotny <tomas@novotny.cz>
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - microchip,mcp4725
> > +      - microchip,mcp4726
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  vdd-supply:
> > +    description: |
> > +      Provides both power and acts as the reference supply on the mcp4725.
> > +      For the mcp4726 it will be used as the reference voltage if vref-supply
> > +      is not provided.
> > +
> > +  vref-supply:
> > +    description:
> > +      Vref pin is used as a voltage reference when this supply is specified.
> > +
> > +  microchip,vref-buffered:
> > +    type: boolean
> > +    description: |
> > +      Enable buffering of the external Vref pin. This boolean is not valid
> > +      without the vref-supply. Quoting the datasheet: This is offered in
> > +      cases where the reference voltage does not have the current
> > +      capability not to drop its voltage when connected to the internal
> > +      resistor ladder circuit.
> > +
> > +allOf:
> > +  - if:
> > +      not:
> > +        properties:
> > +          compatible:
> > +            contains:
> > +              const: microchip,mcp4726
> > +    then:
> > +      properties:
> > +        vref-supply: false
> > +        microchip,vref-buffered: false
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - vdd-supply
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        mcp4725@60 {
> > +            compatible = "microchip,mcp4725";
> > +            reg = <0x60>;
> > +            vdd-supply = <&vdac_vdd>;
> > +        };
> > +    };
> > +...
Tomas Novotny Oct. 14, 2020, 8:57 a.m. UTC | #3
Hi Jonathan,

On Mon, 12 Oct 2020 15:39:23 +0100
Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:

> On Mon, 12 Oct 2020 16:02:30 +0200
> Tomas Novotny <tomas@novotny.cz> wrote:
> 
> > Hi Jonathan,
> > 
> > On Sun, 11 Oct 2020 18:07:40 +0100
> > Jonathan Cameron <jic23@kernel.org> wrote:
> >   
> > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > 
> > > I'm not sure vdd-supply absolutely has to be provided if vref-supply
> > > is, but as the previous binding docs stated it was required it seems
> > > reasonable to leave it as such.    
> > 
> > Good catch. Vdd is useless on MCP4726 if Vref is specified. The driver
> > requires Vdd...  
> 
> The driver will get the regulator but as it's not via an optional
> call it the regulator core will provide a stub regulator.
> If the ref regulator is present, all that will happen with vdd is
> a regulator_enable() call which is fine with a stub regulator (it's
> a noop).   So we should be good to update the binding to specify
> the requirement.   Perhaps it's one to do as a follow up patch?
> Given any existing DT must be providing that regulator, there is
> no rush for us to fix it :)

ok, I see, I will handle with a follow up patch when this will be merged.
Thanks,

Tomas

> > How to proceed there?
> > 
> > Thanks,
> > 
> > Tomas
> >   
> > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > Cc:  Tomas Novotny <tomas@novotny.cz>
> > > ---
> > >  .../devicetree/bindings/iio/dac/mcp4725.txt   | 35 ---------
> > >  .../bindings/iio/dac/microchip,mcp4725.yaml   | 71 +++++++++++++++++++
> > >  2 files changed, 71 insertions(+), 35 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt b/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> > > deleted file mode 100644
> > > index 1bc6c093fbfe..000000000000
> > > --- a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
> > > +++ /dev/null
> > > @@ -1,35 +0,0 @@
> > > -Microchip mcp4725 and mcp4726 DAC device driver
> > > -
> > > -Required properties:
> > > -	- compatible: Must be "microchip,mcp4725" or "microchip,mcp4726"
> > > -	- reg: Should contain the DAC I2C address
> > > -	- vdd-supply: Phandle to the Vdd power supply. This supply is used as a
> > > -	  voltage reference on mcp4725. It is used as a voltage reference on
> > > -	  mcp4726 if there is no vref-supply specified.
> > > -
> > > -Optional properties (valid only for mcp4726):
> > > -	- vref-supply: Optional phandle to the Vref power supply. Vref pin is
> > > -	  used as a voltage reference when this supply is specified.
> > > -	- microchip,vref-buffered: Boolean to enable buffering of the external
> > > -	  Vref pin. This boolean is not valid without the vref-supply. Quoting
> > > -	  the datasheet: This is offered in cases where the reference voltage
> > > -	  does not have the current capability not to drop its voltage when
> > > -	  connected to the internal resistor ladder circuit.
> > > -
> > > -Examples:
> > > -
> > > -	/* simple mcp4725 */
> > > -	mcp4725@60 {
> > > -		compatible = "microchip,mcp4725";
> > > -		reg = <0x60>;
> > > -		vdd-supply = <&vdac_vdd>;
> > > -	};
> > > -
> > > -	/* mcp4726 with the buffered external reference voltage */
> > > -	mcp4726@60 {
> > > -		compatible = "microchip,mcp4726";
> > > -		reg = <0x60>;
> > > -		vdd-supply = <&vdac_vdd>;
> > > -		vref-supply = <&vdac_vref>;
> > > -		microchip,vref-buffered;
> > > -	};
> > > diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> > > new file mode 100644
> > > index 000000000000..271998610ceb
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
> > > @@ -0,0 +1,71 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4725.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Microchip mcp4725 and mcp4726 DAC
> > > +
> > > +maintainers:
> > > +  - Tomas Novotny <tomas@novotny.cz>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - microchip,mcp4725
> > > +      - microchip,mcp4726
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  vdd-supply:
> > > +    description: |
> > > +      Provides both power and acts as the reference supply on the mcp4725.
> > > +      For the mcp4726 it will be used as the reference voltage if vref-supply
> > > +      is not provided.
> > > +
> > > +  vref-supply:
> > > +    description:
> > > +      Vref pin is used as a voltage reference when this supply is specified.
> > > +
> > > +  microchip,vref-buffered:
> > > +    type: boolean
> > > +    description: |
> > > +      Enable buffering of the external Vref pin. This boolean is not valid
> > > +      without the vref-supply. Quoting the datasheet: This is offered in
> > > +      cases where the reference voltage does not have the current
> > > +      capability not to drop its voltage when connected to the internal
> > > +      resistor ladder circuit.
> > > +
> > > +allOf:
> > > +  - if:
> > > +      not:
> > > +        properties:
> > > +          compatible:
> > > +            contains:
> > > +              const: microchip,mcp4726
> > > +    then:
> > > +      properties:
> > > +        vref-supply: false
> > > +        microchip,vref-buffered: false
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - vdd-supply
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    i2c {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        mcp4725@60 {
> > > +            compatible = "microchip,mcp4725";
> > > +            reg = <0x60>;
> > > +            vdd-supply = <&vdac_vdd>;
> > > +        };
> > > +    };
> > > +...    
> 
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt b/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
deleted file mode 100644
index 1bc6c093fbfe..000000000000
--- a/Documentation/devicetree/bindings/iio/dac/mcp4725.txt
+++ /dev/null
@@ -1,35 +0,0 @@ 
-Microchip mcp4725 and mcp4726 DAC device driver
-
-Required properties:
-	- compatible: Must be "microchip,mcp4725" or "microchip,mcp4726"
-	- reg: Should contain the DAC I2C address
-	- vdd-supply: Phandle to the Vdd power supply. This supply is used as a
-	  voltage reference on mcp4725. It is used as a voltage reference on
-	  mcp4726 if there is no vref-supply specified.
-
-Optional properties (valid only for mcp4726):
-	- vref-supply: Optional phandle to the Vref power supply. Vref pin is
-	  used as a voltage reference when this supply is specified.
-	- microchip,vref-buffered: Boolean to enable buffering of the external
-	  Vref pin. This boolean is not valid without the vref-supply. Quoting
-	  the datasheet: This is offered in cases where the reference voltage
-	  does not have the current capability not to drop its voltage when
-	  connected to the internal resistor ladder circuit.
-
-Examples:
-
-	/* simple mcp4725 */
-	mcp4725@60 {
-		compatible = "microchip,mcp4725";
-		reg = <0x60>;
-		vdd-supply = <&vdac_vdd>;
-	};
-
-	/* mcp4726 with the buffered external reference voltage */
-	mcp4726@60 {
-		compatible = "microchip,mcp4726";
-		reg = <0x60>;
-		vdd-supply = <&vdac_vdd>;
-		vref-supply = <&vdac_vref>;
-		microchip,vref-buffered;
-	};
diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
new file mode 100644
index 000000000000..271998610ceb
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4725.yaml
@@ -0,0 +1,71 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4725.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip mcp4725 and mcp4726 DAC
+
+maintainers:
+  - Tomas Novotny <tomas@novotny.cz>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mcp4725
+      - microchip,mcp4726
+
+  reg:
+    maxItems: 1
+
+  vdd-supply:
+    description: |
+      Provides both power and acts as the reference supply on the mcp4725.
+      For the mcp4726 it will be used as the reference voltage if vref-supply
+      is not provided.
+
+  vref-supply:
+    description:
+      Vref pin is used as a voltage reference when this supply is specified.
+
+  microchip,vref-buffered:
+    type: boolean
+    description: |
+      Enable buffering of the external Vref pin. This boolean is not valid
+      without the vref-supply. Quoting the datasheet: This is offered in
+      cases where the reference voltage does not have the current
+      capability not to drop its voltage when connected to the internal
+      resistor ladder circuit.
+
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: microchip,mcp4726
+    then:
+      properties:
+        vref-supply: false
+        microchip,vref-buffered: false
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        mcp4725@60 {
+            compatible = "microchip,mcp4725";
+            reg = <0x60>;
+            vdd-supply = <&vdac_vdd>;
+        };
+    };
+...