brcm2708: organize kernel patches
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch b/target/linux/brcm2708/patches-4.19/950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch
new file mode 100644 (file)
index 0000000..2c04937
--- /dev/null
@@ -0,0 +1,209 @@
+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";
++      };
++};