From b6b78dde9dbd7ab0321bbd3d59dcfe1c26aa53b8 Mon Sep 17 00:00:00 2001 From: Javier Carrasco Date: Thu, 24 Sep 2026 12:59:57 +0200 Subject: [PATCH] iio: light: veml6031x00: Enable internal calibration Enable the device's factory internal calibration before entering normal operation to improve ambient light measurements. Set ALS_CAL during hardware initialization. Signed-off-by: Javier Carrasco Signed-off-by: Jonathan Cameron --- drivers/iio/light/veml6031x00.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iio/light/veml6031x00.c b/drivers/iio/light/veml6031x00.c index 085a6e2ff717..f6308498e422 100644 --- a/drivers/iio/light/veml6031x00.c +++ b/drivers/iio/light/veml6031x00.c @@ -52,6 +52,7 @@ #define VEML6031X00_CONF0_SD BIT(0) #define VEML6031X00_CONF0_AF_TRIG BIT(2) #define VEML6031X00_CONF0_AF BIT(3) +#define VEML6031X00_CONF1_ALS_CAL BIT(0) #define VEML6031X00_CONF1_IR_SD BIT(7) #define VEML6031X00_INT_TH_H BIT(1) #define VEML6031X00_INT_TH_L BIT(2) @@ -1121,6 +1122,11 @@ static int veml6031x00_hw_init(struct veml6031x00_data *data) if (ret) return dev_err_probe(dev, ret, "Failed to disable trigger\n"); + ret = regmap_set_bits(data->regmap, VEML6031X00_REG_CONF1, + VEML6031X00_CONF1_ALS_CAL); + if (ret) + return dev_err_probe(dev, ret, "Failed to enable internal calibration\n"); + regval = 0; ret = regmap_bulk_write(map, VEML6031X00_REG_WL_L, ®val, sizeof(regval)); if (ret)