~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/leds/leds-bcm6328.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/leds/leds-bcm6328.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: LEDs connected to Broadcom BCM6328 controller
  8 
  9 maintainers:
 10   - Álvaro Fernández Rojas <noltari@gmail.com>
 11 
 12 description: |
 13   This controller is present on BCM6318, BCM6328, BCM6362 and BCM63268.
 14   In these SoCs it's possible to control LEDs both as GPIOs or by hardware.
 15   However, on some devices there are Serial LEDs (LEDs connected to a 74x164
 16   controller), which can either be controlled by software (exporting the 74x164
 17   as spi-gpio. See
 18   Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or by hardware
 19   using this driver.
 20   Some of these Serial LEDs are hardware controlled (e.g. ethernet LEDs) and
 21   exporting the 74x164 as spi-gpio prevents those LEDs to be hardware
 22   controlled, so the only chance to keep them working is by using this driver.
 23 
 24   BCM6328 LED controller has a HWDIS register, which controls whether a LED
 25   should be controlled by a hardware signal instead of the MODE register value,
 26   with 0 meaning hardware control enabled and 1 hardware control disabled. This
 27   is usually 1:1 for hardware to LED signals, but through the activity/link
 28   registers you have some limited control over rerouting the LEDs (as
 29   explained later in brcm,link-signal-sources). Even if a LED is hardware
 30   controlled you are still able to make it blink or light it up if it isn't,
 31   but you can't turn it off if the hardware decides to light it up. For this
 32   reason, hardware controlled LEDs aren't registered as LED class devices.
 33 
 34   Each LED is represented as a sub-node of the brcm,bcm6328-leds device.
 35 
 36 properties:
 37   compatible:
 38     const: brcm,bcm6328-leds
 39 
 40   reg:
 41     maxItems: 1
 42 
 43   brcm,serial-leds:
 44     type: boolean
 45     description: Enables Serial LEDs.
 46 
 47   brcm,serial-mux:
 48     type: boolean
 49     description: Enables Serial LEDs multiplexing.
 50 
 51   brcm,serial-clk-low:
 52     type: boolean
 53     description: Makes clock signal active low.
 54 
 55   brcm,serial-dat-low:
 56     type: boolean
 57     description: Makes data signal active low.
 58 
 59   brcm,serial-shift-inv:
 60     type: boolean
 61     description: Inverts Serial LEDs shift direction.
 62 
 63   "#address-cells":
 64     const: 1
 65 
 66   "#size-cells":
 67     const: 0
 68 
 69 patternProperties:
 70   "@[a-f0-9]+$":
 71     type: object
 72 
 73     $ref: common.yaml#
 74 
 75     properties:
 76       reg:
 77         items:
 78           - maximum: 23
 79         description: LED pin number (only LEDs 0 to 23 are valid).
 80 
 81       brcm,hardware-controlled:
 82         type: boolean
 83         description: Makes this LED hardware controlled.
 84 
 85       brcm,link-signal-sources:
 86         $ref: /schemas/types.yaml#/definitions/uint32-array
 87         minItems: 1
 88         maxItems: 4
 89         description: >
 90           An array of hardware link signal sources. Up to four link hardware
 91           signals can get muxed into these LEDs. Only valid for LEDs 0 to 7,
 92           where LED signals 0 to 3 may be muxed to LEDs 0 to 3, and signals 4 to
 93           7 may be muxed to LEDs 4 to 7. A signal can be muxed to more than one
 94           LED, and one LED can have more than one source signal.
 95 
 96       brcm,activity-signal-sources:
 97         $ref: /schemas/types.yaml#/definitions/uint32-array
 98         minItems: 1
 99         maxItems: 4
100         description: >
101           An array of hardware activity signal sources. Up to four activity
102           hardware signals can get muxed into these LEDs. Only valid for LEDs 0
103           to 7, where LED signals 0 to 3 may be muxed to LEDs 0 to 3, and
104           signals 4 to 7 may be muxed to LEDs 4 to 7. A signal can be muxed to
105           more than one LED, and one LED can have more than one source signal.
106 
107     required:
108       - reg
109 
110     unevaluatedProperties: false
111 
112 required:
113   - reg
114   - "#address-cells"
115   - "#size-cells"
116 
117 additionalProperties: false
118 
119 examples:
120   - |
121     /* BCM6328 with 4 EPHY LEDs */
122     led-controller@10000800 {
123         compatible = "brcm,bcm6328-leds";
124         #address-cells = <1>;
125         #size-cells = <0>;
126         reg = <0x10000800 0x24>;
127 
128         alarm_red@2 {
129             reg = <2>;
130             active-low;
131             label = "red:alarm";
132         };
133 
134         inet_green@3 {
135             reg = <3>;
136             active-low;
137             label = "green:inet";
138         };
139 
140         power_green@4 {
141             reg = <4>;
142             active-low;
143             label = "green:power";
144             default-state = "on";
145         };
146 
147         ephy0_spd@17 {
148             reg = <17>;
149             brcm,hardware-controlled;
150         };
151 
152         ephy1_spd@18 {
153             reg = <18>;
154             brcm,hardware-controlled;
155         };
156 
157         ephy2_spd@19 {
158             reg = <19>;
159             brcm,hardware-controlled;
160         };
161 
162         ephy3_spd@20 {
163             reg = <20>;
164             brcm,hardware-controlled;
165         };
166     };
167   - |
168     /* BCM63268 with Serial/GPHY0 LEDs */
169     led-controller@10001900 {
170         compatible = "brcm,bcm6328-leds";
171         #address-cells = <1>;
172         #size-cells = <0>;
173         reg = <0x10001900 0x24>;
174         brcm,serial-leds;
175         brcm,serial-dat-low;
176         brcm,serial-shift-inv;
177 
178         gphy0_spd0@0 {
179             reg = <0>;
180             brcm,hardware-controlled;
181             brcm,link-signal-sources = <0>;
182         };
183 
184         gphy0_spd1@1 {
185             reg = <1>;
186             brcm,hardware-controlled;
187             brcm,link-signal-sources = <1>;
188         };
189 
190         inet_red@2 {
191             reg = <2>;
192             active-low;
193             label = "red:inet";
194         };
195 
196         dsl_green@3 {
197             reg = <3>;
198             active-low;
199             label = "green:dsl";
200         };
201 
202         usb_green@4 {
203             reg = <4>;
204             active-low;
205             label = "green:usb";
206         };
207 
208         wps_green@7 {
209             reg = <7>;
210             active-low;
211             label = "green:wps";
212         };
213 
214         inet_green@8 {
215             reg = <8>;
216             active-low;
217             label = "green:inet";
218         };
219 
220         ephy0_act@9 {
221             reg = <9>;
222             brcm,hardware-controlled;
223         };
224 
225         ephy1_act@10 {
226             reg = <10>;
227             brcm,hardware-controlled;
228         };
229 
230         ephy2_act@11 {
231             reg = <11>;
232             brcm,hardware-controlled;
233         };
234 
235         gphy0_act@12 {
236             reg = <12>;
237             brcm,hardware-controlled;
238         };
239 
240         ephy0_spd@13 {
241             reg = <13>;
242             brcm,hardware-controlled;
243         };
244 
245         ephy1_spd@14 {
246             reg = <14>;
247             brcm,hardware-controlled;
248         };
249 
250         ephy2_spd@15 {
251             reg = <15>;
252             brcm,hardware-controlled;
253         };
254 
255         power_green@20 {
256             reg = <20>;
257             active-low;
258             label = "green:power";
259             default-state = "on";
260         };
261     };
262   - |
263     /* BCM6362 with 1 LED for each EPHY */
264     led-controller@10001900 {
265         compatible = "brcm,bcm6328-leds";
266         #address-cells = <1>;
267         #size-cells = <0>;
268         reg = <0x10001900 0x24>;
269 
270         usb@0 {
271             reg = <0>;
272             brcm,hardware-controlled;
273             brcm,link-signal-sources = <0>;
274             brcm,activity-signal-sources = <0>;
275             /* USB link/activity routed to USB LED */
276         };
277 
278         inet@1 {
279             reg = <1>;
280             brcm,hardware-controlled;
281             brcm,activity-signal-sources = <1>;
282             /* INET activity routed to INET LED */
283         };
284 
285         ephy0@4 {
286             reg = <4>;
287             brcm,hardware-controlled;
288             brcm,link-signal-sources = <4>;
289             /* EPHY0 link routed to EPHY0 LED */
290         };
291 
292         ephy1@5 {
293             reg = <5>;
294             brcm,hardware-controlled;
295             brcm,link-signal-sources = <5>;
296             /* EPHY1 link routed to EPHY1 LED */
297         };
298 
299         ephy2@6 {
300             reg = <6>;
301             brcm,hardware-controlled;
302             brcm,link-signal-sources = <6>;
303             /* EPHY2 link routed to EPHY2 LED */
304         };
305 
306         ephy3@7 {
307             reg = <7>;
308             brcm,hardware-controlled;
309             brcm,link-signal-sources = <7>;
310             /* EPHY3 link routed to EPHY3 LED */
311         };
312 
313         power_green@20 {
314             reg = <20>;
315             active-low;
316             label = "green:power";
317             default-state = "on";
318         };
319     };
320   - |
321     /* BCM6362 with 1 LED for all EPHYs */
322     led-controller@10001900 {
323         compatible = "brcm,bcm6328-leds";
324         #address-cells = <1>;
325         #size-cells = <0>;
326         reg = <0x10001900 0x24>;
327 
328         usb@0 {
329             reg = <0>;
330             brcm,hardware-controlled;
331             brcm,link-signal-sources = <0 1>;
332             brcm,activity-signal-sources = <0 1>;
333             /* USB/INET link/activity routed to USB LED */
334         };
335 
336         ephy@4 {
337             reg = <4>;
338             brcm,hardware-controlled;
339             brcm,link-signal-sources = <4 5 6 7>;
340             /* EPHY0/1/2/3 link routed to EPHY0 LED */
341         };
342 
343         power_green@20 {
344             reg = <20>;
345             active-low;
346             label = "green:power";
347             default-state = "on";
348         };
349     };
350   - |
351     /* BCM6362 with EPHY LEDs swapped */
352     led-controller@10001900 {
353         compatible = "brcm,bcm6328-leds";
354         #address-cells = <1>;
355         #size-cells = <0>;
356         reg = <0x10001900 0x24>;
357 
358         usb@0 {
359             reg = <0>;
360             brcm,hardware-controlled;
361             brcm,link-signal-sources = <0>;
362             brcm,activity-signal-sources = <0 1>;
363             /* USB link/act and INET act routed to USB LED */
364         };
365 
366         ephy0@4 {
367             reg = <4>;
368             brcm,hardware-controlled;
369             brcm,link-signal-sources = <7>;
370             /* EPHY3 link routed to EPHY0 LED */
371         };
372 
373         ephy1@5 {
374             reg = <5>;
375             brcm,hardware-controlled;
376             brcm,link-signal-sources = <6>;
377             /* EPHY2 link routed to EPHY1 LED */
378         };
379 
380         ephy2@6 {
381             reg = <6>;
382             brcm,hardware-controlled;
383             brcm,link-signal-sources = <5>;
384             /* EPHY1 link routed to EPHY2 LED */
385         };
386 
387         ephy3@7 {
388             reg = <7>;
389             brcm,hardware-controlled;
390             brcm,link-signal-sources = <4>;
391             /* EPHY0 link routed to EPHY3 LED */
392         };
393 
394         power_green@20 {
395             reg = <20>;
396             active-low;
397             label = "green:power";
398             default-state = "on";
399         };
400     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php