xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/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  - default-state : see
31*4882a593Smuzhiyun    Documentation/devicetree/bindings/leds/common.txt
32*4882a593Smuzhiyun  - linux,default-trigger : see
33*4882a593Smuzhiyun    Documentation/devicetree/bindings/leds/common.txt
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunExamples:
36*4882a593SmuzhiyunScenario 1 : BCM6358
37*4882a593Smuzhiyun	leds0: led-controller@fffe00d0 {
38*4882a593Smuzhiyun		compatible = "brcm,bcm6358-leds";
39*4882a593Smuzhiyun		#address-cells = <1>;
40*4882a593Smuzhiyun		#size-cells = <0>;
41*4882a593Smuzhiyun		reg = <0xfffe00d0 0x8>;
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		alarm_white {
44*4882a593Smuzhiyun			reg = <0>;
45*4882a593Smuzhiyun			active-low;
46*4882a593Smuzhiyun			label = "white:alarm";
47*4882a593Smuzhiyun		};
48*4882a593Smuzhiyun		tv_white {
49*4882a593Smuzhiyun			reg = <2>;
50*4882a593Smuzhiyun			active-low;
51*4882a593Smuzhiyun			label = "white:tv";
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun		tel_white {
54*4882a593Smuzhiyun			reg = <3>;
55*4882a593Smuzhiyun			active-low;
56*4882a593Smuzhiyun			label = "white:tel";
57*4882a593Smuzhiyun		};
58*4882a593Smuzhiyun		adsl_white {
59*4882a593Smuzhiyun			reg = <4>;
60*4882a593Smuzhiyun			active-low;
61*4882a593Smuzhiyun			label = "white:adsl";
62*4882a593Smuzhiyun		};
63*4882a593Smuzhiyun	};
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunScenario 2 : BCM6368
66*4882a593Smuzhiyun	leds0: led-controller@100000d0 {
67*4882a593Smuzhiyun		compatible = "brcm,bcm6358-leds";
68*4882a593Smuzhiyun		#address-cells = <1>;
69*4882a593Smuzhiyun		#size-cells = <0>;
70*4882a593Smuzhiyun		reg = <0x100000d0 0x8>;
71*4882a593Smuzhiyun		brcm,pol-low;
72*4882a593Smuzhiyun		brcm,clk-div = <4>;
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun		power_red {
75*4882a593Smuzhiyun			reg = <0>;
76*4882a593Smuzhiyun			active-low;
77*4882a593Smuzhiyun			label = "red:power";
78*4882a593Smuzhiyun		};
79*4882a593Smuzhiyun		power_green {
80*4882a593Smuzhiyun			reg = <1>;
81*4882a593Smuzhiyun			active-low;
82*4882a593Smuzhiyun			label = "green:power";
83*4882a593Smuzhiyun			default-state = "on";
84*4882a593Smuzhiyun		};
85*4882a593Smuzhiyun		power_blue {
86*4882a593Smuzhiyun			reg = <2>;
87*4882a593Smuzhiyun			label = "blue:power";
88*4882a593Smuzhiyun		};
89*4882a593Smuzhiyun		broadband_red {
90*4882a593Smuzhiyun			reg = <3>;
91*4882a593Smuzhiyun			active-low;
92*4882a593Smuzhiyun			label = "red:broadband";
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun		broadband_green {
95*4882a593Smuzhiyun			reg = <4>;
96*4882a593Smuzhiyun			label = "green:broadband";
97*4882a593Smuzhiyun		};
98*4882a593Smuzhiyun		broadband_blue {
99*4882a593Smuzhiyun			reg = <5>;
100*4882a593Smuzhiyun			active-low;
101*4882a593Smuzhiyun			label = "blue:broadband";
102*4882a593Smuzhiyun		};
103*4882a593Smuzhiyun		wireless_red {
104*4882a593Smuzhiyun			reg = <6>;
105*4882a593Smuzhiyun			active-low;
106*4882a593Smuzhiyun			label = "red:wireless";
107*4882a593Smuzhiyun		};
108*4882a593Smuzhiyun		wireless_green {
109*4882a593Smuzhiyun			reg = <7>;
110*4882a593Smuzhiyun			active-low;
111*4882a593Smuzhiyun			label = "green:wireless";
112*4882a593Smuzhiyun		};
113*4882a593Smuzhiyun		wireless_blue {
114*4882a593Smuzhiyun			reg = <8>;
115*4882a593Smuzhiyun			label = "blue:wireless";
116*4882a593Smuzhiyun		};
117*4882a593Smuzhiyun		phone_red {
118*4882a593Smuzhiyun			reg = <9>;
119*4882a593Smuzhiyun			active-low;
120*4882a593Smuzhiyun			label = "red:phone";
121*4882a593Smuzhiyun		};
122*4882a593Smuzhiyun		phone_green {
123*4882a593Smuzhiyun			reg = <10>;
124*4882a593Smuzhiyun			active-low;
125*4882a593Smuzhiyun			label = "green:phone";
126*4882a593Smuzhiyun		};
127*4882a593Smuzhiyun		phone_blue {
128*4882a593Smuzhiyun			reg = <11>;
129*4882a593Smuzhiyun			label = "blue:phone";
130*4882a593Smuzhiyun		};
131*4882a593Smuzhiyun		upgrading_red {
132*4882a593Smuzhiyun			reg = <12>;
133*4882a593Smuzhiyun			active-low;
134*4882a593Smuzhiyun			label = "red:upgrading";
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun		upgrading_green {
137*4882a593Smuzhiyun			reg = <13>;
138*4882a593Smuzhiyun			active-low;
139*4882a593Smuzhiyun			label = "green:upgrading";
140*4882a593Smuzhiyun		};
141*4882a593Smuzhiyun		upgrading_blue {
142*4882a593Smuzhiyun			reg = <14>;
143*4882a593Smuzhiyun			label = "blue:upgrading";
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun	};
146