mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
161 lines
4.3 KiB
Diff
161 lines
4.3 KiB
Diff
|
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";
|