You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/bcm27xx/patches-4.19/950-0158-Add-hy28b-2017-mod...

210 lines
5.2 KiB
Diff

From a64595c1bc19752dca712c6cd90692a2a0e7397b Mon Sep 17 00:00:00 2001
From: Hans-Wilhelm Warlo <5417271+hanswilw@users.noreply.github.com>
Date: Tue, 16 Oct 2018 18:20:48 +0200
Subject: [PATCH] Add hy28b 2017 model device tree overlay (#2721)
The 2017 version of the hy28b display requires a different
initialisation sequence.
Signed-off-by: Hans-Wilhelm Warlo <hw@warlo.no>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 19 +++
.../boot/dts/overlays/hy28b-2017-overlay.dts | 152 ++++++++++++++++++
3 files changed, 172 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/hy28b-2017-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -49,6 +49,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
hifiberry-digi-pro.dtbo \
hy28a.dtbo \
hy28b.dtbo \
+ hy28b-2017.dtbo \
i2c-bcm2708.dtbo \
i2c-gpio.dtbo \
i2c-mux.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -770,6 +770,25 @@ Params: speed Display
ledgpio GPIO used to control backlight
+Name: hy28b-2017
+Info: HY28B 2017 version - 2.8" TFT LCD Display Module by HAOYU Electronics
+ Default values match Texy's display shield
+Load: dtoverlay=hy28b-2017,<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}
+
+ xohms Touchpanel sensitivity (X-plate resistance)
+
+ resetgpio GPIO used to reset controller
+
+ ledgpio GPIO used to control backlight
+
+
Name: i2c-bcm2708
Info: Fall back to the i2c_bcm2708 driver for the i2c_arm bus.
Load: dtoverlay=i2c-bcm2708
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/hy28b-2017-overlay.dts
@@ -0,0 +1,152 @@
+/*
+ * Device Tree overlay for HY28b display shield by Texy.
+ * Modified for 2017 version with ILI9325 D chip
+ */
+
+/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__ {
+ hy28b_pins: hy28b_pins {
+ brcm,pins = <17 25 18>;
+ brcm,function = <0 1 1>; /* in out out */
+ };
+ };
+ };
+
+ fragment@4 {
+ target = <&spi0>;
+ __overlay__ {
+ /* needed to avoid dtc warning */
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hy28b: hy28b@0{
+ compatible = "ilitek,ili9325";
+ reg = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&hy28b_pins>;
+
+ spi-max-frequency = <48000000>;
+ spi-cpol;
+ spi-cpha;
+ rotate = <270>;
+ bgr;
+ fps = <50>;
+ buswidth = <8>;
+ startbyte = <0x70>;
+ reset-gpios = <&gpio 25 0>;
+ led-gpios = <&gpio 18 1>;
+
+ init = <0x10000e5 0x78F0
+ 0x1000001 0x0100
+ 0x1000002 0x0700
+ 0x1000003 0x1030
+ 0x1000004 0x0000
+ 0x1000008 0x0207
+ 0x1000009 0x0000
+ 0x100000a 0x0000
+ 0x100000c 0x0000
+ 0x100000d 0x0000
+ 0x100000f 0x0000
+ 0x1000010 0x0000
+ 0x1000011 0x0007
+ 0x1000012 0x0000
+ 0x1000013 0x0000
+ 0x1000007 0x0001
+ 0x2000032
+ 0x2000032
+ 0x2000032
+ 0x2000032
+ 0x1000010 0x1090
+ 0x1000011 0x0227
+ 0x2000032
+ 0x1000012 0x001f
+ 0x2000032
+ 0x1000013 0x1500
+ 0x1000029 0x0027
+ 0x100002b 0x000d
+ 0x2000032
+ 0x1000020 0x0000
+ 0x1000021 0x0000
+ 0x2000032
+ 0x1000030 0x0000
+ 0x1000031 0x0707
+ 0x1000032 0x0307
+ 0x1000035 0x0200
+ 0x1000036 0x0008
+ 0x1000037 0x0004
+ 0x1000038 0x0000
+ 0x1000039 0x0707
+ 0x100003c 0x0002
+ 0x100003d 0x1d04
+ 0x1000050 0x0000
+ 0x1000051 0x00ef
+ 0x1000052 0x0000
+ 0x1000053 0x013f
+ 0x1000060 0xa700
+ 0x1000061 0x0001
+ 0x100006a 0x0000
+ 0x1000080 0x0000
+ 0x1000081 0x0000
+ 0x1000082 0x0000
+ 0x1000083 0x0000
+ 0x1000084 0x0000
+ 0x1000085 0x0000
+ 0x1000090 0x0010
+ 0x1000092 0x0600
+ 0x1000007 0x0133>;
+ debug = <0>;
+ };
+
+ hy28b_ts: hy28b-ts@1 {
+ compatible = "ti,ads7846";
+ reg = <1>;
+
+ spi-max-frequency = <2000000>;
+ interrupts = <17 2>; /* high-to-low edge triggered */
+ interrupt-parent = <&gpio>;
+ pendown-gpio = <&gpio 17 0>;
+ ti,x-plate-ohms = /bits/ 16 <100>;
+ ti,pressure-max = /bits/ 16 <255>;
+ };
+ };
+ };
+ __overrides__ {
+ speed = <&hy28b>,"spi-max-frequency:0";
+ rotate = <&hy28b>,"rotate:0";
+ fps = <&hy28b>,"fps:0";
+ debug = <&hy28b>,"debug:0";
+ xohms = <&hy28b_ts>,"ti,x-plate-ohms;0";
+ resetgpio = <&hy28b>,"reset-gpios:4",
+ <&hy28b_pins>, "brcm,pins:4";
+ ledgpio = <&hy28b>,"led-gpios:4",
+ <&hy28b_pins>, "brcm,pins:8";
+ };
+};