arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+)
Add a node for the Hall Effect sensor, used to detect whether the Flip
Cover is closed or not.
The sensor is powered through vreg_l10b, so let's put a
regulator-always-on on that to make sure the sensor gets power.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
index 7629ceddde2a..98b3fc654206 100644
--- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
+++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
@@ -32,6 +32,16 @@ gpio-keys {
pinctrl-0 = <&volume_up_default>;
pinctrl-names = "default";
+ /* Powered by the always-on vreg_l10b */
+ event-hall-sensor {
+ label = "Hall Effect Sensor";
+ gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
key-volume-up {
label = "Volume Up";
gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
@@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ /* Hall sensor VDD */
+ regulator-always-on;
};
vreg_l11b: ldo11 {
---
base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
change-id: 20260116-fp6-hall-sensor-1049f2f872ac
Best regards,
--
Luca Weiss <luca.weiss@fairphone.com>
On 1/16/26 3:22 PM, Luca Weiss wrote:
> Add a node for the Hall Effect sensor, used to detect whether the Flip
> Cover is closed or not.
>
> The sensor is powered through vreg_l10b, so let's put a
> regulator-always-on on that to make sure the sensor gets power.
Is there anything else on L10B? Can we turn it off if the hall sensor
is e.g. user-disabled?
Konrad
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> index 7629ceddde2a..98b3fc654206 100644
> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> @@ -32,6 +32,16 @@ gpio-keys {
> pinctrl-0 = <&volume_up_default>;
> pinctrl-names = "default";
>
> + /* Powered by the always-on vreg_l10b */
> + event-hall-sensor {
> + label = "Hall Effect Sensor";
> + gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + linux,can-disable;
> + wakeup-source;
> + };
> +
> key-volume-up {
> label = "Volume Up";
> gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
> @@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <1800000>;
> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + /* Hall sensor VDD */
> + regulator-always-on;
> };
>
> vreg_l11b: ldo11 {
>
> ---
> base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
> change-id: 20260116-fp6-hall-sensor-1049f2f872ac
>
> Best regards,
On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote:
> On 1/16/26 3:22 PM, Luca Weiss wrote:
>> Add a node for the Hall Effect sensor, used to detect whether the Flip
>> Cover is closed or not.
>>
>> The sensor is powered through vreg_l10b, so let's put a
>> regulator-always-on on that to make sure the sensor gets power.
>
> Is there anything else on L10B? Can we turn it off if the hall sensor
> is e.g. user-disabled?
It's the voltage source for pull-up of sensor I2C bus (so
ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like
the gyro.
So realistically, it'll probably be (nearly) always on anyways. And I
don't want to shave another yak by adding vdd support to gpio-keys...
Regards
Luca
>
> Konrad
>
>>
>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> ---
>> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> index 7629ceddde2a..98b3fc654206 100644
>> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> @@ -32,6 +32,16 @@ gpio-keys {
>> pinctrl-0 = <&volume_up_default>;
>> pinctrl-names = "default";
>>
>> + /* Powered by the always-on vreg_l10b */
>> + event-hall-sensor {
>> + label = "Hall Effect Sensor";
>> + gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
>> + linux,input-type = <EV_SW>;
>> + linux,code = <SW_LID>;
>> + linux,can-disable;
>> + wakeup-source;
>> + };
>> +
>> key-volume-up {
>> label = "Volume Up";
>> gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
>> @@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
>> regulator-min-microvolt = <1800000>;
>> regulator-max-microvolt = <1800000>;
>> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + /* Hall sensor VDD */
>> + regulator-always-on;
>> };
>>
>> vreg_l11b: ldo11 {
>>
>> ---
>> base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
>> change-id: 20260116-fp6-hall-sensor-1049f2f872ac
>>
>> Best regards,
On Mon, Jan 19, 2026 at 04:52:23PM +0100, Luca Weiss wrote:
> On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote:
> > On 1/16/26 3:22 PM, Luca Weiss wrote:
> >> Add a node for the Hall Effect sensor, used to detect whether the Flip
> >> Cover is closed or not.
> >>
> >> The sensor is powered through vreg_l10b, so let's put a
> >> regulator-always-on on that to make sure the sensor gets power.
> >
> > Is there anything else on L10B? Can we turn it off if the hall sensor
> > is e.g. user-disabled?
>
> It's the voltage source for pull-up of sensor I2C bus (so
> ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like
> the gyro.
>
> So realistically, it'll probably be (nearly) always on anyways. And I
> don't want to shave another yak by adding vdd support to gpio-keys...
Why? If it is exactly what happens on the board: the device producing
GPIO events _is_ powered via a vdd. Added Input maintainer / list to cc.
>
> Regards
> Luca
>
> >
> > Konrad
> >
> >>
> >> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> >> ---
> >> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
> >> 1 file changed, 12 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> >> index 7629ceddde2a..98b3fc654206 100644
> >> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> >> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> >> @@ -32,6 +32,16 @@ gpio-keys {
> >> pinctrl-0 = <&volume_up_default>;
> >> pinctrl-names = "default";
> >>
> >> + /* Powered by the always-on vreg_l10b */
> >> + event-hall-sensor {
> >> + label = "Hall Effect Sensor";
> >> + gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
> >> + linux,input-type = <EV_SW>;
> >> + linux,code = <SW_LID>;
> >> + linux,can-disable;
> >> + wakeup-source;
> >> + };
> >> +
> >> key-volume-up {
> >> label = "Volume Up";
> >> gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
> >> @@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
> >> regulator-min-microvolt = <1800000>;
> >> regulator-max-microvolt = <1800000>;
> >> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + /* Hall sensor VDD */
> >> + regulator-always-on;
> >> };
> >>
> >> vreg_l11b: ldo11 {
> >>
> >> ---
> >> base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
> >> change-id: 20260116-fp6-hall-sensor-1049f2f872ac
> >>
> >> Best regards,
>
--
With best wishes
Dmitry
On Wed Jan 21, 2026 at 12:05 AM CET, Dmitry Baryshkov wrote:
> On Mon, Jan 19, 2026 at 04:52:23PM +0100, Luca Weiss wrote:
>> On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote:
>> > On 1/16/26 3:22 PM, Luca Weiss wrote:
>> >> Add a node for the Hall Effect sensor, used to detect whether the Flip
>> >> Cover is closed or not.
>> >>
>> >> The sensor is powered through vreg_l10b, so let's put a
>> >> regulator-always-on on that to make sure the sensor gets power.
>> >
>> > Is there anything else on L10B? Can we turn it off if the hall sensor
>> > is e.g. user-disabled?
>>
>> It's the voltage source for pull-up of sensor I2C bus (so
>> ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like
>> the gyro.
>>
>> So realistically, it'll probably be (nearly) always on anyways. And I
>> don't want to shave another yak by adding vdd support to gpio-keys...
>
> Why? If it is exactly what happens on the board: the device producing
> GPIO events _is_ powered via a vdd. Added Input maintainer / list to cc.
Yes, the hall sensor which is connected to the GPIO on the SoC, has an
extra VDD input which needs to be on in order for the Hall-effect sensor
to be on.
See page 133 "HALL" in the center of the page
https://www.fairphone.com/wp-content/uploads/2025/08/Fairphone-Gen.-6_-Information-on-how-to-repair-dispose-of-and-recycle-EN-NL-FR-DE.pdf
The IC is OCH166AEV4AD where VDD is (as expected) "Power Supply Input":
https://www.orient-chip.com/Public/Uploads/uploadfile/files/20231014/1OCH166Adatasheet202203221.pdf
Regards
Luca
>
>>
>> Regards
>> Luca
>>
>> >
>> > Konrad
>> >
>> >>
>> >> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> >> ---
>> >> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
>> >> 1 file changed, 12 insertions(+)
>> >>
>> >> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> >> index 7629ceddde2a..98b3fc654206 100644
>> >> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> >> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> >> @@ -32,6 +32,16 @@ gpio-keys {
>> >> pinctrl-0 = <&volume_up_default>;
>> >> pinctrl-names = "default";
>> >>
>> >> + /* Powered by the always-on vreg_l10b */
>> >> + event-hall-sensor {
>> >> + label = "Hall Effect Sensor";
>> >> + gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
>> >> + linux,input-type = <EV_SW>;
>> >> + linux,code = <SW_LID>;
>> >> + linux,can-disable;
>> >> + wakeup-source;
>> >> + };
>> >> +
>> >> key-volume-up {
>> >> label = "Volume Up";
>> >> gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
>> >> @@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
>> >> regulator-min-microvolt = <1800000>;
>> >> regulator-max-microvolt = <1800000>;
>> >> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> >> + /* Hall sensor VDD */
>> >> + regulator-always-on;
>> >> };
>> >>
>> >> vreg_l11b: ldo11 {
>> >>
>> >> ---
>> >> base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
>> >> change-id: 20260116-fp6-hall-sensor-1049f2f872ac
>> >>
>> >> Best regards,
>>
On Wed, Jan 21, 2026 at 09:07:44AM +0100, Luca Weiss wrote: > On Wed Jan 21, 2026 at 12:05 AM CET, Dmitry Baryshkov wrote: > > On Mon, Jan 19, 2026 at 04:52:23PM +0100, Luca Weiss wrote: > >> On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote: > >> > On 1/16/26 3:22 PM, Luca Weiss wrote: > >> >> Add a node for the Hall Effect sensor, used to detect whether the Flip > >> >> Cover is closed or not. > >> >> > >> >> The sensor is powered through vreg_l10b, so let's put a > >> >> regulator-always-on on that to make sure the sensor gets power. > >> > > >> > Is there anything else on L10B? Can we turn it off if the hall sensor > >> > is e.g. user-disabled? > >> > >> It's the voltage source for pull-up of sensor I2C bus (so > >> ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like > >> the gyro. > >> > >> So realistically, it'll probably be (nearly) always on anyways. And I > >> don't want to shave another yak by adding vdd support to gpio-keys... > > > > Why? If it is exactly what happens on the board: the device producing > > GPIO events _is_ powered via a vdd. Added Input maintainer / list to cc. > > Yes, the hall sensor which is connected to the GPIO on the SoC, has an > extra VDD input which needs to be on in order for the Hall-effect sensor > to be on. > > See page 133 "HALL" in the center of the page > https://www.fairphone.com/wp-content/uploads/2025/08/Fairphone-Gen.-6_-Information-on-how-to-repair-dispose-of-and-recycle-EN-NL-FR-DE.pdf > > The IC is OCH166AEV4AD where VDD is (as expected) "Power Supply Input": > https://www.orient-chip.com/Public/Uploads/uploadfile/files/20231014/1OCH166Adatasheet202203221.pdf If we add regulator support to gpio-keys do we expect it to be per-gpio/per-key? Or we'd recommend splitting into several instances of gpio-keys so that there is on set of supplies per gpio-keys device? Thanks. -- Dmitry
On 1/21/26 9:06 PM, Dmitry Torokhov wrote:
> On Wed, Jan 21, 2026 at 09:07:44AM +0100, Luca Weiss wrote:
>> On Wed Jan 21, 2026 at 12:05 AM CET, Dmitry Baryshkov wrote:
>>> On Mon, Jan 19, 2026 at 04:52:23PM +0100, Luca Weiss wrote:
>>>> On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote:
>>>>> On 1/16/26 3:22 PM, Luca Weiss wrote:
>>>>>> Add a node for the Hall Effect sensor, used to detect whether the Flip
>>>>>> Cover is closed or not.
>>>>>>
>>>>>> The sensor is powered through vreg_l10b, so let's put a
>>>>>> regulator-always-on on that to make sure the sensor gets power.
>>>>>
>>>>> Is there anything else on L10B? Can we turn it off if the hall sensor
>>>>> is e.g. user-disabled?
>>>>
>>>> It's the voltage source for pull-up of sensor I2C bus (so
>>>> ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like
>>>> the gyro.
>>>>
>>>> So realistically, it'll probably be (nearly) always on anyways. And I
>>>> don't want to shave another yak by adding vdd support to gpio-keys...
>>>
>>> Why? If it is exactly what happens on the board: the device producing
>>> GPIO events _is_ powered via a vdd. Added Input maintainer / list to cc.
>>
>> Yes, the hall sensor which is connected to the GPIO on the SoC, has an
>> extra VDD input which needs to be on in order for the Hall-effect sensor
>> to be on.
>>
>> See page 133 "HALL" in the center of the page
>> https://www.fairphone.com/wp-content/uploads/2025/08/Fairphone-Gen.-6_-Information-on-how-to-repair-dispose-of-and-recycle-EN-NL-FR-DE.pdf
>>
>> The IC is OCH166AEV4AD where VDD is (as expected) "Power Supply Input":
>> https://www.orient-chip.com/Public/Uploads/uploadfile/files/20231014/1OCH166Adatasheet202203221.pdf
>
> If we add regulator support to gpio-keys do we expect it to be
> per-gpio/per-key? Or we'd recommend splitting into several instances of
> gpio-keys so that there is on set of supplies per gpio-keys device?
gpio-keys {} is very broad and generic, I would imagine it would only
make sense to keep it per-entry, like Luca suggested
Konrad
On Wed Jan 21, 2026 at 9:06 PM CET, Dmitry Torokhov wrote: > On Wed, Jan 21, 2026 at 09:07:44AM +0100, Luca Weiss wrote: >> On Wed Jan 21, 2026 at 12:05 AM CET, Dmitry Baryshkov wrote: >> > On Mon, Jan 19, 2026 at 04:52:23PM +0100, Luca Weiss wrote: >> >> On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote: >> >> > On 1/16/26 3:22 PM, Luca Weiss wrote: >> >> >> Add a node for the Hall Effect sensor, used to detect whether the Flip >> >> >> Cover is closed or not. >> >> >> >> >> >> The sensor is powered through vreg_l10b, so let's put a >> >> >> regulator-always-on on that to make sure the sensor gets power. >> >> > >> >> > Is there anything else on L10B? Can we turn it off if the hall sensor >> >> > is e.g. user-disabled? >> >> >> >> It's the voltage source for pull-up of sensor I2C bus (so >> >> ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like >> >> the gyro. >> >> >> >> So realistically, it'll probably be (nearly) always on anyways. And I >> >> don't want to shave another yak by adding vdd support to gpio-keys... >> > >> > Why? If it is exactly what happens on the board: the device producing >> > GPIO events _is_ powered via a vdd. Added Input maintainer / list to cc. >> >> Yes, the hall sensor which is connected to the GPIO on the SoC, has an >> extra VDD input which needs to be on in order for the Hall-effect sensor >> to be on. >> >> See page 133 "HALL" in the center of the page >> https://www.fairphone.com/wp-content/uploads/2025/08/Fairphone-Gen.-6_-Information-on-how-to-repair-dispose-of-and-recycle-EN-NL-FR-DE.pdf >> >> The IC is OCH166AEV4AD where VDD is (as expected) "Power Supply Input": >> https://www.orient-chip.com/Public/Uploads/uploadfile/files/20231014/1OCH166Adatasheet202203221.pdf > > If we add regulator support to gpio-keys do we expect it to be > per-gpio/per-key? Or we'd recommend splitting into several instances of > gpio-keys so that there is on set of supplies per gpio-keys device? In my opinion it would fit in this case in the event-hall-sensor node, that next to gpios = <&tlmm 70 GPIO_ACTIVE_LOW> we get a vdd-supply = <&vreg_l10b>. Regards Luca > > Thanks.
On 1/19/26 4:52 PM, Luca Weiss wrote: > On Mon Jan 19, 2026 at 3:41 PM CET, Konrad Dybcio wrote: >> On 1/16/26 3:22 PM, Luca Weiss wrote: >>> Add a node for the Hall Effect sensor, used to detect whether the Flip >>> Cover is closed or not. >>> >>> The sensor is powered through vreg_l10b, so let's put a >>> regulator-always-on on that to make sure the sensor gets power. >> >> Is there anything else on L10B? Can we turn it off if the hall sensor >> is e.g. user-disabled? > > It's the voltage source for pull-up of sensor I2C bus (so > ADSP-managed?), DVDD for amplifiers and VDD for a most sensors like > the gyro. > > So realistically, it'll probably be (nearly) always on anyways. And I > don't want to shave another yak by adding vdd support to gpio-keys... That's okay Let's configure the gpio70 in v2 like Dmitry pointed out Konrad
On Fri, Jan 16, 2026 at 03:22:52PM +0100, Luca Weiss wrote:
> Add a node for the Hall Effect sensor, used to detect whether the Flip
> Cover is closed or not.
>
> The sensor is powered through vreg_l10b, so let's put a
> regulator-always-on on that to make sure the sensor gets power.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> index 7629ceddde2a..98b3fc654206 100644
> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> @@ -32,6 +32,16 @@ gpio-keys {
> pinctrl-0 = <&volume_up_default>;
It would be nice to add pinctrl for it too.
> pinctrl-names = "default";
>
> + /* Powered by the always-on vreg_l10b */
> + event-hall-sensor {
> + label = "Hall Effect Sensor";
> + gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + linux,can-disable;
> + wakeup-source;
> + };
> +
> key-volume-up {
> label = "Volume Up";
> gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
> @@ -316,6 +326,8 @@ vreg_l10b: ldo10 {
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <1800000>;
> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + /* Hall sensor VDD */
> + regulator-always-on;
> };
>
> vreg_l11b: ldo11 {
>
> ---
> base-commit: ef1c7b875741bef0ff37ae8ab8a9aaf407dc141c
> change-id: 20260116-fp6-hall-sensor-1049f2f872ac
>
> Best regards,
> --
> Luca Weiss <luca.weiss@fairphone.com>
>
--
With best wishes
Dmitry
© 2016 - 2026 Red Hat, Inc.