[U-Boot] [PATCH v2 3/5] pmic_fsl: Introduce CONFIG_SYS_FSL_PMIC_I2C_LENGTH

Stefano Babic sbabic at denx.de
Tue Oct 16 16:39:34 CEST 2012


Am 16/10/2012 01:32, schrieb Fabio Estevam:
> From: Fabio Estevam <fabio.estevam at freescale.com>
> 
> Introduce CONFIG_SYS_FSL_PMIC_I2C_LENGTH to configure the number of bytes
> that are used to communicate with the PMIC via I2C.
> 
> Instead of hardcoding the value, pass the number via a config option.
> 
> This will be useful for adding support for PMIC MC34704 from Freescale, which 
> uses only one byte in its I2C protocol.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---

Hi Fabio,

> Changes since v2:
> - No changes. Newly introduced in this series
> 
>  drivers/misc/pmic_fsl.c    |    2 +-
>  include/configs/mx35pdk.h  |    1 +
>  include/configs/mx53evk.h  |    1 +
>  include/configs/mx53loco.h |    1 +
>  4 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/pmic_fsl.c b/drivers/misc/pmic_fsl.c
> index 0ff75ed..40c448b 100644
> --- a/drivers/misc/pmic_fsl.c
> +++ b/drivers/misc/pmic_fsl.c
> @@ -53,7 +53,7 @@ int pmic_init(void)
>  #elif defined(CONFIG_PMIC_I2C)
>  	p->interface = PMIC_I2C;
>  	p->hw.i2c.addr = CONFIG_SYS_FSL_PMIC_I2C_ADDR;
> -	p->hw.i2c.tx_num = 3;
> +	p->hw.i2c.tx_num = CONFIG_SYS_FSL_PMIC_I2C_LENGTH;

The bad thing with it is that it seems that each board can have a
different value. However, this is bound to the selected pmic and not to
the board. So IMHO it should not go into the board configuration file,
but in the pmic specific initialization.

We share the same general code for all FSL PMIcs, so I am not sure which
is the best way to do.  Maybe at the pmic initialization ?

I added Lucasz in CC, because he is working on the PMIC framework making
it more flexible and with the possibility to have multiple PMIC (he has
a board with more as one PMIC, even if they are integrated in teh same
chip).

Lucasz changed (not yet merged) the pmic startup passing the number of
I2C bus. So with the new interface, we could have something like:

	pmic_init(I2C_PMIC);
 	if (pmic_detect()) {
		p = pmic_get("FSL_PMIC");

The question is if it makes sense to pass also the tx_num to the init
function, and moving to a
	pmic_init(i2cbus, txnum);

or is there a more elegant way ?

Best regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list