Re: [PATCH v5 3/7] mfd: Add MFD driver for ATC260x PMICs
From: Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
Date: 2021-01-20 18:48:35
Also in:
linux-input, linux-pm, lkml
On Wed, Jan 20, 2021 at 08:33:48AM +0000, Lee Jones wrote:
On Wed, 13 Jan 2021, Cristian Ciocaltea wrote:quoted
Add initial support for the Actions Semi ATC260x PMICs which integrates Audio Codec, Power management, Clock generation and GPIO controller blocks.
[...]
quoted
+ /* 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.
[...]
quoted
+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 '='.
[...]
quoted
+ 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
quoted
+}; + +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