aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch')
-rw-r--r--target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch b/target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch
new file mode 100644
index 0000000000..e0cf267ccc
--- /dev/null
+++ b/target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch
@@ -0,0 +1,113 @@
+From 9d3b968d13ba1eecaf22d5824cf8fd270c061534 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Sat, 15 Jul 2017 21:02:06 +0200
+Subject: [PATCH 16/31] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685
+
+This adds the TVE200/TVC TV-encoder and the Ilitek ILI9322 panel
+to the DIR-685 device tree.
+
+This brings graphics to this funky router and it is possible to
+even run a console on its tiny screen.
+
+Incidentally this requires us to disable the access to the
+parallel (NOR) flash, as the communication pins to the panel
+are shared with the flash memory.
+
+To access the flash, a separate kernel with the panel disabled
+and the flash enabled should be booted. The pin control selecting
+whether to use the lines cannot be altered at runtime due to
+hardware constraints.
+
+Cc: David Lechner <david@lechnology.com>
+Cc: Stefano Babic <sbabic@denx.de>
+Cc: Ben Dooks <ben.dooks@codethink.co.uk>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ arch/arm/boot/dts/gemini-dlink-dir-685.dts | 63 +++++++++++++++++++++++++++++-
+ 1 file changed, 62 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
++++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+@@ -45,6 +45,47 @@
+ };
+ };
+
++ vdisp: regulator {
++ compatible = "regulator-fixed";
++ regulator-name = "display-power";
++ regulator-min-microvolt = <3600000>;
++ regulator-max-microvolt = <3600000>;
++ /* Collides with LCD E */
++ gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
++ };
++
++ spi {
++ compatible = "spi-gpio";
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ /* Collides with IDE pins, that's cool (we do not use them) */
++ gpio-sck = <&gpio1 5 GPIO_ACTIVE_HIGH>;
++ gpio-miso = <&gpio1 8 GPIO_ACTIVE_HIGH>;
++ gpio-mosi = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ /* Collides with pflash CE1, not so cool */
++ cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
++ num-chipselects = <1>;
++
++ panel: display@0 {
++ compatible = "dlink,dir-685-panel", "ilitek,ili9322";
++ reg = <0>;
++ /* 50 ns min period = 20 MHz */
++ spi-max-frequency = <20000000>;
++ spi-cpol; /* Clock active low */
++ vcc-supply = <&vdisp>;
++ iovcc-supply = <&vdisp>;
++ vci-supply = <&vdisp>;
++
++ port {
++ panel_in: endpoint {
++ remote-endpoint = <&display_out>;
++ };
++ };
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+ led-wps {
+@@ -115,7 +156,16 @@
+
+ soc {
+ flash@30000000 {
+- status = "okay";
++ /*
++ * Flash access is by default disabled, because it
++ * collides with the Chip Enable signal for the display
++ * panel, that reuse the parallel flash Chip Select 1
++ * (CS1). Enabling flash makes graphics stop working.
++ *
++ * We might be able to hack around this by letting
++ * GPIO poke around in the flash controller registers.
++ */
++ /* status = "okay"; */
+ /* 32MB of flash */
+ reg = <0x30000000 0x02000000>;
+
+@@ -242,5 +292,16 @@
+ ata@63000000 {
+ status = "okay";
+ };
++
++ display-controller@6a000000 {
++ status = "okay";
++
++ port@0 {
++ reg = <0>;
++ display_out: endpoint {
++ remote-endpoint = <&panel_in>;
++ };
++ };
++ };
+ };
+ };