mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
dt-bindings: hwmon: Convert aspeed,ast2400-pwm-tacho to DT schema
Convert the ASpeed fan controller binding to DT schema format. The '#size-cells' value is 0 rather 1. Some users define more that 8 fan nodes where 2 fans share a PWM. The driver seems to let the 2nd fan just overwrite the 1st one. That also creates some addressing errors in the DT (duplicate addresses and wrong unit-addresses). Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Acked-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> Link: https://lore.kernel.org/r/20260109-dev-dt-warnings-hwmon-v1-1-f2a84cdb0e1b@codeconstruct.com.au Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
c0fa7879c9
commit
75cf411b02
|
|
@ -0,0 +1,106 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/hwmon/aspeed,ast2400-pwm-tacho.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ASPEED AST2400/AST2500 PWM and Fan Tacho controller
|
||||
|
||||
maintainers:
|
||||
- Joel Stanley <joel@jms.id.au>
|
||||
- Andrew Jeffery <andrew@codeconstruct.com.au>
|
||||
|
||||
description: >
|
||||
The ASPEED PWM controller can support up to 8 PWM outputs. The ASPEED Fan
|
||||
Tacho controller can support up to 16 Fan tachometer inputs.
|
||||
|
||||
There can be up to 8 fans supported. Each fan can have 1 PWM output and
|
||||
1-2 Fan tach inputs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- aspeed,ast2400-pwm-tacho
|
||||
- aspeed,ast2500-pwm-tacho
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
'#cooling-cells':
|
||||
const: 2
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
'^fan@[0-7]$':
|
||||
description: Fan subnode
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: PWM source port index (0 = PWM A, ..., 7 = PWM H)
|
||||
maximum: 7
|
||||
|
||||
cooling-levels:
|
||||
description: PWM duty cycle values for cooling states
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
minItems: 1
|
||||
maxItems: 16 # Should be enough
|
||||
|
||||
aspeed,fan-tach-ch:
|
||||
description: Fan tachometer input channel
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
items:
|
||||
maximum: 15
|
||||
|
||||
required:
|
||||
- reg
|
||||
- aspeed,fan-tach-ch
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
- clocks
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/aspeed-clock.h>
|
||||
|
||||
fan-controller@1e786000 {
|
||||
compatible = "aspeed,ast2500-pwm-tacho";
|
||||
reg = <0x1e786000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#cooling-cells = <2>;
|
||||
clocks = <&syscon ASPEED_CLK_APB>;
|
||||
resets = <&syscon ASPEED_RESET_PWM>;
|
||||
|
||||
fan@0 {
|
||||
reg = <0x00>;
|
||||
cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
|
||||
aspeed,fan-tach-ch = /bits/ 8 <0x00>;
|
||||
};
|
||||
|
||||
fan@1 {
|
||||
reg = <0x01>;
|
||||
aspeed,fan-tach-ch = /bits/ 8 <0x01 0x02>;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
ASPEED AST2400/AST2500 PWM and Fan Tacho controller device driver
|
||||
|
||||
The ASPEED PWM controller can support upto 8 PWM outputs. The ASPEED Fan Tacho
|
||||
controller can support upto 16 Fan tachometer inputs.
|
||||
|
||||
There can be upto 8 fans supported. Each fan can have one PWM output and
|
||||
one/two Fan tach inputs.
|
||||
|
||||
Required properties for pwm-tacho node:
|
||||
- #address-cells : should be 1.
|
||||
|
||||
- #size-cells : should be 1.
|
||||
|
||||
- #cooling-cells: should be 2.
|
||||
|
||||
- reg : address and length of the register set for the device.
|
||||
|
||||
- pinctrl-names : a pinctrl state named "default" must be defined.
|
||||
|
||||
- pinctrl-0 : phandle referencing pin configuration of the PWM ports.
|
||||
|
||||
- compatible : should be "aspeed,ast2400-pwm-tacho" for AST2400 and
|
||||
"aspeed,ast2500-pwm-tacho" for AST2500.
|
||||
|
||||
- clocks : phandle to clock provider with the clock number in the second cell
|
||||
|
||||
- resets : phandle to reset controller with the reset number in the second cell
|
||||
|
||||
fan subnode format:
|
||||
===================
|
||||
Under fan subnode there can upto 8 child nodes, with each child node
|
||||
representing a fan. If there are 8 fans each fan can have one PWM port and
|
||||
one/two Fan tach inputs.
|
||||
For PWM port can be configured cooling-levels to create cooling device.
|
||||
Cooling device could be bound to a thermal zone for the thermal control.
|
||||
|
||||
Required properties for each child node:
|
||||
- reg : should specify PWM source port.
|
||||
integer value in the range 0 to 7 with 0 indicating PWM port A and
|
||||
7 indicating PWM port H.
|
||||
|
||||
- cooling-levels: PWM duty cycle values in a range from 0 to 255
|
||||
which correspond to thermal cooling states.
|
||||
|
||||
- aspeed,fan-tach-ch : should specify the Fan tach input channel.
|
||||
integer value in the range 0 through 15, with 0 indicating
|
||||
Fan tach channel 0 and 15 indicating Fan tach channel 15.
|
||||
At least one Fan tach input channel is required.
|
||||
|
||||
Examples:
|
||||
|
||||
pwm_tacho: pwmtachocontroller@1e786000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
#cooling-cells = <2>;
|
||||
reg = <0x1E786000 0x1000>;
|
||||
compatible = "aspeed,ast2500-pwm-tacho";
|
||||
clocks = <&syscon ASPEED_CLK_APB>;
|
||||
resets = <&syscon ASPEED_RESET_PWM>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>;
|
||||
|
||||
fan@0 {
|
||||
reg = <0x00>;
|
||||
cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
|
||||
aspeed,fan-tach-ch = /bits/ 8 <0x00>;
|
||||
};
|
||||
|
||||
fan@1 {
|
||||
reg = <0x01>;
|
||||
aspeed,fan-tach-ch = /bits/ 8 <0x01 0x02>;
|
||||
};
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user