From c0dfc87e355a7c6e434122e1a4fcc69729970610 Mon Sep 17 00:00:00 2001 From: Samuel Hsu Date: Mon, 8 Apr 2019 17:06:44 +0200 Subject: [PATCH] BCM2708: Add core Device Tree support, ilitek251x Signed-off-by: Samuel Hsu --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 11 +++++ .../boot/dts/overlays/ilitek251x-overlay.dts | 45 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/ilitek251x-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -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 \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -1146,6 +1146,17 @@ Load: dtoverlay=i2s-gpio28-31 Params: +Name: ilitek251x +Info: Enables I2C connected Ilitek 251x multiple touch controller using + GPIO 4 (pin 7 on GPIO header) for interrupt. +Load: dtoverlay=ilitek251x,= +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, --- /dev/null +++ b/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts @@ -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"; + }; +};