All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 13/13] misc: pmic: drop old Freescale's pmic driver
Date: Wed, 19 Oct 2011 17:39:24 +0200	[thread overview]
Message-ID: <4E9EEF2C.9050906@denx.de> (raw)
In-Reply-To: <4E9ECF4F.5050802@hale.at>

On 10/19/2011 03:23 PM, Helmut Raiger wrote:
> On 10/08/2011 06:36 PM, Stefano Babic wrote:
>> Signed-off-by: Stefano Babic<sbabic@denx.de>
>> ---
>>   drivers/misc/Makefile   |    1 -
>>   drivers/misc/fsl_pmic.c |  235
>> -----------------------------------------------
>>   2 files changed, 0 insertions(+), 236 deletions(-)
>>   delete mode 100644 drivers/misc/fsl_pmic.c
>>

Hi Helmut,

> I just checked PMIC action on our board (i.mx31 and mc13783) and the new
> code is not working here, it even:
> 
> TT01> pmic write 20 17
> raise: Signal # 8 caught
> <reg num> = 32 is invalid. Should be less than 0
> TT01> pmic read 20
> <reg num> = 32 is invalid. Should be less than 0
> PMIC: Register read failed
> 
> 0x20: 0x00000000
> 
> At first glance I found in pmic_fsl.c:
> 
> 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);
> }
> 
> which must be wrong. NULL is de-referenced in both cases and this error
> is even forced by pmic_spi.c:

This is wrong - it is checked for NULL and then de-referenced...

> 
>     if (write) {
>         pmic_tx = p->hw.spi.prepare_tx(0, NULL, write);
>         pmic_tx &= ~(1 << 31);
> 
> 
> Probably val == NULL was meant as escape not to touch the pmic_tx value,
> in the original driver it's done that way.

Then there is too much statements. If spi.prepare_tx() should clear the
MSB with ~(1 << 31), why we need the second one :

pmic_tx &= ~(1 << 31);

something went simply wrong...

Because (from the old driver) the second SPI transfer is done to read
back the programmed value, we can maybe use :

     if (write) {
         pmic_tx = p->hw.spi.prepare_tx(reg, &val, 0);

and of course, we should fix the wrong prepare_tx()..

> One could fix this by using a static variable in pmic_spi_prepare_tx(),
> but I'm
> not sure if this was the intention.
> 

Well, it makes no sense - the prepare_tx() should not know the history,
and only rely on the parameters.

> I wonder why it was missed during testing as it seems configuration
> independent.

I wonder, too. I have tested with the 'date' command, that means writing
into the internal RTC registers of the MC13783. I cannot explain what
goes wrong, but of course the code is buggy and must be fixed.

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: office at denx.de
=====================================================================

  reply	other threads:[~2011-10-19 15:39 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-08 16:35 [U-Boot] switch to generic PMIC driver for i.MX boards Stefano Babic
2011-10-08 16:35 ` [U-Boot] [PATCH 01/13] MX5: vision2: use new pmic driver Stefano Babic
2011-10-08 16:35 ` [U-Boot] [PATCH 02/13] RTC: Switch mc13783 to generic pmic code Stefano Babic
2011-10-08 16:35 ` [U-Boot] [PATCH 03/13] MX3: qong: use new pmic driver Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH V2 04/13] MX5: efikamx/efikasb: " Stefano Babic
2011-10-08 16:57   ` Marek Vasut
2011-10-08 16:36 ` [U-Boot] [PATCH 05/13] I2c: add missing i2c_set_bus_num to mxc_i2c Stefano Babic
2011-10-10  8:50   ` Heiko Schocher
2011-10-10  9:30     ` Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH V2 06/13] misc: pmic: addI2C support to pmic_fsl driver Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH 07/13] MX35: mx35pdk: use new pmic driver Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH V2 08/13] MX5: mx51evk: " Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH V2 09/13] MX5: mx53evk: " Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH 10/13] MX31: mx31_litekit: " Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH 11/13] MX31: mx31ads: " Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH 12/13] MX31: mx31pdk: " Stefano Babic
2011-10-08 16:36 ` [U-Boot] [PATCH 13/13] misc: pmic: drop old Freescale's " Stefano Babic
2011-10-19 13:23   ` Helmut Raiger
2011-10-19 15:39     ` Stefano Babic [this message]
2011-10-19 16:48       ` [U-Boot] [PATCH] misc: pmic: fix regression in pmic_fsl.c (SPI) Helmut Raiger
2011-10-19 17:15         ` Stefano Babic
2011-10-20  6:41           ` Helmut Raiger
2011-10-20  6:28         ` [U-Boot] [PATCH V2] " Helmut Raiger
2011-10-20  6:34         ` [U-Boot] [Resend PATCH " Helmut Raiger
2011-10-20  7:31           ` Stefano Babic
2011-10-24  7:48           ` Stefano Babic
2011-10-10  9:35 ` [U-Boot] [PATCH V2 05/13] i2c: Create common default i2c_set_bus_num() function Stefano Babic
2011-10-10 10:33   ` Heiko Schocher
2011-10-10 17:53   ` Tabi Timur-B04825
2011-10-10 18:26     ` Mike Frysinger
2011-10-10 18:29       ` Timur Tabi
2011-10-11  7:33       ` Stefano Babic
2011-10-11  5:37     ` Heiko Schocher
2011-10-11  5:48       ` Wolfgang Denk
2011-10-11  5:51         ` Aaron Williams
2011-10-11  5:52         ` Heiko Schocher
2011-10-10 10:50 ` [U-Boot] [PATCH V3 " Stefano Babic
2011-10-10 15:19   ` Mike Frysinger
2011-10-10 15:31     ` Stefano Babic
2011-10-10 17:51       ` Mike Frysinger
2011-10-11 17:30         ` Stefano Babic
2011-10-11 17:46           ` Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E9EEF2C.9050906@denx.de \
    --to=sbabic@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.