Message ID | 224e73b57101aa744244bd396a700d5365eb72ec.1643299570.git.sylv@sylv.io (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add max6639 regulator and devicetree support | expand |
On Thu, Jan 27, 2022 at 05:17:29PM +0100, Marcello Sylvester Bauer wrote: > Add Devicetree binding documentation for Maxim MAX6639 temperature > monitor with PWM fan-speed controller. > > The devicetree documentation for the SD3078 device tree. > > Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io> lgtm, but we'll have to wait for dt review. Guenter > --- > .../bindings/hwmon/maxim,max6639.yaml | 112 ++++++++++++++++++ > 1 file changed, 112 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > new file mode 100644 > index 000000000000..570e9fe07503 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Maxim max6639 > + > +maintainers: > + - Roland Stigge <stigge@antcom.de> > + > +description: | > + The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM > + fan-speed controller. It monitors its own temperature and one external > + diode-connected transistor or the temperatures of two external diode-connected > + transistors, typically available in CPUs, FPGAs, or GPUs. > + > + Datasheets: > + https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf > + > +properties: > + compatible: > + enum: > + - maxim,max6639 > + > + reg: > + maxItems: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > +required: > + - compatible > + - reg > + - "channel@0" > + - "channel@1" > + > +additionalProperties: false > + > +patternProperties: > + "^channel@[0-1]$": > + type: object > + description: | > + Represents the two fans and their specific configuration. > + > + properties: > + reg: > + description: | > + The fan number. > + items: > + minimum: 0 > + maximum: 1 > + > + pwm-polarity: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1] > + default: 1 > + description: > + PWM output is low at 100% duty cycle when this bit is set to zero. PWM > + output is high at 100% duty cycle when this bit is set to 1. > + > + pulses-per-revolution: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 3, 4] > + default: 2 > + description: > + Value specifying the number of pulses per revolution of the controlled > + FAN. > + > + rpm-max: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [2000, 4000, 8000, 16000] > + default: 4000 > + description: > + Scales the tachometer counter by setting the maximum (full-scale) value > + of the RPM range. > + > + required: > + - reg > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + max6639@10 { > + compatible = "maxim,max6639"; > + reg = <0x10>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + channel@0 { > + reg = <0x0>; > + pwm-polarity = <1>; > + pulses-per-revolution = <2>; > + rpm-range = <4000>; > + }; > + > + channel@1 { > + reg = <0x1>; > + pwm-polarity = <1>; > + pulses-per-revolution = <2>; > + rpm-range = <4000>; > + }; > + }; > + }; > +...
On Thu, Jan 27, 2022 at 05:17:29PM +0100, Marcello Sylvester Bauer wrote: > Add Devicetree binding documentation for Maxim MAX6639 temperature > monitor with PWM fan-speed controller. > > The devicetree documentation for the SD3078 device tree. > > Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io> > --- > .../bindings/hwmon/maxim,max6639.yaml | 112 ++++++++++++++++++ > 1 file changed, 112 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > new file mode 100644 > index 000000000000..570e9fe07503 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Maxim max6639 > + > +maintainers: > + - Roland Stigge <stigge@antcom.de> > + > +description: | > + The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM > + fan-speed controller. It monitors its own temperature and one external > + diode-connected transistor or the temperatures of two external diode-connected > + transistors, typically available in CPUs, FPGAs, or GPUs. > + > + Datasheets: > + https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf > + > +properties: > + compatible: > + enum: > + - maxim,max6639 > + > + reg: > + maxItems: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > +required: > + - compatible > + - reg > + - "channel@0" > + - "channel@1" > + > +additionalProperties: false > + > +patternProperties: > + "^channel@[0-1]$": fan@... > + type: object > + description: | > + Represents the two fans and their specific configuration. > + > + properties: > + reg: > + description: | > + The fan number. > + items: > + minimum: 0 > + maximum: 1 > + > + pwm-polarity: See PWM_POLARITY_INVERTED > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1] > + default: 1 > + description: > + PWM output is low at 100% duty cycle when this bit is set to zero. PWM > + output is high at 100% duty cycle when this bit is set to 1. > + > + pulses-per-revolution: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 3, 4] > + default: 2 > + description: > + Value specifying the number of pulses per revolution of the controlled > + FAN. > + > + rpm-max: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [2000, 4000, 8000, 16000] > + default: 4000 > + description: > + Scales the tachometer counter by setting the maximum (full-scale) value > + of the RPM range. Why do you need to know the max? I don't recall needing this for other fan controller bindings. All this needs to be pulled out to a common schema fan that is referenced. > + > + required: > + - reg This should all be in a common fan schema that can be re > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + max6639@10 { > + compatible = "maxim,max6639"; > + reg = <0x10>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + channel@0 { > + reg = <0x0>; > + pwm-polarity = <1>; > + pulses-per-revolution = <2>; > + rpm-range = <4000>; > + }; > + > + channel@1 { > + reg = <0x1>; > + pwm-polarity = <1>; > + pulses-per-revolution = <2>; > + rpm-range = <4000>; > + }; > + }; > + }; > +... > -- > 2.34.1 > >
On Fri, 2022-02-04 at 17:32 -0600, Rob Herring wrote: > On Thu, Jan 27, 2022 at 05:17:29PM +0100, Marcello Sylvester Bauer > wrote: > > Add Devicetree binding documentation for Maxim MAX6639 temperature > > monitor with PWM fan-speed controller. > > > > The devicetree documentation for the SD3078 device tree. > > > > Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io> > > --- > > .../bindings/hwmon/maxim,max6639.yaml | 112 > > ++++++++++++++++++ > > 1 file changed, 112 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > new file mode 100644 > > index 000000000000..570e9fe07503 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml > > @@ -0,0 +1,112 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > + > > +$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Maxim max6639 > > + > > +maintainers: > > + - Roland Stigge <stigge@antcom.de> > > + > > +description: | > > + The MAX6639 is a 2-channel temperature monitor with dual, > > automatic, PWM > > + fan-speed controller. It monitors its own temperature and one > > external > > + diode-connected transistor or the temperatures of two external > > diode-connected > > + transistors, typically available in CPUs, FPGAs, or GPUs. > > + > > + Datasheets: > > + > > https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf > > + > > +properties: > > + compatible: > > + enum: > > + - maxim,max6639 > > + > > + reg: > > + maxItems: 1 > > + > > + '#address-cells': > > + const: 1 > > + > > + '#size-cells': > > + const: 0 > > + > > +required: > > + - compatible > > + - reg > > + - "channel@0" > > + - "channel@1" > > + > > +additionalProperties: false > > + > > +patternProperties: > > + "^channel@[0-1]$": > > fan@... Makes sense. Looks like i have to adapt the driver code too. > > > + type: object > > + description: | > > + Represents the two fans and their specific configuration. > > + > > + properties: > > + reg: > > + description: | > > + The fan number. > > + items: > > + minimum: 0 > > + maximum: 1 > > + > > + pwm-polarity: > > See PWM_POLARITY_INVERTED > Indeed, Thanks. > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [0, 1] > > + default: 1 > > + description: > > + PWM output is low at 100% duty cycle when this bit is > > set to zero. PWM > > + output is high at 100% duty cycle when this bit is set > > to 1. > > + > > + pulses-per-revolution: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [1, 2, 3, 4] > > + default: 2 > > + description: > > + Value specifying the number of pulses per revolution of > > the controlled > > + FAN. > > + > > + rpm-max: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [2000, 4000, 8000, 16000] > > + default: 4000 > > + description: > > + Scales the tachometer counter by setting the maximum > > (full-scale) value > > + of the RPM range. > > Why do you need to know the max? I don't recall needing this for > other > fan controller bindings. This information is required for setting the internal clock of the tachometer. (See: page 8 table 3). However, we could make it a vendor specific property. In this case i would rather call it "maxim,rpm- range", since this is how it is referred to. Or is there a better how to define this information inside dt? > > All this needs to be pulled out to a common schema fan that is > referenced. Ack thanks, Marcello > > > + > > + required: > > + - reg > > This should all be in a common fan schema that can be re > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + max6639@10 { > > + compatible = "maxim,max6639"; > > + reg = <0x10>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + channel@0 { > > + reg = <0x0>; > > + pwm-polarity = <1>; > > + pulses-per-revolution = <2>; > > + rpm-range = <4000>; > > + }; > > + > > + channel@1 { > > + reg = <0x1>; > > + pwm-polarity = <1>; > > + pulses-per-revolution = <2>; > > + rpm-range = <4000>; > > + }; > > + }; > > + }; > > +... > > -- > > 2.34.1 > > > >
On 2/7/22 02:03, sylv wrote: > On Fri, 2022-02-04 at 17:32 -0600, Rob Herring wrote: >> On Thu, Jan 27, 2022 at 05:17:29PM +0100, Marcello Sylvester Bauer >> wrote: >>> Add Devicetree binding documentation for Maxim MAX6639 temperature >>> monitor with PWM fan-speed controller. >>> >>> The devicetree documentation for the SD3078 device tree. >>> >>> Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io> >>> --- >>> .../bindings/hwmon/maxim,max6639.yaml | 112 >>> ++++++++++++++++++ >>> 1 file changed, 112 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml >>> >>> diff --git >>> a/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml >>> b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml >>> new file mode 100644 >>> index 000000000000..570e9fe07503 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml >>> @@ -0,0 +1,112 @@ >>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> + >>> +$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Maxim max6639 >>> + >>> +maintainers: >>> + - Roland Stigge <stigge@antcom.de> >>> + >>> +description: | >>> + The MAX6639 is a 2-channel temperature monitor with dual, >>> automatic, PWM >>> + fan-speed controller. It monitors its own temperature and one >>> external >>> + diode-connected transistor or the temperatures of two external >>> diode-connected >>> + transistors, typically available in CPUs, FPGAs, or GPUs. >>> + >>> + Datasheets: >>> + >>> https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf >>> + >>> +properties: >>> + compatible: >>> + enum: >>> + - maxim,max6639 >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + '#address-cells': >>> + const: 1 >>> + >>> + '#size-cells': >>> + const: 0 >>> + >>> +required: >>> + - compatible >>> + - reg >>> + - "channel@0" >>> + - "channel@1" >>> + >>> +additionalProperties: false >>> + >>> +patternProperties: >>> + "^channel@[0-1]$": >> >> fan@... > > Makes sense. Looks like i have to adapt the driver code too. > >> >>> + type: object >>> + description: | >>> + Represents the two fans and their specific configuration. >>> + >>> + properties: >>> + reg: >>> + description: | >>> + The fan number. >>> + items: >>> + minimum: 0 >>> + maximum: 1 >>> + >>> + pwm-polarity: >> >> See PWM_POLARITY_INVERTED >> > > Indeed, Thanks. > >> >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + enum: [0, 1] >>> + default: 1 >>> + description: >>> + PWM output is low at 100% duty cycle when this bit is >>> set to zero. PWM >>> + output is high at 100% duty cycle when this bit is set >>> to 1. >>> + >>> + pulses-per-revolution: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + enum: [1, 2, 3, 4] >>> + default: 2 >>> + description: >>> + Value specifying the number of pulses per revolution of >>> the controlled >>> + FAN. >>> + >>> + rpm-max: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + enum: [2000, 4000, 8000, 16000] >>> + default: 4000 >>> + description: >>> + Scales the tachometer counter by setting the maximum >>> (full-scale) value >>> + of the RPM range. >> >> Why do you need to know the max? I don't recall needing this for >> other >> fan controller bindings. > > This information is required for setting the internal clock of the > tachometer. (See: page 8 table 3). However, we could make it a vendor > specific property. In this case i would rather call it "maxim,rpm- > range", since this is how it is referred to. > The maximum fan speed is a common property of fan controllers. Exceeding the configured value would typically generate an alarm. The same applies to minimum fan speed. As an example, ADT7470 supports both minimum and maximum fan speed and generates an alarm if the fan speed is too low and if it is too high. At some point we will need properties for both the minimum and for the maximum fan speed. Seems to me we might as well define it now. Guenter
diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml new file mode 100644 index 000000000000..570e9fe07503 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml @@ -0,0 +1,112 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- + +$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Maxim max6639 + +maintainers: + - Roland Stigge <stigge@antcom.de> + +description: | + The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM + fan-speed controller. It monitors its own temperature and one external + diode-connected transistor or the temperatures of two external diode-connected + transistors, typically available in CPUs, FPGAs, or GPUs. + + Datasheets: + https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf + +properties: + compatible: + enum: + - maxim,max6639 + + reg: + maxItems: 1 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +required: + - compatible + - reg + - "channel@0" + - "channel@1" + +additionalProperties: false + +patternProperties: + "^channel@[0-1]$": + type: object + description: | + Represents the two fans and their specific configuration. + + properties: + reg: + description: | + The fan number. + items: + minimum: 0 + maximum: 1 + + pwm-polarity: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + default: 1 + description: + PWM output is low at 100% duty cycle when this bit is set to zero. PWM + output is high at 100% duty cycle when this bit is set to 1. + + pulses-per-revolution: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2, 3, 4] + default: 2 + description: + Value specifying the number of pulses per revolution of the controlled + FAN. + + rpm-max: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [2000, 4000, 8000, 16000] + default: 4000 + description: + Scales the tachometer counter by setting the maximum (full-scale) value + of the RPM range. + + required: + - reg + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + max6639@10 { + compatible = "maxim,max6639"; + reg = <0x10>; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0x0>; + pwm-polarity = <1>; + pulses-per-revolution = <2>; + rpm-range = <4000>; + }; + + channel@1 { + reg = <0x1>; + pwm-polarity = <1>; + pulses-per-revolution = <2>; + rpm-range = <4000>; + }; + }; + }; +...
Add Devicetree binding documentation for Maxim MAX6639 temperature monitor with PWM fan-speed controller. The devicetree documentation for the SD3078 device tree. Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io> --- .../bindings/hwmon/maxim,max6639.yaml | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwmon/maxim,max6639.yaml