devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402
@ 2025-11-30 15:37 Shrikant Raskar
  2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Shrikant Raskar @ 2025-11-30 15:37 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel,
	Shrikant Raskar

This patch series adds:
 - Add RF Digital vendor prefix
 - YAML binding for RFD77402
 - Device Tree support in the driver
 - Move polling implementation into helper
 - Interrupt handling support
 
These changes enable DT-based configuration and event-driven
operation for the RFD77402 Time-of-Flight sensor.

Changelog:
Changes since v1:
- Fix commit message for dt-binding patch
- Update interrupt description in dt-binding
- Add 'vdd-supply' to 'required' property in dt-binding
- Add patch for moving polling implementation to helper
- Add helper rfd77402_wait_for_irq()
- Code refactoring
- Return failure if request IRQ fail

Shrikant Raskar (4):
  dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
  iio: proximity: rfd77402: Add Device Tree support
  iio: proximity: rfd77402: Move polling logic into helper
  iio: proximity: rfd77402: Add interrupt handling support

 .../iio/proximity/rfdigital,rfd77402.yaml     |  53 ++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 drivers/iio/proximity/rfd77402.c              | 162 ++++++++++++++++--
 3 files changed, 198 insertions(+), 19 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml

-- 
2.43.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
  2025-11-30 15:37 [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402 Shrikant Raskar
@ 2025-11-30 15:37 ` Shrikant Raskar
  2025-11-30 16:16   ` Rob Herring (Arm)
  2025-12-01  8:06   ` Krzysztof Kozlowski
  2025-11-30 15:37 ` [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support Shrikant Raskar
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 13+ messages in thread
From: Shrikant Raskar @ 2025-11-30 15:37 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel,
	Shrikant Raskar

The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
sensor that provides absolute and highly accurate distance measurements
from 100 mm up to 2000 mm over an I²C interface. It includes an optional
interrupt pin that signals when new measurement data is ready.

Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
---
Changelog:
Changes since v1:
- Fix patch heading
- Fix commit message
- Remove '|' from description
- Update interrupt description
- Add 'vdd-supply' to required
- Add 'vdd-supply' to example

Link to v1:https://lore.kernel.org/all/20251126031440.30065-2-raskar.shree97@gmail.com/
---
 .../iio/proximity/rfdigital,rfd77402.yaml     | 53 +++++++++++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |  2 +
 2 files changed, 55 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml

diff --git a/Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml b/Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml
new file mode 100644
index 000000000000..1ef6326b209e
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/rfdigital,rfd77402.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RF Digital RFD77402 ToF sensor
+
+maintainers:
+  - Shrikant Raskar <raskar.shree97@gmail.com>
+
+description:
+  The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
+  sensor providing up to 200 mm range measurement over an I2C interface.
+
+properties:
+  compatible:
+    const: rfdigital,rfd77402
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description:
+      Interrupt asserted when a new distance measurement is available.
+
+  vdd-supply:
+    description: Regulator that provides power to the sensor.
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        proximity@4c {
+            compatible = "rfdigital,rfd77402";
+            reg = <0x4c>;
+            vdd-supply = <&vdd_3v3>;
+            interrupt-parent = <&gpio>;
+            interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index f1d1882009ba..a2e113e29e37 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1341,6 +1341,8 @@ patternProperties:
     description: Revolution Robotics, Inc. (Revotics)
   "^rex,.*":
     description: iMX6 Rex Project
+  "^rfdigital,.*":
+    description: RF Digital Corporation
   "^richtek,.*":
     description: Richtek Technology Corporation
   "^ricoh,.*":
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support
  2025-11-30 15:37 [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402 Shrikant Raskar
  2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
@ 2025-11-30 15:37 ` Shrikant Raskar
  2025-11-30 16:48   ` Andy Shevchenko
  2025-11-30 15:37 ` [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper Shrikant Raskar
  2025-11-30 15:37 ` [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support Shrikant Raskar
  3 siblings, 1 reply; 13+ messages in thread
From: Shrikant Raskar @ 2025-11-30 15:37 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel,
	Shrikant Raskar

This patch enables seamless integration of the RFD77402 ToF sensor
on platforms that use Device Tree for hardware description.

Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
---
Changelog:
Changes since v1:
- Add period at the end of commit message.

Link to v1:https://lore.kernel.org/all/20251126031440.30065-3-raskar.shree97@gmail.com/
---
 drivers/iio/proximity/rfd77402.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77402.c
index aff60a3c1a6f..3262af6f6882 100644
--- a/drivers/iio/proximity/rfd77402.c
+++ b/drivers/iio/proximity/rfd77402.c
@@ -313,10 +313,17 @@ static const struct i2c_device_id rfd77402_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, rfd77402_id);
 
+static const struct of_device_id rfd77402_of_match[] = {
+	{ .compatible = "rfdigital,rfd77402" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, rfd77402_of_match);
+
 static struct i2c_driver rfd77402_driver = {
 	.driver = {
 		.name   = RFD77402_DRV_NAME,
 		.pm     = pm_sleep_ptr(&rfd77402_pm_ops),
+		.of_match_table = rfd77402_of_match,
 	},
 	.probe = rfd77402_probe,
 	.id_table = rfd77402_id,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper
  2025-11-30 15:37 [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402 Shrikant Raskar
  2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
  2025-11-30 15:37 ` [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support Shrikant Raskar
@ 2025-11-30 15:37 ` Shrikant Raskar
  2025-11-30 16:52   ` Andy Shevchenko
  2025-12-07 15:53   ` Jonathan Cameron
  2025-11-30 15:37 ` [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support Shrikant Raskar
  3 siblings, 2 replies; 13+ messages in thread
From: Shrikant Raskar @ 2025-11-30 15:37 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel,
	Shrikant Raskar

This change extracts the polling logic into a dedicated helper,
rfd77402_result_polling(), which improves readability and keeps
rfd77402_measure() focused on the high-level measurement flow.

This refactoring is also a necessary preparation step for adding
interrupt-based result handling in a follow-up patch.

Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
---
 drivers/iio/proximity/rfd77402.c | 35 +++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77402.c
index 3262af6f6882..2152509816ca 100644
--- a/drivers/iio/proximity/rfd77402.c
+++ b/drivers/iio/proximity/rfd77402.c
@@ -110,11 +110,28 @@ static int rfd77402_set_state(struct i2c_client *client, u8 state, u16 check)
 	return 0;
 }
 
-static int rfd77402_measure(struct i2c_client *client)
+static int rfd77402_result_polling(struct i2c_client *client)
 {
 	int ret;
 	int tries = 10;
 
+	while (tries-- > 0) {
+		ret = i2c_smbus_read_byte_data(client, RFD77402_ICSR);
+		if (ret < 0)
+			return ret;
+
+		if (ret & RFD77402_ICSR_RESULT)
+			return 0;
+
+		msleep(20);
+	}
+
+	return -ETIMEDOUT;
+}
+
+static int rfd77402_measure(struct i2c_client *client)
+{
+	int ret;
 	ret = rfd77402_set_state(client, RFD77402_CMD_MCPU_ON,
 				 RFD77402_STATUS_MCPU_ON);
 	if (ret < 0)
@@ -125,20 +142,10 @@ static int rfd77402_measure(struct i2c_client *client)
 					RFD77402_CMD_VALID);
 	if (ret < 0)
 		goto err;
-
-	while (tries-- > 0) {
-		ret = i2c_smbus_read_byte_data(client, RFD77402_ICSR);
-		if (ret < 0)
-			goto err;
-		if (ret & RFD77402_ICSR_RESULT)
-			break;
-		msleep(20);
-	}
-
-	if (tries < 0) {
-		ret = -ETIMEDOUT;
+
+	ret = rfd77402_result_polling(client);
+	if (ret < 0)
 		goto err;
-	}
 
 	ret = i2c_smbus_read_word_data(client, RFD77402_RESULT_R);
 	if (ret < 0)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support
  2025-11-30 15:37 [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402 Shrikant Raskar
                   ` (2 preceding siblings ...)
  2025-11-30 15:37 ` [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper Shrikant Raskar
@ 2025-11-30 15:37 ` Shrikant Raskar
  2025-11-30 17:01   ` Andy Shevchenko
  2025-12-07 15:58   ` Jonathan Cameron
  3 siblings, 2 replies; 13+ messages in thread
From: Shrikant Raskar @ 2025-11-30 15:37 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel,
	Shrikant Raskar

Add interrupt handling support to enable event-driven data acquisition
instead of continuous polling. This improves responsiveness, reduces
CPU overhead, and supports low-power operation by allowing the system
to remain idle until an interrupt occurs.

Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
---
Changelog:
Changes since v1:
- Remove 'of.h' header
- Split the condition in 2 parts in interrupt handler
- Add helper rfd77402_wait_for_irq()
- Add helper rfd77402_config_irq()
- Code refactoring
- Return failure if request IRQ failed

Link to v1:https://lore.kernel.org/all/20251126031440.30065-4-raskar.shree97@gmail.com/

Test Logs:
1. Interrupt Mode :
pi@raspberrypi:~$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
pi@raspberrypi:~$ cat /sys/bus/iio/devices/iio:device0/in_distance_raw
35
pi@raspberrypi:~$ cat /sys/bus/iio/devices/iio:device0/in_distance_raw
39
pi@raspberrypi:~$ cat /proc/interrupts | grep rfd
127:          2          0          0          0 pinctrl-bcm2835   4 Edge      rfd77402
pi@raspberrypi:~$ dmesg | grep rfd
[    7.464789] rfd77402 1-004c: Using interrupt mode

2. Polling Mode :
pi@raspberrypi:~$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
pi@raspberrypi:~$ dmesg | grep rfd
[   26.908031] rfd77402 1-004c: No interrupt specified, using polling mode
pi@raspberrypi:~$ cat /sys/bus/iio/devices/iio:device0/in_distance_raw
36
pi@raspberrypi:~$ cat /sys/bus/iio/devices/iio:device0/in_distance_raw
45
---
 drivers/iio/proximity/rfd77402.c | 126 +++++++++++++++++++++++++++++--
 1 file changed, 118 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77402.c
index 2152509816ca..8441a7bcabec 100644
--- a/drivers/iio/proximity/rfd77402.c
+++ b/drivers/iio/proximity/rfd77402.c
@@ -6,19 +6,21 @@
  *
  * 7-bit I2C slave address 0x4c
  *
- * TODO: interrupt
  * https://media.digikey.com/pdf/Data%20Sheets/RF%20Digital%20PDFs/RFD77402.pdf
  */
 
 #include <linux/module.h>
 #include <linux/i2c.h>
 #include <linux/delay.h>
-
+#include <linux/interrupt.h>
+#include <linux/completion.h>
 #include <linux/iio/iio.h>
 
 #define RFD77402_DRV_NAME "rfd77402"
 
 #define RFD77402_ICSR		0x00 /* Interrupt Control Status Register */
+#define RFD77402_ICSR_CLR_CFG   BIT(0)
+#define RFD77402_ICSR_CLR_TYPE  BIT(1)
 #define RFD77402_ICSR_INT_MODE	BIT(2)
 #define RFD77402_ICSR_INT_POL	BIT(3)
 #define RFD77402_ICSR_RESULT	BIT(4)
@@ -26,6 +28,12 @@
 #define RFD77402_ICSR_H2M_MSG	BIT(6)
 #define RFD77402_ICSR_RESET	BIT(7)
 
+#define RFD77402_IER		0x02
+#define RFD77402_IER_RESULT	BIT(0)
+#define RFD77402_IER_M2H_MSG	BIT(1)
+#define RFD77402_IER_H2M_MSG	BIT(2)
+#define RFD77402_IER_RESET	BIT(3)
+
 #define RFD77402_CMD_R		0x04
 #define RFD77402_CMD_SINGLE	0x01
 #define RFD77402_CMD_STANDBY	0x10
@@ -80,6 +88,10 @@ struct rfd77402_data {
 	struct i2c_client *client;
 	/* Serialize reads from the sensor */
 	struct mutex lock;
+	/* Completion for interrupt-driven measurements */
+	struct completion completion;
+	/* Flag to indicate if interrupt is available */
+	bool irq_en;
 };
 
 static const struct iio_chan_spec rfd77402_channels[] = {
@@ -110,6 +122,36 @@ static int rfd77402_set_state(struct i2c_client *client, u8 state, u16 check)
 	return 0;
 }
 
+static irqreturn_t rfd77402_interrupt_handler(int irq, void *dev_id)
+{
+	struct rfd77402_data *data = dev_id;
+	int ret;
+
+	ret = i2c_smbus_read_byte_data(data->client, RFD77402_ICSR);
+	if (ret < 0)
+		return IRQ_NONE;
+
+	/* Check if the interrupt is from our device */
+	if (!(ret & RFD77402_ICSR_RESULT))
+		return IRQ_NONE;
+
+	/* Signal completion of measurement */
+	complete(&data->completion);
+	return IRQ_HANDLED;
+}
+
+static int rfd77402_wait_for_irq(struct rfd77402_data *data)
+{
+	int ret;
+
+	ret = wait_for_completion_timeout(&data->completion,
+					  msecs_to_jiffies(200));
+	if (ret == 0)
+		return -ETIMEDOUT;
+
+	return 0;
+}
+
 static int rfd77402_result_polling(struct i2c_client *client)
 {
 	int ret;
@@ -129,21 +171,31 @@ static int rfd77402_result_polling(struct i2c_client *client)
 	return -ETIMEDOUT;
 }
 
-static int rfd77402_measure(struct i2c_client *client)
+static int rfd77402_measure(struct rfd77402_data *data)
 {
+	struct i2c_client *client = data->client;
 	int ret;
+
 	ret = rfd77402_set_state(client, RFD77402_CMD_MCPU_ON,
 				 RFD77402_STATUS_MCPU_ON);
 	if (ret < 0)
 		return ret;
 
+	/* Initialize completion for interrupt mode */
+	if (data->irq_en)
+		reinit_completion(&data->completion);
+
 	ret = i2c_smbus_write_byte_data(client, RFD77402_CMD_R,
 					RFD77402_CMD_SINGLE |
 					RFD77402_CMD_VALID);
 	if (ret < 0)
 		goto err;
 		
-	ret = rfd77402_result_polling(client);
+	if (data->irq_en)
+		ret = rfd77402_wait_for_irq(data);
+	else
+		ret = rfd77402_result_polling(data->client);
+
 	if (ret < 0)
 		goto err;
 
@@ -175,7 +227,7 @@ static int rfd77402_read_raw(struct iio_dev *indio_dev,
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
 		mutex_lock(&data->lock);
-		ret = rfd77402_measure(data->client);
+		ret = rfd77402_measure(data);
 		mutex_unlock(&data->lock);
 		if (ret < 0)
 			return ret;
@@ -195,8 +247,25 @@ static const struct iio_info rfd77402_info = {
 	.read_raw = rfd77402_read_raw,
 };
 
+static int rfd77402_config_irq(struct i2c_client *client, u8 csr, u8 ier)
+{
+	int ret;
+
+	ret = i2c_smbus_write_byte_data(client, RFD77402_ICSR, csr);
+	if (ret < 0)
+		return ret;
+
+	ret = i2c_smbus_write_byte_data(client, RFD77402_IER, ier);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
 static int rfd77402_init(struct i2c_client *client)
 {
+	struct iio_dev *indio_dev = i2c_get_clientdata(client);
+	struct rfd77402_data *data = iio_priv(indio_dev);
 	int ret, i;
 
 	ret = rfd77402_set_state(client, RFD77402_CMD_STANDBY,
@@ -204,9 +273,25 @@ static int rfd77402_init(struct i2c_client *client)
 	if (ret < 0)
 		return ret;
 
-	/* configure INT pad as push-pull, active low */
-	ret = i2c_smbus_write_byte_data(client, RFD77402_ICSR,
-					RFD77402_ICSR_INT_MODE);
+	if (data->irq_en) {
+	/*
+	 * Enable interrupt mode:
+	 * - Configure ICSR for auto-clear on read, push-pull output and falling edge
+	 * - Enable "result ready" interrupt in IER
+	 */
+		ret = rfd77402_config_irq(client,
+					  RFD77402_ICSR_CLR_CFG |
+					  RFD77402_ICSR_INT_MODE,
+					  RFD77402_IER_RESULT);
+	} else {
+	/*
+	 * Disable all interrupts:
+	 * - Clear ICSR configuration
+	 * - Disable all interrupt in IER
+	 */
+		ret = rfd77402_config_irq(client, 0, 0);
+	}
+
 	if (ret < 0)
 		return ret;
 
@@ -283,6 +368,31 @@ static int rfd77402_probe(struct i2c_client *client)
 	data = iio_priv(indio_dev);
 	data->client = client;
 	mutex_init(&data->lock);
+	init_completion(&data->completion);
+
+	i2c_set_clientdata(client, indio_dev);
+
+	data->irq_en = false;
+	if (client->irq > 0) {
+		/* interrupt mode */
+		ret = devm_request_threaded_irq(&client->dev, client->irq,
+						NULL, rfd77402_interrupt_handler,
+						IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+						"rfd77402", data);
+		if (ret < 0) {
+			dev_err(&client->dev,
+				"Failed to request IRQ %d: %d\n",
+				client->irq, ret);
+			return ret;
+		}
+
+		data->irq_en = true;
+		dev_info(&client->dev, "Using interrupt mode\n");
+
+	} else {
+		/* polling mode */
+		dev_info(&client->dev, "No interrupt specified, using polling mode\n");
+	}
 
 	indio_dev->info = &rfd77402_info;
 	indio_dev->channels = rfd77402_channels;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
  2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
@ 2025-11-30 16:16   ` Rob Herring (Arm)
  2025-12-01  8:06   ` Krzysztof Kozlowski
  1 sibling, 0 replies; 13+ messages in thread
From: Rob Herring (Arm) @ 2025-11-30 16:16 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: dlechner, conor+dt, neil.armstrong, krzk+dt, linux-iio, skhan,
	nuno.sa, heiko, andy, david.hunter.linux, devicetree,
	linux-kernel, jic23


On Sun, 30 Nov 2025 21:07:09 +0530, Shrikant Raskar wrote:
> The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
> sensor that provides absolute and highly accurate distance measurements
> from 100 mm up to 2000 mm over an I²C interface. It includes an optional
> interrupt pin that signals when new measurement data is ready.
> 
> Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
> ---
> Changelog:
> Changes since v1:
> - Fix patch heading
> - Fix commit message
> - Remove '|' from description
> - Update interrupt description
> - Add 'vdd-supply' to required
> - Add 'vdd-supply' to example
> 
> Link to v1:https://lore.kernel.org/all/20251126031440.30065-2-raskar.shree97@gmail.com/
> ---
>  .../iio/proximity/rfdigital,rfd77402.yaml     | 53 +++++++++++++++++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |  2 +
>  2 files changed, 55 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/proximity/rfdigital,rfd77402.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c263000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dtb: /example-0/soc/thermal-sensor@c265000: failed to match any schema with compatible: ['qcom,sdm845-tsens', 'qcom,tsens-v2']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20251130153712.6792-2-raskar.shree97@gmail.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support
  2025-11-30 15:37 ` [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support Shrikant Raskar
@ 2025-11-30 16:48   ` Andy Shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2025-11-30 16:48 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: jic23, robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel

On Sun, Nov 30, 2025 at 5:37 PM Shrikant Raskar
<raskar.shree97@gmail.com> wrote:
>
> This patch enables seamless integration of the RFD77402 ToF sensor

The Submitting Patch document suggests using imperative mode.

> on platforms that use Device Tree for hardware description.

The Subject is a bit misleading. This doesn't add a DT support (in
full meaning of it), this just adds an ID for enumeration via DT.

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper
  2025-11-30 15:37 ` [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper Shrikant Raskar
@ 2025-11-30 16:52   ` Andy Shevchenko
  2025-12-07 15:53   ` Jonathan Cameron
  1 sibling, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2025-11-30 16:52 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: jic23, robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel

On Sun, Nov 30, 2025 at 5:37 PM Shrikant Raskar
<raskar.shree97@gmail.com> wrote:
>
> This change extracts the polling logic into a dedicated helper,

Imperative voice.

> rfd77402_result_polling(), which improves readability and keeps
> rfd77402_measure() focused on the high-level measurement flow.
>
> This refactoring is also a necessary preparation step for adding
> interrupt-based result handling in a follow-up patch.

...

> +       while (tries-- > 0) {
> +               ret = i2c_smbus_read_byte_data(client, RFD77402_ICSR);
> +               if (ret < 0)
> +                       return ret;
> +
> +               if (ret & RFD77402_ICSR_RESULT)
> +                       return 0;
> +
> +               msleep(20);
> +       }
> +
> +       return -ETIMEDOUT;

Reimplementation of one macro from iopoll.h. Include that and use a
single call, will be something like

  return read_poll_timeout(...);

...

> +       ret = rfd77402_result_polling(client);

Ah, even better, you don't need a function for that at all. Just use
that macro here inline.

> +       if (ret < 0)
>                 goto err;

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support
  2025-11-30 15:37 ` [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support Shrikant Raskar
@ 2025-11-30 17:01   ` Andy Shevchenko
  2025-12-07 15:58   ` Jonathan Cameron
  1 sibling, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2025-11-30 17:01 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: jic23, robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel

On Sun, Nov 30, 2025 at 5:38 PM Shrikant Raskar
<raskar.shree97@gmail.com> wrote:
>
> Add interrupt handling support to enable event-driven data acquisition
> instead of continuous polling. This improves responsiveness, reduces
> CPU overhead, and supports low-power operation by allowing the system
> to remain idle until an interrupt occurs.

...

>  #include <linux/module.h>
>  #include <linux/i2c.h>
>  #include <linux/delay.h>

> -

Strat blank line removal.

> +#include <linux/interrupt.h>
> +#include <linux/completion.h>

These should be integrated to the block above the (removed) blank line.

>  #include <linux/iio/iio.h>

...

>         struct i2c_client *client;
>         /* Serialize reads from the sensor */
>         struct mutex lock;
> +       /* Completion for interrupt-driven measurements */
> +       struct completion completion;
> +       /* Flag to indicate if interrupt is available */
> +       bool irq_en;

Instead of commenting each field separately, just convert existing to
a kernel-doc format (can be done in a separate change).

...

> +static int rfd77402_wait_for_irq(struct rfd77402_data *data)
> +{
> +       int ret;
> +
> +       ret = wait_for_completion_timeout(&data->completion,
> +                                         msecs_to_jiffies(200));

Perhaps a comment on the chosen value for timeout?

> +       if (ret == 0)
> +               return -ETIMEDOUT;
> +
> +       return 0;
> +}

...

> -       ret = rfd77402_result_polling(client);
> +       if (data->irq_en)
> +               ret = rfd77402_wait_for_irq(data);
> +       else
> +               ret = rfd77402_result_polling(data->client);

> +

Stray blank line addition. The check below is tightened to the upper if-else.

>         if (ret < 0)
>                 goto err;

...

> -       /* configure INT pad as push-pull, active low */
> -       ret = i2c_smbus_write_byte_data(client, RFD77402_ICSR,
> -                                       RFD77402_ICSR_INT_MODE);
> +       if (data->irq_en) {
> +       /*
> +        * Enable interrupt mode:
> +        * - Configure ICSR for auto-clear on read, push-pull output and falling edge
> +        * - Enable "result ready" interrupt in IER
> +        */

This should be indented to the ret = ... below.

> +               ret = rfd77402_config_irq(client,
> +                                         RFD77402_ICSR_CLR_CFG |
> +                                         RFD77402_ICSR_INT_MODE,
> +                                         RFD77402_IER_RESULT);
> +       } else {
> +       /*
> +        * Disable all interrupts:
> +        * - Clear ICSR configuration
> +        * - Disable all interrupt in IER
> +        */

Ditto.

> +               ret = rfd77402_config_irq(client, 0, 0);
> +       }

> +

Stray blank line addition.

>         if (ret < 0)
>                 return ret;

...

>         mutex_init(&data->lock);

This should be  converted to devm_mutex_init(). Otherwise the below
can be called on a (potentially) destroyed mutex.

...

> +       data->irq_en = false;
> +       if (client->irq > 0) {
> +               /* interrupt mode */
> +               ret = devm_request_threaded_irq(&client->dev, client->irq,
> +                                               NULL, rfd77402_interrupt_handler,

> +                                               IRQF_TRIGGER_FALLING | IRQF_ONESHOT,

What's wrong with the FW description for the IRQ line flags?! Why
can't it be fixed / written correctly to begin with?

> +                                               "rfd77402", data);
> +               if (ret < 0) {

> +                       dev_err(&client->dev,
> +                               "Failed to request IRQ %d: %d\n",
> +                               client->irq, ret);

Drop the dup messages, it will be printed by the above call.

> +                       return ret;
> +               }
> +
> +               data->irq_en = true;
> +               dev_info(&client->dev, "Using interrupt mode\n");

> +

Stray blank line addition.

> +       } else {
> +               /* polling mode */
> +               dev_info(&client->dev, "No interrupt specified, using polling mode\n");
> +       }

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
  2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
  2025-11-30 16:16   ` Rob Herring (Arm)
@ 2025-12-01  8:06   ` Krzysztof Kozlowski
  2025-12-02  3:15     ` Shrikant
  1 sibling, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-01  8:06 UTC (permalink / raw)
  To: Shrikant Raskar, jic23, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, heiko, neil.armstrong, skhan,
	david.hunter.linux, linux-iio, devicetree, linux-kernel

On 30/11/2025 16:37, Shrikant Raskar wrote:
> The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
> sensor that provides absolute and highly accurate distance measurements
> from 100 mm up to 2000 mm over an I²C interface. It includes an optional
> interrupt pin that signals when new measurement data is ready.
> 
> Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
> ---
> Changelog:
> Changes since v1:
> - Fix patch heading
> - Fix commit message
> - Remove '|' from description
> - Update interrupt description
> - Add 'vdd-supply' to required



Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>


<form letter>
This is an automated instruction, just in case, because many review tags
are being ignored. If you know the process, just skip it entirely
(please do not feel offended by me posting it here - no bad intentions
intended, no patronizing, I just want to avoid wasted efforts). If you
do not know the process, here is a short explanation:

Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions
of patchset, under or above your Signed-off-by tag, unless patch changed
significantly (e.g. new properties added to the DT bindings). Tag is
"received", when provided in a message replied to you on the mailing
list. Tools like b4 can help here ('b4 trailers -u ...'). However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for tags received on the version they apply.

Full context and explanation:
https://elixir.bootlin.com/linux/v6.15/source/Documentation/process/submitting-patches.rst#L591
</form letter>


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
  2025-12-01  8:06   ` Krzysztof Kozlowski
@ 2025-12-02  3:15     ` Shrikant
  0 siblings, 0 replies; 13+ messages in thread
From: Shrikant @ 2025-12-02  3:15 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: jic23, robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel

On Mon, Dec 1, 2025 at 1:36 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 30/11/2025 16:37, Shrikant Raskar wrote:
> > The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
> > sensor that provides absolute and highly accurate distance measurements
> > from 100 mm up to 2000 mm over an I²C interface. It includes an optional
> > interrupt pin that signals when new measurement data is ready.
> >
> > Signed-off-by: Shrikant Raskar <raskar.shree97@gmail.com>
> > ---
> > Changelog:
> > Changes since v1:
> > - Fix patch heading
> > - Fix commit message
> > - Remove '|' from description
> > - Update interrupt description
> > - Add 'vdd-supply' to required
>
>
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>
>
> <form letter>
> This is an automated instruction, just in case, because many review tags
> are being ignored. If you know the process, just skip it entirely
> (please do not feel offended by me posting it here - no bad intentions
> intended, no patronizing, I just want to avoid wasted efforts). If you
> do not know the process, here is a short explanation:
>
> Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions
> of patchset, under or above your Signed-off-by tag, unless patch changed
> significantly (e.g. new properties added to the DT bindings). Tag is
> "received", when provided in a message replied to you on the mailing
> list. Tools like b4 can help here ('b4 trailers -u ...'). However,
> there's no need to repost patches *only* to add the tags. The upstream
> maintainer will do that for tags received on the version they apply.
>
> Full context and explanation:
> https://elixir.bootlin.com/linux/v6.15/source/Documentation/process/submitting-patches.rst#L591
> </form letter>
Thank you for reviewing the patch.

Regards,
Shrikant

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper
  2025-11-30 15:37 ` [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper Shrikant Raskar
  2025-11-30 16:52   ` Andy Shevchenko
@ 2025-12-07 15:53   ` Jonathan Cameron
  1 sibling, 0 replies; 13+ messages in thread
From: Jonathan Cameron @ 2025-12-07 15:53 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel


> +static int rfd77402_measure(struct i2c_client *client)
> +{
> +	int ret;

Blank line here (which shows up in next patch)

>  	ret = rfd77402_set_state(client, RFD77402_CMD_MCPU_ON,
>  				 RFD77402_STATUS_MCPU_ON);
>  	if (ret < 0)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support
  2025-11-30 15:37 ` [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support Shrikant Raskar
  2025-11-30 17:01   ` Andy Shevchenko
@ 2025-12-07 15:58   ` Jonathan Cameron
  1 sibling, 0 replies; 13+ messages in thread
From: Jonathan Cameron @ 2025-12-07 15:58 UTC (permalink / raw)
  To: Shrikant Raskar
  Cc: robh, krzk+dt, conor+dt, dlechner, nuno.sa, andy, heiko,
	neil.armstrong, skhan, david.hunter.linux, linux-iio, devicetree,
	linux-kernel

Hi Shrikant,

I'll try not to replicate too much stuff from Andy's review.

> +static irqreturn_t rfd77402_interrupt_handler(int irq, void *dev_id)

Why dev_id?  Seems unrelated to what it is which is data about the device.

> +{
> +	struct rfd77402_data *data = dev_id;
> +	int ret;
> +
> +	ret = i2c_smbus_read_byte_data(data->client, RFD77402_ICSR);
> +	if (ret < 0)
> +		return IRQ_NONE;
> +
> +	/* Check if the interrupt is from our device */
> +	if (!(ret & RFD77402_ICSR_RESULT))
> +		return IRQ_NONE;
> +
> +	/* Signal completion of measurement */
> +	complete(&data->completion);
> +	return IRQ_HANDLED;
> +}

> -static int rfd77402_measure(struct i2c_client *client)
> +static int rfd77402_measure(struct rfd77402_data *data)
>  {
> +	struct i2c_client *client = data->client;
>  	int ret;
> +

Blank line should have been in patch 3.  I just replied to that
having missed it whilst reading that one.


>  	ret = rfd77402_set_state(client, RFD77402_CMD_MCPU_ON,
>  				 RFD77402_STATUS_MCPU_ON);

> @@ -195,8 +247,25 @@ static const struct iio_info rfd77402_info = {
>  	.read_raw = rfd77402_read_raw,
>  };
>  
> +static int rfd77402_config_irq(struct i2c_client *client, u8 csr, u8 ier)
> +{
> +	int ret;
> +
> +	ret = i2c_smbus_write_byte_data(client, RFD77402_ICSR, csr);
> +	if (ret < 0)

I would use
	if (ret)
here to make the next change more consistent looking.

> +		return ret;
> +
> +	ret = i2c_smbus_write_byte_data(client, RFD77402_IER, ier);
> +	if (ret < 0)
> +		return ret;
> +
> +	return 0;
	return i2c_smbus_write_byte_data();

is fine as it is documented as never returning anything other than negative
or 0.

> +}
> +
>  static int rfd77402_init(struct i2c_client *client)
>  {
> +	struct iio_dev *indio_dev = i2c_get_clientdata(client);
> +	struct rfd77402_data *data = iio_priv(indio_dev);
>  	int ret, i;
>  
>  	ret = rfd77402_set_state(client, RFD77402_CMD_STANDBY,
> @@ -204,9 +273,25 @@ static int rfd77402_init(struct i2c_client *client)
>  	if (ret < 0)
>  		return ret;
>  
> -	/* configure INT pad as push-pull, active low */
> -	ret = i2c_smbus_write_byte_data(client, RFD77402_ICSR,
> -					RFD77402_ICSR_INT_MODE);
> +	if (data->irq_en) {
> +	/*
> +	 * Enable interrupt mode:
> +	 * - Configure ICSR for auto-clear on read, push-pull output and falling edge
> +	 * - Enable "result ready" interrupt in IER
> +	 */

Indent should match code.  Will require a bit more wrapping.


> +		ret = rfd77402_config_irq(client,
> +					  RFD77402_ICSR_CLR_CFG |
> +					  RFD77402_ICSR_INT_MODE,
> +					  RFD77402_IER_RESULT);
> +	} else {
> +	/*
> +	 * Disable all interrupts:
> +	 * - Clear ICSR configuration
> +	 * - Disable all interrupt in IER
> +	 */
As above.

> +		ret = rfd77402_config_irq(client, 0, 0);
> +	}
> +
>  	if (ret < 0)
>  		return ret;
>  
> @@ -283,6 +368,31 @@ static int rfd77402_probe(struct i2c_client *client)
>  	data = iio_priv(indio_dev);
>  	data->client = client;
>  	mutex_init(&data->lock);
> +	init_completion(&data->completion);
> +
> +	i2c_set_clientdata(client, indio_dev);
> +
> +	data->irq_en = false;
> +	if (client->irq > 0) {
> +		/* interrupt mode */

Kind of obvious comment. I'd drop it.

> +		ret = devm_request_threaded_irq(&client->dev, client->irq,
> +						NULL, rfd77402_interrupt_handler,
> +						IRQF_TRIGGER_FALLING | IRQF_ONESHOT,

Repeating Andy here the direction is a firmware problem.
We have some historical drivers doing this which we now can't
fix as we don't know if boards need it.  But no new cases should
be added.

> +						"rfd77402", data);
> +		if (ret < 0) {
> +			dev_err(&client->dev,
> +				"Failed to request IRQ %d: %d\n",
> +				client->irq, ret);
> +			return ret;
> +		}
> +
> +		data->irq_en = true;
> +		dev_info(&client->dev, "Using interrupt mode\n");

dev_dbg()

> +
> +	} else {
> +		/* polling mode */
> +		dev_info(&client->dev, "No interrupt specified, using polling mode\n");
Easy to tell from userspace with cat /proc/interrupts so no need for such a noisy print.
dev_dbg()
> +	}
>  
>  	indio_dev->info = &rfd77402_info;
>  	indio_dev->channels = rfd77402_channels;


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-12-07 15:58 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-30 15:37 [PATCH v2 0/4] iio: proximity: Add DT and interrupt support for RFD77402 Shrikant Raskar
2025-11-30 15:37 ` [PATCH v2 1/4] dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor Shrikant Raskar
2025-11-30 16:16   ` Rob Herring (Arm)
2025-12-01  8:06   ` Krzysztof Kozlowski
2025-12-02  3:15     ` Shrikant
2025-11-30 15:37 ` [PATCH v2 2/4] iio: proximity: rfd77402: Add Device Tree support Shrikant Raskar
2025-11-30 16:48   ` Andy Shevchenko
2025-11-30 15:37 ` [PATCH v2 3/4] iio: proximity: rfd77402: Move polling logic into helper Shrikant Raskar
2025-11-30 16:52   ` Andy Shevchenko
2025-12-07 15:53   ` Jonathan Cameron
2025-11-30 15:37 ` [PATCH v2 4/4] iio: proximity: rfd77402: Add interrupt handling support Shrikant Raskar
2025-11-30 17:01   ` Andy Shevchenko
2025-12-07 15:58   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).