[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260211214017.GA3930589-robh@kernel.org>
Date: Wed, 11 Feb 2026 15:40:17 -0600
From: Rob Herring <robh@...nel.org>
To: Tomer Maimon <tmaimon77@...il.com>
Cc: andrew@...econstruct.com.au, avifishman70@...il.com,
tali.perry1@...il.com, linux@...ck-us.net, krzk+dt@...nel.org,
conor+dt@...nel.org, venture@...gle.com, yuenn@...gle.com,
benjaminfair@...gle.com, openbmc@...ts.ozlabs.org,
linux-hwmon@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] dt-bindings: hwmon: convert npcm750-pwm-fan to DT
schema
On Tue, Feb 10, 2026 at 05:41:17PM +0200, Tomer Maimon wrote:
> Convert the Nuvoton HWMON PWM and FAN controllers binding to schema
> format.
>
> Signed-off-by: Tomer Maimon <tmaimon77@...il.com>
> ---
> .../bindings/hwmon/npcm750-pwm-fan.txt | 88 ------------
> .../bindings/hwmon/npcm750-pwm-fan.yaml | 132 ++++++++++++++++++
> 2 files changed, 132 insertions(+), 88 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/hwmon/npcm750-pwm-fan.txt
> create mode 100644 Documentation/devicetree/bindings/hwmon/npcm750-pwm-fan.yaml
> diff --git a/Documentation/devicetree/bindings/hwmon/npcm750-pwm-fan.yaml b/Documentation/devicetree/bindings/hwmon/npcm750-pwm-fan.yaml
> new file mode 100644
> index 000000000000..954ba7d38b93
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/npcm750-pwm-fan.yaml
nuvoton,npcm750-pwm-fan.yaml for filename.
> @@ -0,0 +1,132 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/npcm750-pwm-fan.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Nuvoton NPCM7xx/NPCM8xx PWM and Fan Tach Controller
> +
> +maintainers:
> + - Tomer Maimon <tmaimon77@...il.com>
> +
> +description: |
Don't need '|'.
> + The NPCM7xx/NPCM8xx family includes a PWM and Fan Tachometer controller.
> + The controller provides up to 8 (NPCM7xx) or 12 (NPCM8xx) PWM channels and up
> + to 16 tachometer inputs. It is used for fan speed control and monitoring.
> +
> +properties:
> + compatible:
> + enum:
> + - nuvoton,npcm750-pwm-fan
> + - nuvoton,npcm845-pwm-fan
> +
> + reg:
> + maxItems: 2
> + description: Register addresses for PWM and Fan Tach units.
> +
> + reg-names:
> + items:
> + - const: pwm
> + - const: fan
> +
> + clocks:
> + maxItems: 2
> + description: Clocks for the PWM and Fan Tach modules.
> +
> + clock-names:
> + items:
> + - const: pwm
> + - const: fan
> +
> + interrupts:
> + description: |
> + Contains the Fan interrupts with flags for falling edge.
> + For NPCM7XX, 8 interrupt lines are expected (one per PWM channel).
> + For NPCM8XX, 12 interrupt lines are expected (one per PWM channel).
Blank line between paragraphs. Or remove '|' and re-wrap at 80. Same
problem elsewhere...
> + minItems: 8
> + maxItems: 12
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> +patternProperties:
> + "^fan@[0-9a-f]+$":
> + type: object
> + $ref: fan-common.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + reg:
> + maxItems: 1
> + description: |
> + Specify the PWM output channel. Integer value in the range 0-7 for
> + NPCM7XX or 0-11 for NPCM8XX, representing the PWM channel number.
items:
items:
maximum: 11
> +
> + fan-tach-ch:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
This is defined as 8-bit.
> + description: |
> + The tach channel(s) used for the fan.
> + Integer values in the range 0-15.
items:
maximum: 15
> +
> + cooling-levels:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
already has a type. Drop.
> + description: |
> + PWM duty cycle values in a range from 0 to 255 which
> + correspond to thermal cooling states. This property enables
> + thermal zone integration for automatic fan speed control
> + based on temperature.
items:
maximum: 255
> +
> + required:
> + - reg
> + - fan-tach-ch
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - clocks
> + - clock-names
> + - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + pwm_fan: pwm-fan@...000 {
> + compatible = "nuvoton,npcm750-pwm-fan";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + reg = <0x103000 0x2000>, <0x180000 0x8000>;
> + reg-names = "pwm", "fan";
> +
> + clocks = <&clk NPCM7XX_CLK_APB3>, <&clk NPCM7XX_CLK_APB4>;
> + clock-names = "pwm", "fan";
> +
> + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwm0_pins &fanin0_pins>;
> +
> + fan@0 {
> + reg = <0>;
> + fan-tach-ch = <0 1>;
> + cooling-levels = <64 128 192 255>;
> + };
> +
> + fan@1 {
> + reg = <1>;
> + fan-tach-ch = <2>;
> + };
> + };
> --
> 2.34.1
>
Powered by blists - more mailing lists