From: Cristian Cozzolino <cristian_ci@protonmail.com>
Add the description for the display panel found on this phone.
And with this done we can also enable the GPU and set the zap shader
firmware path.
Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
---
.../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts b/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
index ef4faf763132..a00cf83dba93 100644
--- a/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
+++ b/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
@@ -78,6 +78,13 @@ vph_pwr: vph-pwr-regulator {
};
};
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/msm8953/flipkart/rimob/a506_zap.mdt";
+};
&hsusb_phy {
vdd-supply = <&pm8953_l3>;
@@ -87,11 +94,69 @@ &hsusb_phy {
status = "okay";
};
+&ibb {
+ qcom,discharge-resistor-kohms = <32>;
+};
+
+&lab {
+ qcom,soft-start-us = <800>;
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm8953_s3>;
+ vddio-supply = <&pm8953_l6>;
+
+ pinctrl-0 = <&mdss_default>;
+ pinctrl-1 = <&mdss_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+
+ panel: panel@0 {
+ compatible = "novatek,nt35532";
+ reg = <0>;
+
+ backlight = <&pmi8950_wled>;
+ reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
+ vsp-supply = <&lab>;
+ vsn-supply = <&ibb>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi0_phy {
+ vcca-supply = <&pm8953_l3>;
+
+ status = "okay";
+};
+
&pm8953_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
+&pmi8950_wled {
+ qcom,current-limit-microamp = <10000>;
+ qcom,num-strings = <3>;
+ qcom,ovp-millivolt = <29500>;
+
+ status = "okay";
+};
+
&rpm_requests {
regulators {
compatible = "qcom,rpm-pm8953-regulators";
@@ -244,6 +309,21 @@ gpio_key_default: gpio-key-default-state {
drive-strength = <2>;
bias-pull-up;
};
+
+ mdss_default: mdss-default-state {
+ pins = "gpio61";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ mdss_sleep: mdss-sleep-state {
+ pins = "gpio61";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
};
&usb3 {
--
2.52.0
On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
> From: Cristian Cozzolino <cristian_ci@protonmail.com>
>
> Add the description for the display panel found on this phone.
> And with this done we can also enable the GPU and set the zap shader
> firmware path.
>
> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
> ---
> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
> 1 file changed, 80 insertions(+)
>
> +
> +&mdss_dsi0 {
> + vdda-supply = <&pm8953_s3>;
> + vddio-supply = <&pm8953_l6>;
> +
> + pinctrl-0 = <&mdss_default>;
> + pinctrl-1 = <&mdss_sleep>;
> + pinctrl-names = "default", "sleep";
It might be better to move pinctrl nodes to the panel device, because
they control the panel reset pin (rather than some kind if DSI-related
pin).
Other than that LGTM.
> +
> + status = "okay";
> +
> + panel: panel@0 {
> + compatible = "novatek,nt35532";
> + reg = <0>;
> +
> + backlight = <&pmi8950_wled>;
> + reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> + vsp-supply = <&lab>;
> + vsn-supply = <&ibb>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> + };
> +};
> +
--
With best wishes
Dmitry
On 3/8/26 4:01 PM, Dmitry Baryshkov wrote:
> On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
>> From: Cristian Cozzolino <cristian_ci@protonmail.com>
>>
>> Add the description for the display panel found on this phone.
>> And with this done we can also enable the GPU and set the zap shader
>> firmware path.
>>
>> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
>> ---
>> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
>> 1 file changed, 80 insertions(+)
>>
>> +
>> +&mdss_dsi0 {
>> + vdda-supply = <&pm8953_s3>;
>> + vddio-supply = <&pm8953_l6>;
>> +
>> + pinctrl-0 = <&mdss_default>;
>> + pinctrl-1 = <&mdss_sleep>;
>> + pinctrl-names = "default", "sleep";
>
> It might be better to move pinctrl nodes to the panel device, because
> they control the panel reset pin (rather than some kind if DSI-related
> pin).
+1, perhaps let's rename that pin to panel_reset while at it
Konrad
On Tuesday, March 10th, 2026 at 12:28, Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> On 3/8/26 4:01 PM, Dmitry Baryshkov wrote:
> > On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
> >> From: Cristian Cozzolino <cristian_ci@protonmail.com>
> >>
> >> Add the description for the display panel found on this phone.
> >> And with this done we can also enable the GPU and set the zap shader
> >> firmware path.
> >>
> >> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
> >> ---
> >> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
> >> 1 file changed, 80 insertions(+)
> >>
> >> +
> >> +&mdss_dsi0 {
> >> + vdda-supply = <&pm8953_s3>;
> >> + vddio-supply = <&pm8953_l6>;
> >> +
> >> + pinctrl-0 = <&mdss_default>;
> >> + pinctrl-1 = <&mdss_sleep>;
> >> + pinctrl-names = "default", "sleep";
> >
> > It might be better to move pinctrl nodes to the panel device, because
> > they control the panel reset pin (rather than some kind if DSI-related
> > pin).
>
> +1, perhaps let's rename that pin to panel_reset while at it
So, something like (plus related renaming in tlmm node):
panel: panel@0 {
compatible = "novatek,nt35532";
reg = <0>;
backlight = <&pmi8950_wled>;
reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
vsp-supply = <&lab>;
vsn-supply = <&ibb>;
pinctrl-0 = <&panel_default>;
pinctrl-1 = <&panel_reset>;
pinctrl-names = "default", "reset";
port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
this?
> Konrad
>
Regards
On Tue, Mar 10, 2026 at 04:42:43PM +0000, cristian_ci wrote:
> On Tuesday, March 10th, 2026 at 12:28, Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
>
> > On 3/8/26 4:01 PM, Dmitry Baryshkov wrote:
> > > On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
> > >> From: Cristian Cozzolino <cristian_ci@protonmail.com>
> > >>
> > >> Add the description for the display panel found on this phone.
> > >> And with this done we can also enable the GPU and set the zap shader
> > >> firmware path.
> > >>
> > >> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
> > >> ---
> > >> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
> > >> 1 file changed, 80 insertions(+)
> > >>
> > >> +
> > >> +&mdss_dsi0 {
> > >> + vdda-supply = <&pm8953_s3>;
> > >> + vddio-supply = <&pm8953_l6>;
> > >> +
> > >> + pinctrl-0 = <&mdss_default>;
> > >> + pinctrl-1 = <&mdss_sleep>;
> > >> + pinctrl-names = "default", "sleep";
> > >
> > > It might be better to move pinctrl nodes to the panel device, because
> > > they control the panel reset pin (rather than some kind if DSI-related
> > > pin).
> >
> > +1, perhaps let's rename that pin to panel_reset while at it
>
> So, something like (plus related renaming in tlmm node):
>
> panel: panel@0 {
> compatible = "novatek,nt35532";
> reg = <0>;
>
> backlight = <&pmi8950_wled>;
> reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> vsp-supply = <&lab>;
> vsn-supply = <&ibb>;
>
> pinctrl-0 = <&panel_default>;
> pinctrl-1 = <&panel_reset>;
> pinctrl-names = "default", "reset";
No, "reset" would not be recognized. Use "sleep" as before.
>
> port {
> panel_in: endpoint {
> remote-endpoint = <&mdss_dsi0_out>;
> };
> };
> };
>
> this?
>
> > Konrad
> >
>
> Regards
--
With best wishes
Dmitry
On Tuesday, March 10th, 2026 at 23:30, Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> On Tue, Mar 10, 2026 at 04:42:43PM +0000, cristian_ci wrote:
> > On Tuesday, March 10th, 2026 at 12:28, Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> >
> > > On 3/8/26 4:01 PM, Dmitry Baryshkov wrote:
> > > > On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
> > > >> From: Cristian Cozzolino <cristian_ci@protonmail.com>
> > > >>
> > > >> Add the description for the display panel found on this phone.
> > > >> And with this done we can also enable the GPU and set the zap shader
> > > >> firmware path.
> > > >>
> > > >> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
> > > >> ---
> > > >> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
> > > >> 1 file changed, 80 insertions(+)
> > > >>
> > > >> +
> > > >> +&mdss_dsi0 {
> > > >> + vdda-supply = <&pm8953_s3>;
> > > >> + vddio-supply = <&pm8953_l6>;
> > > >> +
> > > >> + pinctrl-0 = <&mdss_default>;
> > > >> + pinctrl-1 = <&mdss_sleep>;
> > > >> + pinctrl-names = "default", "sleep";
> > > >
> > > > It might be better to move pinctrl nodes to the panel device, because
> > > > they control the panel reset pin (rather than some kind if DSI-related
> > > > pin).
> > >
> > > +1, perhaps let's rename that pin to panel_reset while at it
> >
> > So, something like (plus related renaming in tlmm node):
> >
> > panel: panel@0 {
> > compatible = "novatek,nt35532";
> > reg = <0>;
> >
> > backlight = <&pmi8950_wled>;
> > reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> > vsp-supply = <&lab>;
> > vsn-supply = <&ibb>;
> >
> > pinctrl-0 = <&panel_default>;
> > pinctrl-1 = <&panel_reset>;
> > pinctrl-names = "default", "reset";
>
> No, "reset" would not be recognized. Use "sleep" as before.
so, something like:
pinctrl-1 = <&panel_sleep>;
pinctrl-names = "default", "sleep";
?
Also, should I remove 'sleep' state if panel handles only one state ('default')
instead of two states (like mdss)?
> >
> > port {
> > panel_in: endpoint {
> > remote-endpoint = <&mdss_dsi0_out>;
> > };
> > };
> > };
> >
> > this?
> >
> > > Konrad
> > >
> >
> > Regards
>
> --
> With best wishes
> Dmitry
>
On Thu, Mar 12, 2026 at 07:58:04AM +0000, cristian_ci wrote:
>
> On Tuesday, March 10th, 2026 at 23:30, Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> > On Tue, Mar 10, 2026 at 04:42:43PM +0000, cristian_ci wrote:
> > > On Tuesday, March 10th, 2026 at 12:28, Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote:
> > >
> > > > On 3/8/26 4:01 PM, Dmitry Baryshkov wrote:
> > > > > On Sun, Mar 08, 2026 at 04:52:43PM +0100, Cristian Cozzolino via B4 Relay wrote:
> > > > >> From: Cristian Cozzolino <cristian_ci@protonmail.com>
> > > > >>
> > > > >> Add the description for the display panel found on this phone.
> > > > >> And with this done we can also enable the GPU and set the zap shader
> > > > >> firmware path.
> > > > >>
> > > > >> Signed-off-by: Cristian Cozzolino <cristian_ci@protonmail.com>
> > > > >> ---
> > > > >> .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 80 ++++++++++++++++++++++
> > > > >> 1 file changed, 80 insertions(+)
> > > > >>
> > > > >> +
> > > > >> +&mdss_dsi0 {
> > > > >> + vdda-supply = <&pm8953_s3>;
> > > > >> + vddio-supply = <&pm8953_l6>;
> > > > >> +
> > > > >> + pinctrl-0 = <&mdss_default>;
> > > > >> + pinctrl-1 = <&mdss_sleep>;
> > > > >> + pinctrl-names = "default", "sleep";
> > > > >
> > > > > It might be better to move pinctrl nodes to the panel device, because
> > > > > they control the panel reset pin (rather than some kind if DSI-related
> > > > > pin).
> > > >
> > > > +1, perhaps let's rename that pin to panel_reset while at it
> > >
> > > So, something like (plus related renaming in tlmm node):
> > >
> > > panel: panel@0 {
> > > compatible = "novatek,nt35532";
> > > reg = <0>;
> > >
> > > backlight = <&pmi8950_wled>;
> > > reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> > > vsp-supply = <&lab>;
> > > vsn-supply = <&ibb>;
> > >
> > > pinctrl-0 = <&panel_default>;
> > > pinctrl-1 = <&panel_reset>;
> > > pinctrl-names = "default", "reset";
> >
> > No, "reset" would not be recognized. Use "sleep" as before.
>
> so, something like:
>
> pinctrl-1 = <&panel_sleep>;
> pinctrl-names = "default", "sleep";
>
> ?
>
> Also, should I remove 'sleep' state if panel handles only one state ('default')
> instead of two states (like mdss)?
Yes, DSI panels don't have (and don't use) a separate sleep pinctrl
state.
>
> > >
> > > port {
> > > panel_in: endpoint {
> > > remote-endpoint = <&mdss_dsi0_out>;
> > > };
> > > };
> > > };
> > >
> > > this?
> > >
> > > > Konrad
> > > >
> > >
> > > Regards
> >
> > --
> > With best wishes
> > Dmitry
> >
--
With best wishes
Dmitry
© 2016 - 2026 Red Hat, Inc.