diff options
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.patch | 160 |
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"; |