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 { > >> > >