Configure the MDSS nodes for the phone and add the panel node.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 94 ++++++++++++++++++++--
1 file changed, 89 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
index 389eca9b9e68187980e92ac921a77a3c3b54f6a5..965e32473a58ae4748e4cb748980fad1d2b06ab6 100644
--- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
+++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
@@ -138,6 +138,34 @@ vreg_ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
vin-supply = <&vreg_s8b>;
};
+ vreg_oled_dvdd: regulator-oled-dvdd {
+ compatible = "regulator-fixed";
+ regulator-name = "oled_dvdd";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+
+ gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vreg_s1b>;
+
+ regulator-boot-on;
+ };
+
+ vreg_oled_vci: regulator-oled-vci {
+ compatible = "regulator-fixed";
+ regulator-name = "oled_vci";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+
+ gpio = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vreg_l13c>;
+
+ regulator-boot-on;
+ };
+
reserved-memory {
cont_splash_mem: cont-splash@e1000000 {
reg = <0x0 0xe1000000 0x0 0x2300000>;
@@ -597,11 +625,6 @@ eeprom@51 {
};
};
-&dispcc {
- /* Disable for now so simple-framebuffer continues working */
- status = "disabled";
-};
-
&gcc {
protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
<GCC_EDP_CLKREF_EN>,
@@ -733,6 +756,46 @@ &ipa {
status = "okay";
};
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi {
+ vdda-supply = <&vreg_l6b>;
+ status = "okay";
+
+ panel@0 {
+ compatible = "fairphone,fp5-rm692e5-boe", "raydium,rm692e5";
+ reg = <0>;
+
+ reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
+
+ vci-supply = <&vreg_oled_vci>;
+ vddio-supply = <&vreg_l12c>;
+ dvdd-supply = <&vreg_oled_dvdd>;
+
+ pinctrl-0 = <&disp_reset_n_active>, <&mdp_vsync>;
+ pinctrl-1 = <&disp_reset_n_suspend>, <&mdp_vsync>;
+ pinctrl-names = "default", "sleep";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi_phy {
+ vdds-supply = <&vreg_l10c>;
+ status = "okay";
+};
+
&pm7250b_adc {
pinctrl-0 = <&pm7250b_adc_default>;
pinctrl-names = "default";
@@ -1026,6 +1089,20 @@ bluetooth_enable_default: bluetooth-enable-default-state {
bias-disable;
};
+ disp_reset_n_active: disp-reset-n-active-state {
+ pins = "gpio44";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ disp_reset_n_suspend: disp-reset-n-suspend-state {
+ pins = "gpio44";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
hall_sensor_default: hall-sensor-default-state {
pins = "gpio155";
function = "gpio";
@@ -1033,6 +1110,13 @@ hall_sensor_default: hall-sensor-default-state {
bias-pull-up;
};
+ mdp_vsync: mdp-vsync-state {
+ pins = "gpio80";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
pm8008_int_default: pm8008-int-default-state {
pins = "gpio25";
function = "gpio";
--
2.48.1
On 2025-02-02 23:45:51, Luca Weiss wrote:
> Configure the MDSS nodes for the phone and add the panel node.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Glad to hear (and see in real life) that you're able to use the 1:1:1 topology
patches.
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Thanks!
> ---
> arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 94 ++++++++++++++++++++--
> 1 file changed, 89 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
> index 389eca9b9e68187980e92ac921a77a3c3b54f6a5..965e32473a58ae4748e4cb748980fad1d2b06ab6 100644
> --- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
> +++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
> @@ -138,6 +138,34 @@ vreg_ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
> vin-supply = <&vreg_s8b>;
> };
>
> + vreg_oled_dvdd: regulator-oled-dvdd {
> + compatible = "regulator-fixed";
> + regulator-name = "oled_dvdd";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> +
> + gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + vin-supply = <&vreg_s1b>;
> +
> + regulator-boot-on;
> + };
> +
> + vreg_oled_vci: regulator-oled-vci {
> + compatible = "regulator-fixed";
> + regulator-name = "oled_vci";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> +
> + gpio = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + vin-supply = <&vreg_l13c>;
> +
> + regulator-boot-on;
> + };
> +
> reserved-memory {
> cont_splash_mem: cont-splash@e1000000 {
> reg = <0x0 0xe1000000 0x0 0x2300000>;
> @@ -597,11 +625,6 @@ eeprom@51 {
> };
> };
>
> -&dispcc {
> - /* Disable for now so simple-framebuffer continues working */
> - status = "disabled";
> -};
> -
> &gcc {
> protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
> <GCC_EDP_CLKREF_EN>,
> @@ -733,6 +756,46 @@ &ipa {
> status = "okay";
> };
>
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dsi {
> + vdda-supply = <&vreg_l6b>;
> + status = "okay";
> +
> + panel@0 {
> + compatible = "fairphone,fp5-rm692e5-boe", "raydium,rm692e5";
> + reg = <0>;
> +
> + reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
> +
> + vci-supply = <&vreg_oled_vci>;
> + vddio-supply = <&vreg_l12c>;
> + dvdd-supply = <&vreg_oled_dvdd>;
> +
> + pinctrl-0 = <&disp_reset_n_active>, <&mdp_vsync>;
> + pinctrl-1 = <&disp_reset_n_suspend>, <&mdp_vsync>;
> + pinctrl-names = "default", "sleep";
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> + };
> +};
> +
> +&mdss_dsi0_out {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&panel_in>;
> +};
> +
> +&mdss_dsi_phy {
> + vdds-supply = <&vreg_l10c>;
> + status = "okay";
> +};
> +
> &pm7250b_adc {
> pinctrl-0 = <&pm7250b_adc_default>;
> pinctrl-names = "default";
> @@ -1026,6 +1089,20 @@ bluetooth_enable_default: bluetooth-enable-default-state {
> bias-disable;
> };
>
> + disp_reset_n_active: disp-reset-n-active-state {
> + pins = "gpio44";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + disp_reset_n_suspend: disp-reset-n-suspend-state {
> + pins = "gpio44";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> hall_sensor_default: hall-sensor-default-state {
> pins = "gpio155";
> function = "gpio";
> @@ -1033,6 +1110,13 @@ hall_sensor_default: hall-sensor-default-state {
> bias-pull-up;
> };
>
> + mdp_vsync: mdp-vsync-state {
> + pins = "gpio80";
> + function = "mdp_vsync";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> pm8008_int_default: pm8008-int-default-state {
> pins = "gpio25";
> function = "gpio";
>
> --
> 2.48.1
>
On 2.02.2025 11:45 PM, Luca Weiss wrote: > Configure the MDSS nodes for the phone and add the panel node. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Konrad
© 2016 - 2026 Red Hat, Inc.