Add a device tree bindings for max31790 device.
Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com>
---
.../devicetree/bindings/hwmon/max31790.yaml | 44 +++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 Documentation/devicetree/bindings/hwmon/max31790.yaml
diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
new file mode 100644
index 000000000000..5a93e6bdebda
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/max31790.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: The Maxim MAX31790 Fan Controller
+
+maintainers:
+ - Jean Delvare <jdelvare@suse.com>
+ - Guenter Roeck <linux@roeck-us.net>
+
+description: >
+ The MAX31790 controls the speeds of up to six fans using six
+ independent PWM outputs. The desired fan speeds (or PWM duty cycles)
+ are written through the I2C interface.
+
+ Datasheets:
+ https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
+
+properties:
+ compatible:
+ const: maxim,max31790
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ max31790@20 {
+ compatible = "maxim,max31790";
+ reg = <0x20>;
+ };
+ };
--
2.17.1
On 11/03/2024 12:13, Chanh Nguyen wrote:
> Add a device tree bindings for max31790 device.
Subject: drop "driver", bindings are about hardware.
It does not look like you tested the bindings, at least after quick
look. Please run `make dt_binding_check` (see
Documentation/devicetree/bindings/writing-schema.rst for instructions).
Maybe you need to update your dtschema and yamllint.
>
> Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com>
> ---
> .../devicetree/bindings/hwmon/max31790.yaml | 44 +++++++++++++++++++
> 1 file changed, 44 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/hwmon/max31790.yaml
>
> diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
> new file mode 100644
> index 000000000000..5a93e6bdebda
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
Filename like compatible.
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/max31790.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: The Maxim MAX31790 Fan Controller
> +
> +maintainers:
> + - Jean Delvare <jdelvare@suse.com>
> + - Guenter Roeck <linux@roeck-us.net>
You should have here someone responsible for hardware, not subsystem
maintainers.
> +
> +description: >
> + The MAX31790 controls the speeds of up to six fans using six
> + independent PWM outputs. The desired fan speeds (or PWM duty cycles)
> + are written through the I2C interface.
> +
> + Datasheets:
> + https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
> +
> +properties:
> + compatible:
> + const: maxim,max31790
> +
> + reg:
> + maxItems: 1
That's weirdly empty.
> +
> +required:
> + - compatible
> + - reg
> +
You miss allOf: with $ref to fan controller schema.
> +additionalProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + max31790@20 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
Best regards,
Krzysztof
On 11/03/2024 23:55, Krzysztof Kozlowski wrote:
> On 11/03/2024 12:13, Chanh Nguyen wrote:
>> Add a device tree bindings for max31790 device.
>
> Subject: drop "driver", bindings are about hardware.
>
Yes, I'll drop "driver" at v2 updating.
> It does not look like you tested the bindings, at least after quick
> look. Please run `make dt_binding_check` (see
> Documentation/devicetree/bindings/writing-schema.rst for instructions).
> Maybe you need to update your dtschema and yamllint.
>
I tested the binding, I didn't see any warning/error log. Please review
my logs as below
=> make dt_binding_check DT_SCHEMA_FILES=/hwmon/max31790.yaml
make[1]: Entering directory '/DISK4T/work/community/linux/out'
DTEX Documentation/devicetree/bindings/hwmon/max31790.example.dts
DTC_CHK Documentation/devicetree/bindings/hwmon/max31790.example.dtb
make[1]: Leaving directory '/DISK4T/work/community/linux/out'
>>
>> Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com>
>> ---
>> .../devicetree/bindings/hwmon/max31790.yaml | 44 +++++++++++++++++++
>> 1 file changed, 44 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/hwmon/max31790.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>> new file mode 100644
>> index 000000000000..5a93e6bdebda
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>
> Filename like compatible.
Yes, I'll update that in v2
>
>> @@ -0,0 +1,44 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/hwmon/max31790.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: The Maxim MAX31790 Fan Controller
>> +
>> +maintainers:
>> + - Jean Delvare <jdelvare@suse.com>
>> + - Guenter Roeck <linux@roeck-us.net>
>
> You should have here someone responsible for hardware, not subsystem
> maintainers.
>
Hi Krzysztof,
I checked the history of the drivers/hwmon/max31790.c and see Guenter
Roeck <linux@roeck-us.net> as an important maintainer. I saw many
commits from him. So, I add him to maintainer list.
>> +
>> +description: >
>> + The MAX31790 controls the speeds of up to six fans using six
>> + independent PWM outputs. The desired fan speeds (or PWM duty cycles)
>> + are written through the I2C interface.
>> +
>> + Datasheets:
>> + https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
>> +
>> +properties:
>> + compatible:
>> + const: maxim,max31790
>> +
>> + reg:
>> + maxItems: 1
>
> That's weirdly empty.
>
Hi Krzysztof,
I have not yet understood your comment here. Please help give more
details for my missing! Thank Krzysztof!
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>
> You miss allOf: with $ref to fan controller schema.
>
Thank Krzysztof,
I'll add the allOf at v2.
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + max31790@20 {
>
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
I suggest some node names, such as "i2c-fan" or "fan-controller" . Can
you please share your ideas with me!
>
> Best regards,
> Krzysztof
>
On 18/03/2024 10:51, Chanh Nguyen wrote:
>
>> It does not look like you tested the bindings, at least after quick
>> look. Please run `make dt_binding_check` (see
>> Documentation/devicetree/bindings/writing-schema.rst for instructions).
>> Maybe you need to update your dtschema and yamllint.
>>
>
>
> I tested the binding, I didn't see any warning/error log. Please review
> my logs as below
Hm, I don't remember what brought my attention to possible error. Maybe
I mistyped my template.
>
> => make dt_binding_check DT_SCHEMA_FILES=/hwmon/max31790.yaml
> make[1]: Entering directory '/DISK4T/work/community/linux/out'
> DTEX Documentation/devicetree/bindings/hwmon/max31790.example.dts
> DTC_CHK Documentation/devicetree/bindings/hwmon/max31790.example.dtb
> make[1]: Leaving directory '/DISK4T/work/community/linux/out'
>
>>>
>>> Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com>
>>> ---
>>> .../devicetree/bindings/hwmon/max31790.yaml | 44 +++++++++++++++++++
>>> 1 file changed, 44 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/hwmon/max31790.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>>> new file mode 100644
>>> index 000000000000..5a93e6bdebda
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>>
>> Filename like compatible.
>
> Yes, I'll update that in v2
>
>>
>>> @@ -0,0 +1,44 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/hwmon/max31790.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: The Maxim MAX31790 Fan Controller
>>> +
>>> +maintainers:
>>> + - Jean Delvare <jdelvare@suse.com>
>>> + - Guenter Roeck <linux@roeck-us.net>
>>
>> You should have here someone responsible for hardware, not subsystem
>> maintainers.
>>
>
> Hi Krzysztof,
> I checked the history of the drivers/hwmon/max31790.c and see Guenter
> Roeck <linux@roeck-us.net> as an important maintainer. I saw many
> commits from him. So, I add him to maintainer list.
OK
>
>>> +
>>> +description: >
>>> + The MAX31790 controls the speeds of up to six fans using six
>>> + independent PWM outputs. The desired fan speeds (or PWM duty cycles)
>>> + are written through the I2C interface.
>>> +
>>> + Datasheets:
>>> + https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
>>> +
>>> +properties:
>>> + compatible:
>>> + const: maxim,max31790
>>> +
>>> + reg:
>>> + maxItems: 1
>>
>> That's weirdly empty.
>>
>
> Hi Krzysztof,
> I have not yet understood your comment here. Please help give more
> details for my missing! Thank Krzysztof!
I expect many more properties of a fan controller. Resources (clocks,
PWMs, supplies) and FAN specific properties.
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> +
>>
>> You miss allOf: with $ref to fan controller schema.
>>
>
> Thank Krzysztof,
> I'll add the allOf at v2.
>
>>> +additionalProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + i2c {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> +
>>> + max31790@20 {
>>
>> Node names should be generic. See also an explanation and list of
>> examples (not exhaustive) in DT specification:
>> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>>
>
> I suggest some node names, such as "i2c-fan" or "fan-controller" . Can
> you please share your ideas with me!
Look at recent commits and patches for similar type of a device.
Best regards,
Krzysztof
On 18/03/2024 17:00, Krzysztof Kozlowski wrote:
> On 18/03/2024 10:51, Chanh Nguyen wrote:
>>
>>> It does not look like you tested the bindings, at least after quick
>>> look. Please run `make dt_binding_check` (see
>>> Documentation/devicetree/bindings/writing-schema.rst for instructions).
>>> Maybe you need to update your dtschema and yamllint.
>>>
>>
>>
>> I tested the binding, I didn't see any warning/error log. Please review
>> my logs as below
>
> Hm, I don't remember what brought my attention to possible error. Maybe
> I mistyped my template.
>
>>
>> => make dt_binding_check DT_SCHEMA_FILES=/hwmon/max31790.yaml
>> make[1]: Entering directory '/DISK4T/work/community/linux/out'
>> DTEX Documentation/devicetree/bindings/hwmon/max31790.example.dts
>> DTC_CHK Documentation/devicetree/bindings/hwmon/max31790.example.dtb
>> make[1]: Leaving directory '/DISK4T/work/community/linux/out'
>>
>>>>
>>>> Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com>
>>>> ---
>>>> .../devicetree/bindings/hwmon/max31790.yaml | 44 +++++++++++++++++++
>>>> 1 file changed, 44 insertions(+)
>>>> create mode 100644 Documentation/devicetree/bindings/hwmon/max31790.yaml
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>>>> new file mode 100644
>>>> index 000000000000..5a93e6bdebda
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
>>>
>>> Filename like compatible.
>>
>> Yes, I'll update that in v2
>>
>>>
>>>> @@ -0,0 +1,44 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/hwmon/max31790.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: The Maxim MAX31790 Fan Controller
>>>> +
>>>> +maintainers:
>>>> + - Jean Delvare <jdelvare@suse.com>
>>>> + - Guenter Roeck <linux@roeck-us.net>
>>>
>>> You should have here someone responsible for hardware, not subsystem
>>> maintainers.
>>>
>>
>> Hi Krzysztof,
>> I checked the history of the drivers/hwmon/max31790.c and see Guenter
>> Roeck <linux@roeck-us.net> as an important maintainer. I saw many
>> commits from him. So, I add him to maintainer list.
>
> OK
>
>>
>>>> +
>>>> +description: >
>>>> + The MAX31790 controls the speeds of up to six fans using six
>>>> + independent PWM outputs. The desired fan speeds (or PWM duty cycles)
>>>> + are written through the I2C interface.
>>>> +
>>>> + Datasheets:
>>>> + https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
>>>> +
>>>> +properties:
>>>> + compatible:
>>>> + const: maxim,max31790
>>>> +
>>>> + reg:
>>>> + maxItems: 1
>>>
>>> That's weirdly empty.
>>>
>>
>> Hi Krzysztof,
>> I have not yet understood your comment here. Please help give more
>> details for my missing! Thank Krzysztof!
>
> I expect many more properties of a fan controller. Resources (clocks,
> PWMs, supplies) and FAN specific properties.
>
Hi Krzysztof,
I'm creating a base binding document for the max31790 driver. I'm basing
it on the drivers/hwmon/max31790.c. Currently, the max31790.c driver has
not yet implemented other properties, such as clocks, fan-supply, pwms,
etc. So I just introduced the "compatible" and "reg" properties.
In the near future, if any other properties are necessary, I think we
will implement them in drivers/hwmon/max31790.c then update this binding
document.
I look at other binding documents, I also see something similar. They
just introduce the "compatible" and "reg" properties.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/hwmon/adi,max31760.yaml
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/hwmon/adt7475.yaml
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/hwmon/adi,ad741x.yaml
This is only my view. It's a pleasure to hear your advice. Thanks!
>
>>>> +
>>>> +required:
>>>> + - compatible
>>>> + - reg
>>>> +
>>>
>>> You miss allOf: with $ref to fan controller schema.
>>>
>>
>> Thank Krzysztof,
>> I'll add the allOf at v2.
>>
>>>> +additionalProperties: false
>>>> +
>>>> +examples:
>>>> + - |
>>>> + i2c {
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + max31790@20 {
>>>
>>> Node names should be generic. See also an explanation and list of
>>> examples (not exhaustive) in DT specification:
>>> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>>>
>>
>> I suggest some node names, such as "i2c-fan" or "fan-controller" . Can
>> you please share your ideas with me!
>
> Look at recent commits and patches for similar type of a device.
>
Hi Krzysztof,
I checked on recent commits and found something of a similar type.
adi,max31760.yaml
fan-controller@50 {
reg = <0x50>;
compatible = "adi,max31760";
};
hpe,gxp-fan-ctrl.yaml
fan-controller@1000c00 {
compatible = "hpe,gxp-fan-ctrl";
reg = <0x1000c00 0x200>, <0xd1000000 0xff>, <0x80200000 0x100000>;
reg-names = "base", "pl", "fn2";
};
adi,axi-fan-control.yaml
axi_fan_control: axi-fan-control@80000000 {
compatible = "adi,axi-fan-control-1.00.a";
reg = <0x0 0x80000000 0x10000>;
clocks = <&clk 71>;
interrupts = <0 110 0>;
pulses-per-revolution = <2>;
};
I think "fan-controller" is a good node name. Do you think so?
> Best regards,
> Krzysztof
>
On 22/03/2024 10:53, Chanh Nguyen wrote: >>>> >>> >>> Hi Krzysztof, >>> I have not yet understood your comment here. Please help give more >>> details for my missing! Thank Krzysztof! >> >> I expect many more properties of a fan controller. Resources (clocks, >> PWMs, supplies) and FAN specific properties. >> > > Hi Krzysztof, > > I'm creating a base binding document for the max31790 driver. I'm basing > it on the drivers/hwmon/max31790.c. Currently, the max31790.c driver has Binding should be based on device (e.g. its datasheet), not the driver. > not yet implemented other properties, such as clocks, fan-supply, pwms, > etc. So I just introduced the "compatible" and "reg" properties. > > In the near future, if any other properties are necessary, I think we > will implement them in drivers/hwmon/max31790.c then update this binding > document. Please instead read: Documentation/devicetree/bindings/writing-bindings.rst > > I look at other binding documents, I also see something similar. They > just introduce the "compatible" and "reg" properties. > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/hwmon/adi,max31760.yaml Maybe these devices are similar, maybe not. This should not be excuse to come with really incomplete binding. ... > I think "fan-controller" is a good node name. Do you think so? > Yes. Best regards, Krzysztof
On 25/03/2024 15:32, Krzysztof Kozlowski wrote: > On 22/03/2024 10:53, Chanh Nguyen wrote: >>>>> >>>> >>>> Hi Krzysztof, >>>> I have not yet understood your comment here. Please help give more >>>> details for my missing! Thank Krzysztof! >>> >>> I expect many more properties of a fan controller. Resources (clocks, >>> PWMs, supplies) and FAN specific properties. >>> >> >> Hi Krzysztof, >> >> I'm creating a base binding document for the max31790 driver. I'm basing >> it on the drivers/hwmon/max31790.c. Currently, the max31790.c driver has > > Binding should be based on device (e.g. its datasheet), not the driver. > Thank Krzysztof, I'm reading the writing-bindings.rst and I got it for now. I'll make complete binding in patch v2. I am very pleased to hear your comments. >> not yet implemented other properties, such as clocks, fan-supply, pwms, >> etc. So I just introduced the "compatible" and "reg" properties. >> >> In the near future, if any other properties are necessary, I think we >> will implement them in drivers/hwmon/max31790.c then update this binding >> document. > > Please instead read: > Documentation/devicetree/bindings/writing-bindings.rst > >> >> I look at other binding documents, I also see something similar. They >> just introduce the "compatible" and "reg" properties. >> >> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/hwmon/adi,max31760.yaml > > Maybe these devices are similar, maybe not. This should not be excuse to > come with really incomplete binding. > > ... > >> I think "fan-controller" is a good node name. Do you think so? >> > > Yes. > > Best regards, > Krzysztof >
© 2016 - 2026 Red Hat, Inc.