mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c
@ 2026-06-14  8:43 Siratul Islam
  2026-06-14  8:43 ` [PATCH v4 1/2] iio: proximity: sort the register values " Siratul Islam
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Siratul Islam @ 2026-06-14  8:43 UTC (permalink / raw)
  To: jic23; +Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel, Siratul Islam

This patch series adds some cleanup fixes for the vl53l1x-i2c
proximity sensor driver.

- Sort register defines list
- Extract data-ready polling into a helper
- Fix regmap_read_poll_timeout() arguments alignment
- Add field definitions for BIT(0).

No functional changes.

---
Changes in v4:
- Remove blank line in commit message tag block
- Align regmap_read_poll_timeout arguments

Changes in v3:
- Use proper field definitions
- Split changes in two commits

Changes in v2:
- Rephrase commit message
- Remove cover letter

Link to v3: https://lore.kernel.org/linux-iio/20260611134245.30042-1-email@sirat.me/
Link to v2: https://lore.kernel.org/linux-iio/20260608124027.35879-1-email@sirat.me/
Link to v1: https://lore.kernel.org/linux-iio/20260608033218.26514-1-email@sirat.me/

Siratul Islam (2):
  iio: proximity: sort the register values for vl53l1x-i2c
  iio: proximity: cleanup fixes for vl53l1x-i2c

 drivers/iio/proximity/vl53l1x-i2c.c | 39 +++++++++++++++--------------
 1 file changed, 20 insertions(+), 19 deletions(-)

--
2.54.0


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

* [PATCH v4 1/2] iio: proximity: sort the register values for vl53l1x-i2c
  2026-06-14  8:43 [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam
@ 2026-06-14  8:43 ` Siratul Islam
  2026-06-14  8:43 ` [PATCH v4 2/2] iio: proximity: cleanup fixes " Siratul Islam
  2026-06-14 13:05 ` [PATCH v4 0/2] " Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Siratul Islam @ 2026-06-14  8:43 UTC (permalink / raw)
  To: jic23
  Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel, Siratul Islam,
	Andy Shevchenko

- Sort register defines list

Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Siratul Islam <email@sirat.me>
---
 drivers/iio/proximity/vl53l1x-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/proximity/vl53l1x-i2c.c b/drivers/iio/proximity/vl53l1x-i2c.c
index 4d9cb3983dba..8302e0049e7c 100644
--- a/drivers/iio/proximity/vl53l1x-i2c.c
+++ b/drivers/iio/proximity/vl53l1x-i2c.c
@@ -43,6 +43,7 @@
 #define VL53L1X_REG_SOFT_RESET						0x0000
 #define VL53L1X_REG_VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND		0x0008
 #define VL53L1X_REG_VHV_CONFIG__INIT					0x000B
+#define VL53L1X_REG_DEFAULT_CONFIG					0x002D
 #define VL53L1X_REG_GPIO_HV_MUX__CTRL					0x0030
 #define VL53L1X_REG_GPIO__TIO_HV_STATUS					0x0031
 #define VL53L1X_REG_SYSTEM__INTERRUPT_CONFIG_GPIO			0x0046
@@ -64,7 +65,6 @@
 #define VL53L1X_REG_RESULT__OSC_CALIBRATE_VAL				0x00DE
 #define VL53L1X_REG_FIRMWARE__SYSTEM_STATUS				0x00E5
 #define VL53L1X_REG_IDENTIFICATION__MODEL_ID				0x010F
-#define VL53L1X_REG_DEFAULT_CONFIG					0x002D
 
 #define VL53L1X_MODEL_ID_VAL		0xEACC
 
-- 
2.54.0


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

* [PATCH v4 2/2] iio: proximity: cleanup fixes for vl53l1x-i2c
  2026-06-14  8:43 [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam
  2026-06-14  8:43 ` [PATCH v4 1/2] iio: proximity: sort the register values " Siratul Islam
@ 2026-06-14  8:43 ` Siratul Islam
  2026-06-14 13:05 ` [PATCH v4 0/2] " Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Siratul Islam @ 2026-06-14  8:43 UTC (permalink / raw)
  To: jic23
  Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel, Siratul Islam,
	Andy Shevchenko

Extract data-ready polling into a helper, fix regmap_read_poll_timeout()
argument alignment, and add field definitions for BIT(0).
No functional changes.

Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Siratul Islam <email@sirat.me>
---
 drivers/iio/proximity/vl53l1x-i2c.c | 37 +++++++++++++++--------------
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/drivers/iio/proximity/vl53l1x-i2c.c b/drivers/iio/proximity/vl53l1x-i2c.c
index 8302e0049e7c..d081d8a88bcf 100644
--- a/drivers/iio/proximity/vl53l1x-i2c.c
+++ b/drivers/iio/proximity/vl53l1x-i2c.c
@@ -82,6 +82,9 @@
 
 #define VL53L1X_OSC_CALIBRATE_MASK	GENMASK(9, 0)
 
+#define VL53L1X_FIRMWARE__SYSTEM_STATUS_BOOTED	BIT(0)
+#define VL53L1X_GPIO__TIO_HV_STATUS_DATA_READY	BIT(0)
+
 /* Inter-measurement period uses PLL divider with 1.075 oscillator correction */
 static const struct u32_fract vl53l1x_osc_correction = {
 	.numerator = 1075,
@@ -191,6 +194,17 @@ static int vl53l1x_stop_ranging(struct vl53l1x_data *data)
 			    VL53L1X_MODE_START_STOP);
 }
 
+static int vl53l1x_wait_data_ready(struct vl53l1x_data *data)
+{
+	unsigned int val;
+
+	/* 1ms poll, 1s timeout covers max timing budgets (per ST Ultra Lite Driver) */
+	return regmap_read_poll_timeout(data->regmap,
+		VL53L1X_REG_GPIO__TIO_HV_STATUS, val,
+		(val & VL53L1X_GPIO__TIO_HV_STATUS_DATA_READY) != data->gpio_polarity,
+		1 * USEC_PER_MSEC, 1 * USEC_PER_SEC);
+}
+
 /*
  * Default configuration blob from ST's VL53L1X Ultra Lite Driver
  * (STSW-IMG009).
@@ -230,10 +244,9 @@ static int vl53l1x_chip_init(struct vl53l1x_data *data)
 	}
 
 	ret = regmap_read_poll_timeout(data->regmap,
-				       VL53L1X_REG_FIRMWARE__SYSTEM_STATUS, val,
-				       val & BIT(0),
-				       1 * USEC_PER_MSEC,
-				       100 * USEC_PER_MSEC);
+				       VL53L1X_REG_FIRMWARE__SYSTEM_STATUS,
+				       val, val & VL53L1X_FIRMWARE__SYSTEM_STATUS_BOOTED,
+				       1 * USEC_PER_MSEC, 100 * USEC_PER_MSEC);
 	if (ret)
 		return dev_err_probe(dev, ret, "firmware boot timeout\n");
 
@@ -261,12 +274,7 @@ static int vl53l1x_chip_init(struct vl53l1x_data *data)
 	if (ret)
 		return ret;
 
-	/* 1ms poll, 1s timeout covers max timing budgets (per ST Ultra Lite Driver) */
-	ret = regmap_read_poll_timeout(data->regmap,
-				       VL53L1X_REG_GPIO__TIO_HV_STATUS, val,
-				       (val & 1) != data->gpio_polarity,
-				       1 * USEC_PER_MSEC,
-				       1000 * USEC_PER_MSEC);
+	ret = vl53l1x_wait_data_ready(data);
 	if (ret)
 		return ret;
 
@@ -461,14 +469,7 @@ static int vl53l1x_read_proximity(struct vl53l1x_data *data, int *val)
 		if (!wait_for_completion_timeout(&data->completion, HZ))
 			return -ETIMEDOUT;
 	} else {
-		unsigned int rdy;
-
-		/* 1ms poll, 1s timeout covers max timing budgets (per ST Ultra Lite Driver) */
-		ret = regmap_read_poll_timeout(data->regmap,
-					       VL53L1X_REG_GPIO__TIO_HV_STATUS, rdy,
-					       (rdy & 1) != data->gpio_polarity,
-					       1 * USEC_PER_MSEC,
-					       1000 * USEC_PER_MSEC);
+		ret = vl53l1x_wait_data_ready(data);
 		if (ret)
 			return ret;
 	}
-- 
2.54.0


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

* Re: [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c
  2026-06-14  8:43 [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam
  2026-06-14  8:43 ` [PATCH v4 1/2] iio: proximity: sort the register values " Siratul Islam
  2026-06-14  8:43 ` [PATCH v4 2/2] iio: proximity: cleanup fixes " Siratul Islam
@ 2026-06-14 13:05 ` Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2026-06-14 13:05 UTC (permalink / raw)
  To: Siratul Islam; +Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel

On Sun, 14 Jun 2026 14:43:38 +0600
Siratul Islam <email@sirat.me> wrote:

> This patch series adds some cleanup fixes for the vl53l1x-i2c
> proximity sensor driver.
> 
> - Sort register defines list
> - Extract data-ready polling into a helper
> - Fix regmap_read_poll_timeout() arguments alignment
> - Add field definitions for BIT(0).
> 
> No functional changes.
> 
Series applied to the testing branch of iio.git.
Note that will be rebased on rc1 once that is available.

Thanks,

Jonathan

> ---
> Changes in v4:
> - Remove blank line in commit message tag block
> - Align regmap_read_poll_timeout arguments
> 
> Changes in v3:
> - Use proper field definitions
> - Split changes in two commits
> 
> Changes in v2:
> - Rephrase commit message
> - Remove cover letter
> 
> Link to v3: https://lore.kernel.org/linux-iio/20260611134245.30042-1-email@sirat.me/
> Link to v2: https://lore.kernel.org/linux-iio/20260608124027.35879-1-email@sirat.me/
> Link to v1: https://lore.kernel.org/linux-iio/20260608033218.26514-1-email@sirat.me/
> 
> Siratul Islam (2):
>   iio: proximity: sort the register values for vl53l1x-i2c
>   iio: proximity: cleanup fixes for vl53l1x-i2c
> 
>  drivers/iio/proximity/vl53l1x-i2c.c | 39 +++++++++++++++--------------
>  1 file changed, 20 insertions(+), 19 deletions(-)
> 
> --
> 2.54.0
> 


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

end of thread, other threads:[~2026-06-14 13:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-14  8:43 [PATCH v4 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam
2026-06-14  8:43 ` [PATCH v4 1/2] iio: proximity: sort the register values " Siratul Islam
2026-06-14  8:43 ` [PATCH v4 2/2] iio: proximity: cleanup fixes " Siratul Islam
2026-06-14 13:05 ` [PATCH v4 0/2] " Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox