On 10/19/2011 06:48 PM, Helmut Raiger wrote:
> This fixes write access to PMIC registers, the bug was
> introduced partly in commit 64aac65099 and in commit c9fe76dd91.
> It was tested on an i.mx31 with a mc13783.
> 
> Signed-off-by: Helmut Raiger <helmut.rai...@hale.at>
> ---
>  drivers/misc/pmic_fsl.c |    5 +----
>  drivers/misc/pmic_spi.c |    1 -
>  2 files changed, 1 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/misc/pmic_fsl.c b/drivers/misc/pmic_fsl.c
> index b6e809a..0ff75ed 100644

Hi Helmut,

> --- a/drivers/misc/pmic_fsl.c
> +++ b/drivers/misc/pmic_fsl.c
> @@ -29,10 +29,7 @@
>  #if defined(CONFIG_PMIC_SPI)
>  static u32 pmic_spi_prepare_tx(u32 reg, u32 *val, u32 write)
>  {
> -     if ((val == NULL) && (write))
> -             return *val & ~(1 << 31);
> -     else
> -             return (write << 31) | (reg << 25) | (*val & 0x00FFFFFF);
> +     return (write << 31) | (reg << 25) | (*val & 0x00FFFFFF);
>  }
>  #endif
>  
> diff --git a/drivers/misc/pmic_spi.c b/drivers/misc/pmic_spi.c
> index ff35377..e772884 100644
> --- a/drivers/misc/pmic_spi.c
> +++ b/drivers/misc/pmic_spi.c
> @@ -76,7 +76,6 @@ static u32 pmic_reg(struct pmic *p, u32 reg, u32 *val, u32 
> write)
>       }
>  
>       if (write) {
> -             pmic_tx = p->hw.spi.prepare_tx(0, NULL, write);
>               pmic_tx &= ~(1 << 31);

This fixes the issue with the Freescale PMIC, but...

The new driver introduces a level of abstraction to make easier to
introduce other PMICs that are driven with SPI / I2C. For this reason,
PMIC specific code must be inside the specific driver (pmic_fsl.c) and
not in the general (pmic_core.c and pmic_spi.c). And clearing the MSB is
part of the Freescale's protocol, and for this reason should be moved
inside the prepare function.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=====================================================================
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to