From mboxrd@z Thu Jan 1 00:00:00 1970 From: linus.walleij@linaro.org (Linus Walleij) Date: Sun, 13 Aug 2017 17:11:32 +0200 Subject: [PATCH 4/4] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685 In-Reply-To: <20170813151132.24736-1-linus.walleij@linaro.org> References: <20170813151132.24736-1-linus.walleij@linaro.org> Message-ID: <20170813151132.24736-5-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 --- 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 | 77 +++++++++++++++++++++++++++++- 1 file changed, 76 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..6c8d3d839ae6 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,18 @@ ata at 63000000 { status = "okay"; }; + + tvc at 6a000000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + port at 0 { + reg = <0>; + display_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; }; }; -- 2.13.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Walleij Subject: [PATCH 4/4] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685 Date: Sun, 13 Aug 2017 17:11:32 +0200 Message-ID: <20170813151132.24736-5-linus.walleij@linaro.org> References: <20170813151132.24736-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-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0A0836E0B6 for ; Sun, 13 Aug 2017 15:12:05 +0000 (UTC) Received: by mail-lf0-x233.google.com with SMTP id d17so31499310lfe.0 for ; Sun, 13 Aug 2017 08:12:05 -0700 (PDT) In-Reply-To: <20170813151132.24736-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+Ci0tLQpE Uk0gZGV2ZWxvcGVyczogSSB3aWxsIG1lcmdlIHRoaXMgcGF0Y2ggdGhyb3VnaCB0aGUgQVJNIFNv Qwp0cmVlLiBJdCBpcyBvbmx5IGluY2x1ZGVkIGluIHRoaXMgc2VyaWVzIGZvciBjb21wbGV0aW9u LgotLS0KIGFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cyB8IDc3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDc2IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9nZW1p bmktZGxpbmstZGlyLTY4NS5kdHMgYi9hcmNoL2FybS9ib290L2R0cy9nZW1pbmktZGxpbmstZGly LTY4NS5kdHMKaW5kZXggMDk0YTI5NjI0YjhkLi42YzhkM2Q4MzlhZTYgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL2Jvb3QvZHRzL2dlbWluaS1kbGluay1kaXItNjg1LmR0cworKysgYi9hcmNoL2FybS9i b290L2R0cy9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMKQEAgLTQ2LDYgKzQ2LDU5IEBACiAJCX07 CiAJfTsKIAorCXZkaXNwOiByZWd1bGF0b3IgeworCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1m aXhlZCI7CisJCXJlZ3VsYXRvci1uYW1lID0gImRpc3BsYXktcG93ZXIiOworCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDwzNjAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8 MzYwMDAwMD47CisJCS8qIENvbGxpZGVzIHdpdGggTENEIEUgKi8KKwkJZ3BpbyA9IDwmZ3BpbzAg MTYgR1BJT19BQ1RJVkVfSElHSD47CisJCWVuYWJsZS1hY3RpdmUtaGlnaDsKKwl9OworCisJc3Bp IHsKKwkJY29tcGF0aWJsZSA9ICJzcGktZ3BpbyI7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owor CQkjc2l6ZS1jZWxscyA9IDwwPjsKKworCQkvKiBDb2xsaWRlcyB3aXRoIElERSBwaW5zLCB0aGF0 J3MgY29vbCAod2UgZG8gbm90IHVzZSB0aGVtKSAqLworCQlncGlvLXNjayA9IDwmZ3BpbzEgNSBH UElPX0FDVElWRV9ISUdIPjsKKwkJZ3Bpby1taXNvID0gPCZncGlvMSA4IEdQSU9fQUNUSVZFX0hJ R0g+OworCQlncGlvLW1vc2kgPSA8JmdwaW8xIDcgR1BJT19BQ1RJVkVfSElHSD47CisJCS8qIENv bGxpZGVzIHdpdGggcGZsYXNoIENFMSwgbm90IHNvIGNvb2wgKi8KKwkJY3MtZ3Bpb3MgPSA8Jmdw aW8wIDIwIEdQSU9fQUNUSVZFX0hJR0g+OworCQludW0tY2hpcHNlbGVjdHMgPSA8MT47CisKKwkJ cGFuZWw6IGRpc3BsYXlAMCB7CisJCQljb21wYXRpYmxlID0gImlsaXRlayxpbGk5MzIyIjsKKwkJ CXJlZyA9IDwwPjsKKwkJCS8qIDUwIG5zIG1pbiBwZXJpb2QgPSAyMCBNSHogKi8KKwkJCXNwaS1t YXgtZnJlcXVlbmN5ID0gPDIwMDAwMDAwPjsKKwkJCXNwaS1jcG9sOyAvKiBDbG9jayBhY3RpdmUg bG93ICovCisKKwkJCS8qIFBhbmVsIExNOTE4QTAxLTFBIFNZLUI0LTA5MTExNi1FMDE5OSAqLwor CQkJd2lkdGgtbW0gPSA8NjU+OworCQkJaGVpZ2h0LW1tID0gPDUwPjsKKwkJCWlsaXRlayxlbnRy eS1tb2RlID0gPDExPjsKKwkJCWlsaXRlayx2cmVnMW91dC1taWNyb3ZvbHQgPSA8NDYwMD47CisJ CQlpbGl0ZWssdmNvbS1oaWdoLXBlcmNlbnQgPSA8OTE+OworCQkJaWxpdGVrLHZjb20tYW1wbGl0 dWRlLXBlcmNlbnQgPSA8MTE0PjsKKwkJCWlsaXRlayxnYW1tYS1jb3JyZWN0aW9uLW5lZyA9IDww eGE+LCA8MHg1PiwgPDB4Nz4sCisJCQkJPDB4Nz4sIDwweDc+LCA8MHg1PiwgPDB4MT4sIDwweDY+ OworCQkJaWxpdGVrLGdhbW1hLWNvcnJlY3Rpb24tcG9zID0gPDB4Nz4sIDwweDc+LCA8MHgzPiwK KwkJCQk8MHgyPiwgPDB4Mz4sIDwweDU+LCA8MHg3PiwgPDB4Mj47CisJCQl2Y2Mtc3VwcGx5ID0g PCZ2ZGlzcD47CisJCQlpb3ZjYy1zdXBwbHkgPSA8JnZkaXNwPjsKKwkJCXZjaS1zdXBwbHkgPSA8 JnZkaXNwPjsKKworCQkJcG9ydCB7CisJCQkJcGFuZWxfaW46IGVuZHBvaW50IHsKKwkJCQkJcmVt b3RlLWVuZHBvaW50ID0gPCZkaXNwbGF5X291dD47CisJCQkJfTsKKwkJCX07CisJCX07CisJfTsK KwogCWxlZHMgewogCQljb21wYXRpYmxlID0gImdwaW8tbGVkcyI7CiAJCWxlZEA3IHsKQEAgLTEx NCw3ICsxNjcsMTYgQEAKIAogCXNvYyB7CiAJCWZsYXNoQDMwMDAwMDAwIHsKLQkJCXN0YXR1cyA9 ICJva2F5IjsKKwkJCS8qCisJCQkgKiBGbGFzaCBhY2Nlc3MgaXMgYnkgZGVmYXVsdCBkaXNhYmxl ZCwgYmVjYXVzZSBpdAorCQkJICogY29sbGlkZXMgd2l0aCB0aGUgQ2hpcCBFbmFibGUgc2lnbmFs IGZvciB0aGUgZGlzcGxheQorCQkJICogcGFuZWwsIHRoYXQgcmV1c2UgdGhlIHBhcmFsbGVsIGZs YXNoIENoaXAgU2VsZWN0IDEKKwkJCSAqIChDUzEpLiBFbmFibGluZyBmbGFzaCBtYWtlcyBncmFw aGljcyBzdG9wIHdvcmtpbmcuCisJCQkgKgorCQkJICogV2UgbWlnaHQgYmUgYWJsZSB0byBoYWNr IGFyb3VuZCB0aGlzIGJ5IGxldHRpbmcKKwkJCSAqIEdQSU8gcG9rZSBhcm91bmQgaW4gdGhlIGZs YXNoIGNvbnRyb2xsZXIgcmVnaXN0ZXJzLgorCQkJICovCisJCQkvKiBzdGF0dXMgPSAib2theSI7 ICovCiAJCQkvKiAzMk1CIG9mIGZsYXNoICovCiAJCQlyZWcgPSA8MHgzMDAwMDAwMCAweDAyMDAw MDAwPjsKIApAQCAtMjQxLDUgKzMwMywxOCBAQAogCQlhdGFANjMwMDAwMDAgewogCQkJc3RhdHVz ID0gIm9rYXkiOwogCQl9OworCisJCXR2Y0A2YTAwMDAwMCB7CisJCQlzdGF0dXMgPSAib2theSI7 CisJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlw b3J0QDAgeworCQkJCXJlZyA9IDwwPjsKKwkJCQlkaXNwbGF5X291dDogZW5kcG9pbnQgeworCQkJ CQlyZW1vdGUtZW5kcG9pbnQgPSA8JnBhbmVsX2luPjsKKwkJCQl9OworCQkJfTsKKwkJfTsKIAl9 OwogfTsKLS0gCjIuMTMuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==