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

Cristian Ciocaltea cristian.ciocaltea at gmail.com
Wed Jan 20 10:39:56 PST 2021


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



More information about the linux-actions mailing list