From 1c2a93ce0e1cf6d278cf565346183d7592cfbb24 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Fri, 26 Jan 2024 14:41:42 -0800 Subject: [PATCH 1262/1295] 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(-) --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -3526,6 +3526,10 @@ Params: speed Display 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 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 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 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). --- 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@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"; - - 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>; - }; - - }; - }; - - __overrides__ { - speed = <&pitft>,"spi-max-frequency:0"; - rotate = <&pitft>,"rotate:0"; - fps = <&pitft>,"fps:0"; - debug = <&pitft>,"debug:0"; - }; + 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@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>; + + 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", /* fbtft */ + <&pitft>,"rotation:0"; /* drm */ + fps = <&pitft>,"fps:0"; + debug = <&pitft>,"debug:0"; + drm = <&pitft>,"compatible=adafruit,yx240qv29"; + }; }; --- 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@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>; - - 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>; - - ft6236: ft6236@38 { - compatible = "focaltech,ft6236"; - reg = <0x38>; - - 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?"; - }; + 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>; + + 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>; + }; + }; + }; + + fragment@4 { + target = <&i2c1>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; + + ft6236: ft6236@38 { + compatible = "focaltech,ft6236"; + reg = <0x38>; + + 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", /* 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?"; + }; }; --- 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?"; }; }; --- 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?"; }; };