ARM: dts: iwg22d-sodimm: Enable LCD panel
authorMarian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
Tue, 3 Mar 2020 12:44:50 +0000 (12:44 +0000)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 11 Mar 2020 08:01:09 +0000 (09:01 +0100)
On the Generic SODIMM Development Platform there is an RGB LCD panel
directly connected to the DU output. It uses the TPU0 as backlight, one
GPIO pull-up configuration for power enable, R[2:7], G[2:7], B[2:7],
VSYNC, HSYNC, DU0_DISP and, DU0_CLK as inputs.

There is no encoder between the DU and the panel, therefore the default
connector driver is used.

The two variants of the iW-G22D should be mutually exclusive, therefore
this patch also disables the RGB LCD display when the HDMI extension board
is used.

Signed-off-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
Link: https://lore.kernel.org/r/1583239490-8837-1-git-send-email-marian-cristian.rotariu.rb@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts
arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts

index 2aeebfc9e4f1154b2e910b509818af069c087781..92aa26ba423c59584e4a35ceeef5c1d67f9f218b 100644 (file)
        };
 };
 
+&lcd_panel {
+       status = "disabled";
+
+       /delete-node/ port;
+};
+
 &pfc {
        can1_pins: can1 {
                groups = "can1_data_b";
index 58d369ad82799f4ac74e69ad7a1c9f182d6c5129..2487ba0e9c9f5aace5ede70b2b78ed20b40e70d5 100644 (file)
@@ -30,6 +30,7 @@
 
 /dts-v1/;
 #include "r8a7745-iwg22m.dtsi"
+#include <dt-bindings/pwm/pwm.h>
 
 / {
        model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E";
                gpios-states = <1>;
                states = <3300000 1>, <1800000 0>;
        };
+
+       vccq_panel: regulator-vccq-panel {
+               compatible = "regulator-fixed";
+               regulator-name = "Panel VccQ";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
+               enable-active-high;
+       };
+
+       backlight_lcd: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&tpu 3 5000000 PWM_POLARITY_INVERTED>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+       };
+
+       lcd_panel: lcd {
+               compatible = "edt,etm043080dh6gp";
+               power-supply = <&vccq_panel>;
+               backlight = <&backlight_lcd>;
+
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&du_out_rgb0>;
+                       };
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       endpoint {
+                               remote-endpoint = <&lcd_in>;
+                       };
+               };
+       };
 };
 
 &avb {
                function = "avb";
        };
 
+       backlight_pins: backlight {
+               groups = "tpu_to3_c";
+               function = "tpu";
+       };
+
        can0_pins: can0 {
                groups = "can0_data";
                function = "can0";
        };
 
+       du0_pins: du0 {
+               groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
+               function = "du0";
+       };
+
        hscif1_pins: hscif1 {
                groups = "hscif1_data", "hscif1_ctrl";
                function = "hscif1";
        shared-pin;
 };
 
+&tpu {
+       pinctrl-0 = <&backlight_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &usbphy {
        status = "okay";
 };