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

From: Konrad Dybcio
Date: Tue Jun 20 2023 - 15:02:30 EST


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

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