diff options
author | Stijn Tintel <stijn@linux-ipv6.be> | 2018-11-10 13:03:18 +0200 |
---|---|---|
committer | Stijn Tintel <stijn@linux-ipv6.be> | 2018-12-18 23:19:21 +0200 |
commit | f5919b65d4c671fd5083838c7a445f319f9a13c8 (patch) | |
tree | 2c791d2a5dea5bbbb0b85f86f74afce2647c0726 /target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch | |
parent | 822b4c3b250a254e74407056ccfd5c6aa38da162 (diff) | |
download | upstream-f5919b65d4c671fd5083838c7a445f319f9a13c8.tar.gz upstream-f5919b65d4c671fd5083838c7a445f319f9a13c8.tar.bz2 upstream-f5919b65d4c671fd5083838c7a445f319f9a13c8.zip |
brcm2708: add kernel 4.14 support
Patch generation process:
- rebase rpi/rpi-4.14.y on v4.14.89 from linux-stable
- git format-patch v4.14.89
Patches skipped during rebase:
- lan78xx: Read MAC address from DT if present
- lan78xx: Enable LEDs and auto-negotiation
- Revert "softirq: Let ksoftirqd do its job"
- sc16is7xx: Fix for multi-channel stall
- lan78xx: Ignore DT MAC address if already valid
- lan78xx: Simple patch to prevent some crashes
- tcp_write_queue_purge clears all the SKBs in the write queue
- Revert "lan78xx: Simple patch to prevent some crashes"
- lan78xx: Connect phy early
- Arm: mm: ftrace: Only set text back to ro after kernel has been marked ro
- Revert "Revert "softirq: Let ksoftirqd do its job""
- ASoC: cs4265: SOC_SINGLE register value error fix
- Revert "ASoC: cs4265: SOC_SINGLE register value error fix"
- Revert "net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends"
- Revert "Revert "net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends""
Patches dropped after rebase:
- net: Add non-mainline source for rtl8192cu wlan
- net: Fix rtl8192cu build errors on other platforms
- brcm: adds support for BCM43341 wifi
- brcmfmac: Mute expected startup 'errors'
- ARM64: Fix build break for RTL8187/RTL8192CU wifi
- ARM64: Enable RTL8187/RTL8192CU wifi in build config
- This is the driver for Sony CXD2880 DVB-T2/T tuner + demodulator
- brcmfmac: add CLM download support
- brcmfmac: request_firmware_direct is quieter
- Sets the BCDC priority to constant 0
- brcmfmac: Disable ARP offloading when promiscuous
- brcmfmac: Avoid possible out-of-bounds read
- brcmfmac: Delete redundant length check
- net: rtl8192cu: Normalize indentation
- net: rtl8192cu: Fix implicit fallthrough warnings
- Revert "Sets the BCDC priority to constant 0"
- media: cxd2880: Bump to match 4.18.y version
- media: cxd2880-spi: Bump to match 4.18.y version
- Revert "mm: alloc_contig: re-allow CMA to compact FS pages"
- Revert "Revert "mm: alloc_contig: re-allow CMA to compact FS pages""
- cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with
MEDIA_SUBDRV_AUTOSELECT
- 950-0421-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch
- 950-0453-Add-hid-bigbenff-to-list-of-have_special_driver-for-.patch
Make I2C built-in instead of modular as in upstream defconfig; also the
easiest way to get MFD_ARIZONA enabled, which is required by
kmod-sound-soc-rpi-cirrus.
Add missing compatible strings from
4.9/960-add-rasbperrypi-compatible.patch, using upstream names for
compute modules.
Add extra patch to enable the LEDs on lan78xx.
Compile-tested: bcm2708, bcm2709, bcm2710 (with CONFIG_ALL_KMODS=y)
Runtime-tested: bcm2708, bcm2710
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch | 1759 |
1 files changed, 1759 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch b/target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch new file mode 100644 index 0000000000..d66a88b768 --- /dev/null +++ b/target/linux/brcm2708/patches-4.14/950-0260-Add-overlay-for-Semtech-SX150X-I2C-GPIO-Expanders.patch @@ -0,0 +1,1759 @@ +From 0b2881369a38b0a139ae4a256ea1953750fb6a76 Mon Sep 17 00:00:00 2001 +From: wavelet2 <a3d35232@btinternet.com> +Date: Thu, 22 Mar 2018 19:08:02 +0000 +Subject: [PATCH 260/454] Add overlay for Semtech SX150X I2C GPIO Expanders + +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 19 + + arch/arm/boot/dts/overlays/sx150x-overlay.dts | 1706 +++++++++++++++++ + 3 files changed, 1726 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/sx150x-overlay.dts + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -120,6 +120,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + spi2-2cs.dtbo \ + spi2-3cs.dtbo \ + superaudioboard.dtbo \ ++ sx150x.dtbo \ + tinylcd35.dtbo \ + uart0.dtbo \ + uart1.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1703,6 +1703,25 @@ Load: dtoverlay=superaudioboard,<param + Params: gpiopin GPIO pin for codec reset + + ++Name: sx150x ++Info: Configures the Semtech SX150X I2C GPIO expanders. ++Load: dtoverlay=sx150x,<param>=<val> ++Params: sx150<x>-<n>-<m> Enables SX150X device on I2C#<n> with slave ++ address <m>. <x> may be 1-9. <n> may be 0 or 1. ++ Permissible values of <m> (which is denoted in ++ hex) depend on the device variant. For SX1501, ++ SX1502, SX1504 and SX1505, <m> may be 20 or 21. ++ For SX1503 and SX1506, <m> may be 20. For ++ SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71. ++ For SX1508, <m> may be 20, 21, 22 or 23. ++ ++ sx150<x>-<n>-<m>-int-gpio ++ Integer, enables interrupts on SX150X device on ++ I2C#<n> with slave address <m>, specifies ++ the GPIO pin to which NINT output of SX150X is ++ connected. ++ ++ + Name: tinylcd35 + Info: 3.5" Color TFT Display by www.tinylcd.com + Options: Touch, RTC, keypad +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/sx150x-overlay.dts +@@ -0,0 +1,1706 @@ ++// Definitions for SX150x I2C GPIO Expanders from Semtech ++ ++// dtparams: ++// sx150<x>-<n>-<m> - Enables SX150X device on I2C#<n> with slave address <m>. <x> may be 1-9. ++// <n> may be 0 or 1. Permissible values of <m> (which is denoted in hex) ++// depend on the device variant. ++// For SX1501, SX1502, SX1504 and SX1505, <m> may be 20 or 21. ++// For SX1503 and SX1506, <m> may be 20. ++// For SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71. ++// For SX1508, <m> may be 20, 21, 22 or 23. ++// sx150<x>-<n>-<m>-int-gpio - Integer, enables interrupts on SX150X device on I2C#<n> with slave address <m>, ++// specifies the GPIO pin to which NINT output of SX150X is connected. ++// ++// ++// Example 1: A single SX1505 device on I2C#1 with its slave address set to 0x20 and NINT output connected to GPIO25: ++// dtoverlay=sx150x:sx1505-1-20,sx1505-1-20-int-gpio=25 ++// ++// Example 2: Two SX1507 devices on I2C#0 with their slave addresses set to 0x3E and 0x70 (interrupts not used): ++// dtoverlay=sx150x:sx1507-0-3E,sx1507-0-70 ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; ++ ++ // Enable I2C#0 interface ++ fragment@0 { ++ target = <&i2c0>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ // Enable I2C#1 interface ++ fragment@1 { ++ target = <&i2c1>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ // Enable a SX1501 on I2C#0 at slave addr 0x20 ++ fragment@2 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1501_0_20: sx150x@20 { ++ compatible = "semtech,sx1501q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1501-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1501 on I2C#1 at slave addr 0x20 ++ fragment@3 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1501_1_20: sx150x@20 { ++ compatible = "semtech,sx1501q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1501-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1501 on I2C#0 at slave addr 0x21 ++ fragment@4 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1501_0_21: sx150x@21 { ++ compatible = "semtech,sx1501q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1501-0-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1501 on I2C#1 at slave addr 0x21 ++ fragment@5 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1501_1_21: sx150x@21 { ++ compatible = "semtech,sx1501q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1502 on I2C#0 at slave addr 0x20 ++ fragment@6 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1502_0_20: sx150x@20 { ++ compatible = "semtech,sx1502q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1502-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1502 on I2C#1 at slave addr 0x20 ++ fragment@7 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1502_1_20: sx150x@20 { ++ compatible = "semtech,sx1502q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1502-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1502 on I2C#0 at slave addr 0x21 ++ fragment@8 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1502_0_21: sx150x@21 { ++ compatible = "semtech,sx1502q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1502-0-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1502 on I2C#1 at slave addr 0x21 ++ fragment@9 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1502_1_21: sx150x@21 { ++ compatible = "semtech,sx1502q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1503 on I2C#0 at slave addr 0x20 ++ fragment@10 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1503_0_20: sx150x@20 { ++ compatible = "semtech,sx1503q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1503-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1503 on I2C#1 at slave addr 0x20 ++ fragment@11 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1503_1_20: sx150x@20 { ++ compatible = "semtech,sx1503q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1503-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1504 on I2C#0 at slave addr 0x20 ++ fragment@12 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1504_0_20: sx150x@20 { ++ compatible = "semtech,sx1504q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1504-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1504 on I2C#1 at slave addr 0x20 ++ fragment@13 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1504_1_20: sx150x@20 { ++ compatible = "semtech,sx1504q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1504 on I2C#0 at slave addr 0x21 ++ fragment@14 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1504_0_21: sx150x@21 { ++ compatible = "semtech,sx1504q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1504-0-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1504 on I2C#1 at slave addr 0x21 ++ fragment@15 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1504_1_21: sx150x@21 { ++ compatible = "semtech,sx1504q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1505 on I2C#0 at slave addr 0x20 ++ fragment@16 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1505_0_20: sx150x@20 { ++ compatible = "semtech,sx1505q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1505-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1505 on I2C#1 at slave addr 0x20 ++ fragment@17 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1505_1_20: sx150x@20 { ++ compatible = "semtech,sx1505q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1505-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1505 on I2C#0 at slave addr 0x21 ++ fragment@18 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1505_0_21: sx150x@21 { ++ compatible = "semtech,sx1505q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1505-0-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1505 on I2C#1 at slave addr 0x21 ++ fragment@19 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1505_1_21: sx150x@21 { ++ compatible = "semtech,sx1505q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1505-1-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1506 on I2C#0 at slave addr 0x20 ++ fragment@20 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1506_0_20: sx150x@20 { ++ compatible = "semtech,sx1506q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1506-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1506 on I2C#1 at slave addr 0x20 ++ fragment@21 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1506_1_20: sx150x@20 { ++ compatible = "semtech,sx1506q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1506-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#0 at slave addr 0x3E ++ fragment@22 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_0_3E: sx150x@3E { ++ compatible = "semtech,sx1507q"; ++ reg = <0x3E>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3E-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#1 at slave addr 0x3E ++ fragment@23 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_1_3E: sx150x@3E { ++ compatible = "semtech,sx1507q"; ++ reg = <0x3E>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3E-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#0 at slave addr 0x3F ++ fragment@24 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_0_3F: sx150x@3F { ++ compatible = "semtech,sx1507q"; ++ reg = <0x3F>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3F-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#1 at slave addr 0x3F ++ fragment@25 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_1_3F: sx150x@3F { ++ compatible = "semtech,sx1507q"; ++ reg = <0x3F>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3F-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#0 at slave addr 0x70 ++ fragment@26 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_0_70: sx150x@70 { ++ compatible = "semtech,sx1507q"; ++ reg = <0x70>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507-0-70-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#1 at slave addr 0x70 ++ fragment@27 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_1_70: sx150x@70 { ++ compatible = "semtech,sx1507q"; ++ reg = <0x70>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507-1-70-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#0 at slave addr 0x71 ++ fragment@28 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_0_71: sx150x@71 { ++ compatible = "semtech,sx1507q"; ++ reg = <0x71>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507-0-71-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1507 on I2C#1 at slave addr 0x71 ++ fragment@29 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1507_1_71: sx150x@71 { ++ compatible = "semtech,sx1507q"; ++ reg = <0x71>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1507-1-71-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#0 at slave addr 0x20 ++ fragment@30 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_0_20: sx150x@20 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-0-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#1 at slave addr 0x20 ++ fragment@31 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_1_20: sx150x@20 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x20>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-1-20-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#0 at slave addr 0x21 ++ fragment@32 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_0_21: sx150x@21 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-0-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#1 at slave addr 0x21 ++ fragment@33 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_1_21: sx150x@21 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x21>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-1-21-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#0 at slave addr 0x22 ++ fragment@34 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_0_22: sx150x@22 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x22>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-0-22-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#1 at slave addr 0x22 ++ fragment@35 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_1_22: sx150x@22 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x22>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-1-22-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#0 at slave addr 0x23 ++ fragment@36 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_0_23: sx150x@23 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x23>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-0-23-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1508 on I2C#1 at slave addr 0x23 ++ fragment@37 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1508_1_23: sx150x@23 { ++ compatible = "semtech,sx1508q"; ++ reg = <0x23>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1508-1-23-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#0 at slave addr 0x3E ++ fragment@38 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_0_3E: sx150x@3E { ++ compatible = "semtech,sx1509q"; ++ reg = <0x3E>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3E-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#1 at slave addr 0x3E ++ fragment@39 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_1_3E: sx150x@3E { ++ compatible = "semtech,sx1509q"; ++ reg = <0x3E>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3E-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#0 at slave addr 0x3F ++ fragment@40 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_0_3F: sx150x@3F { ++ compatible = "semtech,sx1509q"; ++ reg = <0x3F>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3F-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#1 at slave addr 0x3F ++ fragment@41 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_1_3F: sx150x@3F { ++ compatible = "semtech,sx1509q"; ++ reg = <0x3F>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3F-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#0 at slave addr 0x70 ++ fragment@42 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_0_70: sx150x@70 { ++ compatible = "semtech,sx1509q"; ++ reg = <0x70>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509-0-70-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#1 at slave addr 0x70 ++ fragment@43 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_1_70: sx150x@70 { ++ compatible = "semtech,sx1509q"; ++ reg = <0x70>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509-1-70-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#0 at slave addr 0x71 ++ fragment@44 { ++ target = <&i2c0>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_0_71: sx150x@71 { ++ compatible = "semtech,sx1509q"; ++ reg = <0x71>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509-0-71-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable a SX1509 on I2C#1 at slave addr 0x71 ++ fragment@45 { ++ target = <&i2c1>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ sx1509_1_71: sx150x@71 { ++ compatible = "semtech,sx1509q"; ++ reg = <0x71>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ #interrupt-cells = <2>; ++ interrupts = <25 2>; /* 1st word overwritten by sx1509-1-71-int-gpio parameter ++ 2nd word is 2 for falling-edge triggered */ ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x20 ++ fragment@46 { ++ target = <&sx1501_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x20 ++ fragment@47 { ++ target = <&sx1501_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x21 ++ fragment@48 { ++ target = <&sx1501_0_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x21 ++ fragment@49 { ++ target = <&sx1501_1_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x20 ++ fragment@50 { ++ target = <&sx1502_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x20 ++ fragment@51 { ++ target = <&sx1502_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x21 ++ fragment@52 { ++ target = <&sx1502_0_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x21 ++ fragment@53 { ++ target = <&sx1502_1_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1503 on I2C#0 at slave addr 0x20 ++ fragment@54 { ++ target = <&sx1503_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1503 on I2C#1 at slave addr 0x20 ++ fragment@55 { ++ target = <&sx1503_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x20 ++ fragment@56 { ++ target = <&sx1504_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x20 ++ fragment@57 { ++ target = <&sx1504_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x21 ++ fragment@58 { ++ target = <&sx1504_0_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x21 ++ fragment@59 { ++ target = <&sx1504_1_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x20 ++ fragment@60 { ++ target = <&sx1505_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x20 ++ fragment@61 { ++ target = <&sx1505_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x21 ++ fragment@62 { ++ target = <&sx1505_0_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x21 ++ fragment@63 { ++ target = <&sx1505_1_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1506 on I2C#0 at slave addr 0x20 ++ fragment@64 { ++ target = <&sx1506_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1506 on I2C#1 at slave addr 0x20 ++ fragment@65 { ++ target = <&sx1506_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3E ++ fragment@66 { ++ target = <&sx1507_0_3E>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_3E_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3E ++ fragment@67 { ++ target = <&sx1507_1_3E>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_3E_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3F ++ fragment@68 { ++ target = <&sx1507_0_3F>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_3F_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3F ++ fragment@69 { ++ target = <&sx1507_1_3F>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_3F_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x70 ++ fragment@70 { ++ target = <&sx1507_0_70>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_70_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x70 ++ fragment@71 { ++ target = <&sx1507_1_70>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_70_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x71 ++ fragment@72 { ++ target = <&sx1507_0_71>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_71_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x71 ++ fragment@73 { ++ target = <&sx1507_1_71>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_71_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x20 ++ fragment@74 { ++ target = <&sx1508_0_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x20 ++ fragment@75 { ++ target = <&sx1508_1_20>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_20_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x21 ++ fragment@76 { ++ target = <&sx1508_0_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x21 ++ fragment@77 { ++ target = <&sx1508_1_21>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_21_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x22 ++ fragment@78 { ++ target = <&sx1508_0_22>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_22_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x22 ++ fragment@79 { ++ target = <&sx1508_1_22>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_22_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x23 ++ fragment@80 { ++ target = <&sx1508_0_23>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_23_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x23 ++ fragment@81 { ++ target = <&sx1508_1_23>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_23_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3E ++ fragment@82 { ++ target = <&sx1509_0_3E>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_3E_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3E ++ fragment@83 { ++ target = <&sx1509_1_3E>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_3E_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3F ++ fragment@84 { ++ target = <&sx1509_0_3F>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_3F_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3F ++ fragment@85 { ++ target = <&sx1509_1_3F>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_3F_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x70 ++ fragment@86 { ++ target = <&sx1509_0_70>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_70_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x70 ++ fragment@87 { ++ target = <&sx1509_1_70>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_70_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x71 ++ fragment@88 { ++ target = <&sx1509_0_71>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_0_71_pins>; ++ }; ++ }; ++ ++ // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x71 ++ fragment@89 { ++ target = <&sx1509_1_71>; ++ __dormant__ { ++ interrupt-parent = <&gpio>; ++ interrupt-controller; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sx150x_1_71_pins>; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x20 ++ // Configure as a input with no pull-up/down ++ fragment@90 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_20_pins: sx150x_0_20_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-20-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x20 ++ // Configure as a input with no pull-up/down ++ fragment@91 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_20_pins: sx150x_1_20_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-20-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x21 ++ // Configure as a input with no pull-up/down ++ fragment@92 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_21_pins: sx150x_0_21_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-21-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x21 ++ // Configure as a input with no pull-up/down ++ fragment@93 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_21_pins: sx150x_1_21_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-21-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x22 ++ // Configure as a input with no pull-up/down ++ fragment@94 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_22_pins: sx150x_0_22_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-22-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x22 ++ // Configure as a input with no pull-up/down ++ fragment@95 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_22_pins: sx150x_1_22_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-22-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x23 ++ // Configure as a input with no pull-up/down ++ fragment@96 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_23_pins: sx150x_0_23_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-23-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x23 ++ // Configure as a input with no pull-up/down ++ fragment@97 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_23_pins: sx150x_1_23_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-23-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3E ++ // Configure as a input with no pull-up/down ++ fragment@98 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_3E_pins: sx150x_0_3E_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-3E-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3E ++ // Configure as a input with no pull-up/down ++ fragment@99 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_3E_pins: sx150x_1_3E_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-3E-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3F ++ // Configure as a input with no pull-up/down ++ fragment@100 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_3F_pins: sx150x_0_3F_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-3F-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3F ++ // Configure as a input with no pull-up/down ++ fragment@101 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_3F_pins: sx150x_1_3F_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-3F-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x70 ++ // Configure as a input with no pull-up/down ++ fragment@102 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_70_pins: sx150x_0_70_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-70-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x70 ++ // Configure as a input with no pull-up/down ++ fragment@103 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_70_pins: sx150x_1_70_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-70-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x71 ++ // Configure as a input with no pull-up/down ++ fragment@104 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_0_71_pins: sx150x_0_71_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-0-71-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x71 ++ // Configure as a input with no pull-up/down ++ fragment@105 { ++ target = <&gpio>; ++ __dormant__ { ++ sx150x_1_71_pins: sx150x_1_71_pins { ++ brcm,pins = <0>; /* overwritten by sx150x-1-71-int-gpio parameter */ ++ brcm,function = <0>; ++ brcm,pull = <0>; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ sx1501-0-20 = <0>,"+0+2"; ++ sx1501-1-20 = <0>,"+1+3"; ++ sx1501-0-21 = <0>,"+0+4"; ++ sx1501-1-21 = <0>,"+1+5"; ++ sx1502-0-20 = <0>,"+0+6"; ++ sx1502-1-20 = <0>,"+1+7"; ++ sx1502-0-21 = <0>,"+0+8"; ++ sx1502-1-21 = <0>,"+1+9"; ++ sx1503-0-20 = <0>,"+0+10"; ++ sx1503-1-20 = <0>,"+1+11"; ++ sx1504-0-20 = <0>,"+0+12"; ++ sx1504-1-20 = <0>,"+1+13"; ++ sx1504-0-21 = <0>,"+0+14"; ++ sx1504-1-21 = <0>,"+1+15"; ++ sx1505-0-20 = <0>,"+0+16"; ++ sx1505-1-20 = <0>,"+1+17"; ++ sx1505-0-21 = <0>,"+0+18"; ++ sx1505-1-21 = <0>,"+1+19"; ++ sx1506-0-20 = <0>,"+0+20"; ++ sx1506-1-20 = <0>,"+1+21"; ++ sx1507-0-3E = <0>,"+0+22"; ++ sx1507-1-3E = <0>,"+1+23"; ++ sx1507-0-3F = <0>,"+0+24"; ++ sx1507-1-3F = <0>,"+1+25"; ++ sx1507-0-70 = <0>,"+0+26"; ++ sx1507-1-70 = <0>,"+1+27"; ++ sx1507-0-71 = <0>,"+0+28"; ++ sx1507-1-71 = <0>,"+1+29"; ++ sx1508-0-20 = <0>,"+0+30"; ++ sx1508-1-20 = <0>,"+1+31"; ++ sx1508-0-21 = <0>,"+0+32"; ++ sx1508-1-21 = <0>,"+1+33"; ++ sx1508-0-22 = <0>,"+0+34"; ++ sx1508-1-22 = <0>,"+1+35"; ++ sx1508-0-23 = <0>,"+0+36"; ++ sx1508-1-23 = <0>,"+1+37"; ++ sx1509-0-3E = <0>,"+0+38"; ++ sx1509-1-3E = <0>,"+1+39"; ++ sx1509-0-3F = <0>,"+0+40"; ++ sx1509-1-3F = <0>,"+1+41"; ++ sx1509-0-70 = <0>,"+0+42"; ++ sx1509-1-70 = <0>,"+1+43"; ++ sx1509-0-71 = <0>,"+0+44"; ++ sx1509-1-71 = <0>,"+1+45"; ++ sx1501-0-20-int-gpio = <0>,"+46+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1501_0_20>,"interrupts:0"; ++ sx1501-1-20-int-gpio = <0>,"+47+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1501_1_20>,"interrupts:0"; ++ sx1501-0-21-int-gpio = <0>,"+48+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1501_0_21>,"interrupts:0"; ++ sx1501-1-21-int-gpio = <0>,"+49+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1501_1_21>,"interrupts:0"; ++ sx1502-0-20-int-gpio = <0>,"+50+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1502_0_20>,"interrupts:0"; ++ sx1502-1-20-int-gpio = <0>,"+51+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1502_1_20>,"interrupts:0"; ++ sx1502-0-21-int-gpio = <0>,"+52+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1502_0_21>,"interrupts:0"; ++ sx1502-1-21-int-gpio = <0>,"+53+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1502_1_21>,"interrupts:0"; ++ sx1503-0-20-int-gpio = <0>,"+54+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1503_0_20>,"interrupts:0"; ++ sx1503-1-20-int-gpio = <0>,"+55+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1503_1_20>,"interrupts:0"; ++ sx1504-0-20-int-gpio = <0>,"+56+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1504_0_20>,"interrupts:0"; ++ sx1504-1-20-int-gpio = <0>,"+57+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1504_1_20>,"interrupts:0"; ++ sx1504-0-21-int-gpio = <0>,"+58+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1504_0_21>,"interrupts:0"; ++ sx1504-1-21-int-gpio = <0>,"+59+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1504_1_21>,"interrupts:0"; ++ sx1505-0-20-int-gpio = <0>,"+60+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1505_0_20>,"interrupts:0"; ++ sx1505-1-20-int-gpio = <0>,"+61+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1505_1_20>,"interrupts:0"; ++ sx1505-0-21-int-gpio = <0>,"+62+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1505_0_21>,"interrupts:0"; ++ sx1505-1-21-int-gpio = <0>,"+63+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1505_1_21>,"interrupts:0"; ++ sx1506-0-20-int-gpio = <0>,"+64+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1506_0_20>,"interrupts:0"; ++ sx1506-1-20-int-gpio = <0>,"+65+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1506_1_20>,"interrupts:0"; ++ sx1507-0-3E-int-gpio = <0>,"+66+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1507_0_3E>,"interrupts:0"; ++ sx1507-1-3E-int-gpio = <0>,"+67+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1507_1_3E>,"interrupts:0"; ++ sx1507-0-3F-int-gpio = <0>,"+68+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1507_0_3F>,"interrupts:0"; ++ sx1507-1-3F-int-gpio = <0>,"+69+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1507_1_3F>,"interrupts:0"; ++ sx1507-0-70-int-gpio = <0>,"+60+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1507_0_70>,"interrupts:0"; ++ sx1507-1-70-int-gpio = <0>,"+71+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1507_1_70>,"interrupts:0"; ++ sx1507-0-71-int-gpio = <0>,"+72+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1507_0_71>,"interrupts:0"; ++ sx1507-1-71-int-gpio = <0>,"+73+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1507_1_71>,"interrupts:0"; ++ sx1508-0-20-int-gpio = <0>,"+74+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1508_0_20>,"interrupts:0"; ++ sx1508-1-20-int-gpio = <0>,"+75+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1508_1_20>,"interrupts:0"; ++ sx1508-0-21-int-gpio = <0>,"+76+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1508_0_21>,"interrupts:0"; ++ sx1508-1-21-int-gpio = <0>,"+77+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1508_1_21>,"interrupts:0"; ++ sx1508-0-22-int-gpio = <0>,"+78+94", <&sx150x_0_22_pins>,"brcm,pins:0", <&sx1508_0_22>,"interrupts:0"; ++ sx1508-1-22-int-gpio = <0>,"+79+95", <&sx150x_1_22_pins>,"brcm,pins:0", <&sx1508_1_22>,"interrupts:0"; ++ sx1508-0-23-int-gpio = <0>,"+80+96", <&sx150x_0_23_pins>,"brcm,pins:0", <&sx1508_0_23>,"interrupts:0"; ++ sx1508-1-23-int-gpio = <0>,"+81+97", <&sx150x_1_23_pins>,"brcm,pins:0", <&sx1508_1_23>,"interrupts:0"; ++ sx1509-0-3E-int-gpio = <0>,"+82+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1509_0_3E>,"interrupts:0"; ++ sx1509-1-3E-int-gpio = <0>,"+83+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1509_1_3E>,"interrupts:0"; ++ sx1509-0-3F-int-gpio = <0>,"+84+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1509_0_3F>,"interrupts:0"; ++ sx1509-1-3F-int-gpio = <0>,"+85+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1509_1_3F>,"interrupts:0"; ++ sx1509-0-70-int-gpio = <0>,"+86+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1509_0_70>,"interrupts:0"; ++ sx1509-1-70-int-gpio = <0>,"+87+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1509_1_70>,"interrupts:0"; ++ sx1509-0-71-int-gpio = <0>,"+88+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1509_0_71>,"interrupts:0"; ++ sx1509-1-71-int-gpio = <0>,"+89+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1509_1_71>,"interrupts:0"; ++ }; ++}; ++ |