* [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