[U-Boot] [PATCH 1/4] power: make pfuze100 be able to coexist with other pmics

Tim Harvey
2014-04-24T08:19:42Z

On Thu, Apr 24, 2014 at 1:03 AM, Stefano Babic <sbabic@denx.de> wrote:
> Hi Tim,
>
> On 23/04/2014 06:53, Tim Harvey wrote:
>> Avoid uding pmic_init() as this forces the model of only allowing a
>> single PMIC driver to be built at a time.
>>
>> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
>> ---
>> drivers/power/pmic/pmic_pfuze100.c | 2 +-
>> include/power/pfuze100_pmic.h | 1 +
>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/power/pmic/pmic_pfuze100.c b/drivers/power/pmic/pmic_pfuze100.c
>> index 22c1f15..21f12d2 100644
>> --- a/drivers/power/pmic/pmic_pfuze100.c
>> +++ b/drivers/power/pmic/pmic_pfuze100.c
>> @@ -11,7 +11,7 @@
>> #include <power/pmic.h>
>> #include <power/pfuze100_pmic.h>
>>
>> -int pmic_init(unsigned char bus)
>> +int power_pfuze100_init(unsigned char bus)
>> {
>> static const char name[] = "PFUZE100_PMIC";
>> struct pmic *p = pmic_alloc();
>> diff --git a/include/power/pfuze100_pmic.h b/include/power/pfuze100_pmic.h
>> index 2a9032a..444aba6 100644
>> --- a/include/power/pfuze100_pmic.h
>> +++ b/include/power/pfuze100_pmic.h
>> @@ -93,4 +93,5 @@ enum {
>> #define SWBST_MODE_AUTO (2 << 2)
>> #define SWBST_MODE_APS (2 << 3)
>>
>> +int power_pfuze100_init(unsigned char bus);
>
> This is a change in the PMIC framework API and must be documented.
>
> Currently, we support multiple instances of the same PMIC, but not
> different PMIC on the same board.
>

Stefano,

Hmm... I see several pmic's that use their own namespace for init:

grep init include/power/*.h shows a few (power_bat_init,
power_fg_init, power_muic_init, pmic_init_max77693). And if you look
at trats.c or trats2.c boards you will see how they call several of
them. Granted, both of those do also call a generic pmic_init() thats
implemented by pmic_max77686 'or' pmic_max8977. So in the case of
those two boards, they have several pmic's, one that uses the generic
pmic_init() namespace, and 2 others that use their own unique
namespace.

Regards,

Tim

> We could add a CONFIG_MULTIPLE_PMIC, that must be added to the
> documentation, and each driver will define pmic_init() if it is not define:
>
> #ifndef CONFIG_MULTIPLE_PMIC
> #define pmic_init power_pfuze100_init
> #endif
>
> Best regards,
> Stefano Babic
>