Enable display on MTP8750 board with Novatek NT37801 panel.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 70 +++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
index c8cb521b4c26..68644eccdbff 100644
--- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
@@ -933,6 +933,48 @@ &lpass_vamacro {
qcom,dmic-sample-rate = <4800000>;
};
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l3g_1p2>;
+
+ status = "okay";
+
+ panel@0 {
+ compatible = "novatek,nt37801";
+ reg = <0>;
+
+ reset-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>;
+
+ vddio-supply = <&vreg_l12b_1p8>;
+ vci-supply = <&vreg_l13b_3p0>;
+ vdd-supply = <&vreg_l11b_1p0>;
+
+ pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync_active>;
+ pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ port {
+ panel0_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel0_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l3i_0p88>;
+
+ status = "okay";
+};
+
&pm8550_flash {
status = "okay";
@@ -1194,6 +1236,34 @@ sw-ctrl-pins {
};
};
+ disp0_reset_n_active: disp0-reset-n-active-state {
+ pins = "gpio98";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ disp0_reset_n_suspend: disp0-reset-n-suspend-state {
+ pins = "gpio98";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ mdp_vsync_active: mdp-vsync-active-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ mdp_vsync_suspend: mdp-vsync-suspend-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
wcd_default: wcd-reset-n-active-state {
pins = "gpio101";
function = "gpio";
--
2.48.1
On Wed, Nov 12, 2025 at 04:02:39PM +0100, Krzysztof Kozlowski wrote:
> Enable display on MTP8750 board with Novatek NT37801 panel.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 70 +++++++++++++++++++++++++++++++++
> 1 file changed, 70 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> index c8cb521b4c26..68644eccdbff 100644
> --- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> @@ -933,6 +933,48 @@ &lpass_vamacro {
> qcom,dmic-sample-rate = <4800000>;
> };
>
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dsi0 {
> + vdda-supply = <&vreg_l3g_1p2>;
> +
> + status = "okay";
> +
> + panel@0 {
> + compatible = "novatek,nt37801";
> + reg = <0>;
> +
> + reset-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>;
> +
> + vddio-supply = <&vreg_l12b_1p8>;
> + vci-supply = <&vreg_l13b_3p0>;
> + vdd-supply = <&vreg_l11b_1p0>;
> +
> + pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync_active>;
> + pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync_suspend>;
Nit: Is the VSYNC pin a pinctrl for the panel? I think it's a pin used
by DSI controller or by the DPU.
Other than that:
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
On 13/11/2025 04:50, Dmitry Baryshkov wrote:
> On Wed, Nov 12, 2025 at 04:02:39PM +0100, Krzysztof Kozlowski wrote:
>> Enable display on MTP8750 board with Novatek NT37801 panel.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> ---
>> arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 70 +++++++++++++++++++++++++++++++++
>> 1 file changed, 70 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
>> index c8cb521b4c26..68644eccdbff 100644
>> --- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
>> +++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
>> @@ -933,6 +933,48 @@ &lpass_vamacro {
>> qcom,dmic-sample-rate = <4800000>;
>> };
>>
>> +&mdss {
>> + status = "okay";
>> +};
>> +
>> +&mdss_dsi0 {
>> + vdda-supply = <&vreg_l3g_1p2>;
>> +
>> + status = "okay";
>> +
>> + panel@0 {
>> + compatible = "novatek,nt37801";
>> + reg = <0>;
>> +
>> + reset-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>;
>> +
>> + vddio-supply = <&vreg_l12b_1p8>;
>> + vci-supply = <&vreg_l13b_3p0>;
>> + vdd-supply = <&vreg_l11b_1p0>;
>> +
>> + pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync_active>;
>> + pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync_suspend>;
>
> Nit: Is the VSYNC pin a pinctrl for the panel? I think it's a pin used
> by DSI controller or by the DPU.
On the schematics it goes to the panel, so I think it might be treated
as panel's property. It's also made like this on every other DTS,
although I know that this is not the best argument.
>
> Other than that:
>
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Best regards,
Krzysztof
© 2016 - 2026 Red Hat, Inc.