From mboxrd@z Thu Jan 1 00:00:00 1970 From: linus.walleij@linaro.org (Linus Walleij) Date: Sun, 20 Aug 2017 12:05:57 +0200 Subject: [PATCH 4/4 v2] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685 In-Reply-To: <20170820100557.24991-1-linus.walleij@linaro.org> References: <20170820100557.24991-1-linus.walleij@linaro.org> Message-ID: <20170820100557.24991-4-linus.walleij@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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. Signed-off-by: Linus Walleij --- ChangeLog v1->v2: - Rename node from "tvc" to "display-controller" DRM developers: I will merge this patch through the ARM SoC tree. It is only included in this series for completion. --- arch/arm/boot/dts/gemini-dlink-dir-685.dts | 75 +++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts index 094a29624b8d..8e4037597a2c 100644 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts @@ -46,6 +46,59 @@ }; }; + 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 at 0 { + compatible = "ilitek,ili9322"; + reg = <0>; + /* 50 ns min period = 20 MHz */ + spi-max-frequency = <20000000>; + spi-cpol; /* Clock active low */ + + /* Panel LM918A01-1A SY-B4-091116-E0199 */ + width-mm = <65>; + height-mm = <50>; + ilitek,entry-mode = <11>; + ilitek,vreg1out-microvolt = <4600>; + ilitek,vcom-high-percent = <91>; + ilitek,vcom-amplitude-percent = <114>; + ilitek,gamma-correction-neg = <0xa>, <0x5>, <0x7>, + <0x7>, <0x7>, <0x5>, <0x1>, <0x6>; + ilitek,gamma-correction-pos = <0x7>, <0x7>, <0x3>, + <0x2>, <0x3>, <0x5>, <0x7>, <0x2>; + vcc-supply = <&vdisp>; + iovcc-supply = <&vdisp>; + vci-supply = <&vdisp>; + + port { + panel_in: endpoint { + remote-endpoint = <&display_out>; + }; + }; + }; + }; + leds { compatible = "gpio-leds"; led at 7 { @@ -114,7 +167,16 @@ soc { flash at 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>; @@ -241,5 +303,16 @@ ata at 63000000 { status = "okay"; }; + + display-controller at 6a000000 { + status = "okay"; + + port at 0 { + reg = <0>; + display_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; }; }; -- 2.13.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Walleij Subject: [PATCH 4/4 v2] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685 Date: Sun, 20 Aug 2017 12:05:57 +0200 Message-ID: <20170820100557.24991-4-linus.walleij@linaro.org> References: <20170820100557.24991-1-linus.walleij@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x22f.google.com (mail-lf0-x22f.google.com [IPv6:2a00:1450:4010:c07::22f]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2144C6E17A for ; Sun, 20 Aug 2017 10:06:17 +0000 (UTC) Received: by mail-lf0-x22f.google.com with SMTP id f7so36937909lfg.4 for ; Sun, 20 Aug 2017 03:06:17 -0700 (PDT) In-Reply-To: <20170820100557.24991-1-linus.walleij@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, Eric Anholt , Daniel Vetter , Jani Nikula , Sean Paul Cc: linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIHRoZSBUVkUyMDAvVFZDIFRWLWVuY29kZXIgYW5kIHRoZSBJbGl0ZWsgSUxJOTMy MiBwYW5lbAp0byB0aGUgRElSLTY4NSBkZXZpY2UgdHJlZS4KClRoaXMgYnJpbmdzIGdyYXBoaWNz IHRvIHRoaXMgZnVua3kgcm91dGVyIGFuZCBpdCBpcyBwb3NzaWJsZSB0bwpldmVuIHJ1biBhIGNv bnNvbGUgb24gaXRzIHRpbnkgc2NyZWVuLgoKSW5jaWRlbnRhbGx5IHRoaXMgcmVxdWlyZXMgdXMg dG8gZGlzYWJsZSB0aGUgYWNjZXNzIHRvIHRoZQpwYXJhbGxlbCAoTk9SKSBmbGFzaCwgYXMgdGhl IGNvbW11bmljYXRpb24gcGlucyB0byB0aGUgcGFuZWwKYXJlIHNoYXJlZCB3aXRoIHRoZSBmbGFz aCBtZW1vcnkuCgpUbyBhY2Nlc3MgdGhlIGZsYXNoLCBhIHNlcGFyYXRlIGtlcm5lbCB3aXRoIHRo ZSBwYW5lbCBkaXNhYmxlZAphbmQgdGhlIGZsYXNoIGVuYWJsZWQgc2hvdWxkIGJlIGJvb3RlZC4g VGhlIHBpbiBjb250cm9sIHNlbGVjdGluZwp3aGV0aGVyIHRvIHVzZSB0aGUgbGluZXMgY2Fubm90 IGJlIGFsdGVyZWQgYXQgcnVudGltZSBkdWUgdG8KaGFyZHdhcmUgY29uc3RyYWludHMuCgpTaWdu ZWQtb2ZmLWJ5OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+Ci0tLQpD aGFuZ2VMb2cgdjEtPnYyOgotIFJlbmFtZSBub2RlIGZyb20gInR2YyIgdG8gImRpc3BsYXktY29u dHJvbGxlciIKCkRSTSBkZXZlbG9wZXJzOiBJIHdpbGwgbWVyZ2UgdGhpcyBwYXRjaCB0aHJvdWdo IHRoZSBBUk0gU29DCnRyZWUuIEl0IGlzIG9ubHkgaW5jbHVkZWQgaW4gdGhpcyBzZXJpZXMgZm9y IGNvbXBsZXRpb24uCi0tLQogYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pLWRsaW5rLWRpci02ODUu ZHRzIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg NzQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jv b3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2dlbWlu aS1kbGluay1kaXItNjg1LmR0cwppbmRleCAwOTRhMjk2MjRiOGQuLjhlNDAzNzU5N2EyYyAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzCisrKyBi L2FyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cwpAQCAtNDYsNiArNDYs NTkgQEAKIAkJfTsKIAl9OwogCisJdmRpc3A6IHJlZ3VsYXRvciB7CisJCWNvbXBhdGlibGUgPSAi cmVndWxhdG9yLWZpeGVkIjsKKwkJcmVndWxhdG9yLW5hbWUgPSAiZGlzcGxheS1wb3dlciI7CisJ CXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDM2MDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1p Y3Jvdm9sdCA9IDwzNjAwMDAwPjsKKwkJLyogQ29sbGlkZXMgd2l0aCBMQ0QgRSAqLworCQlncGlv ID0gPCZncGlvMCAxNiBHUElPX0FDVElWRV9ISUdIPjsKKwkJZW5hYmxlLWFjdGl2ZS1oaWdoOwor CX07CisKKwlzcGkgeworCQljb21wYXRpYmxlID0gInNwaS1ncGlvIjsKKwkJI2FkZHJlc3MtY2Vs bHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCisJCS8qIENvbGxpZGVzIHdpdGggSURF IHBpbnMsIHRoYXQncyBjb29sICh3ZSBkbyBub3QgdXNlIHRoZW0pICovCisJCWdwaW8tc2NrID0g PCZncGlvMSA1IEdQSU9fQUNUSVZFX0hJR0g+OworCQlncGlvLW1pc28gPSA8JmdwaW8xIDggR1BJ T19BQ1RJVkVfSElHSD47CisJCWdwaW8tbW9zaSA9IDwmZ3BpbzEgNyBHUElPX0FDVElWRV9ISUdI PjsKKwkJLyogQ29sbGlkZXMgd2l0aCBwZmxhc2ggQ0UxLCBub3Qgc28gY29vbCAqLworCQljcy1n cGlvcyA9IDwmZ3BpbzAgMjAgR1BJT19BQ1RJVkVfSElHSD47CisJCW51bS1jaGlwc2VsZWN0cyA9 IDwxPjsKKworCQlwYW5lbDogZGlzcGxheUAwIHsKKwkJCWNvbXBhdGlibGUgPSAiaWxpdGVrLGls aTkzMjIiOworCQkJcmVnID0gPDA+OworCQkJLyogNTAgbnMgbWluIHBlcmlvZCA9IDIwIE1IeiAq LworCQkJc3BpLW1heC1mcmVxdWVuY3kgPSA8MjAwMDAwMDA+OworCQkJc3BpLWNwb2w7IC8qIENs b2NrIGFjdGl2ZSBsb3cgKi8KKworCQkJLyogUGFuZWwgTE05MThBMDEtMUEgU1ktQjQtMDkxMTE2 LUUwMTk5ICovCisJCQl3aWR0aC1tbSA9IDw2NT47CisJCQloZWlnaHQtbW0gPSA8NTA+OworCQkJ aWxpdGVrLGVudHJ5LW1vZGUgPSA8MTE+OworCQkJaWxpdGVrLHZyZWcxb3V0LW1pY3Jvdm9sdCA9 IDw0NjAwPjsKKwkJCWlsaXRlayx2Y29tLWhpZ2gtcGVyY2VudCA9IDw5MT47CisJCQlpbGl0ZWss dmNvbS1hbXBsaXR1ZGUtcGVyY2VudCA9IDwxMTQ+OworCQkJaWxpdGVrLGdhbW1hLWNvcnJlY3Rp b24tbmVnID0gPDB4YT4sIDwweDU+LCA8MHg3PiwKKwkJCQk8MHg3PiwgPDB4Nz4sIDwweDU+LCA8 MHgxPiwgPDB4Nj47CisJCQlpbGl0ZWssZ2FtbWEtY29ycmVjdGlvbi1wb3MgPSA8MHg3PiwgPDB4 Nz4sIDwweDM+LAorCQkJCTwweDI+LCA8MHgzPiwgPDB4NT4sIDwweDc+LCA8MHgyPjsKKwkJCXZj Yy1zdXBwbHkgPSA8JnZkaXNwPjsKKwkJCWlvdmNjLXN1cHBseSA9IDwmdmRpc3A+OworCQkJdmNp LXN1cHBseSA9IDwmdmRpc3A+OworCisJCQlwb3J0IHsKKwkJCQlwYW5lbF9pbjogZW5kcG9pbnQg eworCQkJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmRpc3BsYXlfb3V0PjsKKwkJCQl9OworCQkJfTsK KwkJfTsKKwl9OworCiAJbGVkcyB7CiAJCWNvbXBhdGlibGUgPSAiZ3Bpby1sZWRzIjsKIAkJbGVk QDcgewpAQCAtMTE0LDcgKzE2NywxNiBAQAogCiAJc29jIHsKIAkJZmxhc2hAMzAwMDAwMDAgewot CQkJc3RhdHVzID0gIm9rYXkiOworCQkJLyoKKwkJCSAqIEZsYXNoIGFjY2VzcyBpcyBieSBkZWZh dWx0IGRpc2FibGVkLCBiZWNhdXNlIGl0CisJCQkgKiBjb2xsaWRlcyB3aXRoIHRoZSBDaGlwIEVu YWJsZSBzaWduYWwgZm9yIHRoZSBkaXNwbGF5CisJCQkgKiBwYW5lbCwgdGhhdCByZXVzZSB0aGUg cGFyYWxsZWwgZmxhc2ggQ2hpcCBTZWxlY3QgMQorCQkJICogKENTMSkuIEVuYWJsaW5nIGZsYXNo IG1ha2VzIGdyYXBoaWNzIHN0b3Agd29ya2luZy4KKwkJCSAqCisJCQkgKiBXZSBtaWdodCBiZSBh YmxlIHRvIGhhY2sgYXJvdW5kIHRoaXMgYnkgbGV0dGluZworCQkJICogR1BJTyBwb2tlIGFyb3Vu ZCBpbiB0aGUgZmxhc2ggY29udHJvbGxlciByZWdpc3RlcnMuCisJCQkgKi8KKwkJCS8qIHN0YXR1 cyA9ICJva2F5IjsgKi8KIAkJCS8qIDMyTUIgb2YgZmxhc2ggKi8KIAkJCXJlZyA9IDwweDMwMDAw MDAwIDB4MDIwMDAwMDA+OwogCkBAIC0yNDEsNSArMzAzLDE2IEBACiAJCWF0YUA2MzAwMDAwMCB7 CiAJCQlzdGF0dXMgPSAib2theSI7CiAJCX07CisKKwkJZGlzcGxheS1jb250cm9sbGVyQDZhMDAw MDAwIHsKKwkJCXN0YXR1cyA9ICJva2F5IjsKKworCQkJcG9ydEAwIHsKKwkJCQlyZWcgPSA8MD47 CisJCQkJZGlzcGxheV9vdXQ6IGVuZHBvaW50IHsKKwkJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZw YW5lbF9pbj47CisJCQkJfTsKKwkJCX07CisJCX07CiAJfTsKIH07Ci0tIAoyLjEzLjUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=