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

Reply via email to