1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
From e141a75b9cc36a09eb8bda90b530d97a9bb1f21e Mon Sep 17 00:00:00 2001
From: Ahmet Inan <inan@aicodix.de>
Date: Fri, 1 Sep 2017 15:18:01 +0200
Subject: [PATCH 164/454] overlays: Add EETI EXC3000 overlay
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 | 1 +
arch/arm/boot/dts/overlays/README | 12 +++++
.../arm/boot/dts/overlays/exc3000-overlay.dts | 48 +++++++++++++++++++
3 files changed, 61 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/exc3000-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -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 \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -468,6 +468,18 @@ Params: int_pin GPIO use
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
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/exc3000-overlay.dts
@@ -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?";
+ };
+};
|