blob: 4e5abf7580cc66862f017ca5f86fc6b9bbd2e1a5 [file] [log] [blame]
# 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 = <&reg_fan>;
interrupt-parent = <&gpio5>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
pulses-per-revolution = <2>;
};