On Fri, Nov 22, 2024 at 09:53:57AM +0100, Kryštof Černý wrote: > Adds a support for attaching a supply regulator. > > Signed-off-by: Kryštof Černý <cleverline1mc@xxxxxxxxx> > --- > drivers/w1/masters/ds2482.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/drivers/w1/masters/ds2482.c b/drivers/w1/masters/ds2482.c > index a2ecbb863c57f38bffc8e3cd463db1940e603179..3fb35e92fc1587dc4e609c0061fa5057e0027a80 100644 > --- a/drivers/w1/masters/ds2482.c > +++ b/drivers/w1/masters/ds2482.c > @@ -15,6 +15,7 @@ > #include <linux/slab.h> > #include <linux/i2c.h> > #include <linux/delay.h> > +#include <linux/regulator/consumer.h> > > #include <linux/w1.h> > > @@ -117,6 +118,9 @@ struct ds2482_data { > u8 channel; > u8 read_prt; /* see DS2482_PTR_CODE_xxx */ > u8 reg_config; > + > + /* reference to the optional regulator */ Drop comment, obvious. > + struct regulator *vcc_reg; Missing indentation after type - see earlier lines. > }; > > > @@ -445,6 +449,7 @@ static int ds2482_probe(struct i2c_client *client) > int err = -ENODEV; > int temp1; > int idx; > + int ret; > > if (!i2c_check_functionality(client->adapter, > I2C_FUNC_SMBUS_WRITE_BYTE_DATA | > @@ -457,6 +462,18 @@ static int ds2482_probe(struct i2c_client *client) > goto exit; > } > > + /* Get the vcc regulator */ > + data->vcc_reg = devm_regulator_get(&client->dev, "vcc"); > + if (IS_ERR(data->vcc_reg)) > + return PTR_ERR(data->vcc_reg); > + > + /* Enable the vcc regulator */ > + ret = regulator_enable(data->vcc_reg); You wanted devm_regulator_get_enable(). ... but your comment also suggests devm_regulator_get_enable_optional(). Best regards, Krzysztof