123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- From 877d2ad66da4c7aba2db0ecb394a07a19ac2e374 Mon Sep 17 00:00:00 2001
- From: Scott Ellis <scott@jumpnowtek.com>
- Date: Tue, 27 Sep 2016 04:29:00 -0400
- Subject: [PATCH] Add Adafruit pitft35 touchscreen support (#1657)
- The dts comes from the Adafruit repository
- https://github.com/adafruit/Adafruit-Pi-Kernel-o-Matic/blob/pitft/pitft35r-overlay.dts
- Reformatted slightly to match conventions in the pitft28-resistive-overlay.
- Signed-off-by: Scott Ellis <scott@jumpnowtek.com>
- ---
- arch/arm/boot/dts/overlays/Makefile | 1 +
- arch/arm/boot/dts/overlays/README | 12 ++
- .../dts/overlays/pitft35-resistive-overlay.dts | 121 +++++++++++++++++++++
- arch/arm/configs/bcm2709_defconfig | 1 +
- arch/arm/configs/bcmrpi_defconfig | 1 +
- 5 files changed, 136 insertions(+)
- create mode 100644 arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
- --- a/arch/arm/boot/dts/overlays/Makefile
- +++ b/arch/arm/boot/dts/overlays/Makefile
- @@ -65,6 +65,7 @@ dtbo-$(RPI_DT_OVERLAYS) += piscreen2r.dt
- dtbo-$(RPI_DT_OVERLAYS) += pitft22.dtbo
- dtbo-$(RPI_DT_OVERLAYS) += pitft28-capacitive.dtbo
- dtbo-$(RPI_DT_OVERLAYS) += pitft28-resistive.dtbo
- +dtbo-$(RPI_DT_OVERLAYS) += pitft35-resistive.dtbo
- dtbo-$(RPI_DT_OVERLAYS) += pps-gpio.dtbo
- dtbo-$(RPI_DT_OVERLAYS) += pwm.dtbo
- dtbo-$(RPI_DT_OVERLAYS) += pwm-2chan.dtbo
- --- a/arch/arm/boot/dts/overlays/README
- +++ b/arch/arm/boot/dts/overlays/README
- @@ -854,6 +854,18 @@ Params: speed Display
- debug Debug output level {0-7}
-
-
- +Name: pitft35-resistive
- +Info: Adafruit PiTFT 3.5" resistive touch screen
- +Load: dtoverlay=pitft35-resistive,<param>=<val>
- +Params: speed Display SPI bus speed
- +
- + rotate Display rotation {0,90,180,270}
- +
- + fps Delay between frame updates
- +
- + debug Debug output level {0-7}
- +
- +
- Name: pps-gpio
- Info: Configures the pps-gpio (pulse-per-second time signal via GPIO).
- Load: dtoverlay=pps-gpio,<param>=<val>
- --- /dev/null
- +++ b/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
- @@ -0,0 +1,121 @@
- +/*
- + * Device Tree overlay for Adafruit PiTFT 3.5" resistive touch screen
- + *
- + */
- +
- +/dts-v1/;
- +/plugin/;
- +
- +/ {
- + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
- +
- + fragment@0 {
- + target = <&spi0>;
- + __overlay__ {
- + status = "okay";
- + };
- + };
- +
- + fragment@1 {
- + target = <&spidev0>;
- + __overlay__ {
- + status = "disabled";
- + };
- + };
- +
- + fragment@2 {
- + target = <&spidev1>;
- + __overlay__ {
- + status = "disabled";
- + };
- + };
- +
- + fragment@3 {
- + target = <&gpio>;
- + __overlay__ {
- + pitft_pins: pitft_pins {
- + brcm,pins = <24 25>;
- + brcm,function = <0 1>; /* in out */
- + brcm,pull = <2 0>; /* pullup none */
- + };
- + };
- + };
- +
- + fragment@4 {
- + target = <&spi0>;
- + __overlay__ {
- + /* needed to avoid dtc warning */
- + #address-cells = <1>;
- + #size-cells = <0>;
- +
- + pitft: pitft@0{
- + compatible = "himax,hx8357d";
- + 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>;
- + };
- +
- + pitft_ts@1 {
- + #address-cells = <1>;
- + #size-cells = <0>;
- + compatible = "st,stmpe610";
- + reg = <1>;
- +
- + spi-max-frequency = <500000>;
- + irq-gpio = <&gpio 24 0x2>; /* IRQF_TRIGGER_FALLING */
- + interrupts = <24 2>; /* high-to-low edge triggered */
- + interrupt-parent = <&gpio>;
- + interrupt-controller;
- +
- + stmpe_touchscreen {
- + compatible = "st,stmpe-ts";
- + st,sample-time = <4>;
- + st,mod-12b = <1>;
- + st,ref-sel = <0>;
- + st,adc-freq = <2>;
- + st,ave-ctrl = <3>;
- + st,touch-det-delay = <4>;
- + st,settling = <2>;
- + st,fraction-z = <7>;
- + st,i-drive = <0>;
- + };
- +
- + stmpe_gpio: stmpe_gpio {
- + #gpio-cells = <2>;
- + compatible = "st,stmpe-gpio";
- + /*
- + * only GPIO2 is wired/available
- + * and it is wired to the backlight
- + */
- + st,norequest-mask = <0x7b>;
- + };
- + };
- + };
- + };
- +
- + fragment@5 {
- + target-path = "/soc";
- + __overlay__ {
- + backlight {
- + compatible = "gpio-backlight";
- + gpios = <&stmpe_gpio 2 0>;
- + default-on;
- + };
- + };
- + };
- +
- + __overrides__ {
- + speed = <&pitft>,"spi-max-frequency:0";
- + rotate = <&pitft>,"rotate:0";
- + fps = <&pitft>,"fps:0";
- + debug = <&pitft>,"debug:0";
- + };
- +};
- --- a/arch/arm/configs/bcm2709_defconfig
- +++ b/arch/arm/configs/bcm2709_defconfig
- @@ -1116,6 +1116,7 @@ CONFIG_FB_TFT_BD663474=m
- CONFIG_FB_TFT_HX8340BN=m
- CONFIG_FB_TFT_HX8347D=m
- CONFIG_FB_TFT_HX8353D=m
- +CONFIG_FB_TFT_HX8357D=m
- CONFIG_FB_TFT_ILI9163=m
- CONFIG_FB_TFT_ILI9320=m
- CONFIG_FB_TFT_ILI9325=m
- --- a/arch/arm/configs/bcmrpi_defconfig
- +++ b/arch/arm/configs/bcmrpi_defconfig
- @@ -1123,6 +1123,7 @@ CONFIG_FB_TFT_BD663474=m
- CONFIG_FB_TFT_HX8340BN=m
- CONFIG_FB_TFT_HX8347D=m
- CONFIG_FB_TFT_HX8353D=m
- +CONFIG_FB_TFT_HX8357D=m
- CONFIG_FB_TFT_ILI9163=m
- CONFIG_FB_TFT_ILI9320=m
- CONFIG_FB_TFT_ILI9325=m
|