mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
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>
107 lines
2.3 KiB
YAML
107 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/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>;
|
|
};
|
|
};
|