brcm2708: add kernel 4.14 support
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.14 / 950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch
1 From 0b2881369a38b0a139ae4a256ea1953750fb6a76 Mon Sep 17 00:00:00 2001
2 From: wavelet2 <a3d35232@btinternet.com>
3 Date: Thu, 22 Mar 2018 19:08:02 +0000
4 Subject: [PATCH 260/454] Add overlay for Semtech SX150X I2C GPIO Expanders
5
6 ---
7 arch/arm/boot/dts/overlays/Makefile | 1 +
8 arch/arm/boot/dts/overlays/README | 19 +
9 arch/arm/boot/dts/overlays/sx150x-overlay.dts | 1706 +++++++++++++++++
10 3 files changed, 1726 insertions(+)
11 create mode 100644 arch/arm/boot/dts/overlays/sx150x-overlay.dts
12
13 --- a/arch/arm/boot/dts/overlays/Makefile
14 +++ b/arch/arm/boot/dts/overlays/Makefile
15 @@ -120,6 +120,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
16 spi2-2cs.dtbo \
17 spi2-3cs.dtbo \
18 superaudioboard.dtbo \
19 + sx150x.dtbo \
20 tinylcd35.dtbo \
21 uart0.dtbo \
22 uart1.dtbo \
23 --- a/arch/arm/boot/dts/overlays/README
24 +++ b/arch/arm/boot/dts/overlays/README
25 @@ -1703,6 +1703,25 @@ Load: dtoverlay=superaudioboard,<param
26 Params: gpiopin GPIO pin for codec reset
27
28
29 +Name: sx150x
30 +Info: Configures the Semtech SX150X I2C GPIO expanders.
31 +Load: dtoverlay=sx150x,<param>=<val>
32 +Params: sx150<x>-<n>-<m> Enables SX150X device on I2C#<n> with slave
33 + address <m>. <x> may be 1-9. <n> may be 0 or 1.
34 + Permissible values of <m> (which is denoted in
35 + hex) depend on the device variant. For SX1501,
36 + SX1502, SX1504 and SX1505, <m> may be 20 or 21.
37 + For SX1503 and SX1506, <m> may be 20. For
38 + SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71.
39 + For SX1508, <m> may be 20, 21, 22 or 23.
40 +
41 + sx150<x>-<n>-<m>-int-gpio
42 + Integer, enables interrupts on SX150X device on
43 + I2C#<n> with slave address <m>, specifies
44 + the GPIO pin to which NINT output of SX150X is
45 + connected.
46 +
47 +
48 Name: tinylcd35
49 Info: 3.5" Color TFT Display by www.tinylcd.com
50 Options: Touch, RTC, keypad
51 --- /dev/null
52 +++ b/arch/arm/boot/dts/overlays/sx150x-overlay.dts
53 @@ -0,0 +1,1706 @@
54 +// Definitions for SX150x I2C GPIO Expanders from Semtech
55 +
56 +// dtparams:
57 +// sx150<x>-<n>-<m> - Enables SX150X device on I2C#<n> with slave address <m>. <x> may be 1-9.
58 +// <n> may be 0 or 1. Permissible values of <m> (which is denoted in hex)
59 +// depend on the device variant.
60 +// For SX1501, SX1502, SX1504 and SX1505, <m> may be 20 or 21.
61 +// For SX1503 and SX1506, <m> may be 20.
62 +// For SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71.
63 +// For SX1508, <m> may be 20, 21, 22 or 23.
64 +// sx150<x>-<n>-<m>-int-gpio - Integer, enables interrupts on SX150X device on I2C#<n> with slave address <m>,
65 +// specifies the GPIO pin to which NINT output of SX150X is connected.
66 +//
67 +//
68 +// Example 1: A single SX1505 device on I2C#1 with its slave address set to 0x20 and NINT output connected to GPIO25:
69 +// dtoverlay=sx150x:sx1505-1-20,sx1505-1-20-int-gpio=25
70 +//
71 +// Example 2: Two SX1507 devices on I2C#0 with their slave addresses set to 0x3E and 0x70 (interrupts not used):
72 +// dtoverlay=sx150x:sx1507-0-3E,sx1507-0-70
73 +
74 +/dts-v1/;
75 +/plugin/;
76 +
77 +/ {
78 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
79 +
80 + // Enable I2C#0 interface
81 + fragment@0 {
82 + target = <&i2c0>;
83 + __dormant__ {
84 + status = "okay";
85 + };
86 + };
87 +
88 + // Enable I2C#1 interface
89 + fragment@1 {
90 + target = <&i2c1>;
91 + __dormant__ {
92 + status = "okay";
93 + };
94 + };
95 +
96 + // Enable a SX1501 on I2C#0 at slave addr 0x20
97 + fragment@2 {
98 + target = <&i2c0>;
99 + __dormant__ {
100 + #address-cells = <1>;
101 + #size-cells = <0>;
102 +
103 + sx1501_0_20: sx150x@20 {
104 + compatible = "semtech,sx1501q";
105 + reg = <0x20>;
106 + gpio-controller;
107 + #gpio-cells = <2>;
108 + #interrupt-cells = <2>;
109 + interrupts = <25 2>; /* 1st word overwritten by sx1501-0-20-int-gpio parameter
110 + 2nd word is 2 for falling-edge triggered */
111 + status = "okay";
112 + };
113 + };
114 + };
115 +
116 + // Enable a SX1501 on I2C#1 at slave addr 0x20
117 + fragment@3 {
118 + target = <&i2c1>;
119 + __dormant__ {
120 + #address-cells = <1>;
121 + #size-cells = <0>;
122 +
123 + sx1501_1_20: sx150x@20 {
124 + compatible = "semtech,sx1501q";
125 + reg = <0x20>;
126 + gpio-controller;
127 + #gpio-cells = <2>;
128 + #interrupt-cells = <2>;
129 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-20-int-gpio parameter
130 + 2nd word is 2 for falling-edge triggered */
131 + status = "okay";
132 + };
133 + };
134 + };
135 +
136 + // Enable a SX1501 on I2C#0 at slave addr 0x21
137 + fragment@4 {
138 + target = <&i2c0>;
139 + __dormant__ {
140 + #address-cells = <1>;
141 + #size-cells = <0>;
142 +
143 + sx1501_0_21: sx150x@21 {
144 + compatible = "semtech,sx1501q";
145 + reg = <0x21>;
146 + gpio-controller;
147 + #gpio-cells = <2>;
148 + #interrupt-cells = <2>;
149 + interrupts = <25 2>; /* 1st word overwritten by sx1501-0-21-int-gpio parameter
150 + 2nd word is 2 for falling-edge triggered */
151 + status = "okay";
152 + };
153 + };
154 + };
155 +
156 + // Enable a SX1501 on I2C#1 at slave addr 0x21
157 + fragment@5 {
158 + target = <&i2c1>;
159 + __dormant__ {
160 + #address-cells = <1>;
161 + #size-cells = <0>;
162 +
163 + sx1501_1_21: sx150x@21 {
164 + compatible = "semtech,sx1501q";
165 + reg = <0x21>;
166 + gpio-controller;
167 + #gpio-cells = <2>;
168 + #interrupt-cells = <2>;
169 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter
170 + 2nd word is 2 for falling-edge triggered */
171 + status = "okay";
172 + };
173 + };
174 + };
175 +
176 + // Enable a SX1502 on I2C#0 at slave addr 0x20
177 + fragment@6 {
178 + target = <&i2c0>;
179 + __dormant__ {
180 + #address-cells = <1>;
181 + #size-cells = <0>;
182 +
183 + sx1502_0_20: sx150x@20 {
184 + compatible = "semtech,sx1502q";
185 + reg = <0x20>;
186 + gpio-controller;
187 + #gpio-cells = <2>;
188 + #interrupt-cells = <2>;
189 + interrupts = <25 2>; /* 1st word overwritten by sx1502-0-20-int-gpio parameter
190 + 2nd word is 2 for falling-edge triggered */
191 + status = "okay";
192 + };
193 + };
194 + };
195 +
196 + // Enable a SX1502 on I2C#1 at slave addr 0x20
197 + fragment@7 {
198 + target = <&i2c1>;
199 + __dormant__ {
200 + #address-cells = <1>;
201 + #size-cells = <0>;
202 +
203 + sx1502_1_20: sx150x@20 {
204 + compatible = "semtech,sx1502q";
205 + reg = <0x20>;
206 + gpio-controller;
207 + #gpio-cells = <2>;
208 + #interrupt-cells = <2>;
209 + interrupts = <25 2>; /* 1st word overwritten by sx1502-1-20-int-gpio parameter
210 + 2nd word is 2 for falling-edge triggered */
211 + status = "okay";
212 + };
213 + };
214 + };
215 +
216 + // Enable a SX1502 on I2C#0 at slave addr 0x21
217 + fragment@8 {
218 + target = <&i2c0>;
219 + __dormant__ {
220 + #address-cells = <1>;
221 + #size-cells = <0>;
222 +
223 + sx1502_0_21: sx150x@21 {
224 + compatible = "semtech,sx1502q";
225 + reg = <0x21>;
226 + gpio-controller;
227 + #gpio-cells = <2>;
228 + #interrupt-cells = <2>;
229 + interrupts = <25 2>; /* 1st word overwritten by sx1502-0-21-int-gpio parameter
230 + 2nd word is 2 for falling-edge triggered */
231 + status = "okay";
232 + };
233 + };
234 + };
235 +
236 + // Enable a SX1502 on I2C#1 at slave addr 0x21
237 + fragment@9 {
238 + target = <&i2c1>;
239 + __dormant__ {
240 + #address-cells = <1>;
241 + #size-cells = <0>;
242 +
243 + sx1502_1_21: sx150x@21 {
244 + compatible = "semtech,sx1502q";
245 + reg = <0x21>;
246 + gpio-controller;
247 + #gpio-cells = <2>;
248 + #interrupt-cells = <2>;
249 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter
250 + 2nd word is 2 for falling-edge triggered */
251 + status = "okay";
252 + };
253 + };
254 + };
255 +
256 + // Enable a SX1503 on I2C#0 at slave addr 0x20
257 + fragment@10 {
258 + target = <&i2c0>;
259 + __dormant__ {
260 + #address-cells = <1>;
261 + #size-cells = <0>;
262 +
263 + sx1503_0_20: sx150x@20 {
264 + compatible = "semtech,sx1503q";
265 + reg = <0x20>;
266 + gpio-controller;
267 + #gpio-cells = <2>;
268 + #interrupt-cells = <2>;
269 + interrupts = <25 2>; /* 1st word overwritten by sx1503-0-20-int-gpio parameter
270 + 2nd word is 2 for falling-edge triggered */
271 + status = "okay";
272 + };
273 + };
274 + };
275 +
276 + // Enable a SX1503 on I2C#1 at slave addr 0x20
277 + fragment@11 {
278 + target = <&i2c1>;
279 + __dormant__ {
280 + #address-cells = <1>;
281 + #size-cells = <0>;
282 +
283 + sx1503_1_20: sx150x@20 {
284 + compatible = "semtech,sx1503q";
285 + reg = <0x20>;
286 + gpio-controller;
287 + #gpio-cells = <2>;
288 + #interrupt-cells = <2>;
289 + interrupts = <25 2>; /* 1st word overwritten by sx1503-1-20-int-gpio parameter
290 + 2nd word is 2 for falling-edge triggered */
291 + status = "okay";
292 + };
293 + };
294 + };
295 +
296 + // Enable a SX1504 on I2C#0 at slave addr 0x20
297 + fragment@12 {
298 + target = <&i2c0>;
299 + __dormant__ {
300 + #address-cells = <1>;
301 + #size-cells = <0>;
302 +
303 + sx1504_0_20: sx150x@20 {
304 + compatible = "semtech,sx1504q";
305 + reg = <0x20>;
306 + gpio-controller;
307 + #gpio-cells = <2>;
308 + #interrupt-cells = <2>;
309 + interrupts = <25 2>; /* 1st word overwritten by sx1504-0-20-int-gpio parameter
310 + 2nd word is 2 for falling-edge triggered */
311 + status = "okay";
312 + };
313 + };
314 + };
315 +
316 + // Enable a SX1504 on I2C#1 at slave addr 0x20
317 + fragment@13 {
318 + target = <&i2c1>;
319 + __dormant__ {
320 + #address-cells = <1>;
321 + #size-cells = <0>;
322 +
323 + sx1504_1_20: sx150x@20 {
324 + compatible = "semtech,sx1504q";
325 + reg = <0x20>;
326 + gpio-controller;
327 + #gpio-cells = <2>;
328 + #interrupt-cells = <2>;
329 + interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter
330 + 2nd word is 2 for falling-edge triggered */
331 + status = "okay";
332 + };
333 + };
334 + };
335 +
336 + // Enable a SX1504 on I2C#0 at slave addr 0x21
337 + fragment@14 {
338 + target = <&i2c0>;
339 + __dormant__ {
340 + #address-cells = <1>;
341 + #size-cells = <0>;
342 +
343 + sx1504_0_21: sx150x@21 {
344 + compatible = "semtech,sx1504q";
345 + reg = <0x21>;
346 + gpio-controller;
347 + #gpio-cells = <2>;
348 + #interrupt-cells = <2>;
349 + interrupts = <25 2>; /* 1st word overwritten by sx1504-0-21-int-gpio parameter
350 + 2nd word is 2 for falling-edge triggered */
351 + status = "okay";
352 + };
353 + };
354 + };
355 +
356 + // Enable a SX1504 on I2C#1 at slave addr 0x21
357 + fragment@15 {
358 + target = <&i2c1>;
359 + __dormant__ {
360 + #address-cells = <1>;
361 + #size-cells = <0>;
362 +
363 + sx1504_1_21: sx150x@21 {
364 + compatible = "semtech,sx1504q";
365 + reg = <0x21>;
366 + gpio-controller;
367 + #gpio-cells = <2>;
368 + #interrupt-cells = <2>;
369 + interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter
370 + 2nd word is 2 for falling-edge triggered */
371 + status = "okay";
372 + };
373 + };
374 + };
375 +
376 + // Enable a SX1505 on I2C#0 at slave addr 0x20
377 + fragment@16 {
378 + target = <&i2c0>;
379 + __dormant__ {
380 + #address-cells = <1>;
381 + #size-cells = <0>;
382 +
383 + sx1505_0_20: sx150x@20 {
384 + compatible = "semtech,sx1505q";
385 + reg = <0x20>;
386 + gpio-controller;
387 + #gpio-cells = <2>;
388 + #interrupt-cells = <2>;
389 + interrupts = <25 2>; /* 1st word overwritten by sx1505-0-20-int-gpio parameter
390 + 2nd word is 2 for falling-edge triggered */
391 + status = "okay";
392 + };
393 + };
394 + };
395 +
396 + // Enable a SX1505 on I2C#1 at slave addr 0x20
397 + fragment@17 {
398 + target = <&i2c1>;
399 + __dormant__ {
400 + #address-cells = <1>;
401 + #size-cells = <0>;
402 +
403 + sx1505_1_20: sx150x@20 {
404 + compatible = "semtech,sx1505q";
405 + reg = <0x20>;
406 + gpio-controller;
407 + #gpio-cells = <2>;
408 + #interrupt-cells = <2>;
409 + interrupts = <25 2>; /* 1st word overwritten by sx1505-1-20-int-gpio parameter
410 + 2nd word is 2 for falling-edge triggered */
411 + status = "okay";
412 + };
413 + };
414 + };
415 +
416 + // Enable a SX1505 on I2C#0 at slave addr 0x21
417 + fragment@18 {
418 + target = <&i2c0>;
419 + __dormant__ {
420 + #address-cells = <1>;
421 + #size-cells = <0>;
422 +
423 + sx1505_0_21: sx150x@21 {
424 + compatible = "semtech,sx1505q";
425 + reg = <0x21>;
426 + gpio-controller;
427 + #gpio-cells = <2>;
428 + #interrupt-cells = <2>;
429 + interrupts = <25 2>; /* 1st word overwritten by sx1505-0-21-int-gpio parameter
430 + 2nd word is 2 for falling-edge triggered */
431 + status = "okay";
432 + };
433 + };
434 + };
435 +
436 + // Enable a SX1505 on I2C#1 at slave addr 0x21
437 + fragment@19 {
438 + target = <&i2c1>;
439 + __dormant__ {
440 + #address-cells = <1>;
441 + #size-cells = <0>;
442 +
443 + sx1505_1_21: sx150x@21 {
444 + compatible = "semtech,sx1505q";
445 + reg = <0x21>;
446 + gpio-controller;
447 + #gpio-cells = <2>;
448 + #interrupt-cells = <2>;
449 + interrupts = <25 2>; /* 1st word overwritten by sx1505-1-21-int-gpio parameter
450 + 2nd word is 2 for falling-edge triggered */
451 + status = "okay";
452 + };
453 + };
454 + };
455 +
456 + // Enable a SX1506 on I2C#0 at slave addr 0x20
457 + fragment@20 {
458 + target = <&i2c0>;
459 + __dormant__ {
460 + #address-cells = <1>;
461 + #size-cells = <0>;
462 +
463 + sx1506_0_20: sx150x@20 {
464 + compatible = "semtech,sx1506q";
465 + reg = <0x20>;
466 + gpio-controller;
467 + #gpio-cells = <2>;
468 + #interrupt-cells = <2>;
469 + interrupts = <25 2>; /* 1st word overwritten by sx1506-0-20-int-gpio parameter
470 + 2nd word is 2 for falling-edge triggered */
471 + status = "okay";
472 + };
473 + };
474 + };
475 +
476 + // Enable a SX1506 on I2C#1 at slave addr 0x20
477 + fragment@21 {
478 + target = <&i2c1>;
479 + __dormant__ {
480 + #address-cells = <1>;
481 + #size-cells = <0>;
482 +
483 + sx1506_1_20: sx150x@20 {
484 + compatible = "semtech,sx1506q";
485 + reg = <0x20>;
486 + gpio-controller;
487 + #gpio-cells = <2>;
488 + #interrupt-cells = <2>;
489 + interrupts = <25 2>; /* 1st word overwritten by sx1506-1-20-int-gpio parameter
490 + 2nd word is 2 for falling-edge triggered */
491 + status = "okay";
492 + };
493 + };
494 + };
495 +
496 + // Enable a SX1507 on I2C#0 at slave addr 0x3E
497 + fragment@22 {
498 + target = <&i2c0>;
499 + __dormant__ {
500 + #address-cells = <1>;
501 + #size-cells = <0>;
502 +
503 + sx1507_0_3E: sx150x@3E {
504 + compatible = "semtech,sx1507q";
505 + reg = <0x3E>;
506 + gpio-controller;
507 + #gpio-cells = <2>;
508 + #interrupt-cells = <2>;
509 + interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3E-int-gpio parameter
510 + 2nd word is 2 for falling-edge triggered */
511 + status = "okay";
512 + };
513 + };
514 + };
515 +
516 + // Enable a SX1507 on I2C#1 at slave addr 0x3E
517 + fragment@23 {
518 + target = <&i2c1>;
519 + __dormant__ {
520 + #address-cells = <1>;
521 + #size-cells = <0>;
522 +
523 + sx1507_1_3E: sx150x@3E {
524 + compatible = "semtech,sx1507q";
525 + reg = <0x3E>;
526 + gpio-controller;
527 + #gpio-cells = <2>;
528 + #interrupt-cells = <2>;
529 + interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3E-int-gpio parameter
530 + 2nd word is 2 for falling-edge triggered */
531 + status = "okay";
532 + };
533 + };
534 + };
535 +
536 + // Enable a SX1507 on I2C#0 at slave addr 0x3F
537 + fragment@24 {
538 + target = <&i2c0>;
539 + __dormant__ {
540 + #address-cells = <1>;
541 + #size-cells = <0>;
542 +
543 + sx1507_0_3F: sx150x@3F {
544 + compatible = "semtech,sx1507q";
545 + reg = <0x3F>;
546 + gpio-controller;
547 + #gpio-cells = <2>;
548 + #interrupt-cells = <2>;
549 + interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3F-int-gpio parameter
550 + 2nd word is 2 for falling-edge triggered */
551 + status = "okay";
552 + };
553 + };
554 + };
555 +
556 + // Enable a SX1507 on I2C#1 at slave addr 0x3F
557 + fragment@25 {
558 + target = <&i2c1>;
559 + __dormant__ {
560 + #address-cells = <1>;
561 + #size-cells = <0>;
562 +
563 + sx1507_1_3F: sx150x@3F {
564 + compatible = "semtech,sx1507q";
565 + reg = <0x3F>;
566 + gpio-controller;
567 + #gpio-cells = <2>;
568 + #interrupt-cells = <2>;
569 + interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3F-int-gpio parameter
570 + 2nd word is 2 for falling-edge triggered */
571 + status = "okay";
572 + };
573 + };
574 + };
575 +
576 + // Enable a SX1507 on I2C#0 at slave addr 0x70
577 + fragment@26 {
578 + target = <&i2c0>;
579 + __dormant__ {
580 + #address-cells = <1>;
581 + #size-cells = <0>;
582 +
583 + sx1507_0_70: sx150x@70 {
584 + compatible = "semtech,sx1507q";
585 + reg = <0x70>;
586 + gpio-controller;
587 + #gpio-cells = <2>;
588 + #interrupt-cells = <2>;
589 + interrupts = <25 2>; /* 1st word overwritten by sx1507-0-70-int-gpio parameter
590 + 2nd word is 2 for falling-edge triggered */
591 + status = "okay";
592 + };
593 + };
594 + };
595 +
596 + // Enable a SX1507 on I2C#1 at slave addr 0x70
597 + fragment@27 {
598 + target = <&i2c1>;
599 + __dormant__ {
600 + #address-cells = <1>;
601 + #size-cells = <0>;
602 +
603 + sx1507_1_70: sx150x@70 {
604 + compatible = "semtech,sx1507q";
605 + reg = <0x70>;
606 + gpio-controller;
607 + #gpio-cells = <2>;
608 + #interrupt-cells = <2>;
609 + interrupts = <25 2>; /* 1st word overwritten by sx1507-1-70-int-gpio parameter
610 + 2nd word is 2 for falling-edge triggered */
611 + status = "okay";
612 + };
613 + };
614 + };
615 +
616 + // Enable a SX1507 on I2C#0 at slave addr 0x71
617 + fragment@28 {
618 + target = <&i2c0>;
619 + __dormant__ {
620 + #address-cells = <1>;
621 + #size-cells = <0>;
622 +
623 + sx1507_0_71: sx150x@71 {
624 + compatible = "semtech,sx1507q";
625 + reg = <0x71>;
626 + gpio-controller;
627 + #gpio-cells = <2>;
628 + #interrupt-cells = <2>;
629 + interrupts = <25 2>; /* 1st word overwritten by sx1507-0-71-int-gpio parameter
630 + 2nd word is 2 for falling-edge triggered */
631 + status = "okay";
632 + };
633 + };
634 + };
635 +
636 + // Enable a SX1507 on I2C#1 at slave addr 0x71
637 + fragment@29 {
638 + target = <&i2c1>;
639 + __dormant__ {
640 + #address-cells = <1>;
641 + #size-cells = <0>;
642 +
643 + sx1507_1_71: sx150x@71 {
644 + compatible = "semtech,sx1507q";
645 + reg = <0x71>;
646 + gpio-controller;
647 + #gpio-cells = <2>;
648 + #interrupt-cells = <2>;
649 + interrupts = <25 2>; /* 1st word overwritten by sx1507-1-71-int-gpio parameter
650 + 2nd word is 2 for falling-edge triggered */
651 + status = "okay";
652 + };
653 + };
654 + };
655 +
656 + // Enable a SX1508 on I2C#0 at slave addr 0x20
657 + fragment@30 {
658 + target = <&i2c0>;
659 + __dormant__ {
660 + #address-cells = <1>;
661 + #size-cells = <0>;
662 +
663 + sx1508_0_20: sx150x@20 {
664 + compatible = "semtech,sx1508q";
665 + reg = <0x20>;
666 + gpio-controller;
667 + #gpio-cells = <2>;
668 + #interrupt-cells = <2>;
669 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-20-int-gpio parameter
670 + 2nd word is 2 for falling-edge triggered */
671 + status = "okay";
672 + };
673 + };
674 + };
675 +
676 + // Enable a SX1508 on I2C#1 at slave addr 0x20
677 + fragment@31 {
678 + target = <&i2c1>;
679 + __dormant__ {
680 + #address-cells = <1>;
681 + #size-cells = <0>;
682 +
683 + sx1508_1_20: sx150x@20 {
684 + compatible = "semtech,sx1508q";
685 + reg = <0x20>;
686 + gpio-controller;
687 + #gpio-cells = <2>;
688 + #interrupt-cells = <2>;
689 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-20-int-gpio parameter
690 + 2nd word is 2 for falling-edge triggered */
691 + status = "okay";
692 + };
693 + };
694 + };
695 +
696 + // Enable a SX1508 on I2C#0 at slave addr 0x21
697 + fragment@32 {
698 + target = <&i2c0>;
699 + __dormant__ {
700 + #address-cells = <1>;
701 + #size-cells = <0>;
702 +
703 + sx1508_0_21: sx150x@21 {
704 + compatible = "semtech,sx1508q";
705 + reg = <0x21>;
706 + gpio-controller;
707 + #gpio-cells = <2>;
708 + #interrupt-cells = <2>;
709 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-21-int-gpio parameter
710 + 2nd word is 2 for falling-edge triggered */
711 + status = "okay";
712 + };
713 + };
714 + };
715 +
716 + // Enable a SX1508 on I2C#1 at slave addr 0x21
717 + fragment@33 {
718 + target = <&i2c1>;
719 + __dormant__ {
720 + #address-cells = <1>;
721 + #size-cells = <0>;
722 +
723 + sx1508_1_21: sx150x@21 {
724 + compatible = "semtech,sx1508q";
725 + reg = <0x21>;
726 + gpio-controller;
727 + #gpio-cells = <2>;
728 + #interrupt-cells = <2>;
729 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-21-int-gpio parameter
730 + 2nd word is 2 for falling-edge triggered */
731 + status = "okay";
732 + };
733 + };
734 + };
735 +
736 + // Enable a SX1508 on I2C#0 at slave addr 0x22
737 + fragment@34 {
738 + target = <&i2c0>;
739 + __dormant__ {
740 + #address-cells = <1>;
741 + #size-cells = <0>;
742 +
743 + sx1508_0_22: sx150x@22 {
744 + compatible = "semtech,sx1508q";
745 + reg = <0x22>;
746 + gpio-controller;
747 + #gpio-cells = <2>;
748 + #interrupt-cells = <2>;
749 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-22-int-gpio parameter
750 + 2nd word is 2 for falling-edge triggered */
751 + status = "okay";
752 + };
753 + };
754 + };
755 +
756 + // Enable a SX1508 on I2C#1 at slave addr 0x22
757 + fragment@35 {
758 + target = <&i2c1>;
759 + __dormant__ {
760 + #address-cells = <1>;
761 + #size-cells = <0>;
762 +
763 + sx1508_1_22: sx150x@22 {
764 + compatible = "semtech,sx1508q";
765 + reg = <0x22>;
766 + gpio-controller;
767 + #gpio-cells = <2>;
768 + #interrupt-cells = <2>;
769 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-22-int-gpio parameter
770 + 2nd word is 2 for falling-edge triggered */
771 + status = "okay";
772 + };
773 + };
774 + };
775 +
776 + // Enable a SX1508 on I2C#0 at slave addr 0x23
777 + fragment@36 {
778 + target = <&i2c0>;
779 + __dormant__ {
780 + #address-cells = <1>;
781 + #size-cells = <0>;
782 +
783 + sx1508_0_23: sx150x@23 {
784 + compatible = "semtech,sx1508q";
785 + reg = <0x23>;
786 + gpio-controller;
787 + #gpio-cells = <2>;
788 + #interrupt-cells = <2>;
789 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-23-int-gpio parameter
790 + 2nd word is 2 for falling-edge triggered */
791 + status = "okay";
792 + };
793 + };
794 + };
795 +
796 + // Enable a SX1508 on I2C#1 at slave addr 0x23
797 + fragment@37 {
798 + target = <&i2c1>;
799 + __dormant__ {
800 + #address-cells = <1>;
801 + #size-cells = <0>;
802 +
803 + sx1508_1_23: sx150x@23 {
804 + compatible = "semtech,sx1508q";
805 + reg = <0x23>;
806 + gpio-controller;
807 + #gpio-cells = <2>;
808 + #interrupt-cells = <2>;
809 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-23-int-gpio parameter
810 + 2nd word is 2 for falling-edge triggered */
811 + status = "okay";
812 + };
813 + };
814 + };
815 +
816 + // Enable a SX1509 on I2C#0 at slave addr 0x3E
817 + fragment@38 {
818 + target = <&i2c0>;
819 + __dormant__ {
820 + #address-cells = <1>;
821 + #size-cells = <0>;
822 +
823 + sx1509_0_3E: sx150x@3E {
824 + compatible = "semtech,sx1509q";
825 + reg = <0x3E>;
826 + gpio-controller;
827 + #gpio-cells = <2>;
828 + #interrupt-cells = <2>;
829 + interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3E-int-gpio parameter
830 + 2nd word is 2 for falling-edge triggered */
831 + status = "okay";
832 + };
833 + };
834 + };
835 +
836 + // Enable a SX1509 on I2C#1 at slave addr 0x3E
837 + fragment@39 {
838 + target = <&i2c1>;
839 + __dormant__ {
840 + #address-cells = <1>;
841 + #size-cells = <0>;
842 +
843 + sx1509_1_3E: sx150x@3E {
844 + compatible = "semtech,sx1509q";
845 + reg = <0x3E>;
846 + gpio-controller;
847 + #gpio-cells = <2>;
848 + #interrupt-cells = <2>;
849 + interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3E-int-gpio parameter
850 + 2nd word is 2 for falling-edge triggered */
851 + status = "okay";
852 + };
853 + };
854 + };
855 +
856 + // Enable a SX1509 on I2C#0 at slave addr 0x3F
857 + fragment@40 {
858 + target = <&i2c0>;
859 + __dormant__ {
860 + #address-cells = <1>;
861 + #size-cells = <0>;
862 +
863 + sx1509_0_3F: sx150x@3F {
864 + compatible = "semtech,sx1509q";
865 + reg = <0x3F>;
866 + gpio-controller;
867 + #gpio-cells = <2>;
868 + #interrupt-cells = <2>;
869 + interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3F-int-gpio parameter
870 + 2nd word is 2 for falling-edge triggered */
871 + status = "okay";
872 + };
873 + };
874 + };
875 +
876 + // Enable a SX1509 on I2C#1 at slave addr 0x3F
877 + fragment@41 {
878 + target = <&i2c1>;
879 + __dormant__ {
880 + #address-cells = <1>;
881 + #size-cells = <0>;
882 +
883 + sx1509_1_3F: sx150x@3F {
884 + compatible = "semtech,sx1509q";
885 + reg = <0x3F>;
886 + gpio-controller;
887 + #gpio-cells = <2>;
888 + #interrupt-cells = <2>;
889 + interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3F-int-gpio parameter
890 + 2nd word is 2 for falling-edge triggered */
891 + status = "okay";
892 + };
893 + };
894 + };
895 +
896 + // Enable a SX1509 on I2C#0 at slave addr 0x70
897 + fragment@42 {
898 + target = <&i2c0>;
899 + __dormant__ {
900 + #address-cells = <1>;
901 + #size-cells = <0>;
902 +
903 + sx1509_0_70: sx150x@70 {
904 + compatible = "semtech,sx1509q";
905 + reg = <0x70>;
906 + gpio-controller;
907 + #gpio-cells = <2>;
908 + #interrupt-cells = <2>;
909 + interrupts = <25 2>; /* 1st word overwritten by sx1509-0-70-int-gpio parameter
910 + 2nd word is 2 for falling-edge triggered */
911 + status = "okay";
912 + };
913 + };
914 + };
915 +
916 + // Enable a SX1509 on I2C#1 at slave addr 0x70
917 + fragment@43 {
918 + target = <&i2c1>;
919 + __dormant__ {
920 + #address-cells = <1>;
921 + #size-cells = <0>;
922 +
923 + sx1509_1_70: sx150x@70 {
924 + compatible = "semtech,sx1509q";
925 + reg = <0x70>;
926 + gpio-controller;
927 + #gpio-cells = <2>;
928 + #interrupt-cells = <2>;
929 + interrupts = <25 2>; /* 1st word overwritten by sx1509-1-70-int-gpio parameter
930 + 2nd word is 2 for falling-edge triggered */
931 + status = "okay";
932 + };
933 + };
934 + };
935 +
936 + // Enable a SX1509 on I2C#0 at slave addr 0x71
937 + fragment@44 {
938 + target = <&i2c0>;
939 + __dormant__ {
940 + #address-cells = <1>;
941 + #size-cells = <0>;
942 +
943 + sx1509_0_71: sx150x@71 {
944 + compatible = "semtech,sx1509q";
945 + reg = <0x71>;
946 + gpio-controller;
947 + #gpio-cells = <2>;
948 + #interrupt-cells = <2>;
949 + interrupts = <25 2>; /* 1st word overwritten by sx1509-0-71-int-gpio parameter
950 + 2nd word is 2 for falling-edge triggered */
951 + status = "okay";
952 + };
953 + };
954 + };
955 +
956 + // Enable a SX1509 on I2C#1 at slave addr 0x71
957 + fragment@45 {
958 + target = <&i2c1>;
959 + __dormant__ {
960 + #address-cells = <1>;
961 + #size-cells = <0>;
962 +
963 + sx1509_1_71: sx150x@71 {
964 + compatible = "semtech,sx1509q";
965 + reg = <0x71>;
966 + gpio-controller;
967 + #gpio-cells = <2>;
968 + #interrupt-cells = <2>;
969 + interrupts = <25 2>; /* 1st word overwritten by sx1509-1-71-int-gpio parameter
970 + 2nd word is 2 for falling-edge triggered */
971 + status = "okay";
972 + };
973 + };
974 + };
975 +
976 + // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x20
977 + fragment@46 {
978 + target = <&sx1501_0_20>;
979 + __dormant__ {
980 + interrupt-parent = <&gpio>;
981 + interrupt-controller;
982 + pinctrl-names = "default";
983 + pinctrl-0 = <&sx150x_0_20_pins>;
984 + };
985 + };
986 +
987 + // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x20
988 + fragment@47 {
989 + target = <&sx1501_1_20>;
990 + __dormant__ {
991 + interrupt-parent = <&gpio>;
992 + interrupt-controller;
993 + pinctrl-names = "default";
994 + pinctrl-0 = <&sx150x_1_20_pins>;
995 + };
996 + };
997 +
998 + // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x21
999 + fragment@48 {
1000 + target = <&sx1501_0_21>;
1001 + __dormant__ {
1002 + interrupt-parent = <&gpio>;
1003 + interrupt-controller;
1004 + pinctrl-names = "default";
1005 + pinctrl-0 = <&sx150x_0_21_pins>;
1006 + };
1007 + };
1008 +
1009 + // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x21
1010 + fragment@49 {
1011 + target = <&sx1501_1_21>;
1012 + __dormant__ {
1013 + interrupt-parent = <&gpio>;
1014 + interrupt-controller;
1015 + pinctrl-names = "default";
1016 + pinctrl-0 = <&sx150x_1_21_pins>;
1017 + };
1018 + };
1019 +
1020 + // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x20
1021 + fragment@50 {
1022 + target = <&sx1502_0_20>;
1023 + __dormant__ {
1024 + interrupt-parent = <&gpio>;
1025 + interrupt-controller;
1026 + pinctrl-names = "default";
1027 + pinctrl-0 = <&sx150x_0_20_pins>;
1028 + };
1029 + };
1030 +
1031 + // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x20
1032 + fragment@51 {
1033 + target = <&sx1502_1_20>;
1034 + __dormant__ {
1035 + interrupt-parent = <&gpio>;
1036 + interrupt-controller;
1037 + pinctrl-names = "default";
1038 + pinctrl-0 = <&sx150x_1_20_pins>;
1039 + };
1040 + };
1041 +
1042 + // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x21
1043 + fragment@52 {
1044 + target = <&sx1502_0_21>;
1045 + __dormant__ {
1046 + interrupt-parent = <&gpio>;
1047 + interrupt-controller;
1048 + pinctrl-names = "default";
1049 + pinctrl-0 = <&sx150x_0_21_pins>;
1050 + };
1051 + };
1052 +
1053 + // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x21
1054 + fragment@53 {
1055 + target = <&sx1502_1_21>;
1056 + __dormant__ {
1057 + interrupt-parent = <&gpio>;
1058 + interrupt-controller;
1059 + pinctrl-names = "default";
1060 + pinctrl-0 = <&sx150x_1_21_pins>;
1061 + };
1062 + };
1063 +
1064 + // Enable interrupts for a SX1503 on I2C#0 at slave addr 0x20
1065 + fragment@54 {
1066 + target = <&sx1503_0_20>;
1067 + __dormant__ {
1068 + interrupt-parent = <&gpio>;
1069 + interrupt-controller;
1070 + pinctrl-names = "default";
1071 + pinctrl-0 = <&sx150x_0_20_pins>;
1072 + };
1073 + };
1074 +
1075 + // Enable interrupts for a SX1503 on I2C#1 at slave addr 0x20
1076 + fragment@55 {
1077 + target = <&sx1503_1_20>;
1078 + __dormant__ {
1079 + interrupt-parent = <&gpio>;
1080 + interrupt-controller;
1081 + pinctrl-names = "default";
1082 + pinctrl-0 = <&sx150x_1_20_pins>;
1083 + };
1084 + };
1085 +
1086 + // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x20
1087 + fragment@56 {
1088 + target = <&sx1504_0_20>;
1089 + __dormant__ {
1090 + interrupt-parent = <&gpio>;
1091 + interrupt-controller;
1092 + pinctrl-names = "default";
1093 + pinctrl-0 = <&sx150x_0_20_pins>;
1094 + };
1095 + };
1096 +
1097 + // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x20
1098 + fragment@57 {
1099 + target = <&sx1504_1_20>;
1100 + __dormant__ {
1101 + interrupt-parent = <&gpio>;
1102 + interrupt-controller;
1103 + pinctrl-names = "default";
1104 + pinctrl-0 = <&sx150x_1_20_pins>;
1105 + };
1106 + };
1107 +
1108 + // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x21
1109 + fragment@58 {
1110 + target = <&sx1504_0_21>;
1111 + __dormant__ {
1112 + interrupt-parent = <&gpio>;
1113 + interrupt-controller;
1114 + pinctrl-names = "default";
1115 + pinctrl-0 = <&sx150x_0_21_pins>;
1116 + };
1117 + };
1118 +
1119 + // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x21
1120 + fragment@59 {
1121 + target = <&sx1504_1_21>;
1122 + __dormant__ {
1123 + interrupt-parent = <&gpio>;
1124 + interrupt-controller;
1125 + pinctrl-names = "default";
1126 + pinctrl-0 = <&sx150x_1_21_pins>;
1127 + };
1128 + };
1129 +
1130 + // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x20
1131 + fragment@60 {
1132 + target = <&sx1505_0_20>;
1133 + __dormant__ {
1134 + interrupt-parent = <&gpio>;
1135 + interrupt-controller;
1136 + pinctrl-names = "default";
1137 + pinctrl-0 = <&sx150x_0_20_pins>;
1138 + };
1139 + };
1140 +
1141 + // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x20
1142 + fragment@61 {
1143 + target = <&sx1505_1_20>;
1144 + __dormant__ {
1145 + interrupt-parent = <&gpio>;
1146 + interrupt-controller;
1147 + pinctrl-names = "default";
1148 + pinctrl-0 = <&sx150x_1_20_pins>;
1149 + };
1150 + };
1151 +
1152 + // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x21
1153 + fragment@62 {
1154 + target = <&sx1505_0_21>;
1155 + __dormant__ {
1156 + interrupt-parent = <&gpio>;
1157 + interrupt-controller;
1158 + pinctrl-names = "default";
1159 + pinctrl-0 = <&sx150x_0_21_pins>;
1160 + };
1161 + };
1162 +
1163 + // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x21
1164 + fragment@63 {
1165 + target = <&sx1505_1_21>;
1166 + __dormant__ {
1167 + interrupt-parent = <&gpio>;
1168 + interrupt-controller;
1169 + pinctrl-names = "default";
1170 + pinctrl-0 = <&sx150x_1_21_pins>;
1171 + };
1172 + };
1173 +
1174 + // Enable interrupts for a SX1506 on I2C#0 at slave addr 0x20
1175 + fragment@64 {
1176 + target = <&sx1506_0_20>;
1177 + __dormant__ {
1178 + interrupt-parent = <&gpio>;
1179 + interrupt-controller;
1180 + pinctrl-names = "default";
1181 + pinctrl-0 = <&sx150x_0_20_pins>;
1182 + };
1183 + };
1184 +
1185 + // Enable interrupts for a SX1506 on I2C#1 at slave addr 0x20
1186 + fragment@65 {
1187 + target = <&sx1506_1_20>;
1188 + __dormant__ {
1189 + interrupt-parent = <&gpio>;
1190 + interrupt-controller;
1191 + pinctrl-names = "default";
1192 + pinctrl-0 = <&sx150x_1_20_pins>;
1193 + };
1194 + };
1195 +
1196 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3E
1197 + fragment@66 {
1198 + target = <&sx1507_0_3E>;
1199 + __dormant__ {
1200 + interrupt-parent = <&gpio>;
1201 + interrupt-controller;
1202 + pinctrl-names = "default";
1203 + pinctrl-0 = <&sx150x_0_3E_pins>;
1204 + };
1205 + };
1206 +
1207 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3E
1208 + fragment@67 {
1209 + target = <&sx1507_1_3E>;
1210 + __dormant__ {
1211 + interrupt-parent = <&gpio>;
1212 + interrupt-controller;
1213 + pinctrl-names = "default";
1214 + pinctrl-0 = <&sx150x_1_3E_pins>;
1215 + };
1216 + };
1217 +
1218 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3F
1219 + fragment@68 {
1220 + target = <&sx1507_0_3F>;
1221 + __dormant__ {
1222 + interrupt-parent = <&gpio>;
1223 + interrupt-controller;
1224 + pinctrl-names = "default";
1225 + pinctrl-0 = <&sx150x_0_3F_pins>;
1226 + };
1227 + };
1228 +
1229 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3F
1230 + fragment@69 {
1231 + target = <&sx1507_1_3F>;
1232 + __dormant__ {
1233 + interrupt-parent = <&gpio>;
1234 + interrupt-controller;
1235 + pinctrl-names = "default";
1236 + pinctrl-0 = <&sx150x_1_3F_pins>;
1237 + };
1238 + };
1239 +
1240 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x70
1241 + fragment@70 {
1242 + target = <&sx1507_0_70>;
1243 + __dormant__ {
1244 + interrupt-parent = <&gpio>;
1245 + interrupt-controller;
1246 + pinctrl-names = "default";
1247 + pinctrl-0 = <&sx150x_1_70_pins>;
1248 + };
1249 + };
1250 +
1251 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x70
1252 + fragment@71 {
1253 + target = <&sx1507_1_70>;
1254 + __dormant__ {
1255 + interrupt-parent = <&gpio>;
1256 + interrupt-controller;
1257 + pinctrl-names = "default";
1258 + pinctrl-0 = <&sx150x_1_70_pins>;
1259 + };
1260 + };
1261 +
1262 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x71
1263 + fragment@72 {
1264 + target = <&sx1507_0_71>;
1265 + __dormant__ {
1266 + interrupt-parent = <&gpio>;
1267 + interrupt-controller;
1268 + pinctrl-names = "default";
1269 + pinctrl-0 = <&sx150x_0_71_pins>;
1270 + };
1271 + };
1272 +
1273 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x71
1274 + fragment@73 {
1275 + target = <&sx1507_1_71>;
1276 + __dormant__ {
1277 + interrupt-parent = <&gpio>;
1278 + interrupt-controller;
1279 + pinctrl-names = "default";
1280 + pinctrl-0 = <&sx150x_1_71_pins>;
1281 + };
1282 + };
1283 +
1284 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x20
1285 + fragment@74 {
1286 + target = <&sx1508_0_20>;
1287 + __dormant__ {
1288 + interrupt-parent = <&gpio>;
1289 + interrupt-controller;
1290 + pinctrl-names = "default";
1291 + pinctrl-0 = <&sx150x_0_20_pins>;
1292 + };
1293 + };
1294 +
1295 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x20
1296 + fragment@75 {
1297 + target = <&sx1508_1_20>;
1298 + __dormant__ {
1299 + interrupt-parent = <&gpio>;
1300 + interrupt-controller;
1301 + pinctrl-names = "default";
1302 + pinctrl-0 = <&sx150x_1_20_pins>;
1303 + };
1304 + };
1305 +
1306 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x21
1307 + fragment@76 {
1308 + target = <&sx1508_0_21>;
1309 + __dormant__ {
1310 + interrupt-parent = <&gpio>;
1311 + interrupt-controller;
1312 + pinctrl-names = "default";
1313 + pinctrl-0 = <&sx150x_0_21_pins>;
1314 + };
1315 + };
1316 +
1317 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x21
1318 + fragment@77 {
1319 + target = <&sx1508_1_21>;
1320 + __dormant__ {
1321 + interrupt-parent = <&gpio>;
1322 + interrupt-controller;
1323 + pinctrl-names = "default";
1324 + pinctrl-0 = <&sx150x_1_21_pins>;
1325 + };
1326 + };
1327 +
1328 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x22
1329 + fragment@78 {
1330 + target = <&sx1508_0_22>;
1331 + __dormant__ {
1332 + interrupt-parent = <&gpio>;
1333 + interrupt-controller;
1334 + pinctrl-names = "default";
1335 + pinctrl-0 = <&sx150x_0_22_pins>;
1336 + };
1337 + };
1338 +
1339 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x22
1340 + fragment@79 {
1341 + target = <&sx1508_1_22>;
1342 + __dormant__ {
1343 + interrupt-parent = <&gpio>;
1344 + interrupt-controller;
1345 + pinctrl-names = "default";
1346 + pinctrl-0 = <&sx150x_1_22_pins>;
1347 + };
1348 + };
1349 +
1350 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x23
1351 + fragment@80 {
1352 + target = <&sx1508_0_23>;
1353 + __dormant__ {
1354 + interrupt-parent = <&gpio>;
1355 + interrupt-controller;
1356 + pinctrl-names = "default";
1357 + pinctrl-0 = <&sx150x_0_23_pins>;
1358 + };
1359 + };
1360 +
1361 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x23
1362 + fragment@81 {
1363 + target = <&sx1508_1_23>;
1364 + __dormant__ {
1365 + interrupt-parent = <&gpio>;
1366 + interrupt-controller;
1367 + pinctrl-names = "default";
1368 + pinctrl-0 = <&sx150x_1_23_pins>;
1369 + };
1370 + };
1371 +
1372 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3E
1373 + fragment@82 {
1374 + target = <&sx1509_0_3E>;
1375 + __dormant__ {
1376 + interrupt-parent = <&gpio>;
1377 + interrupt-controller;
1378 + pinctrl-names = "default";
1379 + pinctrl-0 = <&sx150x_0_3E_pins>;
1380 + };
1381 + };
1382 +
1383 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3E
1384 + fragment@83 {
1385 + target = <&sx1509_1_3E>;
1386 + __dormant__ {
1387 + interrupt-parent = <&gpio>;
1388 + interrupt-controller;
1389 + pinctrl-names = "default";
1390 + pinctrl-0 = <&sx150x_1_3E_pins>;
1391 + };
1392 + };
1393 +
1394 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3F
1395 + fragment@84 {
1396 + target = <&sx1509_0_3F>;
1397 + __dormant__ {
1398 + interrupt-parent = <&gpio>;
1399 + interrupt-controller;
1400 + pinctrl-names = "default";
1401 + pinctrl-0 = <&sx150x_0_3F_pins>;
1402 + };
1403 + };
1404 +
1405 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3F
1406 + fragment@85 {
1407 + target = <&sx1509_1_3F>;
1408 + __dormant__ {
1409 + interrupt-parent = <&gpio>;
1410 + interrupt-controller;
1411 + pinctrl-names = "default";
1412 + pinctrl-0 = <&sx150x_1_3F_pins>;
1413 + };
1414 + };
1415 +
1416 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x70
1417 + fragment@86 {
1418 + target = <&sx1509_0_70>;
1419 + __dormant__ {
1420 + interrupt-parent = <&gpio>;
1421 + interrupt-controller;
1422 + pinctrl-names = "default";
1423 + pinctrl-0 = <&sx150x_0_70_pins>;
1424 + };
1425 + };
1426 +
1427 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x70
1428 + fragment@87 {
1429 + target = <&sx1509_1_70>;
1430 + __dormant__ {
1431 + interrupt-parent = <&gpio>;
1432 + interrupt-controller;
1433 + pinctrl-names = "default";
1434 + pinctrl-0 = <&sx150x_1_70_pins>;
1435 + };
1436 + };
1437 +
1438 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x71
1439 + fragment@88 {
1440 + target = <&sx1509_0_71>;
1441 + __dormant__ {
1442 + interrupt-parent = <&gpio>;
1443 + interrupt-controller;
1444 + pinctrl-names = "default";
1445 + pinctrl-0 = <&sx150x_0_71_pins>;
1446 + };
1447 + };
1448 +
1449 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x71
1450 + fragment@89 {
1451 + target = <&sx1509_1_71>;
1452 + __dormant__ {
1453 + interrupt-parent = <&gpio>;
1454 + interrupt-controller;
1455 + pinctrl-names = "default";
1456 + pinctrl-0 = <&sx150x_1_71_pins>;
1457 + };
1458 + };
1459 +
1460 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x20
1461 + // Configure as a input with no pull-up/down
1462 + fragment@90 {
1463 + target = <&gpio>;
1464 + __dormant__ {
1465 + sx150x_0_20_pins: sx150x_0_20_pins {
1466 + brcm,pins = <0>; /* overwritten by sx150x-0-20-int-gpio parameter */
1467 + brcm,function = <0>;
1468 + brcm,pull = <0>;
1469 + };
1470 + };
1471 + };
1472 +
1473 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x20
1474 + // Configure as a input with no pull-up/down
1475 + fragment@91 {
1476 + target = <&gpio>;
1477 + __dormant__ {
1478 + sx150x_1_20_pins: sx150x_1_20_pins {
1479 + brcm,pins = <0>; /* overwritten by sx150x-1-20-int-gpio parameter */
1480 + brcm,function = <0>;
1481 + brcm,pull = <0>;
1482 + };
1483 + };
1484 + };
1485 +
1486 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x21
1487 + // Configure as a input with no pull-up/down
1488 + fragment@92 {
1489 + target = <&gpio>;
1490 + __dormant__ {
1491 + sx150x_0_21_pins: sx150x_0_21_pins {
1492 + brcm,pins = <0>; /* overwritten by sx150x-0-21-int-gpio parameter */
1493 + brcm,function = <0>;
1494 + brcm,pull = <0>;
1495 + };
1496 + };
1497 + };
1498 +
1499 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x21
1500 + // Configure as a input with no pull-up/down
1501 + fragment@93 {
1502 + target = <&gpio>;
1503 + __dormant__ {
1504 + sx150x_1_21_pins: sx150x_1_21_pins {
1505 + brcm,pins = <0>; /* overwritten by sx150x-1-21-int-gpio parameter */
1506 + brcm,function = <0>;
1507 + brcm,pull = <0>;
1508 + };
1509 + };
1510 + };
1511 +
1512 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x22
1513 + // Configure as a input with no pull-up/down
1514 + fragment@94 {
1515 + target = <&gpio>;
1516 + __dormant__ {
1517 + sx150x_0_22_pins: sx150x_0_22_pins {
1518 + brcm,pins = <0>; /* overwritten by sx150x-0-22-int-gpio parameter */
1519 + brcm,function = <0>;
1520 + brcm,pull = <0>;
1521 + };
1522 + };
1523 + };
1524 +
1525 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x22
1526 + // Configure as a input with no pull-up/down
1527 + fragment@95 {
1528 + target = <&gpio>;
1529 + __dormant__ {
1530 + sx150x_1_22_pins: sx150x_1_22_pins {
1531 + brcm,pins = <0>; /* overwritten by sx150x-1-22-int-gpio parameter */
1532 + brcm,function = <0>;
1533 + brcm,pull = <0>;
1534 + };
1535 + };
1536 + };
1537 +
1538 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x23
1539 + // Configure as a input with no pull-up/down
1540 + fragment@96 {
1541 + target = <&gpio>;
1542 + __dormant__ {
1543 + sx150x_0_23_pins: sx150x_0_23_pins {
1544 + brcm,pins = <0>; /* overwritten by sx150x-0-23-int-gpio parameter */
1545 + brcm,function = <0>;
1546 + brcm,pull = <0>;
1547 + };
1548 + };
1549 + };
1550 +
1551 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x23
1552 + // Configure as a input with no pull-up/down
1553 + fragment@97 {
1554 + target = <&gpio>;
1555 + __dormant__ {
1556 + sx150x_1_23_pins: sx150x_1_23_pins {
1557 + brcm,pins = <0>; /* overwritten by sx150x-1-23-int-gpio parameter */
1558 + brcm,function = <0>;
1559 + brcm,pull = <0>;
1560 + };
1561 + };
1562 + };
1563 +
1564 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3E
1565 + // Configure as a input with no pull-up/down
1566 + fragment@98 {
1567 + target = <&gpio>;
1568 + __dormant__ {
1569 + sx150x_0_3E_pins: sx150x_0_3E_pins {
1570 + brcm,pins = <0>; /* overwritten by sx150x-0-3E-int-gpio parameter */
1571 + brcm,function = <0>;
1572 + brcm,pull = <0>;
1573 + };
1574 + };
1575 + };
1576 +
1577 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3E
1578 + // Configure as a input with no pull-up/down
1579 + fragment@99 {
1580 + target = <&gpio>;
1581 + __dormant__ {
1582 + sx150x_1_3E_pins: sx150x_1_3E_pins {
1583 + brcm,pins = <0>; /* overwritten by sx150x-1-3E-int-gpio parameter */
1584 + brcm,function = <0>;
1585 + brcm,pull = <0>;
1586 + };
1587 + };
1588 + };
1589 +
1590 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3F
1591 + // Configure as a input with no pull-up/down
1592 + fragment@100 {
1593 + target = <&gpio>;
1594 + __dormant__ {
1595 + sx150x_0_3F_pins: sx150x_0_3F_pins {
1596 + brcm,pins = <0>; /* overwritten by sx150x-0-3F-int-gpio parameter */
1597 + brcm,function = <0>;
1598 + brcm,pull = <0>;
1599 + };
1600 + };
1601 + };
1602 +
1603 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3F
1604 + // Configure as a input with no pull-up/down
1605 + fragment@101 {
1606 + target = <&gpio>;
1607 + __dormant__ {
1608 + sx150x_1_3F_pins: sx150x_1_3F_pins {
1609 + brcm,pins = <0>; /* overwritten by sx150x-1-3F-int-gpio parameter */
1610 + brcm,function = <0>;
1611 + brcm,pull = <0>;
1612 + };
1613 + };
1614 + };
1615 +
1616 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x70
1617 + // Configure as a input with no pull-up/down
1618 + fragment@102 {
1619 + target = <&gpio>;
1620 + __dormant__ {
1621 + sx150x_0_70_pins: sx150x_0_70_pins {
1622 + brcm,pins = <0>; /* overwritten by sx150x-0-70-int-gpio parameter */
1623 + brcm,function = <0>;
1624 + brcm,pull = <0>;
1625 + };
1626 + };
1627 + };
1628 +
1629 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x70
1630 + // Configure as a input with no pull-up/down
1631 + fragment@103 {
1632 + target = <&gpio>;
1633 + __dormant__ {
1634 + sx150x_1_70_pins: sx150x_1_70_pins {
1635 + brcm,pins = <0>; /* overwritten by sx150x-1-70-int-gpio parameter */
1636 + brcm,function = <0>;
1637 + brcm,pull = <0>;
1638 + };
1639 + };
1640 + };
1641 +
1642 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x71
1643 + // Configure as a input with no pull-up/down
1644 + fragment@104 {
1645 + target = <&gpio>;
1646 + __dormant__ {
1647 + sx150x_0_71_pins: sx150x_0_71_pins {
1648 + brcm,pins = <0>; /* overwritten by sx150x-0-71-int-gpio parameter */
1649 + brcm,function = <0>;
1650 + brcm,pull = <0>;
1651 + };
1652 + };
1653 + };
1654 +
1655 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x71
1656 + // Configure as a input with no pull-up/down
1657 + fragment@105 {
1658 + target = <&gpio>;
1659 + __dormant__ {
1660 + sx150x_1_71_pins: sx150x_1_71_pins {
1661 + brcm,pins = <0>; /* overwritten by sx150x-1-71-int-gpio parameter */
1662 + brcm,function = <0>;
1663 + brcm,pull = <0>;
1664 + };
1665 + };
1666 + };
1667 +
1668 + __overrides__ {
1669 + sx1501-0-20 = <0>,"+0+2";
1670 + sx1501-1-20 = <0>,"+1+3";
1671 + sx1501-0-21 = <0>,"+0+4";
1672 + sx1501-1-21 = <0>,"+1+5";
1673 + sx1502-0-20 = <0>,"+0+6";
1674 + sx1502-1-20 = <0>,"+1+7";
1675 + sx1502-0-21 = <0>,"+0+8";
1676 + sx1502-1-21 = <0>,"+1+9";
1677 + sx1503-0-20 = <0>,"+0+10";
1678 + sx1503-1-20 = <0>,"+1+11";
1679 + sx1504-0-20 = <0>,"+0+12";
1680 + sx1504-1-20 = <0>,"+1+13";
1681 + sx1504-0-21 = <0>,"+0+14";
1682 + sx1504-1-21 = <0>,"+1+15";
1683 + sx1505-0-20 = <0>,"+0+16";
1684 + sx1505-1-20 = <0>,"+1+17";
1685 + sx1505-0-21 = <0>,"+0+18";
1686 + sx1505-1-21 = <0>,"+1+19";
1687 + sx1506-0-20 = <0>,"+0+20";
1688 + sx1506-1-20 = <0>,"+1+21";
1689 + sx1507-0-3E = <0>,"+0+22";
1690 + sx1507-1-3E = <0>,"+1+23";
1691 + sx1507-0-3F = <0>,"+0+24";
1692 + sx1507-1-3F = <0>,"+1+25";
1693 + sx1507-0-70 = <0>,"+0+26";
1694 + sx1507-1-70 = <0>,"+1+27";
1695 + sx1507-0-71 = <0>,"+0+28";
1696 + sx1507-1-71 = <0>,"+1+29";
1697 + sx1508-0-20 = <0>,"+0+30";
1698 + sx1508-1-20 = <0>,"+1+31";
1699 + sx1508-0-21 = <0>,"+0+32";
1700 + sx1508-1-21 = <0>,"+1+33";
1701 + sx1508-0-22 = <0>,"+0+34";
1702 + sx1508-1-22 = <0>,"+1+35";
1703 + sx1508-0-23 = <0>,"+0+36";
1704 + sx1508-1-23 = <0>,"+1+37";
1705 + sx1509-0-3E = <0>,"+0+38";
1706 + sx1509-1-3E = <0>,"+1+39";
1707 + sx1509-0-3F = <0>,"+0+40";
1708 + sx1509-1-3F = <0>,"+1+41";
1709 + sx1509-0-70 = <0>,"+0+42";
1710 + sx1509-1-70 = <0>,"+1+43";
1711 + sx1509-0-71 = <0>,"+0+44";
1712 + sx1509-1-71 = <0>,"+1+45";
1713 + sx1501-0-20-int-gpio = <0>,"+46+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1501_0_20>,"interrupts:0";
1714 + sx1501-1-20-int-gpio = <0>,"+47+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1501_1_20>,"interrupts:0";
1715 + sx1501-0-21-int-gpio = <0>,"+48+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1501_0_21>,"interrupts:0";
1716 + sx1501-1-21-int-gpio = <0>,"+49+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1501_1_21>,"interrupts:0";
1717 + sx1502-0-20-int-gpio = <0>,"+50+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1502_0_20>,"interrupts:0";
1718 + sx1502-1-20-int-gpio = <0>,"+51+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1502_1_20>,"interrupts:0";
1719 + sx1502-0-21-int-gpio = <0>,"+52+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1502_0_21>,"interrupts:0";
1720 + sx1502-1-21-int-gpio = <0>,"+53+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1502_1_21>,"interrupts:0";
1721 + sx1503-0-20-int-gpio = <0>,"+54+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1503_0_20>,"interrupts:0";
1722 + sx1503-1-20-int-gpio = <0>,"+55+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1503_1_20>,"interrupts:0";
1723 + sx1504-0-20-int-gpio = <0>,"+56+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1504_0_20>,"interrupts:0";
1724 + sx1504-1-20-int-gpio = <0>,"+57+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1504_1_20>,"interrupts:0";
1725 + sx1504-0-21-int-gpio = <0>,"+58+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1504_0_21>,"interrupts:0";
1726 + sx1504-1-21-int-gpio = <0>,"+59+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1504_1_21>,"interrupts:0";
1727 + sx1505-0-20-int-gpio = <0>,"+60+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1505_0_20>,"interrupts:0";
1728 + sx1505-1-20-int-gpio = <0>,"+61+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1505_1_20>,"interrupts:0";
1729 + sx1505-0-21-int-gpio = <0>,"+62+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1505_0_21>,"interrupts:0";
1730 + sx1505-1-21-int-gpio = <0>,"+63+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1505_1_21>,"interrupts:0";
1731 + sx1506-0-20-int-gpio = <0>,"+64+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1506_0_20>,"interrupts:0";
1732 + sx1506-1-20-int-gpio = <0>,"+65+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1506_1_20>,"interrupts:0";
1733 + sx1507-0-3E-int-gpio = <0>,"+66+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1507_0_3E>,"interrupts:0";
1734 + sx1507-1-3E-int-gpio = <0>,"+67+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1507_1_3E>,"interrupts:0";
1735 + sx1507-0-3F-int-gpio = <0>,"+68+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1507_0_3F>,"interrupts:0";
1736 + sx1507-1-3F-int-gpio = <0>,"+69+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1507_1_3F>,"interrupts:0";
1737 + sx1507-0-70-int-gpio = <0>,"+60+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1507_0_70>,"interrupts:0";
1738 + sx1507-1-70-int-gpio = <0>,"+71+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1507_1_70>,"interrupts:0";
1739 + sx1507-0-71-int-gpio = <0>,"+72+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1507_0_71>,"interrupts:0";
1740 + sx1507-1-71-int-gpio = <0>,"+73+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1507_1_71>,"interrupts:0";
1741 + sx1508-0-20-int-gpio = <0>,"+74+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1508_0_20>,"interrupts:0";
1742 + sx1508-1-20-int-gpio = <0>,"+75+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1508_1_20>,"interrupts:0";
1743 + sx1508-0-21-int-gpio = <0>,"+76+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1508_0_21>,"interrupts:0";
1744 + sx1508-1-21-int-gpio = <0>,"+77+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1508_1_21>,"interrupts:0";
1745 + sx1508-0-22-int-gpio = <0>,"+78+94", <&sx150x_0_22_pins>,"brcm,pins:0", <&sx1508_0_22>,"interrupts:0";
1746 + sx1508-1-22-int-gpio = <0>,"+79+95", <&sx150x_1_22_pins>,"brcm,pins:0", <&sx1508_1_22>,"interrupts:0";
1747 + sx1508-0-23-int-gpio = <0>,"+80+96", <&sx150x_0_23_pins>,"brcm,pins:0", <&sx1508_0_23>,"interrupts:0";
1748 + sx1508-1-23-int-gpio = <0>,"+81+97", <&sx150x_1_23_pins>,"brcm,pins:0", <&sx1508_1_23>,"interrupts:0";
1749 + sx1509-0-3E-int-gpio = <0>,"+82+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1509_0_3E>,"interrupts:0";
1750 + sx1509-1-3E-int-gpio = <0>,"+83+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1509_1_3E>,"interrupts:0";
1751 + sx1509-0-3F-int-gpio = <0>,"+84+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1509_0_3F>,"interrupts:0";
1752 + sx1509-1-3F-int-gpio = <0>,"+85+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1509_1_3F>,"interrupts:0";
1753 + sx1509-0-70-int-gpio = <0>,"+86+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1509_0_70>,"interrupts:0";
1754 + sx1509-1-70-int-gpio = <0>,"+87+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1509_1_70>,"interrupts:0";
1755 + sx1509-0-71-int-gpio = <0>,"+88+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1509_0_71>,"interrupts:0";
1756 + sx1509-1-71-int-gpio = <0>,"+89+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1509_1_71>,"interrupts:0";
1757 + };
1758 +};
1759 +