From: Li Liu <quic_lliu6@quicinc.com>
Add display MDSS and DSI configuration for QCS615 RIDE board.
QCS615 has a DP port, and DP support will be added in a later patch.
Signed-off-by: Li Liu <quic_lliu6@quicinc.com>
Signed-off-by: Fange Zhang <quic_fangez@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 89 ++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
index a25928933e2b66241258e418c6e5bc36c306101e..694719a09ac46bfa2fe34f1883c0970b9d0902be 100644
--- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
@@ -32,6 +32,18 @@ xo_board_clk: xo-board-clk {
#clock-cells = <0>;
};
};
+
+ dp-connector {
+ compatible = "dp-connector";
+ label = "DP";
+ type = "mini";
+
+ port {
+ dp_connector_out: endpoint {
+ remote-endpoint = <&anx_7625_out>;
+ };
+ };
+ };
};
&apps_rsc {
@@ -202,6 +214,83 @@ &gcc {
<&sleep_clk>;
};
+&i2c2 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ ioexp: gpio@3e {
+ compatible = "semtech,sx1509q";
+ reg = <0x3e>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <58 0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ semtech,probe-reset;
+ };
+
+ i2c-mux@77 {
+ compatible = "nxp,pca9542";
+ reg = <0x77>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ i2c@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ anx7625@58 {
+ compatible = "analogix,anx7625";
+ reg = <0x58>;
+ interrupt-parent = <&ioexp>;
+ interrupts = <0 0>;
+ enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
+ wakeup-source;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ anx_7625_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ anx_7625_out: endpoint {
+ remote-endpoint = <&dp_connector_out>;
+ };
+ };
+ };
+ };
+ };
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l11a>;
+ status = "okay";
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&anx_7625_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l5a>;
+ status = "okay";
+};
+
&qupv3_id_0 {
status = "okay";
};
--
2.34.1
On Tue, Dec 10, 2024 at 02:54:00PM +0800, Fange Zhang wrote: > From: Li Liu <quic_lliu6@quicinc.com> > > Add display MDSS and DSI configuration for QCS615 RIDE board. > QCS615 has a DP port, and DP support will be added in a later patch. > > Signed-off-by: Li Liu <quic_lliu6@quicinc.com> > Signed-off-by: Fange Zhang <quic_fangez@quicinc.com> > --- > arch/arm64/boot/dts/qcom/qcs615-ride.dts | 89 ++++++++++++++++++++++++++++++++ > 1 file changed, 89 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > index a25928933e2b66241258e418c6e5bc36c306101e..694719a09ac46bfa2fe34f1883c0970b9d0902be 100644 > --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts > +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > @@ -32,6 +32,18 @@ xo_board_clk: xo-board-clk { > #clock-cells = <0>; > }; > }; > + > + dp-connector { > + compatible = "dp-connector"; > + label = "DP"; > + type = "mini"; > + > + port { > + dp_connector_out: endpoint { > + remote-endpoint = <&anx_7625_out>; > + }; > + }; > + }; > }; > > &apps_rsc { > @@ -202,6 +214,83 @@ &gcc { > <&sleep_clk>; > }; > > +&i2c2 { > + clock-frequency = <400000>; > + status = "okay"; > + > + ioexp: gpio@3e { > + compatible = "semtech,sx1509q"; > + reg = <0x3e>; > + interrupt-parent = <&tlmm>; > + interrupts = <58 0>; Use IRQ flags instead of just 0 (here and further on). Also it might be better to use interrupts-extended instead. > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + semtech,probe-reset; > + }; > + > + i2c-mux@77 { > + compatible = "nxp,pca9542"; > + reg = <0x77>; > + #address-cells = <1>; > + #size-cells = <0>; Add empty line before device nodes (here and furher on). > + i2c@0 { > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + anx7625@58 { > + compatible = "analogix,anx7625"; > + reg = <0x58>; > + interrupt-parent = <&ioexp>; > + interrupts = <0 0>; > + enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; > + reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; > + wakeup-source; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + anx_7625_in: endpoint { > + remote-endpoint = <&mdss_dsi0_out>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + anx_7625_out: endpoint { > + remote-endpoint = <&dp_connector_out>; > + }; > + }; > + }; > + }; > + }; > + }; > +}; > + > +&mdss { > + status = "okay"; > +}; > + > +&mdss_dsi0 { > + vdda-supply = <&vreg_l11a>; > + status = "okay"; > +}; > + > +&mdss_dsi0_out { > + remote-endpoint = <&anx_7625_in>; > + data-lanes = <0 1 2 3>; > +}; > + > +&mdss_dsi0_phy { > + vdds-supply = <&vreg_l5a>; > + status = "okay"; > +}; > + > &qupv3_id_0 { > status = "okay"; > }; > > -- > 2.34.1 > -- With best wishes Dmitry
On 2024/12/10 19:02, Dmitry Baryshkov wrote: > On Tue, Dec 10, 2024 at 02:54:00PM +0800, Fange Zhang wrote: >> From: Li Liu <quic_lliu6@quicinc.com> >> >> Add display MDSS and DSI configuration for QCS615 RIDE board. >> QCS615 has a DP port, and DP support will be added in a later patch. >> >> Signed-off-by: Li Liu <quic_lliu6@quicinc.com> >> Signed-off-by: Fange Zhang <quic_fangez@quicinc.com> >> --- >> arch/arm64/boot/dts/qcom/qcs615-ride.dts | 89 ++++++++++++++++++++++++++++++++ >> 1 file changed, 89 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> index a25928933e2b66241258e418c6e5bc36c306101e..694719a09ac46bfa2fe34f1883c0970b9d0902be 100644 >> --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> @@ -32,6 +32,18 @@ xo_board_clk: xo-board-clk { >> #clock-cells = <0>; >> }; >> }; >> + >> + dp-connector { >> + compatible = "dp-connector"; >> + label = "DP"; >> + type = "mini"; >> + >> + port { >> + dp_connector_out: endpoint { >> + remote-endpoint = <&anx_7625_out>; >> + }; >> + }; >> + }; >> }; >> >> &apps_rsc { >> @@ -202,6 +214,83 @@ &gcc { >> <&sleep_clk>; >> }; >> >> +&i2c2 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + ioexp: gpio@3e { >> + compatible = "semtech,sx1509q"; >> + reg = <0x3e>; >> + interrupt-parent = <&tlmm>; >> + interrupts = <58 0>; > > Use IRQ flags instead of just 0 (here and further on). Also it might be > better to use interrupts-extended instead. Got it, will use interrupts-extended instead - interrupt-parent = <&tlmm>; - interrupts = <58 0>; + interrupts-extended = <&tlmm 58 IRQ_TYPE_NONE>; > >> + gpio-controller; >> + #gpio-cells = <2>; >> + interrupt-controller; >> + #interrupt-cells = <2>; >> + semtech,probe-reset; >> + }; >> + >> + i2c-mux@77 { >> + compatible = "nxp,pca9542"; >> + reg = <0x77>; >> + #address-cells = <1>; >> + #size-cells = <0>; > > Add empty line before device nodes (here and furher on). Sorry, will add it in next patch. > >> + i2c@0 { >> + reg = <0>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + anx7625@58 { >> + compatible = "analogix,anx7625"; >> + reg = <0x58>; >> + interrupt-parent = <&ioexp>; >> + interrupts = <0 0>; will change it to interrupts-extended in next patch - interrupt-parent = <&ioexp>; - interrupts = <0 0>; + interrupts-extended = <&ioexp 0 IRQ_TYPE_NONE>; >> + enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; >> + reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; >> + wakeup-source; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + anx_7625_in: endpoint { >> + remote-endpoint = <&mdss_dsi0_out>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + anx_7625_out: endpoint { >> + remote-endpoint = <&dp_connector_out>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + }; >> +}; >> + >> +&mdss { >> + status = "okay"; >> +}; >> + >> +&mdss_dsi0 { >> + vdda-supply = <&vreg_l11a>; >> + status = "okay"; >> +}; >> + >> +&mdss_dsi0_out { >> + remote-endpoint = <&anx_7625_in>; >> + data-lanes = <0 1 2 3>; >> +}; >> + >> +&mdss_dsi0_phy { >> + vdds-supply = <&vreg_l5a>; >> + status = "okay"; >> +}; >> + >> &qupv3_id_0 { >> status = "okay"; >> }; >> >> -- >> 2.34.1 >> >
On Fri, 13 Dec 2024 at 11:21, fange zhang <quic_fangez@quicinc.com> wrote: > > > > On 2024/12/10 19:02, Dmitry Baryshkov wrote: > > On Tue, Dec 10, 2024 at 02:54:00PM +0800, Fange Zhang wrote: > >> From: Li Liu <quic_lliu6@quicinc.com> > >> > >> Add display MDSS and DSI configuration for QCS615 RIDE board. > >> QCS615 has a DP port, and DP support will be added in a later patch. > >> > >> Signed-off-by: Li Liu <quic_lliu6@quicinc.com> > >> Signed-off-by: Fange Zhang <quic_fangez@quicinc.com> > >> --- > >> arch/arm64/boot/dts/qcom/qcs615-ride.dts | 89 ++++++++++++++++++++++++++++++++ > >> 1 file changed, 89 insertions(+) > >> > >> diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > >> index a25928933e2b66241258e418c6e5bc36c306101e..694719a09ac46bfa2fe34f1883c0970b9d0902be 100644 > >> --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts > >> +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > >> @@ -32,6 +32,18 @@ xo_board_clk: xo-board-clk { > >> #clock-cells = <0>; > >> }; > >> }; > >> + > >> + dp-connector { > >> + compatible = "dp-connector"; > >> + label = "DP"; > >> + type = "mini"; > >> + > >> + port { > >> + dp_connector_out: endpoint { > >> + remote-endpoint = <&anx_7625_out>; > >> + }; > >> + }; > >> + }; > >> }; > >> > >> &apps_rsc { > >> @@ -202,6 +214,83 @@ &gcc { > >> <&sleep_clk>; > >> }; > >> > >> +&i2c2 { > >> + clock-frequency = <400000>; > >> + status = "okay"; > >> + > >> + ioexp: gpio@3e { > >> + compatible = "semtech,sx1509q"; > >> + reg = <0x3e>; > >> + interrupt-parent = <&tlmm>; > >> + interrupts = <58 0>; > > > > Use IRQ flags instead of just 0 (here and further on). Also it might be > > better to use interrupts-extended instead. > Got it, will use interrupts-extended instead > - interrupt-parent = <&tlmm>; > - interrupts = <58 0>; > + interrupts-extended = <&tlmm 58 IRQ_TYPE_NONE>; > > > >> + gpio-controller; > >> + #gpio-cells = <2>; > >> + interrupt-controller; > >> + #interrupt-cells = <2>; > >> + semtech,probe-reset; > >> + }; > >> + > >> + i2c-mux@77 { > >> + compatible = "nxp,pca9542"; > >> + reg = <0x77>; > >> + #address-cells = <1>; > >> + #size-cells = <0>; > > > > Add empty line before device nodes (here and furher on). > Sorry, will add it in next patch. > > > >> + i2c@0 { > >> + reg = <0>; > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + anx7625@58 { > >> + compatible = "analogix,anx7625"; > >> + reg = <0x58>; > >> + interrupt-parent = <&ioexp>; > >> + interrupts = <0 0>; > will change it to interrupts-extended in next patch > - interrupt-parent = <&ioexp>; > - interrupts = <0 0>; > + interrupts-extended = <&ioexp 0 IRQ_TYPE_NONE>; Yes, much better. BTW: are you sure that it's really IRQ_TYPE_NONE? > >> + enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; > >> + reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; > >> + wakeup-source; > >> + > >> + ports { > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + port@0 { > >> + reg = <0>; > >> + anx_7625_in: endpoint { > >> + remote-endpoint = <&mdss_dsi0_out>; > >> + }; > >> + }; > >> + > >> + port@1 { > >> + reg = <1>; > >> + anx_7625_out: endpoint { > >> + remote-endpoint = <&dp_connector_out>; > >> + }; > >> + }; > >> + }; > >> + }; > >> + }; > >> + }; > >> +}; > >> + > >> +&mdss { > >> + status = "okay"; > >> +}; > >> + > >> +&mdss_dsi0 { > >> + vdda-supply = <&vreg_l11a>; > >> + status = "okay"; > >> +}; > >> + > >> +&mdss_dsi0_out { > >> + remote-endpoint = <&anx_7625_in>; > >> + data-lanes = <0 1 2 3>; > >> +}; > >> + > >> +&mdss_dsi0_phy { > >> + vdds-supply = <&vreg_l5a>; > >> + status = "okay"; > >> +}; > >> + > >> &qupv3_id_0 { > >> status = "okay"; > >> }; > >> > >> -- > >> 2.34.1 > >> > > > -- With best wishes Dmitry
On 2024/12/13 18:19, Dmitry Baryshkov wrote: > On Fri, 13 Dec 2024 at 11:21, fange zhang <quic_fangez@quicinc.com> wrote: >> >> >> >> On 2024/12/10 19:02, Dmitry Baryshkov wrote: >>> On Tue, Dec 10, 2024 at 02:54:00PM +0800, Fange Zhang wrote: >>>> From: Li Liu <quic_lliu6@quicinc.com> >>>> >>>> Add display MDSS and DSI configuration for QCS615 RIDE board. >>>> QCS615 has a DP port, and DP support will be added in a later patch. >>>> >>>> Signed-off-by: Li Liu <quic_lliu6@quicinc.com> >>>> Signed-off-by: Fange Zhang <quic_fangez@quicinc.com> >>>> --- >>>> arch/arm64/boot/dts/qcom/qcs615-ride.dts | 89 ++++++++++++++++++++++++++++++++ >>>> 1 file changed, 89 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >>>> index a25928933e2b66241258e418c6e5bc36c306101e..694719a09ac46bfa2fe34f1883c0970b9d0902be 100644 >>>> --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts >>>> +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >>>> @@ -32,6 +32,18 @@ xo_board_clk: xo-board-clk { >>>> #clock-cells = <0>; >>>> }; >>>> }; >>>> + >>>> + dp-connector { >>>> + compatible = "dp-connector"; >>>> + label = "DP"; >>>> + type = "mini"; >>>> + >>>> + port { >>>> + dp_connector_out: endpoint { >>>> + remote-endpoint = <&anx_7625_out>; >>>> + }; >>>> + }; >>>> + }; >>>> }; >>>> >>>> &apps_rsc { >>>> @@ -202,6 +214,83 @@ &gcc { >>>> <&sleep_clk>; >>>> }; >>>> >>>> +&i2c2 { >>>> + clock-frequency = <400000>; >>>> + status = "okay"; >>>> + >>>> + ioexp: gpio@3e { >>>> + compatible = "semtech,sx1509q"; >>>> + reg = <0x3e>; >>>> + interrupt-parent = <&tlmm>; >>>> + interrupts = <58 0>; >>> >>> Use IRQ flags instead of just 0 (here and further on). Also it might be >>> better to use interrupts-extended instead. >> Got it, will use interrupts-extended instead >> - interrupt-parent = <&tlmm>; >> - interrupts = <58 0>; >> + interrupts-extended = <&tlmm 58 IRQ_TYPE_NONE>; >>> >>>> + gpio-controller; >>>> + #gpio-cells = <2>; >>>> + interrupt-controller; >>>> + #interrupt-cells = <2>; >>>> + semtech,probe-reset; >>>> + }; >>>> + >>>> + i2c-mux@77 { >>>> + compatible = "nxp,pca9542"; >>>> + reg = <0x77>; >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>> >>> Add empty line before device nodes (here and furher on). >> Sorry, will add it in next patch. >>> >>>> + i2c@0 { >>>> + reg = <0>; >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + anx7625@58 { >>>> + compatible = "analogix,anx7625"; >>>> + reg = <0x58>; >>>> + interrupt-parent = <&ioexp>; >>>> + interrupts = <0 0>; >> will change it to interrupts-extended in next patch >> - interrupt-parent = <&ioexp>; >> - interrupts = <0 0>; >> + interrupts-extended = <&ioexp 0 IRQ_TYPE_NONE>; > > Yes, much better. BTW: are you sure that it's really IRQ_TYPE_NONE? We extensively tested FALLING and BOTH type, and they all work. However, I believe it’s better to use the default type, which is the same as the downstream approach. This way, it will be more stable. > >>>> + enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; >>>> + reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; >>>> + wakeup-source; >>>> + >>>> + ports { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + port@0 { >>>> + reg = <0>; >>>> + anx_7625_in: endpoint { >>>> + remote-endpoint = <&mdss_dsi0_out>; >>>> + }; >>>> + }; >>>> + >>>> + port@1 { >>>> + reg = <1>; >>>> + anx_7625_out: endpoint { >>>> + remote-endpoint = <&dp_connector_out>; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> +}; >>>> + >>>> +&mdss { >>>> + status = "okay"; >>>> +}; >>>> + >>>> +&mdss_dsi0 { >>>> + vdda-supply = <&vreg_l11a>; >>>> + status = "okay"; >>>> +}; >>>> + >>>> +&mdss_dsi0_out { >>>> + remote-endpoint = <&anx_7625_in>; >>>> + data-lanes = <0 1 2 3>; >>>> +}; >>>> + >>>> +&mdss_dsi0_phy { >>>> + vdds-supply = <&vreg_l5a>; >>>> + status = "okay"; >>>> +}; >>>> + >>>> &qupv3_id_0 { >>>> status = "okay"; >>>> }; >>>> >>>> -- >>>> 2.34.1 >>>> >>> >> > >
On Wed, Dec 18, 2024 at 11:18:01AM +0800, fange zhang wrote: > > > On 2024/12/13 18:19, Dmitry Baryshkov wrote: > > On Fri, 13 Dec 2024 at 11:21, fange zhang <quic_fangez@quicinc.com> wrote: > > > > > > > > > > > > On 2024/12/10 19:02, Dmitry Baryshkov wrote: > > > > On Tue, Dec 10, 2024 at 02:54:00PM +0800, Fange Zhang wrote: > > > > > > > > > + i2c@0 { > > > > > + reg = <0>; > > > > > + #address-cells = <1>; > > > > > + #size-cells = <0>; > > > > > + > > > > > + anx7625@58 { > > > > > + compatible = "analogix,anx7625"; > > > > > + reg = <0x58>; > > > > > + interrupt-parent = <&ioexp>; > > > > > + interrupts = <0 0>; > > > will change it to interrupts-extended in next patch > > > - interrupt-parent = <&ioexp>; > > > - interrupts = <0 0>; > > > + interrupts-extended = <&ioexp 0 IRQ_TYPE_NONE>; > > > > Yes, much better. BTW: are you sure that it's really IRQ_TYPE_NONE? > We extensively tested FALLING and BOTH type, and they all work. However, I > believe it’s better to use the default type, which is the same as the > downstream approach. This way, it will be more stable. Following downstream is a lame reason. Downstream kernels are frequently wrong in many ways. So please check the actual documentation for ANX7625 and specify correct interrupt type. -- With best wishes Dmitry
© 2016 - 2024 Red Hat, Inc.