diff mbox series

[1/2] ARM: dts: iwg22d-sodimm: enable LCD panel

Message ID 1580323253-3281-2-git-send-email-marian-cristian.rotariu.rb@bp.renesas.com (mailing list archive)
State Changes Requested
Delegated to: Geert Uytterhoeven
Headers show
Series iwg22d-sodimm: enable RGB LCD panel | expand

Commit Message

Marian-Cristian Rotariu Jan. 29, 2020, 6:40 p.m. UTC
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.

Signed-off-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 60 +++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

Comments

Geert Uytterhoeven March 2, 2020, 1:39 p.m. UTC | #1
Hi Marian-Cristian,

On Wed, Jan 29, 2020 at 7:58 PM Marian-Cristian Rotariu
<marian-cristian.rotariu.rb@bp.renesas.com> wrote:
> 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.
>
> Signed-off-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Thanks for your patch!

> --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
> +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
> @@ -79,6 +79,52 @@
>                 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 {
> +               compatible = "pwm-backlight";
> +               pwms = <&tpu 3 5000000 GPIO_ACTIVE_LOW>;
> +               brightness-levels = <0 4 8 16 32 64 128 255>;
> +               default-brightness-level = <7>;
> +               pinctrl-0 = <&backlight_pins>;
> +               pinctrl-names = "default";
> +       };
> +
> +       lcd {
> +               compatible = "edt,etm043080dh6gp", "simple-panel";

According to the latest panel-simple.yaml, the "simple-panel" should be
dropped...

> +               power-supply = <&vccq_panel>;
> +
> +               ports {
> +                       port@0 {
> +                               lcd_in: endpoint {
> +                                       remote-endpoint = <&du_out_rgb0>;
> +                               };
> +                       };
> +               };

... and there should only be a single "port".

> +       };
> +};
> +
> +&du {
> +       pinctrl-0 = <&du0_pins>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +
> +       ports {
> +               port@0 {
> +                       endpoint {
> +                               remote-endpoint = <&lcd_in>;
> +                       };
> +               };
> +       };
>  };
>
>  &avb {
> @@ -150,11 +196,21 @@
>                 function = "avb";
>         };
>
> +       backlight_pins: backlight {
> +               renesas,groups = "tpu_to3";

According to my schematics, DISP_BL_GPIO is connected to TPUTO3_C(GP0_21),
so this should be "tpu_to3_c".

> +               renesas,function = "tpu";
> +       };
> +
>         can0_pins: can0 {
>                 groups = "can0_data";
>                 function = "can0";
>         };
>
> +       du0_pins: du0 {
> +               renesas,groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
> +               renesas,function = "du0";
> +       };
> +
>         hscif1_pins: hscif1 {
>                 groups = "hscif1_data", "hscif1_ctrl";
>                 function = "hscif1";

Gr{oetje,eeting}s,

                        Geert
Marian-Cristian Rotariu March 3, 2020, 10:08 a.m. UTC | #2
Hi Geert,

Thank you for your review!

> -----Original Message-----
> From: Geert Uytterhoeven <geert@linux-m68k.org>
> Sent: 02 March 2020 13:40
> To: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
> Cc: Linux-Renesas <linux-renesas-soc@vger.kernel.org>; Chris Paterson
> <Chris.Paterson2@renesas.com>; Prabhakar Mahadev Lad
> <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Subject: Re: [PATCH 1/2] ARM: dts: iwg22d-sodimm: enable LCD panel
> 
> Hi Marian-Cristian,
> 
> On Wed, Jan 29, 2020 at 7:58 PM Marian-Cristian Rotariu <marian-
> cristian.rotariu.rb@bp.renesas.com> wrote:
> > 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.
> >
> > Signed-off-by: Marian-Cristian Rotariu
> > <marian-cristian.rotariu.rb@bp.renesas.com>
> > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-
> lad.rj@bp.renesas.com>
> 
> Thanks for your patch!
> 
> > --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
> > +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
> > @@ -79,6 +79,52 @@
> >                 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 {
> > +               compatible = "pwm-backlight";
> > +               pwms = <&tpu 3 5000000 GPIO_ACTIVE_LOW>;
> > +               brightness-levels = <0 4 8 16 32 64 128 255>;
> > +               default-brightness-level = <7>;
> > +               pinctrl-0 = <&backlight_pins>;
> > +               pinctrl-names = "default";
> > +       };
> > +
> > +       lcd {
> > +               compatible = "edt,etm043080dh6gp", "simple-panel";
> 
> According to the latest panel-simple.yaml, the "simple-panel" should be
> dropped...
I will drop "simple-panel" in v2.

> 
> > +               power-supply = <&vccq_panel>;
> > +
> > +               ports {
> > +                       port@0 {
> > +                               lcd_in: endpoint {
> > +                                       remote-endpoint = <&du_out_rgb0>;
> > +                               };
> > +                       };
> > +               };
> 
> ... and there should only be a single "port".
Indeed, I will fix it.

> 
> > +       };
> > +};
> > +
> > +&du {
> > +       pinctrl-0 = <&du0_pins>;
> > +       pinctrl-names = "default";
> > +
> > +       status = "okay";
> > +
> > +       ports {
> > +               port@0 {
> > +                       endpoint {
> > +                               remote-endpoint = <&lcd_in>;
> > +                       };
> > +               };
> > +       };
> >  };
> >
> >  &avb {
> > @@ -150,11 +196,21 @@
> >                 function = "avb";
> >         };
> >
> > +       backlight_pins: backlight {
> > +               renesas,groups = "tpu_to3";
> 
> According to my schematics, DISP_BL_GPIO is connected to
> TPUTO3_C(GP0_21), so this should be "tpu_to3_c".

This is a rather big mistake as I did not test the brightness of the panel.
I have now retested the v2 patch and the various level of brightness
work fine. I will send the v2 in a bit.

Best regards,
Marian
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
index ce6603b..878113a 100644
--- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
+++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
@@ -79,6 +79,52 @@ 
 		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 {
+		compatible = "pwm-backlight";
+		pwms = <&tpu 3 5000000 GPIO_ACTIVE_LOW>;
+		brightness-levels = <0 4 8 16 32 64 128 255>;
+		default-brightness-level = <7>;
+		pinctrl-0 = <&backlight_pins>;
+		pinctrl-names = "default";
+	};
+
+	lcd {
+		compatible = "edt,etm043080dh6gp", "simple-panel";
+		power-supply = <&vccq_panel>;
+
+		ports {
+			port@0 {
+				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 {
@@ -150,11 +196,21 @@ 
 		function = "avb";
 	};
 
+	backlight_pins: backlight {
+		renesas,groups = "tpu_to3";
+		renesas,function = "tpu";
+	};
+
 	can0_pins: can0 {
 		groups = "can0_data";
 		function = "can0";
 	};
 
+	du0_pins: du0 {
+		renesas,groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
+		renesas,function = "du0";
+	};
+
 	hscif1_pins: hscif1 {
 		groups = "hscif1_data", "hscif1_ctrl";
 		function = "hscif1";
@@ -230,6 +286,10 @@ 
 	shared-pin;
 };
 
+&tpu {
+	status = "okay";
+};
+
 &usbphy {
 	status = "okay";
 };