197 lines
5 KiB
Diff
197 lines
5 KiB
Diff
|
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
|