140 lines
3.5 KiB
YAML
140 lines
3.5 KiB
YAML
# 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 <tmaimon77@gmail.com>
|
|
|
|
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 <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
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 = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
|
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>;
|
|
};
|
|
};
|