On Mon, 12 Oct 2020 16:02:30 +0200 Tomas Novotny <tomas@xxxxxxxxxx> wrote: > Hi Jonathan, > > On Sun, 11 Oct 2020 18:07:40 +0100 > Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > > > 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@xxxxxxxxxx> > > Cc: Tomas Novotny <tomas@xxxxxxxxxx> > > --- > > .../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@xxxxxxxxxx> > > + > > +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>; > > + }; > > + }; > > +...