aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/overlays/goodix-overlay.dts
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boot/dts/overlays/goodix-overlay.dts')
-rw-r--r--arch/arm/boot/dts/overlays/goodix-overlay.dts46
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/overlays/goodix-overlay.dts b/arch/arm/boot/dts/overlays/goodix-overlay.dts
new file mode 100644
index 000000000000..8571527de49a
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/goodix-overlay.dts
@@ -0,0 +1,46 @@
+// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&gpio>;
+ __overlay__ {
+ goodix_pins: goodix_pins {
+ brcm,pins = <4 17>; // interrupt and reset
+ brcm,function = <0 0>; // in
+ brcm,pull = <2 2>; // pull-up
+ };
+ };
+ };
+
+ fragment@1 {
+ target = <&i2c1>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ gt9271: gt9271@14 {
+ compatible = "goodix,gt9271";
+ reg = <0x14>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&goodix_pins>;
+ interrupt-parent = <&gpio>;
+ interrupts = <4 2>; // high-to-low edge triggered
+ irq-gpios = <&gpio 4 0>; // Pin7 on GPIO header
+ reset-gpios = <&gpio 17 0>; // Pin11 on GPIO header
+ };
+ };
+ };
+
+ __overrides__ {
+ interrupt = <&goodix_pins>,"brcm,pins:0",
+ <&gt9271>,"interrupts:0",
+ <&gt9271>,"irq-gpios:4";
+ reset = <&goodix_pins>,"brcm,pins:4",
+ <&gt9271>,"reset-gpios:4";
+ };
+};