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