arm64: dts: qcom: sm6125-xiaomi-laurel-sprout: Enable MDSS and add panel

Enable the MDSS nodes and add supplies and bindings for the Samsung S6E8FCO
DSI controller for the M1906F9 panel.

The ldo and iovcc gpio pins boot up with a current of 16 mA, but they work
fine with 2mA, so I used that.

mdss_dsi0_phy is powered by VDD_MX, see power-domains in sm6125.dtsi

Co-developed-by: Kamil Gołda <kamil.golda@protonmail.com>
Signed-off-by: Kamil Gołda <kamil.golda@protonmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Yedaya Katsman <yedaya.ka@gmail.com>
Link: https://lore.kernel.org/r/20260314-panel-patches-v4-3-1ecbb2c0c3c8@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Yedaya Katsman 2026-03-14 23:46:23 +02:00 committed by Bjorn Andersson
parent 254f49634e
commit 493cb86987

View File

@ -95,6 +95,33 @@ ts_vdd_supply: regulator-ts-vdd {
pinctrl-names = "default";
};
panel_vdd_1p8: regulator-panel-vdd {
compatible = "regulator-fixed";
regulator-name = "panel_vdd_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
vin-supply = <&vreg_l9a>;
enable-active-high;
gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&panel_vdd_1p8_en>;
pinctrl-names = "default";
};
panel_vci_3p0: regulator-panel-vci {
compatible = "regulator-fixed";
regulator-name = "panel_vci_3p0";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
enable-active-high;
gpio = <&tlmm 124 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&panel_vci_3p0_en>;
pinctrl-names = "default";
};
thermal-zones {
rf-pa0-thermal {
thermal-sensors = <&pm6125_adc_tm 0>;
@ -162,6 +189,45 @@ touchscreen@38 {
};
};
&mdss {
status = "okay";
};
&mdss_dsi0 {
vdda-supply = <&vreg_l18a>;
status = "okay";
panel@0 {
compatible = "samsung,s6e8fco-m1906f9";
reg = <0>;
reset-gpios = <&tlmm 90 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&mdss_default>;
pinctrl-1 = <&mdss_sleep>;
pinctrl-names = "default", "sleep";
vdd-supply = <&panel_vdd_1p8>;
vci-supply = <&panel_vci_3p0>;
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_adc {
pinctrl-names = "default";
pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm>;
@ -426,6 +492,13 @@ &sdhc_2 {
&tlmm {
gpio-reserved-ranges = <22 2>, <28 6>;
panel_vdd_1p8_en: panel-vdd-default-state {
pins = "gpio26";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
ts_vdd_en: ts-vdd-default-state {
pins = "gpio83";
function = "gpio";
@ -460,6 +533,27 @@ ts_int_suspend: pmx-ts-int-suspend-state {
drive-strength = <2>;
bias-pull-down;
};
mdss_default: mdss-default-state {
pins = "gpio90";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
mdss_sleep: mdss-sleep-state {
pins = "gpio90";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
panel_vci_3p0_en: panel-vci-default-state {
pins = "gpio124";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
&ufs_mem_hc {