Re: [PATCH 2/4] arm64: dts: qcom: sm6115p-j606f: Hook up display

From: Marijn Suijten
Date: Wed Jun 21 2023 - 15:03:40 EST


On 2023-06-20 21:02:20, Konrad Dybcio wrote:
> On 20.06.2023 17:52, Dmitry Baryshkov wrote:
> > On 20/06/2023 16:17, Konrad Dybcio wrote:
> >> Enable the required nodes, add the required pins and tweak a
> >> regulator to enable non-simplefb display on the Tab P11.
> >>
> >> Do note that there exists a second SKU with a different panel+touch
> >> combo, but due to insufficient information, that will need to be
> >> handled separately.
> >>
> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> >> ---
> >>   arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts | 57 +++++++++++++++++++++--
> >>   1 file changed, 52 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> index 81fdcaf48926..a10ce676bd44 100644
> >> --- a/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> +++ b/arch/arm64/boot/dts/qcom/sm6115p-lenovo-j606f.dts
> >> @@ -65,9 +65,41 @@ ramoops@ffc00000 {
> >>       };
> >>   };
> >>   -&dispcc {
> >> -    /* HACK: disable until a panel driver is ready to retain simplefb */
> >> -    status = "disabled";
> >> +&mdss {
> >> +    status = "okay";
> >> +};
> >> +
> >> +&mdss_dsi0 {
> >> +    vdda-supply = <&pm6125_l18>;
> >> +    status = "okay";
> >> +
> >> +    panel: panel@0 {
> >> +        compatible = "lenovo,j606f-boe-nt36523w", "novatek,nt36523w";
> >> +        reg = <0>;
> >> +
> >> +        reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
> >> +        vddio-supply = <&pm6125_l9>;
> >> +
> >> +        pinctrl-names = "default";
> >> +        pinctrl-0 = <&te_active &sde_dsi_active>;
> >> +
> >> +        rotation = <180>; /* Yep, it's mounted upside down! */
> >> +
> >> +        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 {
> >> +    status = "okay";
> >>   };
> >>     &pm6125_gpios {
> >> @@ -212,8 +244,9 @@ pm6125_l17: l17 {
> >>           };
> >>             pm6125_l18: l18 {
> >> -            regulator-min-microvolt = <1104000>;
> >> -            regulator-max-microvolt = <1312000>;
> >> +            /* 1.104V-1.312V fixed @ 1.232V for DSIPHY */
> >> +            regulator-min-microvolt = <1232000>;
> >> +            regulator-max-microvolt = <1232000>;
> >>           };
> >>             pm6125_l19: l19 {
> >> @@ -282,6 +315,20 @@ sdc2_gate_pin: sdc2-gate-state {
> >>           bias-pull-up;
> >>           output-high;
> >>       };
> >> +
> >> +    te_active: te-active-state {
> >> +        pins = "gpio81";
> >> +        function = "mdp_vsync";
> >> +        drive-strength = <2>;
> >> +        bias-pull-down;
> >> +    };
> >> +
> >> +    sde_dsi_active: te-active-state {
> >
> > mdss_dsi_active? Or just dsi_active?
> mdss is ok
>
> Also Marijn pointed out in private that this node overwrites
> the previous one.. Thankfully video mode panels don't care about
> TE! :D

You're welcome!

(Why set this pin to mdp_vsync if the MDP won't read it, though?)

- Marijn

>
> Konrad
> >
> >> +        pins = "gpio82";
> >> +        function = "gpio";
> >> +        drive-strength = <8>;
> >> +        bias-disable;
> >> +    };
> >>   };
> >>     &ufs_mem_hc {
> >>
> >