aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch')
-rw-r--r--target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch160
1 files changed, 160 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch b/target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch
new file mode 100644
index 0000000000..c69067dbdc
--- /dev/null
+++ b/target/linux/mvebu/patches-5.15/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch
@@ -0,0 +1,160 @@
+From 91dd42d0e30fdbb250c61d1192af569f07e6ada4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
+Date: Sun, 15 Nov 2020 14:59:21 +0100
+Subject: ARM: dts: turris-omnia: add LED controller node
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Linux now has incomplete support for the LED controller on Turris Omnia:
+it can set brightness and colors for each LED.
+
+The controller can also put these LEDs into HW controlled mode, in which
+the LEDs are controlled by HW: for example the WAN LED is connected via
+MCU to the WAN PHY LED pin.
+
+The driver does not support these HW controlled modes yet, and on probe
+puts the LEDs into SW controlled mode.
+
+Add node describing the LED controller, but disable it for now.
+
+Signed-off-by: Marek Behún <kabel@kernel.org>
+Cc: linux-arm-kernel@lists.infradead.org
+Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
+Cc: Jason Cooper <jason@lakedaemon.net>
+Cc: Gregory CLEMENT <gregory.clement@bootlin.com>
+Cc: Andreas Färber <afaerber@suse.de>
+Cc: Rob Herring <robh+dt@kernel.org>
+Cc: devicetree@vger.kernel.org
+Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
+---
+ arch/arm/boot/dts/armada-385-turris-omnia.dts | 111 +++++++++++++++++++++++++-
+ 1 file changed, 110 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
++++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
+@@ -12,6 +12,7 @@
+
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/input/input.h>
++#include <dt-bindings/leds/common.h>
+ #include "armada-385.dtsi"
+
+ / {
+@@ -181,7 +182,115 @@
+ reg = <0>;
+
+ /* STM32F0 command interface at address 0x2a */
+- /* leds device (in STM32F0) at address 0x2b */
++
++ led-controller@2b {
++ compatible = "cznic,turris-omnia-leds";
++ reg = <0x2b>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ /*
++ * LEDs are controlled by MCU (STM32F0) at
++ * address 0x2b.
++ *
++ * The driver does not support HW control mode
++ * for the LEDs yet. Disable the LEDs for now.
++ *
++ * Also LED functions are not stable yet:
++ * - there are 3 LEDs connected via MCU to PCIe
++ * ports. One of these ports supports mSATA.
++ * There is no mSATA nor PCIe function.
++ * For now we use LED_FUNCTION_WLAN, since
++ * in most cases users have wifi cards in
++ * these slots
++ * - there are 2 LEDs dedicated for user: A and
++ * B. Again there is no such function defined.
++ * For now we use LED_FUNCTION_INDICATOR
++ */
++ status = "disabled";
++
++ multi-led@0 {
++ reg = <0x0>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_INDICATOR;
++ function-enumerator = <2>;
++ };
++
++ multi-led@1 {
++ reg = <0x1>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_INDICATOR;
++ function-enumerator = <1>;
++ };
++
++ multi-led@2 {
++ reg = <0x2>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_WLAN;
++ function-enumerator = <3>;
++ };
++
++ multi-led@3 {
++ reg = <0x3>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_WLAN;
++ function-enumerator = <2>;
++ };
++
++ multi-led@4 {
++ reg = <0x4>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_WLAN;
++ function-enumerator = <1>;
++ };
++
++ multi-led@5 {
++ reg = <0x5>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_WAN;
++ };
++
++ multi-led@6 {
++ reg = <0x6>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_LAN;
++ function-enumerator = <4>;
++ };
++
++ multi-led@7 {
++ reg = <0x7>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_LAN;
++ function-enumerator = <3>;
++ };
++
++ multi-led@8 {
++ reg = <0x8>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_LAN;
++ function-enumerator = <2>;
++ };
++
++ multi-led@9 {
++ reg = <0x9>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_LAN;
++ function-enumerator = <1>;
++ };
++
++ multi-led@a {
++ reg = <0xa>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_LAN;
++ function-enumerator = <0>;
++ };
++
++ multi-led@b {
++ reg = <0xb>;
++ color = <LED_COLOR_ID_RGB>;
++ function = LED_FUNCTION_POWER;
++ };
++ };
+
+ eeprom@54 {
+ compatible = "atmel,24c64";