Re: [PATCH v3 2/3] iio: light: Add support for AL3000a illuminance sensor
From: Andy Shevchenko
Date: Sun Feb 16 2025 - 15:57:20 EST
On Sun, Feb 16, 2025 at 06:27:20PM +0200, Svyatoslav Ryhel wrote:
> AL3000a is a simple I2C-based ambient light sensor, which is
> closely related to AL3010 and AL3320a, but has significantly
> different way of processing data generated by the sensor.
...
> +static int al3000a_set_pwr_on(struct al3000a_data *data)
> +{
> + struct device *dev = regmap_get_device(data->regmap);
> + int ret;
> +
> + ret = regulator_enable(data->vdd_supply);
> + if (ret) {
> + dev_err(dev, "failed to enable vdd power supply\n");
> + return ret;
> + }
> +
> + ret = regmap_write(data->regmap, AL3000A_REG_SYSTEM, AL3000A_CONFIG_ENABLE);
> + if (ret) {
> + dev_err(dev, "failed to write system register\n");
> + return ret;
> + }
> +
> + return 0;
return ret;
> +}
...
> +static void al3000a_set_pwr_off(void *_data)
> +{
> + struct al3000a_data *data = _data;
> + struct device *dev = regmap_get_device(data->regmap);
> + int ret;
> +
> + ret = regmap_write(data->regmap, AL3000A_REG_SYSTEM, AL3000A_CONFIG_DISABLE);
> + if (ret) {
> + dev_err(dev, "failed to write system register\n");
> + return;
> + }
> +
> + ret = regulator_disable(data->vdd_supply);
> + if (ret) {
> + dev_err(dev, "failed to disable vdd power supply\n");
> + return;
This is not needed, but I understand the intention. To me, nevertheless, seems
better to return an error to upper layer.
> + }
> +}
> +
> +static int al3000a_init(struct al3000a_data *data)
> +{
> + int ret;
> +
> + ret = al3000a_set_pwr_on(data);
> + if (ret)
> + return ret;
> +
> + ret = regmap_write(data->regmap, AL3000A_REG_SYSTEM, AL3000A_CONFIG_RESET);
> + if (ret)
> + return ret;
> +
> + ret = regmap_write(data->regmap, AL3000A_REG_SYSTEM, AL3000A_CONFIG_ENABLE);
> + if (ret)
> + return ret;
> +
> + return 0;
return regmap_write(...);
> +}
...
> +static const struct i2c_device_id al3000a_id[] = {
> + {"al3000a", },
Remove redundant inner comma. And make style consistent with OF, i.e. surround
string with spaces.
> + {}
> +};
> +MODULE_DEVICE_TABLE(i2c, al3010_id);
Copy'n'paste error, obviously. Please, test every version before sending.
> +
> +static const struct of_device_id al3000a_of_match[] = {
> + { .compatible = "dynaimage,al3000a" },
> + { /* sentinel */ }
> +};
--
With Best Regards,
Andy Shevchenko