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@linaro.org>
---
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 {
+ pins = "gpio82";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
};
&ufs_mem_hc {
--
2.41.0
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@linaro.org>
> ---
> 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?
> + pins = "gpio82";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> };
>
> &ufs_mem_hc {
>
--
With best wishes
Dmitry
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@linaro.org>
>> ---
>> 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 {
>>
>
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@linaro.org>
> >> ---
> >> 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 {
> >>
> >
© 2016 - 2026 Red Hat, Inc.