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