[PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine

Gopi Botlagunta posted 2 patches 3 months ago
[PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Gopi Botlagunta 3 months ago
Below is the routing diagram of dsi lanes from qcs6490 soc to
mezzanine.

DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
                 |
                  --> SW2700.1 --> dsi connector
                              |
                               --> LT9211c --> LVDS connector

Disable hdmi connector for industrial mezzanine and enable
LT9211c bridge and lvds panel node.
LT9211c is powered by default with reset gpio connected to 117.

Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
---
 .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
 1 file changed, 106 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
index 619a42b5ef48..cc8ee1643167 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
@@ -8,6 +8,112 @@
 #include <dt-bindings/clock/qcom,gcc-sc7280.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
+/ {
+
+	hdmi-connector {
+		status = "disabled";
+	};
+
+	panel_lvds: panel-lvds@0 {
+		compatible = "panel-lvds";
+		data-mapping = "vesa-24";
+		width-mm = <476>;
+		height-mm = <268>;
+
+		status = "okay";
+
+		panel-timing {
+			clock-frequency = <148500000>;
+			hactive = <1920>;
+			vactive = <1080>;
+			hfront-porch = <88>;
+			hback-porch = <148>;
+			hsync-len = <44>;
+			vfront-porch = <4>;
+			vback-porch = <36>;
+			vsync-len = <5>;
+			de-active = <1>;
+		};
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				dual-lvds-odd-pixels;
+				panel_in_lvds_odd: endpoint {
+					remote-endpoint = <&lt9211c_out_odd>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				dual-lvds-even-pixels;
+				panel_in_lvds_even: endpoint {
+					remote-endpoint = <&lt9211c_out_even>;
+				};
+
+			};
+		};
+	};
+
+};
+
+&i2c1 {
+	status = "okay";
+
+	lvds_bridge: lvds-bridge@29 {
+		compatible = "lontium,lt9211c";
+		reg = <0x29>;
+		reset-gpios = <&tlmm 117 1>;
+
+		status = "okay";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lt9211c_in: endpoint {
+					data-lanes = <0 1 2 3>;
+					remote-endpoint = <&mdss_dsi0_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				lt9211c_out_odd: endpoint {
+					remote-endpoint = <&panel_in_lvds_odd>;
+				};
+			};
+
+			port@3 {
+				reg = <3>;
+
+				lt9211c_out_even: endpoint {
+					remote-endpoint = <&panel_in_lvds_even>;
+				};
+			};
+		};
+	};
+
+
+};
+
+&lt9611_codec {
+	status = "disabled";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&lt9211c_in>;
+};
+
 &spi11 {
 	#address-cells = <1>;
 	#size-cells = <0>;

-- 
2.34.1
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Bjorn Andersson 2 months, 4 weeks ago
On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> Below is the routing diagram of dsi lanes from qcs6490 soc to
> mezzanine.
> 
> DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
>                  |
>                   --> SW2700.1 --> dsi connector
>                               |
>                                --> LT9211c --> LVDS connector
> 
> Disable hdmi connector for industrial mezzanine and enable
> LT9211c bridge and lvds panel node.
> LT9211c is powered by default with reset gpio connected to 117.

This is much better than the previous description, but it still doesn't
say when this happens. Are SW1403.4 and SW2700.1 two DIP switches?

I guess this is a logical diagram, but it's not clear. Are the signals
going through the DIP switches, or are the switches controlling some
switches?

> 
> Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>

The first signed-off-by needs to match the author of the patch, and as
Yi's isn't explicitly stated as author in your email, you're considered
the author. Perhaps a co-developed-by?

Regards,
Bjorn

> ---
>  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
>  1 file changed, 106 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> index 619a42b5ef48..cc8ee1643167 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> @@ -8,6 +8,112 @@
>  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>  
> +/ {
> +
> +	hdmi-connector {
> +		status = "disabled";
> +	};
> +
> +	panel_lvds: panel-lvds@0 {
> +		compatible = "panel-lvds";
> +		data-mapping = "vesa-24";
> +		width-mm = <476>;
> +		height-mm = <268>;
> +
> +		status = "okay";
> +
> +		panel-timing {
> +			clock-frequency = <148500000>;
> +			hactive = <1920>;
> +			vactive = <1080>;
> +			hfront-porch = <88>;
> +			hback-porch = <148>;
> +			hsync-len = <44>;
> +			vfront-porch = <4>;
> +			vback-porch = <36>;
> +			vsync-len = <5>;
> +			de-active = <1>;
> +		};
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				dual-lvds-odd-pixels;
> +				panel_in_lvds_odd: endpoint {
> +					remote-endpoint = <&lt9211c_out_odd>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				dual-lvds-even-pixels;
> +				panel_in_lvds_even: endpoint {
> +					remote-endpoint = <&lt9211c_out_even>;
> +				};
> +
> +			};
> +		};
> +	};
> +
> +};
> +
> +&i2c1 {
> +	status = "okay";
> +
> +	lvds_bridge: lvds-bridge@29 {
> +		compatible = "lontium,lt9211c";
> +		reg = <0x29>;
> +		reset-gpios = <&tlmm 117 1>;
> +
> +		status = "okay";
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lt9211c_in: endpoint {
> +					data-lanes = <0 1 2 3>;
> +					remote-endpoint = <&mdss_dsi0_out>;
> +				};
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				lt9211c_out_odd: endpoint {
> +					remote-endpoint = <&panel_in_lvds_odd>;
> +				};
> +			};
> +
> +			port@3 {
> +				reg = <3>;
> +
> +				lt9211c_out_even: endpoint {
> +					remote-endpoint = <&panel_in_lvds_even>;
> +				};
> +			};
> +		};
> +	};
> +
> +
> +};
> +
> +&lt9611_codec {
> +	status = "disabled";
> +};
> +
> +&mdss_dsi0_out {
> +	remote-endpoint = <&lt9211c_in>;
> +};
> +
>  &spi11 {
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> 
> -- 
> 2.34.1
>
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Dmitry Baryshkov 3 months ago
On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> Below is the routing diagram of dsi lanes from qcs6490 soc to
> mezzanine.
> 
> DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
>                  |
>                   --> SW2700.1 --> dsi connector
>                               |
>                                --> LT9211c --> LVDS connector
> 
> Disable hdmi connector for industrial mezzanine and enable
> LT9211c bridge and lvds panel node.
> LT9211c is powered by default with reset gpio connected to 117.
> 
> Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> ---
>  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
>  1 file changed, 106 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> index 619a42b5ef48..cc8ee1643167 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> @@ -8,6 +8,112 @@
>  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>  
> +/ {
> +
> +	hdmi-connector {
> +		status = "disabled";
> +	};
> +
> +	panel_lvds: panel-lvds@0 {
> +		compatible = "panel-lvds";

Please describe the actual panel using compatible, etc. It's not that
this is some generic uknown LVDS panel.

> +		data-mapping = "vesa-24";
> +		width-mm = <476>;
> +		height-mm = <268>;
> +
> +		status = "okay";
> +
> +		panel-timing {
> +			clock-frequency = <148500000>;
> +			hactive = <1920>;
> +			vactive = <1080>;
> +			hfront-porch = <88>;
> +			hback-porch = <148>;
> +			hsync-len = <44>;
> +			vfront-porch = <4>;
> +			vback-porch = <36>;
> +			vsync-len = <5>;
> +			de-active = <1>;
> +		};
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				dual-lvds-odd-pixels;

Add one empty line between properties and subnodes. Drop empty line
between reg and dual-foo-pixels.

> +				panel_in_lvds_odd: endpoint {
> +					remote-endpoint = <&lt9211c_out_odd>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				dual-lvds-even-pixels;
> +				panel_in_lvds_even: endpoint {
> +					remote-endpoint = <&lt9211c_out_even>;
> +				};
> +
> +			};
> +		};
> +	};
> +
> +};
> +
> +&i2c1 {
> +	status = "okay";

No clock-frequency?

> +
> +	lvds_bridge: lvds-bridge@29 {
> +		compatible = "lontium,lt9211c";

Not supported in mainline and not described as a dependency in the cover
letter.

> +		reg = <0x29>;
> +		reset-gpios = <&tlmm 117 1>;

Use GPIO_ACTIVE_foo

> +
> +		status = "okay";
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lt9211c_in: endpoint {
> +					data-lanes = <0 1 2 3>;
> +					remote-endpoint = <&mdss_dsi0_out>;
> +				};
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				lt9211c_out_odd: endpoint {
> +					remote-endpoint = <&panel_in_lvds_odd>;
> +				};
> +			};
> +
> +			port@3 {
> +				reg = <3>;
> +
> +				lt9211c_out_even: endpoint {
> +					remote-endpoint = <&panel_in_lvds_even>;
> +				};
> +			};
> +		};
> +	};
> +
> +
> +};
> +
> +&lt9611_codec {
> +	status = "disabled";
> +};
> +
> +&mdss_dsi0_out {
> +	remote-endpoint = <&lt9211c_in>;
> +};
> +
>  &spi11 {
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> 
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Bjorn Andersson 2 months, 4 weeks ago
On Wed, Nov 12, 2025 at 05:02:20PM +0200, Dmitry Baryshkov wrote:
> On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> > Below is the routing diagram of dsi lanes from qcs6490 soc to
> > mezzanine.
> > 
> > DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> >                  |
> >                   --> SW2700.1 --> dsi connector
> >                               |
> >                                --> LT9211c --> LVDS connector
> > 
> > Disable hdmi connector for industrial mezzanine and enable
> > LT9211c bridge and lvds panel node.
> > LT9211c is powered by default with reset gpio connected to 117.
> > 
> > Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> > Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> > ---
> >  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> >  1 file changed, 106 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > index 619a42b5ef48..cc8ee1643167 100644
> > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > @@ -8,6 +8,112 @@
> >  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> >  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> >  
> > +/ {
> > +
> > +	hdmi-connector {
> > +		status = "disabled";
> > +	};
> > +
> > +	panel_lvds: panel-lvds@0 {
> > +		compatible = "panel-lvds";
> 
> Please describe the actual panel using compatible, etc. It's not that
> this is some generic uknown LVDS panel.
> 

I presume the mezzanine doesn't have a panel, so how do we provide the
description of the mezzanine such that a developer can quickly get up to
speed with their specific panel connected to it?

Do we leave this node disabled, just for reference, or do we specify a
specific panel and then have the developer copy and adopt this to their
panel?

The benefit of doing it like that is that we provide a complete example
and something we can test. But at the same time, If I presume we might
have users of the mezzanine without an attached LVDS panel?

> > +		data-mapping = "vesa-24";
> > +		width-mm = <476>;
> > +		height-mm = <268>;

The way this patch is written we certainly have some specific panel in
mind...

Regards,
Bjorn

> > +
> > +		status = "okay";
> > +
> > +		panel-timing {
> > +			clock-frequency = <148500000>;
> > +			hactive = <1920>;
> > +			vactive = <1080>;
> > +			hfront-porch = <88>;
> > +			hback-porch = <148>;
> > +			hsync-len = <44>;
> > +			vfront-porch = <4>;
> > +			vback-porch = <36>;
> > +			vsync-len = <5>;
> > +			de-active = <1>;
> > +		};
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				dual-lvds-odd-pixels;
> 
> Add one empty line between properties and subnodes. Drop empty line
> between reg and dual-foo-pixels.
> 
> > +				panel_in_lvds_odd: endpoint {
> > +					remote-endpoint = <&lt9211c_out_odd>;
> > +				};
> > +			};
> > +
> > +			port@1 {
> > +				reg = <1>;
> > +
> > +				dual-lvds-even-pixels;
> > +				panel_in_lvds_even: endpoint {
> > +					remote-endpoint = <&lt9211c_out_even>;
> > +				};
> > +
> > +			};
> > +		};
> > +	};
> > +
> > +};
> > +
> > +&i2c1 {
> > +	status = "okay";
> 
> No clock-frequency?
> 
> > +
> > +	lvds_bridge: lvds-bridge@29 {
> > +		compatible = "lontium,lt9211c";
> 
> Not supported in mainline and not described as a dependency in the cover
> letter.
> 
> > +		reg = <0x29>;
> > +		reset-gpios = <&tlmm 117 1>;
> 
> Use GPIO_ACTIVE_foo
> 
> > +
> > +		status = "okay";
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				lt9211c_in: endpoint {
> > +					data-lanes = <0 1 2 3>;
> > +					remote-endpoint = <&mdss_dsi0_out>;
> > +				};
> > +			};
> > +
> > +			port@2 {
> > +				reg = <2>;
> > +
> > +				lt9211c_out_odd: endpoint {
> > +					remote-endpoint = <&panel_in_lvds_odd>;
> > +				};
> > +			};
> > +
> > +			port@3 {
> > +				reg = <3>;
> > +
> > +				lt9211c_out_even: endpoint {
> > +					remote-endpoint = <&panel_in_lvds_even>;
> > +				};
> > +			};
> > +		};
> > +	};
> > +
> > +
> > +};
> > +
> > +&lt9611_codec {
> > +	status = "disabled";
> > +};
> > +
> > +&mdss_dsi0_out {
> > +	remote-endpoint = <&lt9211c_in>;
> > +};
> > +
> >  &spi11 {
> >  	#address-cells = <1>;
> >  	#size-cells = <0>;
> > 
> > -- 
> > 2.34.1
> > 
> 
> -- 
> With best wishes
> Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Dmitry Baryshkov 2 months, 4 weeks ago
On Wed, Nov 12, 2025 at 10:53:36AM -0600, Bjorn Andersson wrote:
> On Wed, Nov 12, 2025 at 05:02:20PM +0200, Dmitry Baryshkov wrote:
> > On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> > > Below is the routing diagram of dsi lanes from qcs6490 soc to
> > > mezzanine.
> > > 
> > > DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> > >                  |
> > >                   --> SW2700.1 --> dsi connector
> > >                               |
> > >                                --> LT9211c --> LVDS connector
> > > 
> > > Disable hdmi connector for industrial mezzanine and enable
> > > LT9211c bridge and lvds panel node.
> > > LT9211c is powered by default with reset gpio connected to 117.
> > > 
> > > Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> > > Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> > > ---
> > >  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> > >  1 file changed, 106 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > index 619a42b5ef48..cc8ee1643167 100644
> > > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > @@ -8,6 +8,112 @@
> > >  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> > >  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > >  
> > > +/ {
> > > +
> > > +	hdmi-connector {
> > > +		status = "disabled";
> > > +	};
> > > +
> > > +	panel_lvds: panel-lvds@0 {
> > > +		compatible = "panel-lvds";
> > 
> > Please describe the actual panel using compatible, etc. It's not that
> > this is some generic uknown LVDS panel.
> > 
> 
> I presume the mezzanine doesn't have a panel, so how do we provide the
> description of the mezzanine such that a developer can quickly get up to
> speed with their specific panel connected to it?
> 
> Do we leave this node disabled, just for reference, or do we specify a
> specific panel and then have the developer copy and adopt this to their
> panel?
> 
> The benefit of doing it like that is that we provide a complete example
> and something we can test. But at the same time, If I presume we might
> have users of the mezzanine without an attached LVDS panel?
> 
> > > +		data-mapping = "vesa-24";
> > > +		width-mm = <476>;
> > > +		height-mm = <268>;
> 
> The way this patch is written we certainly have some specific panel in
> mind...

It's even mentioned in the subject: BOE DV215FHM-R01. Having a proper
panel compatible is demanded by the panel-lvds bindings.


-- 
With best wishes
Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Bjorn Andersson 2 months, 4 weeks ago
On Wed, Nov 12, 2025 at 10:16:27PM +0200, Dmitry Baryshkov wrote:
> On Wed, Nov 12, 2025 at 10:53:36AM -0600, Bjorn Andersson wrote:
> > On Wed, Nov 12, 2025 at 05:02:20PM +0200, Dmitry Baryshkov wrote:
> > > On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> > > > Below is the routing diagram of dsi lanes from qcs6490 soc to
> > > > mezzanine.
> > > > 
> > > > DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> > > >                  |
> > > >                   --> SW2700.1 --> dsi connector
> > > >                               |
> > > >                                --> LT9211c --> LVDS connector
> > > > 
> > > > Disable hdmi connector for industrial mezzanine and enable
> > > > LT9211c bridge and lvds panel node.
> > > > LT9211c is powered by default with reset gpio connected to 117.
> > > > 
> > > > Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> > > > Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> > > > ---
> > > >  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> > > >  1 file changed, 106 insertions(+)
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > index 619a42b5ef48..cc8ee1643167 100644
> > > > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > @@ -8,6 +8,112 @@
> > > >  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> > > >  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > > >  
> > > > +/ {
> > > > +
> > > > +	hdmi-connector {
> > > > +		status = "disabled";
> > > > +	};
> > > > +
> > > > +	panel_lvds: panel-lvds@0 {
> > > > +		compatible = "panel-lvds";
> > > 
> > > Please describe the actual panel using compatible, etc. It's not that
> > > this is some generic uknown LVDS panel.
> > > 
> > 
> > I presume the mezzanine doesn't have a panel, so how do we provide the
> > description of the mezzanine such that a developer can quickly get up to
> > speed with their specific panel connected to it?
> > 
> > Do we leave this node disabled, just for reference, or do we specify a
> > specific panel and then have the developer copy and adopt this to their
> > panel?
> > 
> > The benefit of doing it like that is that we provide a complete example
> > and something we can test. But at the same time, If I presume we might
> > have users of the mezzanine without an attached LVDS panel?
> > 
> > > > +		data-mapping = "vesa-24";
> > > > +		width-mm = <476>;
> > > > +		height-mm = <268>;
> > 
> > The way this patch is written we certainly have some specific panel in
> > mind...
> 
> It's even mentioned in the subject: BOE DV215FHM-R01. Having a proper
> panel compatible is demanded by the panel-lvds bindings.
> 

I missed that mention. But that implies then that this isn't "the
industrial mezzanine", but "the industrial mezznine with a boe
DV215FHM-R01 connected".

Are you saying that this is the way you'd prefer that we handle the
mezzanines with capabilities for extension?

Regards,
Bjorn

> 
> -- 
> With best wishes
> Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Dmitry Baryshkov 2 months, 4 weeks ago
On Wed, Nov 12, 2025 at 04:07:27PM -0600, Bjorn Andersson wrote:
> On Wed, Nov 12, 2025 at 10:16:27PM +0200, Dmitry Baryshkov wrote:
> > On Wed, Nov 12, 2025 at 10:53:36AM -0600, Bjorn Andersson wrote:
> > > On Wed, Nov 12, 2025 at 05:02:20PM +0200, Dmitry Baryshkov wrote:
> > > > On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> > > > > Below is the routing diagram of dsi lanes from qcs6490 soc to
> > > > > mezzanine.
> > > > > 
> > > > > DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> > > > >                  |
> > > > >                   --> SW2700.1 --> dsi connector
> > > > >                               |
> > > > >                                --> LT9211c --> LVDS connector
> > > > > 
> > > > > Disable hdmi connector for industrial mezzanine and enable
> > > > > LT9211c bridge and lvds panel node.
> > > > > LT9211c is powered by default with reset gpio connected to 117.
> > > > > 
> > > > > Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> > > > > Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> > > > > ---
> > > > >  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> > > > >  1 file changed, 106 insertions(+)
> > > > > 
> > > > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > index 619a42b5ef48..cc8ee1643167 100644
> > > > > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > @@ -8,6 +8,112 @@
> > > > >  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> > > > >  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > > > >  
> > > > > +/ {
> > > > > +
> > > > > +	hdmi-connector {
> > > > > +		status = "disabled";
> > > > > +	};
> > > > > +
> > > > > +	panel_lvds: panel-lvds@0 {
> > > > > +		compatible = "panel-lvds";
> > > > 
> > > > Please describe the actual panel using compatible, etc. It's not that
> > > > this is some generic uknown LVDS panel.
> > > > 
> > > 
> > > I presume the mezzanine doesn't have a panel, so how do we provide the
> > > description of the mezzanine such that a developer can quickly get up to
> > > speed with their specific panel connected to it?
> > > 
> > > Do we leave this node disabled, just for reference, or do we specify a
> > > specific panel and then have the developer copy and adopt this to their
> > > panel?
> > > 
> > > The benefit of doing it like that is that we provide a complete example
> > > and something we can test. But at the same time, If I presume we might
> > > have users of the mezzanine without an attached LVDS panel?
> > > 
> > > > > +		data-mapping = "vesa-24";
> > > > > +		width-mm = <476>;
> > > > > +		height-mm = <268>;
> > > 
> > > The way this patch is written we certainly have some specific panel in
> > > mind...
> > 
> > It's even mentioned in the subject: BOE DV215FHM-R01. Having a proper
> > panel compatible is demanded by the panel-lvds bindings.
> > 
> 
> I missed that mention. But that implies then that this isn't "the
> industrial mezzanine", but "the industrial mezznine with a boe
> DV215FHM-R01 connected".
> 
> Are you saying that this is the way you'd prefer that we handle the
> mezzanines with capabilities for extension?

Some time ago, around APQ8064 boards there was a discussion of using
EDID to identify LVDS panels (in a manner similar to panel-edp).

Does industrial mezzanine provide EDID support for the panel?

-- 
With best wishes
Dmitry
Re: [PATCH 1/2] arm64: dts: qcom: Enable lvds panel-DV215FHM-R01 for rb3gen2 industrial mezzanine
Posted by Bjorn Andersson 2 months, 4 weeks ago
On Thu, Nov 13, 2025 at 05:45:42AM +0200, Dmitry Baryshkov wrote:
> On Wed, Nov 12, 2025 at 04:07:27PM -0600, Bjorn Andersson wrote:
> > On Wed, Nov 12, 2025 at 10:16:27PM +0200, Dmitry Baryshkov wrote:
> > > On Wed, Nov 12, 2025 at 10:53:36AM -0600, Bjorn Andersson wrote:
> > > > On Wed, Nov 12, 2025 at 05:02:20PM +0200, Dmitry Baryshkov wrote:
> > > > > On Wed, Nov 12, 2025 at 08:18:11PM +0530, Gopi Botlagunta wrote:
> > > > > > Below is the routing diagram of dsi lanes from qcs6490 soc to
> > > > > > mezzanine.
> > > > > > 
> > > > > > DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> > > > > >                  |
> > > > > >                   --> SW2700.1 --> dsi connector
> > > > > >                               |
> > > > > >                                --> LT9211c --> LVDS connector
> > > > > > 
> > > > > > Disable hdmi connector for industrial mezzanine and enable
> > > > > > LT9211c bridge and lvds panel node.
> > > > > > LT9211c is powered by default with reset gpio connected to 117.
> > > > > > 
> > > > > > Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> > > > > > Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> > > > > > ---
> > > > > >  .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> > > > > >  1 file changed, 106 insertions(+)
> > > > > > 
> > > > > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > > index 619a42b5ef48..cc8ee1643167 100644
> > > > > > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> > > > > > @@ -8,6 +8,112 @@
> > > > > >  #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> > > > > >  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > > > > >  
> > > > > > +/ {
> > > > > > +
> > > > > > +	hdmi-connector {
> > > > > > +		status = "disabled";
> > > > > > +	};
> > > > > > +
> > > > > > +	panel_lvds: panel-lvds@0 {
> > > > > > +		compatible = "panel-lvds";
> > > > > 
> > > > > Please describe the actual panel using compatible, etc. It's not that
> > > > > this is some generic uknown LVDS panel.
> > > > > 
> > > > 
> > > > I presume the mezzanine doesn't have a panel, so how do we provide the
> > > > description of the mezzanine such that a developer can quickly get up to
> > > > speed with their specific panel connected to it?
> > > > 
> > > > Do we leave this node disabled, just for reference, or do we specify a
> > > > specific panel and then have the developer copy and adopt this to their
> > > > panel?
> > > > 
> > > > The benefit of doing it like that is that we provide a complete example
> > > > and something we can test. But at the same time, If I presume we might
> > > > have users of the mezzanine without an attached LVDS panel?
> > > > 
> > > > > > +		data-mapping = "vesa-24";
> > > > > > +		width-mm = <476>;
> > > > > > +		height-mm = <268>;
> > > > 
> > > > The way this patch is written we certainly have some specific panel in
> > > > mind...
> > > 
> > > It's even mentioned in the subject: BOE DV215FHM-R01. Having a proper
> > > panel compatible is demanded by the panel-lvds bindings.
> > > 
> > 
> > I missed that mention. But that implies then that this isn't "the
> > industrial mezzanine", but "the industrial mezznine with a boe
> > DV215FHM-R01 connected".
> > 
> > Are you saying that this is the way you'd prefer that we handle the
> > mezzanines with capabilities for extension?
> 
> Some time ago, around APQ8064 boards there was a discussion of using
> EDID to identify LVDS panels (in a manner similar to panel-edp).
> 
> Does industrial mezzanine provide EDID support for the panel?
> 

Even if there is EDID in this particular case, the problem still
remains broadly. If we have a mezzanine with a standard connector, but
the non-probable device is connected by the developer at a later stage,
how do we facilitate their experience?

Concretely, the Particle Tachyon has two CSI/DSI connectors compatible
with Rasberry-Pi accessories, I believe RubikPi3 has the same. We have
no idea what DSI panel (or CSI camera) the user might connect, but
there's common board-specifics and boilerplate that a tinkerer need to
put in place.

Regards,
Bjorn

> -- 
> With best wishes
> Dmitry