Re: [PATCH v3 0/2] iio: proximity: add driver for ST VL53L1X ToF sensor

From: Andy Shevchenko

Date: Thu Mar 12 2026 - 10:34:46 EST


On Thu, Mar 12, 2026 at 04:40:35AM +0600, Siratul Islam wrote:
> This series adds support for the STMicroelectronics VL53L1X
> Time-of-Flight ranging sensor.
>
> The VL53L1X is a ToF laser-ranging sensor with I2C interface,
> capable of measuring distances up to 4 meters. The driver
> supports both interrupt-driven and polled operation.
>
> Why a separate driver is needed (instead of extending vl53l0x-i2c.c):
> The VL53L1X is fundamentally different from the VL53L0X despite the
> similar naming. Extending the existing driver would require rewriting
> the majority of it.

> Key differences include:
> - A different register map (16-bit addresses vs. 8-bit addresses).
> - Requires a 91-byte firmware configuration blob to be loaded at boot.
> - Requires a VHV calibration cycle.
> - Has distance mode and timing budget configurations.
> - Uses the regmap API rather than raw i2c_smbus calls.
>
> I also reviewed other drivers in drivers/iio/proximity/ and can
> confirm this IP block does not appear to be shared by any other
> existing driver.

> ---
> Changes in v3:
> - Merge DT binding into existing st,vl53l0x.yaml (per Krzysztof).
> - Use "reset-gpios" in the binding but xshut_gpio in the driver since that's the actual pin name.

But why is it "reset" in the bindings? If it's a power rail or enable pin, why
not call it as a such in the bindings? The connection on PCB level is different story.

> - Replace manual polling loops in chip_init and read_proximity with regmap_read_poll_timeout().
> - Remove irq_get_trigger_type() and pass IRQF_NO_THREAD directly (per Andy).
> - Drop struct i2c_client from private data and store irq as int instead. Derive struct device from regmap where needed.
> - Add dev_err_probe() to first devm_request_irq() error path.
> - Replace linux/device.h with linux/dev_printk.h, add linux/array_size.h, linux/err.h, linux/types.h (per Andy).
> - Use USEC_PER_MSEC for poll timeouts.
> - Remove unnecessary casts.
> - Divide long config blob to 8 values per line.
> - Rename goto label to notify_and_clear_irq and drop unused dev_dbg.
> - Add datasheet section reference for boot delay comment.
> - vdd-supply no longer required in shared binding to avoid breaking existing st,vl53l0x devicetrees.

--
With Best Regards,
Andy Shevchenko