98 lines
2.3 KiB
YAML
98 lines
2.3 KiB
YAML
|
# 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>;
|
||
|
};
|