BCM2708: Add core Device Tree support, ilitek251x
authorSamuel Hsu <hsu@distec.de>
Mon, 8 Apr 2019 15:06:44 +0000 (17:06 +0200)
committerpopcornmix <popcornmix@gmail.com>
Mon, 13 May 2019 23:08:27 +0000 (00:08 +0100)
Signed-off-by: Samuel Hsu <hsu@distec.de>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/ilitek251x-overlay.dts [new file with mode: 0644]

index 036d49b..c5b6154 100644 (file)
@@ -67,6 +67,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        i2c0-bcm2708.dtbo \
        i2c1-bcm2708.dtbo \
        i2s-gpio28-31.dtbo \
+       ilitek251x.dtbo \
        iqaudio-dac.dtbo \
        iqaudio-dacplus.dtbo \
        iqaudio-digi-wm8804-audio.dtbo \
index 089e122..1f1fb9a 100644 (file)
@@ -1146,6 +1146,17 @@ Load:   dtoverlay=i2s-gpio28-31
 Params: <None>
 
 
+Name:   ilitek251x
+Info:   Enables I2C connected Ilitek 251x multiple touch controller using
+        GPIO 4 (pin 7 on GPIO header) for interrupt.
+Load:   dtoverlay=ilitek251x,<param>=<val>
+Params: interrupt               GPIO used for interrupt (default 4)
+        sizex                   Touchscreen size x, horizontal resolution of
+                                touchscreen (in pixels)
+        sizey                   Touchscreen size y, vertical resolution of
+                                touchscreen (in pixels)
+
+
 Name:   iqaudio-dac
 Info:   Configures the IQaudio DAC audio card
 Load:   dtoverlay=iqaudio-dac,<param>
diff --git a/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts b/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts
new file mode 100644 (file)
index 0000000..fb1ccc3
--- /dev/null
@@ -0,0 +1,45 @@
+// Device tree overlay for I2C connected Ilitek multiple touch controller
+/dts-v1/;
+/plugin/;
+
+ / {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&gpio>;
+               __overlay__ {           
+                       ili251x_pins: ili251x_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";
+
+                       ili251x: ili251x@41 {
+                               compatible = "ilitek,ili251x";
+                               reg = <0x41>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&ili251x_pins>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <4 8>; // high-to-low edge triggered
+                               touchscreen-size-x = <16384>;
+                               touchscreen-size-y = <9600>;
+                       };
+               };
+       };
+
+       __overrides__ {
+               interrupt = <&ili251x_pins>,"brcm,pins:0",
+                       <&ili251x>,"interrupts:0";
+               sizex = <&ili251x>,"touchscreen-size-x:0";
+               sizey = <&ili251x>,"touchscreen-size-y:0";
+       };
+};