diff options
author | Javier Carrasco <javier.carrasco.cruz@gmail.com> | 2024-10-17 23:39:26 +0200 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2024-10-21 19:19:25 +0100 |
commit | 14a4f5b4cfaec0d74e7dadb921c39907e86686b9 (patch) | |
tree | edad36a27edac7d1300a4343481f97c34ebf58fd | |
parent | eb0e400c510ae31b3d5e4a460291b3d8e2dcff17 (diff) |
iio: light: veml6070: use field to set integration time
Define the integration time within the configuration register as a field
to easy its handling as an index, preparing the driver to support
configurable integration times.
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://patch.msgid.link/20241017-veml6070-integration-time-v1-2-3507d17d562a@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r-- | drivers/iio/light/veml6070.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/iio/light/veml6070.c b/drivers/iio/light/veml6070.c index 484b767df481..d11ae00f61f8 100644 --- a/drivers/iio/light/veml6070.c +++ b/drivers/iio/light/veml6070.c @@ -9,6 +9,7 @@ * TODO: integration time, ACK signal */ +#include <linux/bitfield.h> #include <linux/module.h> #include <linux/i2c.h> #include <linux/mutex.h> @@ -28,7 +29,7 @@ #define VEML6070_COMMAND_RSRVD BIT(1) /* reserved, set to 1 */ #define VEML6070_COMMAND_SD BIT(0) /* shutdown mode when set */ -#define VEML6070_IT_10 0x04 /* integration time 1x */ +#define VEML6070_IT_10 0x01 /* integration time 1x */ struct veml6070_data { struct i2c_client *client1; @@ -172,8 +173,8 @@ static int veml6070_probe(struct i2c_client *client) return dev_err_probe(&client->dev, PTR_ERR(data->client2), "i2c device for second chip address failed\n"); - data->config = VEML6070_IT_10 | VEML6070_COMMAND_RSRVD | - VEML6070_COMMAND_SD; + data->config = FIELD_PREP(VEML6070_COMMAND_IT, VEML6070_IT_10) | + VEML6070_COMMAND_RSRVD | VEML6070_COMMAND_SD; ret = i2c_smbus_write_byte(data->client1, data->config); if (ret < 0) return ret; |