Re: [PATCH v5 3/7] mfd: Add MFD driver for ATC260x PMICs

From: Cristian Ciocaltea
Date: Wed Jan 20 2021 - 13:48:23 EST


On Wed, Jan 20, 2021 at 08:33:48AM +0000, Lee Jones wrote:
> On Wed, 13 Jan 2021, Cristian Ciocaltea wrote:
>
> > Add initial support for the Actions Semi ATC260x PMICs which integrates
> > Audio Codec, Power management, Clock generation and GPIO controller
> > blocks.
> >

[...]

> > + /* Initialize the hardware */
> > + atc260x->dev_init(atc260x);
> > +
> > + ret = regmap_read(atc260x->regmap, atc260x->rev_reg, &chip_rev);
> > + if (ret) {
> > + dev_err(dev, "Failed to get chip revision\n");
> > + return ret;
> > + }
> > +
> > + if (chip_rev > 31) {
>
> Nit: If you have to respin this, please define this magic number.
>

[...]

> > +static struct i2c_driver atc260x_i2c_driver = {
> > + .driver = {
> > + .name = "atc260x",
> > + .of_match_table = of_match_ptr(atc260x_i2c_of_match),
> > + },
> > + .probe = atc260x_i2c_probe,
> > +};
>
> Nit: These spacings/line-ups just look odd.
>
> Please stick to one ' ' after the '='.

[...]

> > + const char *type_name;
> > + unsigned int rev_reg;
> > +
> > + int (*dev_init)(struct atc260x *atc260x);
>
> Ah, I didn't see this before.
>
> Call-backs of this nature are the devil. Please populate a struct
> with the differentiating register addresses/values instead and always
> call a generic deivce_init().

I have implemented this, including the other 2 suggestions above, in
the already submitted revision v6.

Thanks,
Cristi

> > +};
> > +
> > +struct regmap_config;
> > +
> > +int atc260x_match_device(struct atc260x *atc260x, struct regmap_config *regmap_cfg);
> > +int atc260x_device_probe(struct atc260x *atc260x);
> > +
> > +#endif /* __LINUX_MFD_ATC260X_CORE_H */
>
> --
> Lee Jones [李琼斯]
> Senior Technical Lead - Developer Services
> Linaro.org │ Open source software for Arm SoCs
> Follow Linaro: Facebook | Twitter | Blog