overlays: Add EETI EXC3000 overlay
authorAhmet Inan <inan@aicodix.de>
Fri, 1 Sep 2017 13:18:01 +0000 (15:18 +0200)
committerRaspbian kernel package updater <root@raspbian.org>
Sat, 31 Mar 2018 14:57:29 +0000 (15:57 +0100)
Add support for I2C connected EETI EXC3000 multiple touch controller
using GPIO 4 (pin 7 on GPIO header) for interrupt.

Signed-off-by: Ahmet Inan <inan@aicodix.de>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/exc3000-overlay.dts [new file with mode: 0644]

index 8090fee1d5a49c525c77547fbe42e80cef0d3bca..bc997af70665784160692c3d47b3499ff268c4e1 100644 (file)
@@ -26,6 +26,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        dwc2.dtbo \
        enc28j60.dtbo \
        enc28j60-spi2.dtbo \
+       exc3000.dtbo \
        fe-pi-audio.dtbo \
        goodix.dtbo \
        googlevoicehat-soundcard.dtbo \
index 1cf89d6423ac013c01b768940f57f7551f76a3f5..afc7eea8ced47ce047832912e592f157f6e891a4 100644 (file)
@@ -468,6 +468,18 @@ Params: int_pin                 GPIO used for INT (default 39)
         speed                   SPI bus speed (default 12000000)
 
 
+Name:   exc3000
+Info:   Enables I2C connected EETI EXC3000 multiple touch controller using
+        GPIO 4 (pin 7 on GPIO header) for interrupt.
+Load:   dtoverlay=exc3000,<param>=<val>
+Params: interrupt               GPIO used for interrupt (default 4)
+        sizex                   Touchscreen size x (default 4096)
+        sizey                   Touchscreen size y (default 4096)
+        invx                    Touchscreen inverted x axis
+        invy                    Touchscreen inverted y axis
+        swapxy                  Touchscreen swapped x y axis
+
+
 Name:   fe-pi-audio
 Info:   Configures the Fe-Pi Audio Sound Card
 Load:   dtoverlay=fe-pi-audio
diff --git a/arch/arm/boot/dts/overlays/exc3000-overlay.dts b/arch/arm/boot/dts/overlays/exc3000-overlay.dts
new file mode 100644 (file)
index 0000000..c569403
--- /dev/null
@@ -0,0 +1,48 @@
+// Device tree overlay for I2C connected EETI EXC3000 multiple touch controller
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&gpio>;
+               __overlay__ {
+                       exc3000_pins: exc3000_pins {
+                               brcm,pins = <4>; // interrupt
+                               brcm,function = <0>; // in
+                               brcm,pull = <2>; // pull-up
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       exc3000: exc3000@2a {
+                               compatible = "eeti,exc3000";
+                               reg = <0x2a>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&exc3000_pins>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <4 8>; // active low level-sensitive
+                               touchscreen-size-x = <4096>;
+                               touchscreen-size-y = <4096>;
+                       };
+               };
+       };
+
+       __overrides__ {
+               interrupt = <&exc3000_pins>,"brcm,pins:0",
+                       <&exc3000>,"interrupts:0";
+               sizex = <&exc3000>,"touchscreen-size-x:0";
+               sizey = <&exc3000>,"touchscreen-size-y:0";
+               invx = <&exc3000>,"touchscreen-inverted-x?";
+               invy = <&exc3000>,"touchscreen-inverted-y?";
+               swapxy = <&exc3000>,"touchscreen-swapped-x-y?";
+       };
+};