[PATCH 1/6] dt-bindings: hwmon: sparx5: add LAN969x fan controller

Conor Dooley conor at kernel.org
Tue Oct 13 09:30:29 PDT 2026


On Tue, Oct 13, 2026 at 02:56:25PM +0200, Robert Marko wrote:
> LAN969x integrates a PWM fan controller with a tachometer input in
> addition to the Sparx5-compatible temperature sensor. Add a LAN969x
> hardware-monitor compatible and describe the second register region.
> 
> Describe the fan as a child node using a two-cell PWM specifier for the
> period and standard polarity flags. The child also carries the optional
> tachometer pulses-per-revolution and thermal cooling properties.
> 
> Keep the existing microchip,lan9691-temp compatible for device tree ABI
> compatibility.
> 
> Signed-off-by: Robert Marko <robert.marko at sartura.hr>
> ---
>  .../bindings/hwmon/microchip,sparx5-temp.yaml | 90 ++++++++++++++++++-
>  1 file changed, 87 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/microchip,sparx5-temp.yaml b/Documentation/devicetree/bindings/hwmon/microchip,sparx5-temp.yaml
> index 611fcadb1e771..e91c2a3ccd3c9 100644
> --- a/Documentation/devicetree/bindings/hwmon/microchip,sparx5-temp.yaml
> +++ b/Documentation/devicetree/bindings/hwmon/microchip,sparx5-temp.yaml
> @@ -4,13 +4,15 @@
>  $id: http://devicetree.org/schemas/hwmon/microchip,sparx5-temp.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>  
> -title: Microchip Sparx5 Temperature Monitor
> +title: Microchip Sparx5 Hardware Monitor
>  
>  maintainers:
>    - Lars Povlsen <lars.povlsen at microchip.com>
>  
>  description: |
> -  Microchip Sparx5 embedded temperature monitor
> +  Microchip Sparx5 temperature monitor with a fan controller on LAN969x.
> +  The fan child's pwms property references this node to specify the
> +  PWM period and polarity.
>  
>  properties:
>    compatible:
> @@ -18,11 +20,19 @@ properties:
>        - const: microchip,sparx5-temp
>        - items:
>            - enum:
> +              - microchip,lan9691-hwmon
>                - microchip,lan9691-temp
>            - const: microchip,sparx5-temp
>  
>    reg:
> -    maxItems: 1
> +    minItems: 1
> +    maxItems: 2
> +
> +  reg-names:
> +    minItems: 1
> +    items:
> +      - const: temp
> +      - const: fan
>  
>    clocks:
>      items:
> @@ -31,11 +41,67 @@ properties:
>    '#thermal-sensor-cells':
>      const: 0
>  
> +  '#pwm-cells':
> +    const: 2
> +    description: |
> +      Number of cells in a PWM specifier.
> +      - cell 0: PWM period in nanoseconds
> +      - cell 1: PWM polarity: 0 or PWM_POLARITY_INVERTED
> +
> +  fan:
> +    $ref: fan-common.yaml#
> +    unevaluatedProperties: false
> +
> +    properties:
> +      cooling-levels:
> +        description:
> +          PWM duty-cycle values corresponding to thermal cooling states.
> +        items:
> +          maximum: 255
> +
> +      pulses-per-revolution:
> +        minimum: 1
> +        maximum: 4
> +        default: 2
> +
> +    required:
> +      - pwms
> +
> +    dependencies:
> +      '#cooling-cells':
> +        - cooling-levels
> +      cooling-levels:
> +        - '#cooling-cells'
> +
>  required:
>    - compatible
>    - reg
>    - clocks
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: microchip,lan9691-hwmon
> +    then:
> +      properties:
> +        reg:
> +          minItems: 2
> +        reg-names:
> +          minItems: 2
> +      required:
> +        - '#pwm-cells'
> +        - reg-names
> +    else:
> +      properties:
> +        '#pwm-cells': false
> +        fan: false
> +        reg:
> +          maxItems: 1
> +        reg-names:
> +          maxItems: 1
> +
>  additionalProperties: false
>  
>  examples:
> @@ -46,3 +112,21 @@ examples:
>          #thermal-sensor-cells = <0>;
>          clocks = <&sys_clk>;
>      };
> +
> +  - |
> +    #include <dt-bindings/pwm/pwm.h>
> +
> +    hwmon: hwmon at e2020100 {
> +        compatible = "microchip,lan9691-hwmon", "microchip,sparx5-temp";
> +        reg = <0xe2020100 0xc>, <0xe2010348 0xc>;

Are these actually the same device? These are somewhat disparate
register regions - and the second is at a very odd offset.

Thanks,
Conor.

> +        reg-names = "temp", "fan";
> +        #pwm-cells = <2>;
> +        #thermal-sensor-cells = <0>;
> +        clocks = <&sys_clk>;
> +
> +        fan {
> +            pwms = <&hwmon 40000 PWM_POLARITY_INVERTED>;
> +            cooling-levels = <0 128 192 255>;
> +            #cooling-cells = <2>;
> +        };
> +    };
> -- 
> 2.56.0
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20261013/4bb00fc4/attachment.sig>


More information about the linux-arm-kernel mailing list