* [PATCH v3 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c @ 2026-06-11 13:42 Siratul Islam 2026-06-11 13:42 ` [PATCH v3 1/2] iio: proximity: sort the register values " Siratul Islam 2026-06-11 13:42 ` [PATCH v3 2/2] iio: proximity: cleanup fixes " Siratul Islam 0 siblings, 2 replies; 7+ messages in thread From: Siratul Islam @ 2026-06-11 13:42 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. 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 | 40 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 19 deletions(-) -- 2.54.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 1/2] iio: proximity: sort the register values for vl53l1x-i2c 2026-06-11 13:42 [PATCH v3 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam @ 2026-06-11 13:42 ` Siratul Islam 2026-06-11 19:21 ` Andy Shevchenko 2026-06-11 13:42 ` [PATCH v3 2/2] iio: proximity: cleanup fixes " Siratul Islam 1 sibling, 1 reply; 7+ messages in thread From: Siratul Islam @ 2026-06-11 13:42 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> 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 related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/2] iio: proximity: sort the register values for vl53l1x-i2c 2026-06-11 13:42 ` [PATCH v3 1/2] iio: proximity: sort the register values " Siratul Islam @ 2026-06-11 19:21 ` Andy Shevchenko 0 siblings, 0 replies; 7+ messages in thread From: Andy Shevchenko @ 2026-06-11 19:21 UTC (permalink / raw) To: Siratul Islam; +Cc: jic23, dlechner, nuno.sa, andy, linux-iio, linux-kernel On Thu, Jun 11, 2026 at 07:42:29PM +0600, Siratul Islam wrote: > - Sort register defines list Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 2/2] iio: proximity: cleanup fixes for vl53l1x-i2c 2026-06-11 13:42 [PATCH v3 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam 2026-06-11 13:42 ` [PATCH v3 1/2] iio: proximity: sort the register values " Siratul Islam @ 2026-06-11 13:42 ` Siratul Islam 2026-06-11 19:23 ` Andy Shevchenko 2026-06-12 17:40 ` Jonathan Cameron 1 sibling, 2 replies; 7+ messages in thread From: Siratul Islam @ 2026-06-11 13:42 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> Signed-off-by: Siratul Islam <email@sirat.me> --- drivers/iio/proximity/vl53l1x-i2c.c | 38 +++++++++++++++-------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/iio/proximity/vl53l1x-i2c.c b/drivers/iio/proximity/vl53l1x-i2c.c index 8302e0049e7c..1782c89d5277 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,18 @@ 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 +245,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 +275,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 +470,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 related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 2/2] iio: proximity: cleanup fixes for vl53l1x-i2c 2026-06-11 13:42 ` [PATCH v3 2/2] iio: proximity: cleanup fixes " Siratul Islam @ 2026-06-11 19:23 ` Andy Shevchenko 2026-06-12 17:44 ` Jonathan Cameron 2026-06-12 17:40 ` Jonathan Cameron 1 sibling, 1 reply; 7+ messages in thread From: Andy Shevchenko @ 2026-06-11 19:23 UTC (permalink / raw) To: Siratul Islam; +Cc: jic23, dlechner, nuno.sa, andy, linux-iio, linux-kernel On Thu, Jun 11, 2026 at 07:42:30PM +0600, Siratul Islam wrote: > Extract data-ready polling into a helper, fix regmap_read_poll_timeout() > argument alignment, and add field definitions for BIT(0). > No functional changes. Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> ... > +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, I would put it this way val, (val & VL53L1X_GPIO__TIO_HV_STATUS_DATA_READY) != data->gpio_polarity, but it goes over even 100! So up to Jonathan. > + 1 * USEC_PER_MSEC, 1 * USEC_PER_SEC); > +} -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 2/2] iio: proximity: cleanup fixes for vl53l1x-i2c 2026-06-11 19:23 ` Andy Shevchenko @ 2026-06-12 17:44 ` Jonathan Cameron 0 siblings, 0 replies; 7+ messages in thread From: Jonathan Cameron @ 2026-06-12 17:44 UTC (permalink / raw) To: Andy Shevchenko Cc: Siratul Islam, dlechner, nuno.sa, andy, linux-iio, linux-kernel On Thu, 11 Jun 2026 22:23:30 +0300 Andy Shevchenko <andriy.shevchenko@intel.com> wrote: > On Thu, Jun 11, 2026 at 07:42:30PM +0600, Siratul Islam wrote: > > Extract data-ready polling into a helper, fix regmap_read_poll_timeout() > > argument alignment, and add field definitions for BIT(0). > > No functional changes. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> > > ... > > > +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, > > I would put it this way > val, > (val & VL53L1X_GPIO__TIO_HV_STATUS_DATA_READY) != data->gpio_polarity, > > but it goes over even 100! So up to Jonathan. It's ugly whatever we do but 100 is too fa. This may be a case for just not aligning with the bracket. 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); or at least avoiding the mix of a full parameter and half of next one lin line. 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); I think I'd go with the first option of just not aligning after the bracket. } > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 2/2] iio: proximity: cleanup fixes for vl53l1x-i2c 2026-06-11 13:42 ` [PATCH v3 2/2] iio: proximity: cleanup fixes " Siratul Islam 2026-06-11 19:23 ` Andy Shevchenko @ 2026-06-12 17:40 ` Jonathan Cameron 1 sibling, 0 replies; 7+ messages in thread From: Jonathan Cameron @ 2026-06-12 17:40 UTC (permalink / raw) To: Siratul Islam Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel, Andy Shevchenko On Thu, 11 Jun 2026 19:42:30 +0600 Siratul Islam <email@sirat.me> wrote: > 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> > No blank lines in tag blocks. It breaks many of the scripts that run on the kernel tree. > Signed-off-by: Siratul Islam <email@sirat.me> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-12 17:44 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-11 13:42 [PATCH v3 0/2] iio: proximity: cleanup fixes for vl53l1x-i2c Siratul Islam 2026-06-11 13:42 ` [PATCH v3 1/2] iio: proximity: sort the register values " Siratul Islam 2026-06-11 19:21 ` Andy Shevchenko 2026-06-11 13:42 ` [PATCH v3 2/2] iio: proximity: cleanup fixes " Siratul Islam 2026-06-11 19:23 ` Andy Shevchenko 2026-06-12 17:44 ` Jonathan Cameron 2026-06-12 17:40 ` Jonathan Cameron
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox