blob: 211ffc3c4a201235e8d242b0230747b5dfe2a417 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001LEDs connected to Broadcom BCM6358 controller
2
3This controller is present on BCM6358 and BCM6368.
4In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller),
5which can either be controlled by software (exporting the 74x164 as spi-gpio.
6See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or
7by hardware using this driver.
8
9Required properties:
10 - compatible : should be "brcm,bcm6358-leds".
11 - #address-cells : must be 1.
12 - #size-cells : must be 0.
13 - reg : BCM6358 LED controller address and size.
14
15Optional properties:
16 - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8.
17 Default : 1
18 - brcm,clk-dat-low : Boolean, makes clock and data signals active low.
19 Default : false
20
21Each LED is represented as a sub-node of the brcm,bcm6358-leds device.
22
23LED sub-node required properties:
24 - reg : LED pin number (only LEDs 0 to 31 are valid).
25
26LED sub-node optional properties:
27 - label : see Documentation/devicetree/bindings/leds/common.txt
Tom Rini53633a82024-02-29 12:33:36 -050028 - default-state : see
29 Documentation/devicetree/bindings/leds/common.txt
30 - linux,default-trigger : see
31 Documentation/devicetree/bindings/leds/common.txt
32
33Examples:
34Scenario 1 : BCM6358
35 leds0: led-controller@fffe00d0 {
36 compatible = "brcm,bcm6358-leds";
37 #address-cells = <1>;
38 #size-cells = <0>;
39 reg = <0xfffe00d0 0x8>;
40
41 alarm_white {
42 reg = <0>;
43 active-low;
44 label = "white:alarm";
45 };
46 tv_white {
47 reg = <2>;
48 active-low;
49 label = "white:tv";
50 };
51 tel_white {
52 reg = <3>;
53 active-low;
54 label = "white:tel";
55 };
56 adsl_white {
57 reg = <4>;
58 active-low;
59 label = "white:adsl";
60 };
61 };
62
63Scenario 2 : BCM6368
64 leds0: led-controller@100000d0 {
65 compatible = "brcm,bcm6358-leds";
66 #address-cells = <1>;
67 #size-cells = <0>;
68 reg = <0x100000d0 0x8>;
69 brcm,pol-low;
70 brcm,clk-div = <4>;
71
72 power_red {
73 reg = <0>;
74 active-low;
75 label = "red:power";
76 };
77 power_green {
78 reg = <1>;
79 active-low;
80 label = "green:power";
81 default-state = "on";
82 };
83 power_blue {
84 reg = <2>;
85 label = "blue:power";
86 };
87 broadband_red {
88 reg = <3>;
89 active-low;
90 label = "red:broadband";
91 };
92 broadband_green {
93 reg = <4>;
94 label = "green:broadband";
95 };
96 broadband_blue {
97 reg = <5>;
98 active-low;
99 label = "blue:broadband";
100 };
101 wireless_red {
102 reg = <6>;
103 active-low;
104 label = "red:wireless";
105 };
106 wireless_green {
107 reg = <7>;
108 active-low;
109 label = "green:wireless";
110 };
111 wireless_blue {
112 reg = <8>;
113 label = "blue:wireless";
114 };
115 phone_red {
116 reg = <9>;
117 active-low;
118 label = "red:phone";
119 };
120 phone_green {
121 reg = <10>;
122 active-low;
123 label = "green:phone";
124 };
125 phone_blue {
126 reg = <11>;
127 label = "blue:phone";
128 };
129 upgrading_red {
130 reg = <12>;
131 active-low;
132 label = "red:upgrading";
133 };
134 upgrading_green {
135 reg = <13>;
136 active-low;
137 label = "green:upgrading";
138 };
139 upgrading_blue {
140 reg = <14>;
141 label = "blue:upgrading";
142 };
143 };