2022-05-14 01:06:48

by Markuss Broks

[permalink] [raw]
Subject: [PATCH v4 0/5] Add support for ToF sensor on Yoshino platform

This series adds support for the ToF proximity sensor installed on
Yoshino devices. As part of this series, support handling the reset
GPIO and VDD supply by the VL53L0X driver. Also stop hardcoding the
interrupt type, since on Yoshino devices it seems that edge triggering
doesn't work properly.

Tested on Sony Xperia XZ1 (poplar).

Cc: Konrad Dybcio <[email protected]>
Cc: Marijn Suijten <[email protected]>
Cc: AngeloGioacchino Del Regno <[email protected]>

v2:
- Fix a nasty issue: turns out grouping the pinctrl makes it not apply,
which was the main cause of edge interrupts not working correctly and
having to use level interrupts, which caused a large amount of false
detections.
- handle the irq type more gracefully: if it's not provided, default
to falling edge, but if it's provided, then use the provided one.
v3:
- add irq.h header (forgot to commit)
- reword commit message (already initialized -> pre-initialized)
v4:
- reorder powering on and power off action (Jonathan)
- sort pinctrls by GPIO number (Konrad)

Markuss Broks (5):
dt-bindings: proximity: vl53l0x: Document optional supply and GPIO
properties
proximity: vl53l0x: Get interrupt type from DT
proximity: vl53l0x: Handle the VDD regulator
proximity: vl53l0x: Handle the reset GPIO
arm64: dts: qcom: msm8998-xperia: Introduce ToF sensor support

.../bindings/iio/proximity/st,vl53l0x.yaml | 5 ++
.../dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 34 +++++++++++++
drivers/iio/proximity/vl53l0x-i2c.c | 50 ++++++++++++++++++-
3 files changed, 88 insertions(+), 1 deletion(-)

--
2.35.1



2022-05-14 04:11:15

by Markuss Broks

[permalink] [raw]
Subject: [PATCH v4 5/5] arm64: dts: qcom: msm8998-xperia: Introduce ToF sensor support

This patch adds device tree support for the VL53L0X ToF sensor
found on all Yoshino devices.

Signed-off-by: Markuss Broks <[email protected]>
---
.../dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi b/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
index 47488a1aecae..4bd1039d983d 100644
--- a/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
@@ -245,6 +245,24 @@ &blsp2_uart1 {
status = "okay";
};

+&blsp2_i2c2 {
+ status = "okay";
+
+ proximity@29 {
+ compatible = "st,vl53l0x";
+ reg = <0x29>;
+
+ interrupt-parent = <&tlmm>;
+ interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
+
+ reset-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&cam_vio_vreg>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&tof_int &tof_reset>;
+ };
+};
+
&ibb {
regulator-min-microamp = <800000>;
regulator-max-microamp = <800000>;
@@ -606,6 +624,14 @@ cam0_vdig_default: cam0-vdig-default {
drive-strength = <2>;
};

+ tof_int: tof-int {
+ pins = "gpio22";
+ function = "gpio";
+ bias-pull-up;
+ drive-strength = <2>;
+ input-enable;
+ };
+
cam1_vdig_default: cam1-vdig-default {
pins = "gpio25";
function = "gpio";
@@ -613,6 +639,13 @@ cam1_vdig_default: cam1-vdig-default {
drive-strength = <2>;
};

+ tof_reset: tof-reset {
+ pins = "gpio27";
+ function = "gpio";
+ bias-disable;
+ drive-strength = <2>;
+ };
+
hall_sensor0_default: acc-cover-open {
pins = "gpio124";
function = "gpio";
--
2.36.1