* [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4
@ 2026-11-13 8:16 Luca Weiss
2026-11-13 8:16 ` [PATCH 1/4] arm64: defconfig: Enable Qualcomm LCDB regulator Luca Weiss
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 8:16 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree, Luca Weiss
Thanks to Dmitry Baryshkov for upstreaming the LCDB driver, let's start
replacing the dummy regulator-fixed in Fairphone 3 and Fairphone 4 dts
files.
On top of linux-next this series depends on these two patches:
dt-bindings: mfd: qcom,spmi-pmic: add LCDB
arm64: dts: qcom: pmi632: Add LCDB regulator node
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Luca Weiss (4):
arm64: defconfig: Enable Qualcomm LCDB regulator
arm64: dts: qcom: sdm632-fairphone-fp3: Wire up PMI632 LCDB
arm64: dts: qcom: pm6150l: add LCDB regulators
arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 14 ++++++++++++
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 26 ++++++++++++++---------
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 26 ++++++++++++++---------
arch/arm64/configs/defconfig | 1 +
4 files changed, 47 insertions(+), 20 deletions(-)
---
base-commit: 161837d37055642b03475137461d4438c65dbddf
change-id: 20261113-lcdb-enablement-6b6e7438b929
prerequisite-message-id: <20261109221453.658316-1-val@packett.cool>
prerequisite-patch-id: 84d9aa24bd2b6f02ff8ca2ee6c06aa15820a239d
prerequisite-patch-id: 83283c2786561b5b60886150044cd3c31c9ee9ee
prerequisite-patch-id: 44735c66f6ee898028d303e7c52199c6e9bf805d
prerequisite-patch-id: 465273bdb21128b91fa70ecccb67a46ad8b92e2d
prerequisite-patch-id: 87e1ba7499655a72820b61fd0a61e9b64a28d678
prerequisite-patch-id: 7a38824c3aedab41d9c2e8af53fd2ac6c5240467
prerequisite-change-id: 20261014-sm8150-display-card-e43ee5b08c61:v2
prerequisite-patch-id: 9c929d1d906b763951d1dbb6982d08a464fb27a8
prerequisite-patch-id: eb2335be5ef8557f58b829ae86bcd44ce4f942fb
prerequisite-patch-id: 2fb5cb31e9527f530afc1199450f4399cc9d696a
prerequisite-patch-id: 6604ef4253eeb0a71e69cc275f686d8acae95e36
prerequisite-patch-id: cda0e5a03ff6db8e7c05625c5aa2b8d0cb55923f
prerequisite-patch-id: af1e08086776ad9975fbe76d554d0176bd4ba70b
prerequisite-patch-id: eda808edb82735d47769c147ceaf21946f801a0e
prerequisite-patch-id: a3272820b7a6fb943a06f267566afe1ae97a56cf
Best regards,
--
Luca Weiss <luca.weiss@fairphone.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] arm64: defconfig: Enable Qualcomm LCDB regulator
2026-11-13 8:16 [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4 Luca Weiss
@ 2026-11-13 8:16 ` Luca Weiss
2026-11-13 8:16 ` [PATCH 2/4] arm64: dts: qcom: sdm632-fairphone-fp3: Wire up PMI632 LCDB Luca Weiss
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 8:16 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree, Luca Weiss
Enable the Qualcomm LCDB regulator driver as module, as it's used on
some devices like the Fairphone 3 and Fairphone 4.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 898f4f1d5952..d0869b08a69e 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -910,6 +910,7 @@ CONFIG_REGULATOR_SGM3804=y
CONFIG_REGULATOR_TPS65132=m
CONFIG_REGULATOR_TPS65219=y
CONFIG_REGULATOR_VCTRL=m
+CONFIG_REGULATOR_QCOM_LCDB=m
CONFIG_RC_CORE=m
CONFIG_RC_DECODERS=y
CONFIG_RC_DEVICES=y
--
2.56.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/4] arm64: dts: qcom: sdm632-fairphone-fp3: Wire up PMI632 LCDB
2026-11-13 8:16 [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4 Luca Weiss
2026-11-13 8:16 ` [PATCH 1/4] arm64: defconfig: Enable Qualcomm LCDB regulator Luca Weiss
@ 2026-11-13 8:16 ` Luca Weiss
2026-11-13 8:16 ` [PATCH 3/4] arm64: dts: qcom: pm6150l: add LCDB regulators Luca Weiss
2026-11-13 8:16 ` [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB Luca Weiss
3 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 8:16 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree, Luca Weiss
Since Linux has gained LCDB support now, wire up the LCDB regulators so
we can turn them off and on as desired.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 26 ++++++++++++++---------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
index 3223884f9cd6..77331ae6a692 100644
--- a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
+++ b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
@@ -72,14 +72,6 @@ vreg_cam2_dig_1p2: regulator-cam2-dig-1p2 {
vin-supply = <&vph_pwr>;
};
- /* Dummy regulator until PMI632 has LCDB VSP/VSN support */
- lcdb_dummy: regulator-lcdb-dummy {
- compatible = "regulator-fixed";
- regulator-name = "lcdb_dummy";
- regulator-min-microvolt = <5500000>;
- regulator-max-microvolt = <5500000>;
- };
-
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
@@ -175,8 +167,8 @@ panel@0 {
reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
iovcc-supply = <&pm8953_l6>;
- vsn-supply = <&lcdb_dummy>;
- vsp-supply = <&lcdb_dummy>;
+ vsn-supply = <&pmi632_lcdb_ncp>;
+ vsp-supply = <&pmi632_lcdb_ldo>;
pinctrl-0 = <&mdss_te_default>;
pinctrl-names = "default";
@@ -212,6 +204,20 @@ &pm8953_resin {
status = "okay";
};
+&pmi632_lcdb {
+ status = "okay";
+};
+
+&pmi632_lcdb_ldo {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
+
+&pmi632_lcdb_ncp {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
+
&pmi632_lpg {
status = "okay";
--
2.56.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: pm6150l: add LCDB regulators
2026-11-13 8:16 [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4 Luca Weiss
2026-11-13 8:16 ` [PATCH 1/4] arm64: defconfig: Enable Qualcomm LCDB regulator Luca Weiss
2026-11-13 8:16 ` [PATCH 2/4] arm64: dts: qcom: sdm632-fairphone-fp3: Wire up PMI632 LCDB Luca Weiss
@ 2026-11-13 8:16 ` Luca Weiss
2026-11-13 8:16 ` [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB Luca Weiss
3 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 8:16 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree, Luca Weiss
Describe the LCDB block providing the LCD bias rails. Leave empty
regulator nodes, forcing board files to provide correct voltage.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/pm6150l.dtsi b/arch/arm64/boot/dts/qcom/pm6150l.dtsi
index 334f976f1154..095b24a8a01b 100644
--- a/arch/arm64/boot/dts/qcom/pm6150l.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm6150l.dtsi
@@ -135,5 +135,19 @@ pm6150l_wled: leds@d800 {
status = "disabled";
};
+
+ pm6150l_lcdb: regulator@ec00 {
+ compatible = "qcom,pm6150l-lcdb", "qcom,pm8150l-lcdb";
+ reg = <0xec00>;
+ interrupts = <0x5 0xec 0x1 IRQ_TYPE_EDGE_RISING>;
+
+ status = "disabled";
+
+ pm6150l_lcdb_ldo: ldo {
+ };
+
+ pm6150l_lcdb_ncp: ncp {
+ };
+ };
};
};
--
2.56.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB
2026-11-13 8:16 [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4 Luca Weiss
` (2 preceding siblings ...)
2026-11-13 8:16 ` [PATCH 3/4] arm64: dts: qcom: pm6150l: add LCDB regulators Luca Weiss
@ 2026-11-13 8:16 ` Luca Weiss
2026-11-13 12:59 ` Luca Weiss
3 siblings, 1 reply; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 8:16 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree, Luca Weiss
Since Linux has gained LCDB support now, wire up the LCDB regulators so
we can turn them off and on as desired.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 26 ++++++++++++++---------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
index 37aa272019cc..d592bede6a61 100644
--- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
+++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
@@ -72,14 +72,6 @@ key-volume-up {
};
};
- /* Dummy regulator until PM6150L has LCDB VSP/VSN support */
- lcdb_dummy: regulator-lcdb-dummy {
- compatible = "regulator-fixed";
- regulator-name = "lcdb_dummy";
- regulator-min-microvolt = <5500000>;
- regulator-max-microvolt = <5500000>;
- };
-
reserved-memory {
/*
* The rmtfs memory region in downstream is 'dynamically allocated'
@@ -784,8 +776,8 @@ panel@0 {
reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;
vdd1-supply = <&vreg_l1e>;
- vsn-supply = <&lcdb_dummy>;
- vsp-supply = <&lcdb_dummy>;
+ vsn-supply = <&pm6150l_lcdb_ncp>;
+ vsp-supply = <&pm6150l_lcdb_ldo>;
port {
panel_in: endpoint {
@@ -925,6 +917,20 @@ pm6150l_adc_default: adc-default-state {
};
};
+&pm6150l_lcdb {
+ status = "okay";
+};
+
+&pm6150l_lcdb_ldo {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
+
+&pm6150l_lcdb_ncp {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
+
&pm6150l_wled {
qcom,switching-freq = <800>;
qcom,current-limit-microamp = <20000>;
--
2.56.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB
2026-11-13 8:16 ` [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB Luca Weiss
@ 2026-11-13 12:59 ` Luca Weiss
2026-11-13 13:09 ` Val Packett
0 siblings, 1 reply; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 12:59 UTC (permalink / raw)
To: Luca Weiss, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Val Packett
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree
On Fri Nov 13, 2026 at 9:16 AM CET, Luca Weiss wrote:
> Since Linux has gained LCDB support now, wire up the LCDB regulators so
> we can turn them off and on as desired.
Actually after some more testing with extra patches, it seems that on
FP4 the touchscreen stays dead after toggling the lcdb regulator, while
on FP3 it works perfectly fine.
So please ignore this specific patch for now, I will figure out what the
problem is and re-submit. All the other patches in the series are still
good to go in!
Regards
Luca
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 26 ++++++++++++++---------
> 1 file changed, 16 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
> index 37aa272019cc..d592bede6a61 100644
> --- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
> +++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
> @@ -72,14 +72,6 @@ key-volume-up {
> };
> };
>
> - /* Dummy regulator until PM6150L has LCDB VSP/VSN support */
> - lcdb_dummy: regulator-lcdb-dummy {
> - compatible = "regulator-fixed";
> - regulator-name = "lcdb_dummy";
> - regulator-min-microvolt = <5500000>;
> - regulator-max-microvolt = <5500000>;
> - };
> -
> reserved-memory {
> /*
> * The rmtfs memory region in downstream is 'dynamically allocated'
> @@ -784,8 +776,8 @@ panel@0 {
> reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;
>
> vdd1-supply = <&vreg_l1e>;
> - vsn-supply = <&lcdb_dummy>;
> - vsp-supply = <&lcdb_dummy>;
> + vsn-supply = <&pm6150l_lcdb_ncp>;
> + vsp-supply = <&pm6150l_lcdb_ldo>;
>
> port {
> panel_in: endpoint {
> @@ -925,6 +917,20 @@ pm6150l_adc_default: adc-default-state {
> };
> };
>
> +&pm6150l_lcdb {
> + status = "okay";
> +};
> +
> +&pm6150l_lcdb_ldo {
> + regulator-min-microvolt = <5500000>;
> + regulator-max-microvolt = <5500000>;
> +};
> +
> +&pm6150l_lcdb_ncp {
> + regulator-min-microvolt = <5500000>;
> + regulator-max-microvolt = <5500000>;
> +};
> +
> &pm6150l_wled {
> qcom,switching-freq = <800>;
> qcom,current-limit-microamp = <20000>;
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB
2026-11-13 12:59 ` Luca Weiss
@ 2026-11-13 13:09 ` Val Packett
2026-11-13 13:27 ` Luca Weiss
0 siblings, 1 reply; 8+ messages in thread
From: Val Packett @ 2026-11-13 13:09 UTC (permalink / raw)
To: Luca Weiss, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree
On 11/13/26 9:59 AM, Luca Weiss wrote:
> On Fri Nov 13, 2026 at 9:16 AM CET, Luca Weiss wrote:
>> Since Linux has gained LCDB support now, wire up the LCDB regulators so
>> we can turn them off and on as desired.
> Actually after some more testing with extra patches, it seems that on
> FP4 the touchscreen stays dead after toggling the lcdb regulator, while
> on FP3 it works perfectly fine.
>
> So please ignore this specific patch for now, I will figure out what the
> problem is and re-submit. All the other patches in the series are still
> good to go in!
Your touchscreen needs to be a drm panel follower and/or reference the
same supplies as well :) Most modern touch controllers are part of the
same physical DDIC as the actual display side
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB
2026-11-13 13:09 ` Val Packett
@ 2026-11-13 13:27 ` Luca Weiss
0 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-11-13 13:27 UTC (permalink / raw)
To: Val Packett, Luca Weiss, Bjorn Andersson, Konrad Dybcio,
Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Baryshkov
Cc: ~postmarketos/upstreaming, phone-devel, linux-kernel,
linux-arm-msm, devicetree
On Fri Nov 13, 2026 at 2:09 PM CET, Val Packett wrote:
>
> On 11/13/26 9:59 AM, Luca Weiss wrote:
>> On Fri Nov 13, 2026 at 9:16 AM CET, Luca Weiss wrote:
>>> Since Linux has gained LCDB support now, wire up the LCDB regulators so
>>> we can turn them off and on as desired.
>> Actually after some more testing with extra patches, it seems that on
>> FP4 the touchscreen stays dead after toggling the lcdb regulator, while
>> on FP3 it works perfectly fine.
>>
>> So please ignore this specific patch for now, I will figure out what the
>> problem is and re-submit. All the other patches in the series are still
>> good to go in!
>
> Your touchscreen needs to be a drm panel follower and/or reference the
> same supplies as well :) Most modern touch controllers are part of the
> same physical DDIC as the actual display side
Yep, I assumed the same. Probably need to resend the init sequence [0]
after power cycle, when the panel is back on again, to get everything
running again.
[0] https://lore.kernel.org/linux-arm-msm/20260821-fp4-hx83112a-v1-2-474941bd8860@fairphone.com/ hx83112a_init()
Fairphone 3 should be a similar setup (FP3: hx83112b, FP4: hx83112a) but
apparently the hx83112b doesn't need any sort of init to start sending
touch inputs compared to hx83112a.
Regards
Luca
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-11-13 13:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-13 8:16 [PATCH 0/4] Wire up LCDB regulator on Fairphone 3 & Fairphone 4 Luca Weiss
2026-11-13 8:16 ` [PATCH 1/4] arm64: defconfig: Enable Qualcomm LCDB regulator Luca Weiss
2026-11-13 8:16 ` [PATCH 2/4] arm64: dts: qcom: sdm632-fairphone-fp3: Wire up PMI632 LCDB Luca Weiss
2026-11-13 8:16 ` [PATCH 3/4] arm64: dts: qcom: pm6150l: add LCDB regulators Luca Weiss
2026-11-13 8:16 ` [PATCH 4/4] arm64: dts: qcom: sm7225-fairphone-fp4: Wire up PM6150L LCDB Luca Weiss
2026-11-13 12:59 ` Luca Weiss
2026-11-13 13:09 ` Val Packett
2026-11-13 13:27 ` Luca Weiss
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®