[PATCH v3 3/3] arm64: dts: exynos7870-j6lte: add Sharp GP2AP070S proximity sensor
Kaustabh Chakraborty
kauschluss at disroot.org
Thu Jul 30 13:07:02 PDT 2026
The Sharp GP2AP070S is a proximity sensor, which is connected to a
GPIO-driven I2C line. Define the devicetree node for the sensor.
The sensor requires two voltage supplies, one of which is from the
primary regulator bank of the device, while the other one is controlled
by the GPIO. Add a regulator wrapping over the concerned GPIO so as to
feed it to the sensor node.
Signed-off-by: Kaustabh Chakraborty <kauschluss at disroot.org>
---
arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts | 55 ++++++++++++++++++++++++-
1 file changed, 53 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts b/arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts
index de30d0970336..dd493138fed6 100644
--- a/arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts
+++ b/arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts
@@ -73,6 +73,35 @@ key-volup {
};
};
+ i2c-proximity {
+ compatible = "i2c-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_proxm_bus>;
+
+ sda-gpios = <&gpf4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpf4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+ i2c-gpio,delay-us = <2>;
+
+ proximity at 39 {
+ compatible = "sharp,gp2ap070s";
+ reg = <0x39>;
+ interrupt-parent = <&gpa0>;
+ interrupts = <5 IRQ_TYPE_EDGE_BOTH>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&proxm_irq>;
+
+ vdd-supply = <&vdd_fixed_proxm>;
+ vled-supply = <&vdd_ldo33>;
+
+ proximity-near-level = <500>;
+ };
+ };
+
memory at 40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0x3d800000>,
@@ -94,6 +123,16 @@ vdd_fixed_mmc2: regulator-fixed-mmc2 {
enable-active-high;
};
+ /* proximity: vdd */
+ vdd_fixed_proxm: regulator-fixed-proxm {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_fixed_proxm";
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ gpio = <&gpd2 3 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
reserved-memory {
#address-cells = <2>;
#size-cells = <1>;
@@ -354,13 +393,12 @@ vdd_ldo32: ldo32 {
regulator-ramp-delay = <12000>;
};
+ /* proximity: vled */
vdd_ldo33: ldo33 {
regulator-name = "vdd_ldo33";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12000>;
- regulator-boot-on;
- regulator-always-on;
};
/* touchscreen: vdd */
@@ -556,6 +594,13 @@ pmic_irq: pmic-irq-pins {
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
+ proxm_irq: proxm-irq-pins {
+ samsung,pins = "gpa0-5";
+ samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+ samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
+ };
+
touch_irq: touch-irq-pins {
samsung,pins = "gpa0-6";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
@@ -579,6 +624,12 @@ bt_enable: bt-enable-pins {
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
};
+ i2c_proxm_bus: i2c-proxm-bus-pins {
+ samsung,pins = "gpf4-3", "gpf4-2";
+ samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+ };
+
wlan_enable: wlan-enable-pins {
samsung,pins = "gpd3-6";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
--
2.54.0
More information about the linux-arm-kernel
mailing list