[PATCH v4 1/3] dt-bindings: hwmon: Add adt7475 fan/pwm properties

From: Chris Packham
Date: Tue May 28 2024 - 18:57:03 EST


Add fan child nodes that allow describing the connections for the
ADT7475 to the fans it controls. This also allows setting some
initial values for the pwm duty cycle and frequency.

Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
---

Notes:
I realise there is still some discussion about how to express the
frequency and duty cycle. I have a personal preference for using hertz
for the frequency and 0-255 for the duty cycle but if the consensus is
to express these things some other way I'm fine with doing some math.

Changes in v4:
- 0 is not a valid frequency value
Changes in v3:
- Use the pwm provider/consumer bindings
Changes in v2:
- Document 0 as a valid value (leaves hardware as-is)

.../devicetree/bindings/hwmon/adt7475.yaml | 25 ++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml b/Documentation/devicetree/bindings/hwmon/adt7475.yaml
index 051c976ab711..bfef4c803bf7 100644
--- a/Documentation/devicetree/bindings/hwmon/adt7475.yaml
+++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml
@@ -51,6 +51,15 @@ properties:
enum: [0, 1]
default: 1

+ "#pwm-cells":
+ const: 4
+ description: |
+ Number of cells in a PWM specifier.
+ - 0: The pwm channel
+ - 1: The pwm frequency in hertz - 11, 14, 22, 29, 35, 44, 58, 88, 22500
+ - 2: PWM flags 0 or PWM_POLARITY_INVERTED
+ - 3: The default pwm duty cycle - 0-255
+
patternProperties:
"^adi,bypass-attenuator-in[0-4]$":
description: |
@@ -81,6 +90,10 @@ patternProperties:
- smbalert#
- gpio

+ "^fan-[0-9]+$":
+ $ref: fan-common.yaml#
+ unevaluatedProperties: false
+
required:
- compatible
- reg
@@ -89,11 +102,12 @@ additionalProperties: false

examples:
- |
+ #include <dt-bindings/pwm/pwm.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;

- hwmon@2e {
+ pwm: hwmon@2e {
compatible = "adi,adt7476";
reg = <0x2e>;
adi,bypass-attenuator-in0 = <1>;
@@ -101,5 +115,14 @@ examples:
adi,pwm-active-state = <1 0 1>;
adi,pin10-function = "smbalert#";
adi,pin14-function = "tach4";
+ #pwm-cells = <4>;
+
+ fan-0 {
+ pwms = <&pwm 0 22500 PWM_POLARITY_INVERTED 255>;
+ };
+
+ fan-1 {
+ pwms = <&pwm 2 22500 PWM_POLARITY_INVERTED 255>;
+ };
};
};
--
2.45.1