From b386f88f1673944731ef2ea712a94d6384ac9c67 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Fri, 26 Jan 2024 14:41:42 -0800 Subject: [PATCH] Update touch PiTFT overlays Expose the invert and swap touch parameters on 2.8" and 3.5" resistive touchscreens. Add the DRM parameter to the PiTFT 2.2" and 2.8" Capacitive overlay in the same way it is on the resistive overlays. Change the DRM driver to `adafruit,yx240qv29` because the rotations are consistent with the FBTFT Driver. Fix the override size parameters on the 2.8" capacitive PiTFT. Signed-off-by: Melissa LeBlanc-Williams --- arch/arm/boot/dts/overlays/README | 20 +++ .../arm/boot/dts/overlays/pitft22-overlay.dts | 102 +++++++------- .../overlays/pitft28-capacitive-overlay.dts | 132 +++++++++--------- .../overlays/pitft28-resistive-overlay.dts | 12 +- .../overlays/pitft35-resistive-overlay.dts | 10 +- 5 files changed, 156 insertions(+), 120 deletions(-) diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 3a68d6a8b0de5c..14882cd5509645 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -3526,6 +3526,10 @@ Params: speed Display SPI bus speed debug Debug output level {0-7} + drm Force the use of the mi0283qt DRM driver (by + default the ili9340 framebuffer driver will + be used in preference if available) + Name: pitft28-capacitive Info: Adafruit PiTFT 2.8" capacitive touch screen @@ -3538,6 +3542,10 @@ Params: speed Display SPI bus speed debug Debug output level {0-7} + drm Force the use of the mi0283qt DRM driver (by + default the ili9340 framebuffer driver will + be used in preference if available) + touch-sizex Touchscreen size x (default 240) touch-sizey Touchscreen size y (default 320) @@ -3564,6 +3572,12 @@ Params: speed Display SPI bus speed default the ili9340 framebuffer driver will be used in preference if available) + touch-invx Touchscreen inverted x axis + + touch-invy Touchscreen inverted y axis + + touch-swapxy Touchscreen swapped x y axis + Name: pitft35-resistive Info: Adafruit PiTFT 3.5" resistive touch screen @@ -3580,6 +3594,12 @@ Params: speed Display SPI bus speed default the fb_hx8357d framebuffer driver will be used in preference if available) + touch-invx Touchscreen inverted x axis + + touch-invy Touchscreen inverted y axis + + touch-swapxy Touchscreen swapped x y axis + Name: pps-gpio Info: Configures the pps-gpio (pulse-per-second time signal via GPIO). diff --git a/arch/arm/boot/dts/overlays/pitft22-overlay.dts b/arch/arm/boot/dts/overlays/pitft22-overlay.dts index 4c44ab66bc1c48..5759d48aed57e0 100644 --- a/arch/arm/boot/dts/overlays/pitft22-overlay.dts +++ b/arch/arm/boot/dts/overlays/pitft22-overlay.dts @@ -7,63 +7,65 @@ /plugin/; / { - compatible = "brcm,bcm2835"; + compatible = "brcm,bcm2835"; - fragment@0 { - target = <&spidev0>; - __overlay__ { - status = "disabled"; - }; + fragment@0 { + target = <&spidev0>; + __overlay__ { + status = "disabled"; + }; }; - fragment@1 { - target = <&spidev1>; - __overlay__ { - status = "disabled"; - }; - }; + fragment@1 { + target = <&spidev1>; + __overlay__ { + status = "disabled"; + }; + }; - fragment@2 { - target = <&gpio>; - __overlay__ { - pitft_pins: pitft_pins { - brcm,pins = <25>; - brcm,function = <1>; /* out */ - brcm,pull = <0>; /* none */ - }; - }; - }; + fragment@2 { + target = <&gpio>; + __overlay__ { + pitft_pins: pitft_pins { + brcm,pins = <25>; + brcm,function = <1>; /* out */ + brcm,pull = <0>; /* none */ + }; + }; + }; - fragment@3 { - target = <&spi0>; - __overlay__ { - /* needed to avoid dtc warning */ - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; + fragment@3 { + target = <&spi0>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; - pitft: pitft@0{ - compatible = "ilitek,ili9340"; - reg = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&pitft_pins>; + pitft: pitft@0{ + compatible = "ilitek,ili9340"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pitft_pins>; - spi-max-frequency = <32000000>; - rotate = <90>; - fps = <25>; - bgr; - buswidth = <8>; - dc-gpios = <&gpio 25 0>; - debug = <0>; - }; + spi-max-frequency = <32000000>; + rotate = <90>; + fps = <25>; + bgr; + buswidth = <8>; + dc-gpios = <&gpio 25 0>; + debug = <0>; + }; - }; - }; + }; + }; - __overrides__ { - speed = <&pitft>,"spi-max-frequency:0"; - rotate = <&pitft>,"rotate:0"; - fps = <&pitft>,"fps:0"; - debug = <&pitft>,"debug:0"; - }; + __overrides__ { + speed = <&pitft>,"spi-max-frequency:0"; + rotate = <&pitft>,"rotate:0", /* fbtft */ + <&pitft>,"rotation:0"; /* drm */ + fps = <&pitft>,"fps:0"; + debug = <&pitft>,"debug:0"; + drm = <&pitft>,"compatible=adafruit,yx240qv29"; + }; }; diff --git a/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts b/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts index 33901ee1db7a7c..de98ee7b449679 100644 --- a/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts +++ b/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts @@ -7,14 +7,14 @@ /plugin/; / { - compatible = "brcm,bcm2835"; + compatible = "brcm,bcm2835"; - fragment@0 { - target = <&spi0>; - __overlay__ { - status = "okay"; - }; - }; + fragment@0 { + target = <&spi0>; + __overlay__ { + status = "okay"; + }; + }; fragment@1 { target = <&spidev0>; @@ -23,69 +23,71 @@ }; }; - fragment@2 { - target = <&gpio>; - __overlay__ { - pitft_pins: pitft_pins { - brcm,pins = <24 25>; - brcm,function = <0 1>; /* in out */ - brcm,pull = <2 0>; /* pullup none */ - }; - }; - }; + fragment@2 { + target = <&gpio>; + __overlay__ { + pitft_pins: pitft_pins { + brcm,pins = <24 25>; + brcm,function = <0 1>; /* in out */ + brcm,pull = <2 0>; /* pullup none */ + }; + }; + }; - fragment@3 { - target = <&spi0>; - __overlay__ { - /* needed to avoid dtc warning */ - #address-cells = <1>; - #size-cells = <0>; + fragment@3 { + target = <&spi0>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; - pitft: pitft@0{ - compatible = "ilitek,ili9340"; - reg = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&pitft_pins>; + pitft: pitft@0{ + compatible = "ilitek,ili9340"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pitft_pins>; - spi-max-frequency = <32000000>; - rotate = <90>; - fps = <25>; - bgr; - buswidth = <8>; - dc-gpios = <&gpio 25 0>; - debug = <0>; - }; - }; - }; + spi-max-frequency = <32000000>; + rotate = <90>; + fps = <25>; + bgr; + buswidth = <8>; + dc-gpios = <&gpio 25 0>; + debug = <0>; + }; + }; + }; - fragment@4 { - target = <&i2c1>; - __overlay__ { - /* needed to avoid dtc warning */ - #address-cells = <1>; - #size-cells = <0>; + fragment@4 { + target = <&i2c1>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; - ft6236: ft6236@38 { - compatible = "focaltech,ft6236"; - reg = <0x38>; + ft6236: ft6236@38 { + compatible = "focaltech,ft6236"; + reg = <0x38>; - interrupt-parent = <&gpio>; - interrupts = <24 2>; - touchscreen-size-x = <240>; - touchscreen-size-y = <320>; - }; - }; - }; + interrupt-parent = <&gpio>; + interrupts = <24 2>; + touchscreen-size-x = <240>; + touchscreen-size-y = <320>; + }; + }; + }; - __overrides__ { - speed = <&pitft>,"spi-max-frequency:0"; - rotate = <&pitft>,"rotate:0"; - fps = <&pitft>,"fps:0"; - debug = <&pitft>,"debug:0"; - touch-sizex = <&ft6236>,"touchscreen-size-x?"; - touch-sizey = <&ft6236>,"touchscreen-size-y?"; - touch-invx = <&ft6236>,"touchscreen-inverted-x?"; - touch-invy = <&ft6236>,"touchscreen-inverted-y?"; - touch-swapxy = <&ft6236>,"touchscreen-swapped-x-y?"; - }; + __overrides__ { + speed = <&pitft>,"spi-max-frequency:0"; + rotate = <&pitft>,"rotate:0", /* fbtft */ + <&pitft>,"rotation:0"; /* drm */ + fps = <&pitft>,"fps:0"; + debug = <&pitft>,"debug:0"; + drm = <&pitft>,"compatible=adafruit,yx240qv29"; + touch-sizex = <&ft6236>,"touchscreen-size-x:0"; + touch-sizey = <&ft6236>,"touchscreen-size-y:0"; + touch-invx = <&ft6236>,"touchscreen-inverted-x?"; + touch-invy = <&ft6236>,"touchscreen-inverted-y?"; + touch-swapxy = <&ft6236>,"touchscreen-swapped-x-y?"; + }; }; diff --git a/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts b/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts index 3834cc83dca8c2..bc2597179b9c84 100644 --- a/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts +++ b/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts @@ -49,7 +49,7 @@ #size-cells = <0>; pitft: pitft@0{ - compatible = "ilitek,ili9340", "multi-inno,mi0283qt"; + compatible = "ilitek,ili9340"; reg = <0>; pinctrl-names = "default"; pinctrl-0 = <&pitft_pins>; @@ -64,6 +64,9 @@ }; pitft_ts@1 { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #interrupt-cells = <1>; compatible = "st,stmpe610"; reg = <1>; @@ -72,7 +75,7 @@ interrupt-parent = <&gpio>; interrupt-controller; - stmpe_touchscreen { + stmpe_touchscreen: stmpe_touchscreen { compatible = "st,stmpe-ts"; st,sample-time = <4>; st,mod-12b = <1>; @@ -115,6 +118,9 @@ <&pitft>,"rotation:0"; /* drm */ fps = <&pitft>,"fps:0"; debug = <&pitft>,"debug:0"; - drm = <&pitft>,"compatible=multi-inno,mi0283qt"; + drm = <&pitft>,"compatible=adafruit,yx240qv29"; + touch-invx = <&stmpe_touchscreen>,"touchscreen-inverted-x?"; + touch-invy = <&stmpe_touchscreen>,"touchscreen-inverted-y?"; + touch-swapxy = <&stmpe_touchscreen>,"touchscreen-swapped-x-y?"; }; }; diff --git a/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts b/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts index 33537829ab2140..c3e81ef6003ae1 100644 --- a/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts +++ b/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts @@ -49,7 +49,7 @@ #size-cells = <0>; pitft: pitft@0{ - compatible = "himax,hx8357d", "adafruit,yx350hv15"; + compatible = "himax,hx8357d"; reg = <0>; pinctrl-names = "default"; pinctrl-0 = <&pitft_pins>; @@ -64,6 +64,9 @@ }; pitft_ts@1 { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #interrupt-cells = <1>; compatible = "st,stmpe610"; reg = <1>; @@ -72,7 +75,7 @@ interrupt-parent = <&gpio>; interrupt-controller; - stmpe_touchscreen { + stmpe_touchscreen: stmpe_touchscreen { compatible = "st,stmpe-ts"; st,sample-time = <4>; st,mod-12b = <1>; @@ -117,5 +120,8 @@ debug = <&pitft>,"debug:0"; drm = <&pitft>,"compatible=adafruit,yx350hv15", <&pitft>,"backlight:0=",<&backlight>; + touch-invx = <&stmpe_touchscreen>,"touchscreen-inverted-x?"; + touch-invy = <&stmpe_touchscreen>,"touchscreen-inverted-y?"; + touch-swapxy = <&stmpe_touchscreen>,"touchscreen-swapped-x-y?"; }; };