Re: [PATCH 3/3] dt-bindings: hwmon: max31790: Add pwmout-pin-as-tach-input property

From: Chanh Nguyen
Date: Mon Mar 18 2024 - 05:55:11 EST




On 12/03/2024 00:52, Guenter Roeck wrote:
On 3/11/24 10:34, Rob Herring wrote:
On Mon, Mar 11, 2024 at 06:13:47PM +0700, Chanh Nguyen wrote:
Add pwmout-pin-as-tach-input property.

Signed-off-by: Chanh Nguyen <chanh@xxxxxxxxxxxxxxxxxxxxxx>
---
  Documentation/devicetree/bindings/hwmon/max31790.yaml | 11 +++++++++++
  1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/hwmon/max31790.yaml b/Documentation/devicetree/bindings/hwmon/max31790.yaml
index 5a93e6bdebda..447cac17053a 100644
--- a/Documentation/devicetree/bindings/hwmon/max31790.yaml
+++ b/Documentation/devicetree/bindings/hwmon/max31790.yaml
@@ -25,6 +25,16 @@ properties:
    reg:
      maxItems: 1
+  pwmout-pin-as-tach-input:
+    description: |
+      An array of six integers responds to six PWM channels for
+      configuring the pwm to tach mode.
+      When set to 0, the associated PWMOUT produces a PWM waveform for
+      control of fan speed. When set to 1, PWMOUT becomes a TACH input
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    maxItems: 6
+    minItems: 6

Seems incomplete. For example, fan tachs have different number of
pulses per revolution, don't you need to know that too?


Per Documentation/ABI/testing/sysfs-class-hwmon:

What:           /sys/class/hwmon/hwmonX/fanY_pulses
Description:
                Number of tachometer pulses per fan revolution.

                Integer value, typically between 1 and 4.

                RW

                This value is a characteristic of the fan connected to the
                device's input, so it has to be set in accordance with the fan
                model.

                Should only be created if the chip has a register to configure
                the number of pulses. In the absence of such a register (and
                thus attribute) the value assumed by all devices is 2 pulses
                per fan revolution.

We only expect the property (and attribute) to exist if the controller
supports it.

Guenter


Hi Guenter and Rob,
Most general-purpose brushless DC fans produce two tachometer pulses per revolution. My fan devices also produce two tachometer pulses per revolution.

In max31790.c, I saw the formula that is used to calculate TACH Count Registers, which defines the pulses per revolution as 2

#define RPM_TO_REG(rpm, sr) ((60 * (sr) * 8192) / ((rpm) * 2))

Do you think we should support the pulses-per-revolution property in this case?