xref: /linux/Documentation/devicetree/bindings/leds/leds-bcm6358.txt (revision ae22a94997b8a03dcb3c922857c203246711f9d4)
1LEDs 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
28  - 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	};
144