Re: [PATCH 2/4] MFD: TPS65218: Add driver for the TPS65218 PMIC

Keerthy
2013-12-03T10:07:16Z

On Tuesday 03 December 2013 02:54 PM, Lee Jones wrote:
>> The TPS65218 chip is a power management IC for Portable Navigation Systems
>> and Tablet Computing devices. It contains the following components:
>>
>> - Regulators.
>> - Over Temperature warning and Shut down.
>>
>> This patch adds support for tps65218 mfd device. At this time only
>> the regulator functionality is made available.
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>> drivers/mfd/Kconfig | 14 ++
>> drivers/mfd/Makefile | 1 +
>> drivers/mfd/tps65218.c | 281 +++++++++++++++++++++++++++++++++++++++++
>> include/linux/mfd/tps65218.h | 288 ++++++++++++++++++++++++++++++++++++++++++
> <snip>
>
>> +config MFD_TPS65218
>> + tristate "TI TPS65218 Power Management chips"
>> + depends on I2C
>> + select MFD_CORE
>> + select REGMAP_I2C
>> + help
>> + If you say yes here you get support for the TPS65218 series of
>> + Power Management chips.
>> + These include voltage regulators, gpio and other features
>> + that are often used in portable devices.
> Perhaps you should add a note that only the regulator component is
> currently supported.
Ok. I will add it.

> <snip>
>
>> new file mode 100644
>> index 0000000..8c61640
>> --- /dev/null
>> +++ b/drivers/mfd/tps65218.c
>> @@ -0,0 +1,281 @@
>> +/*
>> + * TPS65218 chip family multi-function driver
> Instead of calling it an MFD driver (is there such a thing?) I think
> you should mention its true purpose, as per the datasheet.

Ok.

>
> <snip>
>
>> +static const struct of_device_id of_tps65218_match_table[] = {
>> + { .compatible = "ti,tps65218", },
>> + { /* end */ }
> I think the end comment is superfluous.
>
> However, if you _really_ want to put something in there, I dislike
> "/* Sentinel */" the least.

I will remove it.
>
>> +static int tps65218_probe(struct i2c_client *client,
>> + const struct i2c_device_id *ids)
>> +{
> <snip>
>
>> + ret = of_platform_populate(client->dev.of_node, NULL, NULL,
>> + &client->dev);
> What are you trying to do here?
>
> Register each regulator as a platform device?

Yeah. The probe will be called for every regulator separately.

> <snip>
>
>> +static const struct i2c_device_id tps65218_id_table[] = {
>> + {"tps65218", TPS65218},
>> +};
> This has a different structure to of_tps65218_match_table, please
> ensure they're the same. I prefer spaces after '{' and before '}'.

Ok. I will add a space after '{' and before '}'. Sorry I did not
follow tps65218_id_table being different than of_tps65218_match_table.

One is of the type of_device_id and the other i2c_device_id.
>
> <snip>
>