diff mbox series

[8/8] arm64: dts: renesas: hihope-rzg2-ex: Add LVDS panel support

Message ID 1569932124-32010-9-git-send-email-biju.das@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series Add Display support | expand

Commit Message

Biju Das Oct. 1, 2019, 12:15 p.m. UTC
This patch adds support for Advantech idk-1110wr LVDS panel.
The HiHope RZ/G2[MN] is advertised as compatible with panel idk-1110wr
from Advantech, however the panel isn't sold alongside the board.

Signed-off-by: Biju Das <biju.das@bp.renesas.com>
---
 arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi  | 30 +++++++++++++++++++
 arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi | 37 ++++++++++++++++++++++++
 2 files changed, 67 insertions(+)
 create mode 100644 arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi

Comments

Laurent Pinchart Oct. 1, 2019, 6:25 p.m. UTC | #1
Hi Biju,

Thank you for the patch.

On Tue, Oct 01, 2019 at 01:15:24PM +0100, Biju Das wrote:
> This patch adds support for Advantech idk-1110wr LVDS panel.
> The HiHope RZ/G2[MN] is advertised as compatible with panel idk-1110wr
> from Advantech, however the panel isn't sold alongside the board.
> 
> Signed-off-by: Biju Das <biju.das@bp.renesas.com>
> ---
>  arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi  | 30 +++++++++++++++++++
>  arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi | 37 ++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> 
> diff --git a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> index 70f9a2a..ae1ef2d 100644
> --- a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> +++ b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> @@ -5,6 +5,8 @@
>   * Copyright (C) 2019 Renesas Electronics Corp.
>   */
>  
> +#include "rzg2-panel-lvds.dtsi"
> +
>  / {
>  	aliases {
>  		ethernet0 = &avb;
> @@ -51,6 +53,34 @@
>  	status = "okay";
>  };
>  
> +&gpio1 {
> +	/*
> +	 * When GP1_20 is LOW LVDS0 is connected to the LVDS connector
> +	 * When GP1_20 is HIGH LVDS0 is connected to the LT8918L
> +	 */
> +	lvds-connector-en-gpio {
> +		gpio-hog;
> +		gpios = <20 GPIO_ACTIVE_HIGH>;
> +		output-low;
> +		line-name = "lvds-connector-en-gpio";
> +	};
> +};
> +
> +&lvds0 {
> +	/* Uncomment  below line to enable lvds panel connected to RZ/G2N board
> +	 */
> +
> +	/* status = "okay"; */
> +
> +	ports {
> +		port@1 {
> +			lvds_connector: endpoint {
> +				remote-endpoint = <&panel_in_advantech_idk_1110wr>;
> +			};
> +		};
> +	};
> +};
> +
>  &pciec0 {
>  	status = "okay";
>  };
> diff --git a/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> new file mode 100644
> index 0000000..768a8ec
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi

Should this be named according to the panel name istead of just
"panel-lvds" ? It could be used by any board, and this board could also
use a different LVDS panel.

> @@ -0,0 +1,37 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Device Tree Source for the LVDS panels connected to RZ/G2 boards
> + *
> + * Copyright (C) 2019 Renesas Electronics Corp.
> + */
> +
> +/ {
> +
> +	panel-lvds {
> +		compatible = "advantech,idk-1110wr", "panel-lvds";
> +
> +		width-mm = <223>;
> +		height-mm = <125>;
> +
> +		data-mapping = "jeida-24";
> +
> +		panel-timing {
> +			/* 1024x600 @60Hz */
> +			clock-frequency = <51200000>;
> +			hactive = <1024>;
> +			vactive = <600>;
> +			hsync-len = <240>;
> +			hfront-porch = <40>;
> +			hback-porch = <40>;
> +			vfront-porch = <15>;
> +			vback-porch = <10>;
> +			vsync-len = <10>;
> +		};
> +
> +		port {
> +			panel_in_advantech_idk_1110wr: endpoint {

Could we abbreviate the label name to panel_in ? That way the board .dts
wouldn't need to update the remote-endpoint phandle to use a different
panel, only the #include would need to be changed.

> +				remote-endpoint = <&lvds_connector>;
> +			};
> +		};
> +	};
> +};

For the same reason I would set the remote-endpoint for &lvds_connector
here. See arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi for an example.
Biju Das Oct. 2, 2019, 8:30 a.m. UTC | #2
Hi Laurent,

Thanks for your feedback.

> Subject: Re: [PATCH 8/8] arm64: dts: renesas: hihope-rzg2-ex: Add LVDS
> panel support
> 
> Hi Biju,
> 
> Thank you for the patch.
> 
> On Tue, Oct 01, 2019 at 01:15:24PM +0100, Biju Das wrote:
> > This patch adds support for Advantech idk-1110wr LVDS panel.
> > The HiHope RZ/G2[MN] is advertised as compatible with panel idk-1110wr
> > from Advantech, however the panel isn't sold alongside the board.
> >
> > Signed-off-by: Biju Das <biju.das@bp.renesas.com>
> > ---
> >  arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi  | 30
> > +++++++++++++++++++  arch/arm64/boot/dts/renesas/rzg2-panel-
> lvds.dtsi
> > | 37 ++++++++++++++++++++++++
> >  2 files changed, 67 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> >
> > diff --git a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> > b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> > index 70f9a2a..ae1ef2d 100644
> > --- a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
> > @@ -5,6 +5,8 @@
> >   * Copyright (C) 2019 Renesas Electronics Corp.
> >   */
> >
> > +#include "rzg2-panel-lvds.dtsi"
> > +
> >  / {
> >  	aliases {
> >  		ethernet0 = &avb;
> > @@ -51,6 +53,34 @@
> >  	status = "okay";
> >  };
> >
> > +&gpio1 {
> > +	/*
> > +	 * When GP1_20 is LOW LVDS0 is connected to the LVDS connector
> > +	 * When GP1_20 is HIGH LVDS0 is connected to the LT8918L
> > +	 */
> > +	lvds-connector-en-gpio {
> > +		gpio-hog;
> > +		gpios = <20 GPIO_ACTIVE_HIGH>;
> > +		output-low;
> > +		line-name = "lvds-connector-en-gpio";
> > +	};
> > +};
> > +
> > +&lvds0 {
> > +	/* Uncomment  below line to enable lvds panel connected to
> RZ/G2N board
> > +	 */
> > +
> > +	/* status = "okay"; */
> > +
> > +	ports {
> > +		port@1 {
> > +			lvds_connector: endpoint {
> > +				remote-endpoint =
> <&panel_in_advantech_idk_1110wr>;
> > +			};
> > +		};
> > +	};
> > +};
> > +
> >  &pciec0 {
> >  	status = "okay";
> >  };
> > diff --git a/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> > b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> > new file mode 100644 advantech,idk-2121wr
> > index 0000000..768a8ec
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
> 
> Should this be named according to the panel name istead of just "panel-lvds"
> ? It could be used by any board, and this board could also use a different
> LVDS panel.

I thought ,we can use a common file for all the LVDS panels used by RZ/G2 boards and refer the panel from board dtsi.
For eg:- RZ/G2[MN] will refer " panel_in_advantech_idk_1110wr" and RZ/G2E will refer " panel_in_advantech_idk_2121wr"
If user wants a different panel, then  needs to define panel definitions in this file and use it.  But I am not sure it is the right thing to do.

OK. Anyway I will create a panel specific dtsi file and send V2.

> > @@ -0,0 +1,37 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Device Tree Source for the LVDS panels connected to RZ/G2 boards
> > + *
> > + * Copyright (C) 2019 Renesas Electronics Corp.
> > + */
> > +
> > +/ {
> > +
> > +	panel-lvds {
> > +		compatible = "advantech,idk-1110wr", "panel-lvds";
> > +
> > +		width-mm = <223>;
> > +		height-mm = <125>;
> > +
> > +		data-mapping = "jeida-24";
> > +
> > +		panel-timing {
> > +			/* 1024x600 @60Hz */
> > +			clock-frequency = <51200000>;
> > +			hactive = <1024>;
> > +			vactive = <600>;
> > +			hsync-len = <240>;
> > +			hfront-porch = <40>;
> > +			hback-porch = <40>;
> > +			vfront-porch = <15>;
> > +			vback-porch = <10>;
> > +			vsync-len = <10>;
> > +		};
> > +
> > +		port {
> > +			panel_in_advantech_idk_1110wr: endpoint {
> 
> Could we abbreviate the label name to panel_in ? That way the board .dts
> wouldn't need to update the remote-endpoint phandle to use a different
> panel, only the #include would need to be changed.

OK. Will change this.

> > +				remote-endpoint = <&lvds_connector>;
> > +			};
> > +		};
> > +	};
> > +};
> 
> For the same reason I would set the remote-endpoint for &lvds_connector
> here. See arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi for an example.

OK.  Will add this.

Regards,
Biju
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
index 70f9a2a..ae1ef2d 100644
--- a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
+++ b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
@@ -5,6 +5,8 @@ 
  * Copyright (C) 2019 Renesas Electronics Corp.
  */
 
+#include "rzg2-panel-lvds.dtsi"
+
 / {
 	aliases {
 		ethernet0 = &avb;
@@ -51,6 +53,34 @@ 
 	status = "okay";
 };
 
+&gpio1 {
+	/*
+	 * When GP1_20 is LOW LVDS0 is connected to the LVDS connector
+	 * When GP1_20 is HIGH LVDS0 is connected to the LT8918L
+	 */
+	lvds-connector-en-gpio {
+		gpio-hog;
+		gpios = <20 GPIO_ACTIVE_HIGH>;
+		output-low;
+		line-name = "lvds-connector-en-gpio";
+	};
+};
+
+&lvds0 {
+	/* Uncomment  below line to enable lvds panel connected to RZ/G2N board
+	 */
+
+	/* status = "okay"; */
+
+	ports {
+		port@1 {
+			lvds_connector: endpoint {
+				remote-endpoint = <&panel_in_advantech_idk_1110wr>;
+			};
+		};
+	};
+};
+
 &pciec0 {
 	status = "okay";
 };
diff --git a/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
new file mode 100644
index 0000000..768a8ec
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/rzg2-panel-lvds.dtsi
@@ -0,0 +1,37 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the LVDS panels connected to RZ/G2 boards
+ *
+ * Copyright (C) 2019 Renesas Electronics Corp.
+ */
+
+/ {
+
+	panel-lvds {
+		compatible = "advantech,idk-1110wr", "panel-lvds";
+
+		width-mm = <223>;
+		height-mm = <125>;
+
+		data-mapping = "jeida-24";
+
+		panel-timing {
+			/* 1024x600 @60Hz */
+			clock-frequency = <51200000>;
+			hactive = <1024>;
+			vactive = <600>;
+			hsync-len = <240>;
+			hfront-porch = <40>;
+			hback-porch = <40>;
+			vfront-porch = <15>;
+			vback-porch = <10>;
+			vsync-len = <10>;
+		};
+
+		port {
+			panel_in_advantech_idk_1110wr: endpoint {
+				remote-endpoint = <&lvds_connector>;
+			};
+		};
+	};
+};