# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/hwmon/nuvoton,npcm750-pwm-fan.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Nuvoton NPCM7xx/NPCM8xx PWM and Fan Tach Controller maintainers: - Tomer Maimon description: 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). 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: 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. maximum: 11 fan-tach-ch: $ref: /schemas/types.yaml#/definitions/uint8-array description: The tach channel(s) used for the fan. Integer values in the range 0-15. items: maximum: 15 cooling-levels: 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 #include pwm_fan: pwm-fan@103000 { 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 = , , , , , , , ; 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>; }; };