forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mvebu: puzzle-m902: add driver for MCU driving LEDs, fan and buzzer
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>
- Loading branch information
Showing
11 changed files
with
2,462 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
/* SPDX-License-Identifier: GPL-2.0+ */ | ||
|
||
#ifndef _LINUX_PUZZLE_H_ | ||
#define _LINUX_PUZZLE_H_ | ||
|
||
struct puzzle; | ||
int puzzle_led(struct puzzle *pz, u8 ledn, u8 ledmode); | ||
int puzzle_fan(struct puzzle *pz, u8 speed); | ||
int puzzle_buzzer(struct puzzle *pz, u8 len); | ||
|
||
#endif /* _LINUX_PUZZLE_H_ */ |
218 changes: 218 additions & 0 deletions
218
...t/linux/mvebu/patches-5.10/901-dt-bindings-Add-IEI-vendor-prefix-and-IEI-WT61P803-P.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,218 @@ | ||
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,.*": |
Oops, something went wrong.