summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/leds/leds-bcm6358.txt
blob: 6e51c6b91ee54cd51c781d2e9942c1b75b652bd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
LEDs connected to Broadcom BCM6358 controller

This controller is present on BCM6358 and BCM6368.
In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller),
which can either be controlled by software (exporting the 74x164 as spi-gpio.
See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or
by hardware using this driver.

Required properties:
  - compatible : should be "brcm,bcm6358-leds".
  - #address-cells : must be 1.
  - #size-cells : must be 0.
  - reg : BCM6358 LED controller address and size.

Optional properties:
  - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8.
    Default : 1
  - brcm,clk-dat-low : Boolean, makes clock and data signals active low.
    Default : false

Each LED is represented as a sub-node of the brcm,bcm6358-leds device.

LED sub-node required properties:
  - reg : LED pin number (only LEDs 0 to 31 are valid).

LED sub-node optional properties:
  - label : see Documentation/devicetree/bindings/leds/common.txt
  - active-low : Boolean, makes LED active low.
    Default : false
  - default-state : see
    Documentation/devicetree/bindings/leds/common.txt
  - linux,default-trigger : see
    Documentation/devicetree/bindings/leds/common.txt

Examples:
Scenario 1 : BCM6358
	leds0: led-controller@fffe00d0 {
		compatible = "brcm,bcm6358-leds";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0xfffe00d0 0x8>;

		alarm_white {
			reg = <0>;
			active-low;
			label = "white:alarm";
		};
		tv_white {
			reg = <2>;
			active-low;
			label = "white:tv";
		};
		tel_white {
			reg = <3>;
			active-low;
			label = "white:tel";
		};
		adsl_white {
			reg = <4>;
			active-low;
			label = "white:adsl";
		};
	};

Scenario 2 : BCM6368
	leds0: led-controller@100000d0 {
		compatible = "brcm,bcm6358-leds";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x100000d0 0x8>;
		brcm,pol-low;
		brcm,clk-div = <4>;

		power_red {
			reg = <0>;
			active-low;
			label = "red:power";
		};
		power_green {
			reg = <1>;
			active-low;
			label = "green:power";
			default-state = "on";
		};
		power_blue {
			reg = <2>;
			label = "blue:power";
		};
		broadband_red {
			reg = <3>;
			active-low;
			label = "red:broadband";
		};
		broadband_green {
			reg = <4>;
			label = "green:broadband";
		};
		broadband_blue {
			reg = <5>;
			active-low;
			label = "blue:broadband";
		};
		wireless_red {
			reg = <6>;
			active-low;
			label = "red:wireless";
		};
		wireless_green {
			reg = <7>;
			active-low;
			label = "green:wireless";
		};
		wireless_blue {
			reg = <8>;
			label = "blue:wireless";
		};
		phone_red {
			reg = <9>;
			active-low;
			label = "red:phone";
		};
		phone_green {
			reg = <10>;
			active-low;
			label = "green:phone";
		};
		phone_blue {
			reg = <11>;
			label = "blue:phone";
		};
		upgrading_red {
			reg = <12>;
			active-low;
			label = "red:upgrading";
		};
		upgrading_green {
			reg = <13>;
			active-low;
			label = "green:upgrading";
		};
		upgrading_blue {
			reg = <14>;
			label = "blue:upgrading";
		};
	};