[PATCH 1/2] dt-bindings: hwmon: Add Nuvoton NCT7362Y binding

From: Zev Weiss
Date: Wed Jun 07 2023 - 06:19:02 EST


This binding describes the NCT7362Y, a 16-channel fan/GPIO controller.

Signed-off-by: Zev Weiss <zev@xxxxxxxxxxxxxxxxx>
---
.../bindings/hwmon/nuvoton,nct7362.yaml | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct7362.yaml

diff --git a/Documentation/devicetree/bindings/hwmon/nuvoton,nct7362.yaml b/Documentation/devicetree/bindings/hwmon/nuvoton,nct7362.yaml
new file mode 100644
index 000000000000..630dcce7a14c
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/nuvoton,nct7362.yaml
@@ -0,0 +1,123 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/nuvoton,nct7362.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton NCT7362Y fan controller
+
+maintainers:
+ - Zev Weiss <zev@xxxxxxxxxxxxxxxxx>
+
+description: |
+ The Nuvoton NCT7362Y is an I2C fan controller with 16 pins that can
+ be independently configured for PWM, fan tach, or GPIO
+ functionality. Each pin's functionality is represented by a child
+ node.
+
+ The datasheet is not publicly available but can be requested from
+ Nuvoton via their web site.
+
+properties:
+ compatible:
+ enum:
+ - nuvoton,nct7362
+
+ reg:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ gpio-controller: true
+
+ "#gpio-cells":
+ const: 2
+
+ gpio-line-names:
+ minItems: 1
+ maxItems: 16
+
+patternProperties:
+ "^tach@([1-8]|1[0-7])$":
+ type: object
+ properties:
+ reg:
+ maxItems: 1
+ description: The pin number.
+
+ nuvoton,pulses-per-revolution:
+ description: |
+ The number of tach pulses per revolution of the fan.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 1
+ default: 2
+
+ required:
+ - reg
+
+ "^pwm@([1-8]|1[0-7])$":
+ type: object
+ properties:
+ reg:
+ maxItems: 1
+ description: The pin number.
+ required:
+ - reg
+
+ "^gpio@([1-8]|1[0-7])$":
+ type: object
+ properties:
+ reg:
+ maxItems: 1
+ description: The pin number.
+ required:
+ - reg
+
+required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ fanctl@22 {
+ compatible = "nuvoton,nct7362";
+ gpio-controller;
+ #gpio-cells = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x22>;
+ gpio-line-names = "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "led1", "led2";
+
+ tach@1 {
+ reg = <1>;
+ };
+ tach@2 {
+ reg = <2>;
+ nuvoton,pulses-per-revolution = <1>;
+ };
+ pwm@10 {
+ reg = <10>;
+ };
+ pwm@11 {
+ reg = <11>;
+ };
+ gpio@16 {
+ reg = <16>;
+ };
+ gpio@17 {
+ reg = <17>;
+ };
+ };
+ };
--
2.40.0.5.gf6e3b97ba6d2.dirty