diff options
author | Roman Yeryomin <roman@advem.lv> | 2018-04-29 17:38:07 +0300 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-05-05 06:57:00 +0200 |
commit | 4f74957584cd50786d1d33a3f26867b06a58510f (patch) | |
tree | b89da58c3fadff9b15a3d4595927d3fbdf2704ff /target/linux/gemini/patches-4.14/0016-ARM-dts-Add-TVE-TVC-and-ILI9322-panel-to-DIR-685.patch | |
parent | 55c9aa27be0f70d886276b93084002f18d980904 (diff) | |
download | upstream-4f74957584cd50786d1d33a3f26867b06a58510f.tar.gz upstream-4f74957584cd50786d1d33a3f26867b06a58510f.tar.bz2 upstream-4f74957584cd50786d1d33a3f26867b06a58510f.zip |
gemini: add 4.14 support
This adds the patches to get fairly complete Gemini support
using kernel v4.14. It is mainly a backport of patches from
kernel v4.16 with omissions of things like graphics that require
substantial changes and will be better handled once we move
to the v4.16 kernel proper.
On top of this are some WIP patches for USB support.
Tested on Raidsonic NAS4220B and D-link DNS-313.
ChangeLog v4->v5:
- Fix ethernet single gmac usecase
- Fix USB reset (patch from Hans)
- Fix Raidsonic ethernet skew delay
- Fix kernel config (bridge, squashfs, jffs2, usb)
- Disable second usb port on Raidsonic board until fotg210_hcd is fixed
ChangeLog v3->v4:
- Make sure to use tabs rather than spaces in base-files.
- Use the dns313 image tool from the firmware-utils.
- Break out the addition of the v4.14 patches and the removal
of the v4.4 patches to separate (big) patches.
ChangeLog v2->v3:
- Update the kernel config as indicated by Hauke Martens:
- Regenerate again after rebasing using kernel_oldconfig
dropping a few optimization settings that are now generic
- Drop CFG80211 stuff (module)
- Drop CIFS stuff (module)
- Drop MAC80211 (module)
- Drop wireless drivers (module)
- Enabled OverlayFS
- Added proper DNS-313 boot image generation with the special
file header tool.
- Disable CMA in the kernel
- Enable LZMA compression of the kernel
- Consequently name the nas4220b images nas4220b
- Update preinit MAC detection script to handle also DNS-313
- Add board.d/03_hdparm to set the disk to spin down after
1 minute by default, if we have the hdparm tool installed
ChangeLog v1->v2:
- Processed config through kernel_oldconfig
- Processed patches through make target/linux/{clean,refresh} V=99
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Roman Yeryomin <roman@advem.lv>
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.patch | 113 |
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>; ++ }; ++ }; ++ }; + }; + }; |