Re: [PATCH 2/3] dt-bindings: hwmon: g76x: Add support for g761

From: Christian Marangi
Date: Sat May 25 2024 - 10:57:21 EST


On Sat, May 25, 2024 at 07:53:57AM -0700, Guenter Roeck wrote:
> On 5/25/24 03:50, Christian Marangi wrote:
> > On Sat, May 25, 2024 at 07:32:04AM -0700, Guenter Roeck wrote:
> > > On 5/25/24 03:29, Christian Marangi wrote:
> > > > Add support for g761 PWM Fan controller. This is an exact copy of g763
> > > > with the difference that it does also support an internal clock
> > > > oscillators.
> > > >
> > > > Add required logic to support this additional feature with the property
> > > > gmt,internal-clock and reject invalid schema that define both
> > > > internal-clock property and external clocks.
> > > >
> > > > Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>
> > > > ---
> > > > .../devicetree/bindings/hwmon/gmt,g76x.yaml | 43 +++++++++++++++++--
> > > > 1 file changed, 40 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/hwmon/gmt,g76x.yaml b/Documentation/devicetree/bindings/hwmon/gmt,g76x.yaml
> > > > index bfefe49f54bf..d6e80392d045 100644
> > > > --- a/Documentation/devicetree/bindings/hwmon/gmt,g76x.yaml
> > > > +++ b/Documentation/devicetree/bindings/hwmon/gmt,g76x.yaml
> > > > @@ -4,13 +4,13 @@
> > > > $id: http://devicetree.org/schemas/hwmon/gmt,g76x.yaml#
> > > > $schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > -title: GMT G762/G763 PWM Fan controller
> > > > +title: GMT G761/G762/G763 PWM Fan controller
> > > > maintainers:
> > > > - Christian Marangi <ansuelsmth@xxxxxxxxx>
> > > > description: |
> > > > - GMT G762/G763 PWM Fan controller.
> > > > + GMT G761/G762/G763 PWM Fan controller.
> > > > If an optional property is not set in DT, then current value is kept
> > > > unmodified (e.g. bootloader installed value).
> > > > @@ -22,6 +22,7 @@ description: |
> > > > properties:
> > > > compatible:
> > > > enum:
> > > > + - gmt,g761
> > > > - gmt,g762
> > > > - gmt,g763
> > > > @@ -48,10 +49,37 @@ properties:
> > > > $ref: /schemas/types.yaml#/definitions/uint32
> > > > enum: [0, 1, 2]
> > > > + gmt,internal-clock:
> > > > + description: Use the Internal clock instead of externally attached one
> > > > + via the CLK pin.
> > > > + type: boolean
> > > > +
> > > > required:
> > > > - compatible
> > > > - reg
> > > > - - clocks
> > > > +
> > > > +allOf:
> > > > + - if:
> > > > + properties:
> > > > + compatible:
> > > > + contains:
> > > > + enum:
> > > > + - gmt,g762
> > > > + - gmt,g763
> > > > + then:
> > > > + properties:
> > > > + gmt,internal-clock: false
> > > > +
> > > > + required:
> > > > + - clocks
> > >
> > > Is the new property even necessary ? The absence of an external clock on G761
> > > could be used to imply that the internal clock is used.
> > >
> >
> > Well with how the driver works, if a property is not defined, then the
> > value is not set and the one set by the bootloader or from device reset
> > is keept.
> >
> > This conflicts with the logic of no clock = internal.
> >
>
> Not sure I understand the problem. It would be a simple change in the driver
> to add "if the chip is G761 and the clock is not provided in DT, use the
> internal clock".
>

Yes sure code wise is pretty easy, my concern is more of losing this
info in DT. But anyway ok will drop in V2. Thanks a lot for the review!

--
Ansuel