linux/Documentation/devicetree/bindings/hwmon/pwm-fan.yaml
Marek Vasut 80bc64201e dt-bindings: hwmon: pwm-fan: Document start from stopped state properties
Delta AFC0612DB-F00 fan has to be set to at least 30% PWM duty cycle
to spin up from a stopped state, and can be afterward throttled down to
lower PWM duty cycle. Introduce support for operating such fans which
need to start at higher PWM duty cycle first and can slow down next.

Document two new DT properties, "fan-stop-to-start-percent" and
"fan-stop-to-start-usec". The former describes the minimum percent
of fan RPM at which it will surely spin up from stopped state. This
value can be found in the fan datasheet and can be converted to PWM
duty cycle easily. The "fan-stop-to-start-usec" describes the minimum
time in microseconds for which the fan has to be set to stopped state
start RPM for the fan to surely spin up.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Message-ID: <20241106185925.223736-1-marex@denx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2024-11-12 13:54:55 -08:00

107 lines
2.5 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
fan-stop-to-start-percent:
description:
Minimum fan RPM in percent to start when stopped.
minimum: 0
maximum: 100
fan-stop-to-start-us:
description:
Time to wait in microseconds after start when stopped.
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>;
};