public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Marc Reilly <marc@cpdesign.com.au>
To: Shawn Guo <shawn.guo@freescale.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Mark Brown" <broonie@opensource.wolfsonmicro.com>,
	"Samuel Ortiz" <sameo@linux.intel.com>,
	"Sascha Hauer" <kernel@pengutronix.de>,
	"Philippe Rétornaz" <philippe.retornaz@epfl.ch>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: mc13xxx-core: kernel hangs after 'regmap_read'
Date: Thu, 24 May 2012 19:08:37 +1000	[thread overview]
Message-ID: <201205241908.38278.marc@cpdesign.com.au> (raw)
In-Reply-To: <20120524073315.GE7843@S2100-06.ap.freescale.net>

Hi,

On Thursday, May 24, 2012 05:33:16 PM Shawn Guo wrote:
> On Thu, May 24, 2012 at 08:46:35AM +0200, Uwe Kleine-König wrote:
> > Hello,
> > 
> > On Thu, May 24, 2012 at 02:39:00PM +0800, Shawn Guo wrote:
> > > On Thu, May 24, 2012 at 01:07:43AM -0300, Fabio Estevam wrote:
> > > > I am trying to understand why mx31pdk still fails.
> > > 
> > > So different from imx51-babbage which uses MC13892, mx31pdk uses
> > > MC13783?  But both chips should have the same regmap, right?
> > 
> > They are similar. One difference is the protocol used. MC13783 only
> > speaks spi, MC13892 can do both, spi and i2c. Does someone has a working
> > MC13892 that uses spi?
> 
> I do.  With the following patch applied on top of linux-next, it works
> on my imx51-babbage board.
> 
> Regards,
> Shawn
> 
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 3fcdab3..5d1969f 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -49,6 +49,7 @@ static struct regmap_config mc13xxx_regmap_spi_config = {
>         .reg_bits = 7,
>         .pad_bits = 1,
>         .val_bits = 24,
> +       .write_flag_mask = 0x80,

Should probably have .read_flag_mask = 0x00, here too. If either are non zero, 
both are set.

I guess this is the problem, regmap's default read_flag_mask for the spi bus 
is 0x80, and the write mask defaults to 0. The mc13xxx works the opposite way 
though! aarg. My bad for not noticing. So setting the write_flag_mask to 0x80 
also sets the read mask to 0 correctly also.

 
>         .max_register = MC13XXX_NUMREGS,
> 
> @@ -73,7 +74,6 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> 
>         dev_set_drvdata(&spi->dev, mc13xxx);
>         spi->mode = SPI_MODE_0 | SPI_CS_HIGH;
> -       spi->bits_per_word = 32;

My bad here too. Because I had no hardware to test with I tried to preserve as 
much of the old code as I could.

Sorry about the stuff ups. I owe each of you a beer (unfortunately I'll have 
to exclude the list in general from that offer :) ).

I'm wondering about regmap_init where the buf_size is set up. I think it will 
only end up being 3 bytes. I think line 249 should be something like:

	map->format.buf_size = (config->reg_bits 
                          + config->val_bits 
					         + (config->pad_bits % 8)) / 8;

or perhaps better:
	map->reg_shift = config->pad_bits % 8;
	map->format.buf_size = (config->reg_bits 
                          + config->val_bits 
					         + map->reg_shift) / 8;

Am I right here or just confused?

Cheers,
Marc



  reply	other threads:[~2012-05-24  9:11 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-21 16:06 mc13xxx-core: kernel hangs after 'regmap_read' Fabio Estevam
2012-05-22  0:53 ` Marc Reilly
2012-05-22  9:25   ` Mark Brown
2012-05-22 11:40     ` Fabio Estevam
2012-05-22 12:48       ` Philippe Rétornaz
2012-05-22 14:45     ` Fabio Estevam
2012-05-23  1:12   ` Fabio Estevam
2012-05-23  2:05     ` Fabio Estevam
2012-05-23  8:49       ` Mark Brown
2012-05-23 14:18         ` Fabio Estevam
2012-05-23 15:29           ` Fabio Estevam
2012-05-23 17:36           ` Mark Brown
2012-05-23 19:32             ` Fabio Estevam
2012-05-23 16:42         ` Shawn Guo
2012-05-23 16:34           ` Fabio Estevam
2012-05-24  0:48             ` Shawn Guo
2012-05-24  4:07               ` Fabio Estevam
2012-05-24  6:04                 ` Shawn Guo
2012-05-24  6:39                 ` Shawn Guo
2012-05-24  6:46                   ` Uwe Kleine-König
2012-05-24  7:33                     ` Shawn Guo
2012-05-24  9:08                       ` Marc Reilly [this message]
2012-05-24 10:37                         ` Mark Brown
2012-05-24 11:22                           ` Marc Reilly
2012-05-24 12:14                             ` Mark Brown
2012-05-24 13:06                               ` Marc Reilly
2012-05-24 16:37                                 ` Mark Brown
2012-05-24 13:01                         ` Fabio Estevam
2012-05-24 13:38                           ` Marc Reilly
2012-05-24 16:16                             ` Philippe Rétornaz
2012-05-24 16:36                               ` Mark Brown
2012-05-24 16:41                                 ` Uwe Kleine-König
2012-05-24 17:39                                   ` Fabio Estevam
2012-05-24 18:03                                     ` Mark Brown
2012-05-24 19:42                                       ` philippe.retornaz
2012-05-24 22:21                                         ` Mark Brown
2012-05-25  8:56                         ` Shawn Guo

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=201205241908.38278.marc@cpdesign.com.au \
    --to=marc@cpdesign.com.au \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=philippe.retornaz@epfl.ch \
    --cc=sameo@linux.intel.com \
    --cc=shawn.guo@freescale.com \
    --cc=u.kleine-koenig@pengutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox