diff mbox series

[v4] arm64: dts: qcom: qcs6490-rb3gen2: enable hdmi bridge

Message ID 20240528141954.7567-1-quic_vvalluru@quicinc.com (mailing list archive)
State Changes Requested
Headers show
Series [v4] arm64: dts: qcom: qcs6490-rb3gen2: enable hdmi bridge | expand

Commit Message

Prahlad Valluru May 28, 2024, 2:19 p.m. UTC
Rb3Gen2 has a lt9611uxc DSI-to-HDMI bridge on i2c0, with
reset gpio from pm7250b gpio2 and irq gpio from tlmm gpio24.
Bridge supplies are Vdd connected to input supply directly
and vcc to L11c. Enable HDMI output, bridge and corresponding
DSI output.

Signed-off-by: Venkata Prahlad Valluru <quic_vvalluru@quicinc.com>
---
v4: added fixed regulator for vdd

v3: - Updated commit text
    - Arranged nodes in alphabetical order
    - Fixed signoff
    - Fixed drive strength for lt9611_irq_pin
    - Removed 'label' from hdmi-connector, which is optional

v2: Addressed dtschema errors
	- Fixed lt9611-irq
	- vdd-supply error to be ignored, as it is connected to
	  input supply directly, on rb3gen2
---
 arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++
 1 file changed, 94 insertions(+)

Comments

Dmitry Baryshkov May 28, 2024, 3 p.m. UTC | #1
On Tue, May 28, 2024 at 07:49:54PM +0530, Venkata Prahlad Valluru wrote:
> Rb3Gen2 has a lt9611uxc DSI-to-HDMI bridge on i2c0, with
> reset gpio from pm7250b gpio2 and irq gpio from tlmm gpio24.
> Bridge supplies are Vdd connected to input supply directly
> and vcc to L11c. Enable HDMI output, bridge and corresponding
> DSI output.
> 
> Signed-off-by: Venkata Prahlad Valluru <quic_vvalluru@quicinc.com>
> ---
> v4: added fixed regulator for vdd

Please don't send new iterations as replies to the previous iteration.
It might be ignored or mishandled by the tools.

> 
> v3: - Updated commit text
>     - Arranged nodes in alphabetical order
>     - Fixed signoff
>     - Fixed drive strength for lt9611_irq_pin
>     - Removed 'label' from hdmi-connector, which is optional
> 
> v2: Addressed dtschema errors
> 	- Fixed lt9611-irq
> 	- vdd-supply error to be ignored, as it is connected to
> 	  input supply directly, on rb3gen2
> ---
>  arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++
>  1 file changed, 94 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index a085ff5b5fb2..7f00fca131a2 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -52,6 +52,25 @@
>  		};
>  	};
>  
> +	hdmi-connector {
> +		compatible = "hdmi-connector";
> +		type = "a";
> +
> +		port {
> +			hdmi_con: endpoint {
> +				remote-endpoint = <&lt9611_out>;
> +			};
> +		};
> +	};
> +
> +	lt9611_1v2: lt9611-vdd12-regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "LT9611_1V2";

Is it the regulator / net name in schematics? Or is it also used by any
other consumers?

> +
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +	};
> +
>  	reserved-memory {
>  		xbl_mem: xbl@80700000 {
>  			reg = <0x0 0x80700000 0x0 0x100000>;
> @@ -530,6 +549,46 @@
>  			   <GCC_WPSS_RSCP_CLK>;
>  };
>  
> +&i2c0 {
> +	clock-frequency = <400000>;
> +	status = "okay";
> +
> +	lt9611_codec: hdmi-bridge@2b {
> +		compatible = "lontium,lt9611uxc";
> +		reg = <0x2b>;
> +
> +		interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
> +		reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
> +
> +		vdd-supply = <&lt9611_1v2>;
> +		vcc-supply = <&vreg_l11c_2p8>;
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lt9611_a: endpoint {
> +					remote-endpoint = <&mdss_dsi0_out>;
> +				};
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				lt9611_out: endpoint {
> +					remote-endpoint = <&hdmi_con>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
>  &i2c1 {
>  	status = "okay";
>  
> @@ -587,6 +646,21 @@
>  	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
>  };
>  
> +&mdss_dsi {
> +	vdda-supply = <&vreg_l6b_1p2>;
> +	status = "okay";
> +};
> +
> +&mdss_dsi0_out {
> +	remote-endpoint = <&lt9611_a>;
> +	data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi_phy {
> +	vdds-supply = <&vreg_l10c_0p88>;
> +	status = "okay";
> +};
> +
>  &mdss_edp {
>  	status = "okay";
>  };
> @@ -711,3 +785,23 @@
>  	function = "gpio";
>  	bias-disable;
>  };
> +
> +&pm7250b_gpios {
> +	lt9611_rst_pin: lt9611-rst-state {
> +		pins = "gpio2";
> +		function = "normal";
> +
> +		output-high;
> +		input-disable;
> +		power-source = <0>;
> +	};
> +};
> +
> +&tlmm {
> +	lt9611_irq_pin: lt9611-irq-state {
> +		pins = "gpio24";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +	};
> +};
> -- 
> 2.17.1
>
Prahlad Valluru May 28, 2024, 4:24 p.m. UTC | #2
On Tue, May 28, 2024 at 06:00:26PM +0300, Dmitry Baryshkov wrote:
> On Tue, May 28, 2024 at 07:49:54PM +0530, Venkata Prahlad Valluru wrote:
> > Rb3Gen2 has a lt9611uxc DSI-to-HDMI bridge on i2c0, with
> > reset gpio from pm7250b gpio2 and irq gpio from tlmm gpio24.
> > Bridge supplies are Vdd connected to input supply directly
> > and vcc to L11c. Enable HDMI output, bridge and corresponding
> > DSI output.
> > 
> > Signed-off-by: Venkata Prahlad Valluru <quic_vvalluru@quicinc.com>
> > ---
> > v4: added fixed regulator for vdd
> 
> Please don't send new iterations as replies to the previous iteration.
> It might be ignored or mishandled by the tools.
Was trying to have the context of discussion captured. Will add links
to the patchsets in the history, going forward.
> 
> > 
> > v3: - Updated commit text
> >     - Arranged nodes in alphabetical order
> >     - Fixed signoff
> >     - Fixed drive strength for lt9611_irq_pin
> >     - Removed 'label' from hdmi-connector, which is optional
> > 
> > v2: Addressed dtschema errors
> > 	- Fixed lt9611-irq
> > 	- vdd-supply error to be ignored, as it is connected to
> > 	  input supply directly, on rb3gen2
> > ---
> >  arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++
> >  1 file changed, 94 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > index a085ff5b5fb2..7f00fca131a2 100644
> > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > @@ -52,6 +52,25 @@
> >  		};
> >  	};
> >  
> > +	hdmi-connector {
> > +		compatible = "hdmi-connector";
> > +		type = "a";
> > +
> > +		port {
> > +			hdmi_con: endpoint {
> > +				remote-endpoint = <&lt9611_out>;
> > +			};
> > +		};
> > +	};
> > +
> > +	lt9611_1v2: lt9611-vdd12-regulator {
> > +		compatible = "regulator-fixed";
> > +		regulator-name = "LT9611_1V2";
> 
> Is it the regulator / net name in schematics? Or is it also used by any
> other consumers?
>
VREG_HDMI_OUT_1P2 is the naming in schematic, but i see this naming convention for rb5 based boards.
No other consumers for this.
> > +
> > +		regulator-min-microvolt = <1200000>;
> > +		regulator-max-microvolt = <1200000>;
> > +	};
> > +
> >  	reserved-memory {
> >  		xbl_mem: xbl@80700000 {
> >  			reg = <0x0 0x80700000 0x0 0x100000>;
> > @@ -530,6 +549,46 @@
> >  			   <GCC_WPSS_RSCP_CLK>;
> >  };
> >  
> > +&i2c0 {
> > +	clock-frequency = <400000>;
> > +	status = "okay";
> > +
> > +	lt9611_codec: hdmi-bridge@2b {
> > +		compatible = "lontium,lt9611uxc";
> > +		reg = <0x2b>;
> > +
> > +		interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
> > +		reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
> > +
> > +		vdd-supply = <&lt9611_1v2>;
> > +		vcc-supply = <&vreg_l11c_2p8>;
> > +
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				lt9611_a: endpoint {
> > +					remote-endpoint = <&mdss_dsi0_out>;
> > +				};
> > +			};
> > +
> > +			port@2 {
> > +				reg = <2>;
> > +
> > +				lt9611_out: endpoint {
> > +					remote-endpoint = <&hdmi_con>;
> > +				};
> > +			};
> > +		};
> > +	};
> > +};
> > +
> >  &i2c1 {
> >  	status = "okay";
> >  
> > @@ -587,6 +646,21 @@
> >  	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
> >  };
> >  
> > +&mdss_dsi {
> > +	vdda-supply = <&vreg_l6b_1p2>;
> > +	status = "okay";
> > +};
> > +
> > +&mdss_dsi0_out {
> > +	remote-endpoint = <&lt9611_a>;
> > +	data-lanes = <0 1 2 3>;
> > +};
> > +
> > +&mdss_dsi_phy {
> > +	vdds-supply = <&vreg_l10c_0p88>;
> > +	status = "okay";
> > +};
> > +
> >  &mdss_edp {
> >  	status = "okay";
> >  };
> > @@ -711,3 +785,23 @@
> >  	function = "gpio";
> >  	bias-disable;
> >  };
> > +
> > +&pm7250b_gpios {
> > +	lt9611_rst_pin: lt9611-rst-state {
> > +		pins = "gpio2";
> > +		function = "normal";
> > +
> > +		output-high;
> > +		input-disable;
> > +		power-source = <0>;
> > +	};
> > +};
> > +
> > +&tlmm {
> > +	lt9611_irq_pin: lt9611-irq-state {
> > +		pins = "gpio24";
> > +		function = "gpio";
> > +		drive-strength = <2>;
> > +		bias-disable;
> > +	};
> > +};
> > -- 
> > 2.17.1
> > 
> 
> -- 
> With best wishes
> Dmitry
Dmitry Baryshkov May 28, 2024, 4:33 p.m. UTC | #3
On Tue, May 28, 2024 at 09:54:34PM +0530, Prahlad Valluru wrote:
> On Tue, May 28, 2024 at 06:00:26PM +0300, Dmitry Baryshkov wrote:
> > On Tue, May 28, 2024 at 07:49:54PM +0530, Venkata Prahlad Valluru wrote:
> > > Rb3Gen2 has a lt9611uxc DSI-to-HDMI bridge on i2c0, with
> > > reset gpio from pm7250b gpio2 and irq gpio from tlmm gpio24.
> > > Bridge supplies are Vdd connected to input supply directly
> > > and vcc to L11c. Enable HDMI output, bridge and corresponding
> > > DSI output.
> > > 
> > > Signed-off-by: Venkata Prahlad Valluru <quic_vvalluru@quicinc.com>
> > > ---
> > > v4: added fixed regulator for vdd
> > 
> > Please don't send new iterations as replies to the previous iteration.
> > It might be ignored or mishandled by the tools.
> Was trying to have the context of discussion captured. Will add links
> to the patchsets in the history, going forward.

I'd suggest using b4 tool, which handles such issues in an automated
way. It adds links to previous iterations, changelog, etc.

> > 
> > > 
> > > v3: - Updated commit text
> > >     - Arranged nodes in alphabetical order
> > >     - Fixed signoff
> > >     - Fixed drive strength for lt9611_irq_pin
> > >     - Removed 'label' from hdmi-connector, which is optional
> > > 
> > > v2: Addressed dtschema errors
> > > 	- Fixed lt9611-irq
> > > 	- vdd-supply error to be ignored, as it is connected to
> > > 	  input supply directly, on rb3gen2
> > > ---
> > >  arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 94 ++++++++++++++++++++
> > >  1 file changed, 94 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > > index a085ff5b5fb2..7f00fca131a2 100644
> > > --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > > +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> > > @@ -52,6 +52,25 @@
> > >  		};
> > >  	};
> > >  
> > > +	hdmi-connector {
> > > +		compatible = "hdmi-connector";
> > > +		type = "a";
> > > +
> > > +		port {
> > > +			hdmi_con: endpoint {
> > > +				remote-endpoint = <&lt9611_out>;
> > > +			};
> > > +		};
> > > +	};
> > > +
> > > +	lt9611_1v2: lt9611-vdd12-regulator {
> > > +		compatible = "regulator-fixed";
> > > +		regulator-name = "LT9611_1V2";
> > 
> > Is it the regulator / net name in schematics? Or is it also used by any
> > other consumers?
> >
> VREG_HDMI_OUT_1P2 is the naming in schematic, but i see this naming convention for rb5 based boards.
> No other consumers for this.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

> > > +
> > > +		regulator-min-microvolt = <1200000>;
> > > +		regulator-max-microvolt = <1200000>;
> > > +	};
> > > +
> > >  	reserved-memory {
> > >  		xbl_mem: xbl@80700000 {
> > >  			reg = <0x0 0x80700000 0x0 0x100000>;
> > > @@ -530,6 +549,46 @@
> > >  			   <GCC_WPSS_RSCP_CLK>;
> > >  };
> > >  
> > > +&i2c0 {
> > > +	clock-frequency = <400000>;
> > > +	status = "okay";
> > > +
> > > +	lt9611_codec: hdmi-bridge@2b {
> > > +		compatible = "lontium,lt9611uxc";
> > > +		reg = <0x2b>;
> > > +
> > > +		interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
> > > +		reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
> > > +
> > > +		vdd-supply = <&lt9611_1v2>;
> > > +		vcc-supply = <&vreg_l11c_2p8>;
> > > +
> > > +		pinctrl-names = "default";
> > > +		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
> > > +
> > > +		ports {
> > > +			#address-cells = <1>;
> > > +			#size-cells = <0>;
> > > +
> > > +			port@0 {
> > > +				reg = <0>;
> > > +
> > > +				lt9611_a: endpoint {
> > > +					remote-endpoint = <&mdss_dsi0_out>;
> > > +				};
> > > +			};
> > > +
> > > +			port@2 {
> > > +				reg = <2>;
> > > +
> > > +				lt9611_out: endpoint {
> > > +					remote-endpoint = <&hdmi_con>;
> > > +				};
> > > +			};
> > > +		};
> > > +	};
> > > +};
> > > +
> > >  &i2c1 {
> > >  	status = "okay";
> > >  
> > > @@ -587,6 +646,21 @@
> > >  	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
> > >  };
> > >  
> > > +&mdss_dsi {
> > > +	vdda-supply = <&vreg_l6b_1p2>;
> > > +	status = "okay";
> > > +};
> > > +
> > > +&mdss_dsi0_out {
> > > +	remote-endpoint = <&lt9611_a>;
> > > +	data-lanes = <0 1 2 3>;
> > > +};
> > > +
> > > +&mdss_dsi_phy {
> > > +	vdds-supply = <&vreg_l10c_0p88>;
> > > +	status = "okay";
> > > +};
> > > +
> > >  &mdss_edp {
> > >  	status = "okay";
> > >  };
> > > @@ -711,3 +785,23 @@
> > >  	function = "gpio";
> > >  	bias-disable;
> > >  };
> > > +
> > > +&pm7250b_gpios {
> > > +	lt9611_rst_pin: lt9611-rst-state {
> > > +		pins = "gpio2";
> > > +		function = "normal";
> > > +
> > > +		output-high;
> > > +		input-disable;
> > > +		power-source = <0>;
> > > +	};
> > > +};
> > > +
> > > +&tlmm {
> > > +	lt9611_irq_pin: lt9611-irq-state {
> > > +		pins = "gpio24";
> > > +		function = "gpio";
> > > +		drive-strength = <2>;
> > > +		bias-disable;
> > > +	};
> > > +};
> > > -- 
> > > 2.17.1
> > > 
> > 
> > -- 
> > With best wishes
> > Dmitry
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index a085ff5b5fb2..7f00fca131a2 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -52,6 +52,25 @@ 
 		};
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con: endpoint {
+				remote-endpoint = <&lt9611_out>;
+			};
+		};
+	};
+
+	lt9611_1v2: lt9611-vdd12-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "LT9611_1V2";
+
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+	};
+
 	reserved-memory {
 		xbl_mem: xbl@80700000 {
 			reg = <0x0 0x80700000 0x0 0x100000>;
@@ -530,6 +549,46 @@ 
 			   <GCC_WPSS_RSCP_CLK>;
 };
 
+&i2c0 {
+	clock-frequency = <400000>;
+	status = "okay";
+
+	lt9611_codec: hdmi-bridge@2b {
+		compatible = "lontium,lt9611uxc";
+		reg = <0x2b>;
+
+		interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
+		reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
+
+		vdd-supply = <&lt9611_1v2>;
+		vcc-supply = <&vreg_l11c_2p8>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lt9611_a: endpoint {
+					remote-endpoint = <&mdss_dsi0_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				lt9611_out: endpoint {
+					remote-endpoint = <&hdmi_con>;
+				};
+			};
+		};
+	};
+};
+
 &i2c1 {
 	status = "okay";
 
@@ -587,6 +646,21 @@ 
 	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
 };
 
+&mdss_dsi {
+	vdda-supply = <&vreg_l6b_1p2>;
+	status = "okay";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&lt9611_a>;
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi_phy {
+	vdds-supply = <&vreg_l10c_0p88>;
+	status = "okay";
+};
+
 &mdss_edp {
 	status = "okay";
 };
@@ -711,3 +785,23 @@ 
 	function = "gpio";
 	bias-disable;
 };
+
+&pm7250b_gpios {
+	lt9611_rst_pin: lt9611-rst-state {
+		pins = "gpio2";
+		function = "normal";
+
+		output-high;
+		input-disable;
+		power-source = <0>;
+	};
+};
+
+&tlmm {
+	lt9611_irq_pin: lt9611-irq-state {
+		pins = "gpio24";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+};