ARM: dts: qcom: ipq8064-rb3011: Add Switch LED for each port
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 17 Apr 2023 15:17:35 +0000 (17:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Apr 2023 11:59:16 +0000 (12:59 +0100)
Add Switch LED for each port for MikroTik RB3011UiAS-RM.

MikroTik RB3011UiAS-RM is a 10 port device with 2 qca8337 switch chips
connected.

It was discovered that in the hardware design all 3 Switch LED trace of
the related port is connected to the same LED. This was discovered by
setting to 'always on' the related led in the switch regs and noticing
that all 3 LED for the specific port (for example for port 1) cause the
connected LED for port 1 to turn on. As an extra test we tried enabling
2 different LED for the port resulting in the LED turned off only if
every led in the reg was off.

Aside from this funny and strange hardware implementation, the device
itself have one green LED for each port, resulting in 10 green LED one
for each of the 10 supported port.

Cc: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts

index 47a5d18..4d50987 100644 (file)
                                port@1 {
                                        reg = <1>;
                                        label = "sw1";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@2 {
                                        reg = <2>;
                                        label = "sw2";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@3 {
                                        reg = <3>;
                                        label = "sw3";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@4 {
                                        reg = <4>;
                                        label = "sw4";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@5 {
                                        reg = <5>;
                                        label = "sw5";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
                        };
                };
                                port@1 {
                                        reg = <1>;
                                        label = "sw6";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@2 {
                                        reg = <2>;
                                        label = "sw7";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@3 {
                                        reg = <3>;
                                        label = "sw8";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@4 {
                                        reg = <4>;
                                        label = "sw9";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
 
                                port@5 {
                                        reg = <5>;
                                        label = "sw10";
+
+                                       leds {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               led@0 {
+                                                       reg = <0>;
+                                                       color = <LED_COLOR_ID_GREEN>;
+                                                       function = LED_FUNCTION_LAN;
+                                                       default-state = "keep";
+                                               };
+                                       };
                                };
                        };
                };