mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
f0c0b18234
Backport MFD driver for communicating with the on-board MCU found on IEI World Puzzle appliances. Improve the driver to support multiple LEDs, apply a default state and let MCU take care of blinking if timing is within supported range. Wire up LEDs and fan for Puzzle M902 in device tree. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
219 lines
6.0 KiB
Diff
219 lines
6.0 KiB
Diff
From aa4a0ccc41997f2da172165c92803abace43bd1c Mon Sep 17 00:00:00 2001
|
|
From: Luka Kovacic <luka.kovacic () sartura ! hr>
|
|
Date: Tue, 24 Aug 2021 12:44:32 +0000
|
|
Subject: [PATCH 1/7] dt-bindings: Add IEI vendor prefix and IEI WT61P803
|
|
PUZZLE driver bindings
|
|
|
|
Add the IEI WT61P803 PUZZLE Device Tree bindings for MFD, HWMON and LED
|
|
drivers. A new vendor prefix is also added accordingly for
|
|
IEI Integration Corp.
|
|
|
|
Signed-off-by: Luka Kovacic <luka.kovacic@sartura.hr>
|
|
Signed-off-by: Pavo Banicevic <pavo.banicevic@sartura.hr>
|
|
Cc: Luka Perkov <luka.perkov@sartura.hr>
|
|
Cc: Robert Marko <robert.marko@sartura.hr>
|
|
---
|
|
.../hwmon/iei,wt61p803-puzzle-hwmon.yaml | 53 ++++++++++++
|
|
.../leds/iei,wt61p803-puzzle-leds.yaml | 39 +++++++++
|
|
.../bindings/mfd/iei,wt61p803-puzzle.yaml | 82 +++++++++++++++++++
|
|
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
|
|
4 files changed, 176 insertions(+)
|
|
create mode 100644 Documentation/devicetree/bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml
|
|
create mode 100644 Documentation/devicetree/bindings/leds/iei,wt61p803-puzzle-leds.yaml
|
|
create mode 100644 Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml
|
|
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml
|
|
@@ -0,0 +1,53 @@
|
|
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
+%YAML 1.2
|
|
+---
|
|
+$id: http://devicetree.org/schemas/hwmon/iei,wt61p803-puzzle-hwmon.yaml#
|
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
+
|
|
+title: IEI WT61P803 PUZZLE MCU HWMON module from IEI Integration Corp.
|
|
+
|
|
+maintainers:
|
|
+ - Luka Kovacic <luka.kovacic@sartura.hr>
|
|
+
|
|
+description: |
|
|
+ This module is a part of the IEI WT61P803 PUZZLE MFD device. For more details
|
|
+ see Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml.
|
|
+
|
|
+ The HWMON module is a sub-node of the MCU node in the Device Tree.
|
|
+
|
|
+properties:
|
|
+ compatible:
|
|
+ const: iei,wt61p803-puzzle-hwmon
|
|
+
|
|
+ "#address-cells":
|
|
+ const: 1
|
|
+
|
|
+ "#size-cells":
|
|
+ const: 0
|
|
+
|
|
+patternProperties:
|
|
+ "^fan-group@[0-1]$":
|
|
+ type: object
|
|
+ properties:
|
|
+ reg:
|
|
+ minimum: 0
|
|
+ maximum: 1
|
|
+ description:
|
|
+ Fan group ID
|
|
+
|
|
+ cooling-levels:
|
|
+ minItems: 1
|
|
+ maxItems: 255
|
|
+ description:
|
|
+ Cooling levels for the fans (PWM value mapping)
|
|
+ description: |
|
|
+ Properties for each fan group.
|
|
+ required:
|
|
+ - reg
|
|
+
|
|
+required:
|
|
+ - compatible
|
|
+ - "#address-cells"
|
|
+ - "#size-cells"
|
|
+
|
|
+additionalProperties: false
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/leds/iei,wt61p803-puzzle-leds.yaml
|
|
@@ -0,0 +1,39 @@
|
|
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
+%YAML 1.2
|
|
+---
|
|
+$id: http://devicetree.org/schemas/leds/iei,wt61p803-puzzle-leds.yaml#
|
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
+
|
|
+title: IEI WT61P803 PUZZLE MCU LED module from IEI Integration Corp.
|
|
+
|
|
+maintainers:
|
|
+ - Luka Kovacic <luka.kovacic@sartura.hr>
|
|
+
|
|
+description: |
|
|
+ This module is a part of the IEI WT61P803 PUZZLE MFD device. For more details
|
|
+ see Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml.
|
|
+
|
|
+ The LED module is a sub-node of the MCU node in the Device Tree.
|
|
+
|
|
+properties:
|
|
+ compatible:
|
|
+ const: iei,wt61p803-puzzle-leds
|
|
+
|
|
+ "#address-cells":
|
|
+ const: 1
|
|
+
|
|
+ "#size-cells":
|
|
+ const: 0
|
|
+
|
|
+ led@0:
|
|
+ type: object
|
|
+ $ref: common.yaml
|
|
+ description: |
|
|
+ Properties for a single LED.
|
|
+
|
|
+required:
|
|
+ - compatible
|
|
+ - "#address-cells"
|
|
+ - "#size-cells"
|
|
+
|
|
+additionalProperties: false
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml
|
|
@@ -0,0 +1,82 @@
|
|
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
+%YAML 1.2
|
|
+---
|
|
+$id: http://devicetree.org/schemas/mfd/iei,wt61p803-puzzle.yaml#
|
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
+
|
|
+title: IEI WT61P803 PUZZLE MCU from IEI Integration Corp.
|
|
+
|
|
+maintainers:
|
|
+ - Luka Kovacic <luka.kovacic@sartura.hr>
|
|
+
|
|
+description: |
|
|
+ IEI WT61P803 PUZZLE MCU is embedded in some IEI Puzzle series boards.
|
|
+ It's used for controlling system power states, fans, LEDs and temperature
|
|
+ sensors.
|
|
+
|
|
+ For Device Tree bindings of other sub-modules (HWMON, LEDs) refer to the
|
|
+ binding documents under the respective subsystem directories.
|
|
+
|
|
+properties:
|
|
+ compatible:
|
|
+ const: iei,wt61p803-puzzle
|
|
+
|
|
+ current-speed:
|
|
+ description:
|
|
+ Serial bus speed in bps
|
|
+ maxItems: 1
|
|
+
|
|
+ enable-beep: true
|
|
+
|
|
+ hwmon:
|
|
+ $ref: /schemas/hwmon/iei,wt61p803-puzzle-hwmon.yaml
|
|
+
|
|
+ leds:
|
|
+ $ref: /schemas/leds/iei,wt61p803-puzzle-leds.yaml
|
|
+
|
|
+required:
|
|
+ - compatible
|
|
+ - current-speed
|
|
+
|
|
+additionalProperties: false
|
|
+
|
|
+examples:
|
|
+ - |
|
|
+ #include <dt-bindings/leds/common.h>
|
|
+ serial {
|
|
+ mcu {
|
|
+ compatible = "iei,wt61p803-puzzle";
|
|
+ current-speed = <115200>;
|
|
+ enable-beep;
|
|
+
|
|
+ leds {
|
|
+ compatible = "iei,wt61p803-puzzle-leds";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ led@0 {
|
|
+ reg = <0>;
|
|
+ function = LED_FUNCTION_POWER;
|
|
+ color = <LED_COLOR_ID_BLUE>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ hwmon {
|
|
+ compatible = "iei,wt61p803-puzzle-hwmon";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ fan-group@0 {
|
|
+ #cooling-cells = <2>;
|
|
+ reg = <0x00>;
|
|
+ cooling-levels = <64 102 170 230 250>;
|
|
+ };
|
|
+
|
|
+ fan-group@1 {
|
|
+ #cooling-cells = <2>;
|
|
+ reg = <0x01>;
|
|
+ cooling-levels = <64 102 170 230 250>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
|
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
|
@@ -475,6 +475,8 @@ patternProperties:
|
|
description: IC Plus Corp.
|
|
"^idt,.*":
|
|
description: Integrated Device Technologies, Inc.
|
|
+ "^iei,.*":
|
|
+ description: IEI Integration Corp.
|
|
"^ifi,.*":
|
|
description: Ingenieurburo Fur Ic-Technologie (I/F/I)
|
|
"^ilitek,.*":
|