# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/hwmon/pwm-fan.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Fan connected to PWM lines maintainers: - Jean Delvare <jdelvare@suse.com> - Guenter Roeck <linux@roeck-us.net> properties: compatible: const: pwm-fan cooling-levels: description: PWM duty cycle values corresponding to thermal cooling states. $ref: /schemas/types.yaml#/definitions/uint32-array items: maximum: 255 fan-supply: description: Phandle to the regulator that provides power to the fan. interrupts: description: This contains an interrupt specifier for each fan tachometer output connected to an interrupt source. The output signal must generate a defined number of interrupts per fan revolution, which require that it must be self resetting edge interrupts. maxItems: 1 pulses-per-revolution: description: Define the number of pulses per fan revolution for each tachometer input as an integer. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 1 maximum: 4 default: 2 pwms: description: The PWM that is used to control the fan. maxItems: 1 "#cooling-cells": true required: - compatible - pwms additionalProperties: false examples: - | pwm-fan { compatible = "pwm-fan"; cooling-levels = <0 102 170 230>; pwms = <&pwm 0 10000 0>; #cooling-cells = <2>; }; thermal-zones { cpu_thermal: cpu-thermal { thermal-sensors = <&tmu 0>; polling-delay-passive = <0>; polling-delay = <0>; trips { cpu_alert1: cpu-alert1 { temperature = <100000>; /* millicelsius */ hysteresis = <2000>; /* millicelsius */ type = "passive"; }; }; cooling-maps { map0 { trip = <&cpu_alert1>; cooling-device = <&fan0 0 1>; }; }; }; }; - | #include <dt-bindings/interrupt-controller/irq.h> pwm-fan { compatible = "pwm-fan"; pwms = <&pwm 0 40000 0>; fan-supply = <®_fan>; interrupt-parent = <&gpio5>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>; pulses-per-revolution = <2>; };