xref: /rk3399_rockchip-uboot/doc/device-tree-bindings/leds/leds-bcm6328.txt (revision 102d86552abc82818c22b39fdef4b3a280a60643)
1*28300dc5SÁlvaro Fernández RojasLEDs connected to Broadcom BCM6328 controller
2*28300dc5SÁlvaro Fernández Rojas
3*28300dc5SÁlvaro Fernández RojasThis controller is present on BCM6318, BCM6328, BCM6362 and BCM63268.
4*28300dc5SÁlvaro Fernández RojasIn these SoCs it's possible to control LEDs both as GPIOs or by hardware.
5*28300dc5SÁlvaro Fernández RojasHowever, on some devices there are Serial LEDs (LEDs connected to a 74x164
6*28300dc5SÁlvaro Fernández Rojascontroller), which can either be controlled by software (exporting the 74x164
7*28300dc5SÁlvaro Fernández Rojasas spi-gpio. See Documentation/devicetree/bindings/gpio/gpio-74x164.txt), or
8*28300dc5SÁlvaro Fernández Rojasby hardware using this driver.
9*28300dc5SÁlvaro Fernández RojasSome of these Serial LEDs are hardware controlled (e.g. ethernet LEDs) and
10*28300dc5SÁlvaro Fernández Rojasexporting the 74x164 as spi-gpio prevents those LEDs to be hardware
11*28300dc5SÁlvaro Fernández Rojascontrolled, so the only chance to keep them working is by using this driver.
12*28300dc5SÁlvaro Fernández Rojas
13*28300dc5SÁlvaro Fernández RojasRequired properties:
14*28300dc5SÁlvaro Fernández Rojas  - compatible : should be "brcm,bcm6328-leds".
15*28300dc5SÁlvaro Fernández Rojas  - #address-cells : must be 1.
16*28300dc5SÁlvaro Fernández Rojas  - #size-cells : must be 0.
17*28300dc5SÁlvaro Fernández Rojas  - reg : BCM6328 LED controller address and size.
18*28300dc5SÁlvaro Fernández Rojas
19*28300dc5SÁlvaro Fernández RojasOptional properties:
20*28300dc5SÁlvaro Fernández Rojas  - brcm,serial-leds : Boolean, enables Serial LEDs.
21*28300dc5SÁlvaro Fernández Rojas    Default : false
22*28300dc5SÁlvaro Fernández Rojas  - brcm,serial-mux : Boolean, enables Serial LEDs multiplexing.
23*28300dc5SÁlvaro Fernández Rojas    Default : false
24*28300dc5SÁlvaro Fernández Rojas  - brcm,serial-clk-low : Boolean, makes clock signal active low.
25*28300dc5SÁlvaro Fernández Rojas    Default : false
26*28300dc5SÁlvaro Fernández Rojas  - brcm,serial-dat-low : Boolean, makes data signal active low.
27*28300dc5SÁlvaro Fernández Rojas    Default : false
28*28300dc5SÁlvaro Fernández Rojas  - brcm,serial-shift-inv : Boolean, inverts Serial LEDs shift direction.
29*28300dc5SÁlvaro Fernández Rojas    Default : false
30*28300dc5SÁlvaro Fernández Rojas
31*28300dc5SÁlvaro Fernández RojasEach LED is represented as a sub-node of the brcm,bcm6328-leds device.
32*28300dc5SÁlvaro Fernández Rojas
33*28300dc5SÁlvaro Fernández RojasLED sub-node required properties:
34*28300dc5SÁlvaro Fernández Rojas  - reg : LED pin number (only LEDs 0 to 23 are valid).
35*28300dc5SÁlvaro Fernández Rojas
36*28300dc5SÁlvaro Fernández RojasLED sub-node optional properties:
37*28300dc5SÁlvaro Fernández Rojas  - label : see Documentation/devicetree/bindings/leds/common.txt
38*28300dc5SÁlvaro Fernández Rojas  - active-low : Boolean, makes LED active low.
39*28300dc5SÁlvaro Fernández Rojas    Default : false
40*28300dc5SÁlvaro Fernández Rojas
41*28300dc5SÁlvaro Fernández RojasExamples:
42*28300dc5SÁlvaro Fernández RojasScenario 1 : BCM6328 with 4 GPIO LEDs
43*28300dc5SÁlvaro Fernández Rojas	leds0: led-controller@10000800 {
44*28300dc5SÁlvaro Fernández Rojas		compatible = "brcm,bcm6328-leds";
45*28300dc5SÁlvaro Fernández Rojas		#address-cells = <1>;
46*28300dc5SÁlvaro Fernández Rojas		#size-cells = <0>;
47*28300dc5SÁlvaro Fernández Rojas		reg = <0x10000800 0x24>;
48*28300dc5SÁlvaro Fernández Rojas
49*28300dc5SÁlvaro Fernández Rojas		alarm_red@2 {
50*28300dc5SÁlvaro Fernández Rojas			reg = <2>;
51*28300dc5SÁlvaro Fernández Rojas			active-low;
52*28300dc5SÁlvaro Fernández Rojas			label = "red:alarm";
53*28300dc5SÁlvaro Fernández Rojas		};
54*28300dc5SÁlvaro Fernández Rojas		inet_green@3 {
55*28300dc5SÁlvaro Fernández Rojas			reg = <3>;
56*28300dc5SÁlvaro Fernández Rojas			active-low;
57*28300dc5SÁlvaro Fernández Rojas			label = "green:inet";
58*28300dc5SÁlvaro Fernández Rojas		};
59*28300dc5SÁlvaro Fernández Rojas		power_green@4 {
60*28300dc5SÁlvaro Fernández Rojas			reg = <4>;
61*28300dc5SÁlvaro Fernández Rojas			active-low;
62*28300dc5SÁlvaro Fernández Rojas			label = "green:power";
63*28300dc5SÁlvaro Fernández Rojas		};
64*28300dc5SÁlvaro Fernández Rojas	};
65*28300dc5SÁlvaro Fernández Rojas
66*28300dc5SÁlvaro Fernández RojasScenario 2 : BCM63268 with Serial LEDs
67*28300dc5SÁlvaro Fernández Rojas	leds0: led-controller@10001900 {
68*28300dc5SÁlvaro Fernández Rojas		compatible = "brcm,bcm6328-leds";
69*28300dc5SÁlvaro Fernández Rojas		#address-cells = <1>;
70*28300dc5SÁlvaro Fernández Rojas		#size-cells = <0>;
71*28300dc5SÁlvaro Fernández Rojas		reg = <0x10001900 0x24>;
72*28300dc5SÁlvaro Fernández Rojas		brcm,serial-leds;
73*28300dc5SÁlvaro Fernández Rojas		brcm,serial-dat-low;
74*28300dc5SÁlvaro Fernández Rojas		brcm,serial-shift-inv;
75*28300dc5SÁlvaro Fernández Rojas
76*28300dc5SÁlvaro Fernández Rojas		inet_red@2 {
77*28300dc5SÁlvaro Fernández Rojas			reg = <2>;
78*28300dc5SÁlvaro Fernández Rojas			active-low;
79*28300dc5SÁlvaro Fernández Rojas			label = "red:inet";
80*28300dc5SÁlvaro Fernández Rojas		};
81*28300dc5SÁlvaro Fernández Rojas		dsl_green@3 {
82*28300dc5SÁlvaro Fernández Rojas			reg = <3>;
83*28300dc5SÁlvaro Fernández Rojas			active-low;
84*28300dc5SÁlvaro Fernández Rojas			label = "green:dsl";
85*28300dc5SÁlvaro Fernández Rojas		};
86*28300dc5SÁlvaro Fernández Rojas		usb_green@4 {
87*28300dc5SÁlvaro Fernández Rojas			reg = <4>;
88*28300dc5SÁlvaro Fernández Rojas			active-low;
89*28300dc5SÁlvaro Fernández Rojas			label = "green:usb";
90*28300dc5SÁlvaro Fernández Rojas		};
91*28300dc5SÁlvaro Fernández Rojas		wps_green@7 {
92*28300dc5SÁlvaro Fernández Rojas			reg = <7>;
93*28300dc5SÁlvaro Fernández Rojas			active-low;
94*28300dc5SÁlvaro Fernández Rojas			label = "green:wps";
95*28300dc5SÁlvaro Fernández Rojas		};
96*28300dc5SÁlvaro Fernández Rojas		inet_green@8 {
97*28300dc5SÁlvaro Fernández Rojas			reg = <8>;
98*28300dc5SÁlvaro Fernández Rojas			active-low;
99*28300dc5SÁlvaro Fernández Rojas			label = "green:inet";
100*28300dc5SÁlvaro Fernández Rojas		};
101*28300dc5SÁlvaro Fernández Rojas		power_green@20 {
102*28300dc5SÁlvaro Fernández Rojas			reg = <20>;
103*28300dc5SÁlvaro Fernández Rojas			active-low;
104*28300dc5SÁlvaro Fernández Rojas			label = "green:power";
105*28300dc5SÁlvaro Fernández Rojas		};
106*28300dc5SÁlvaro Fernández Rojas	};
107