linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wolfram Sang <w.sang@pengutronix.de>
To: Dragos Carp <dragos.carp@toptica.com>
Cc: spi-devel-general@lists.sourceforge.net,
	David Brownell <dbrownell@users.sourceforge.net>,
	linuxppc-dev@ozlabs.org
Subject: Re: [spi-devel-general] [PATCH] mpc52xx_psc_spi: enlarge clock range
Date: Wed, 16 Sep 2009 22:48:53 +0200	[thread overview]
Message-ID: <20090916204853.GA21627@pengutronix.de> (raw)
In-Reply-To: <4AB0C706.5020601@toptica.com>


[-- Attachment #1.1: Type: text/plain, Size: 2677 bytes --]

Hi,

adding powerpc-list and Grant to cc.

On Wed, Sep 16, 2009 at 01:07:50PM +0200, Dragos Carp wrote:
> allow spi clock values bellow 78kbps down to ca. 300bps

Looks like your patch converts the driver from mpc5200 to mpc5200b? If this is
really all which is needed, it should support both versions, I think.

Regards,

   Wolfram

> 
> Signed-off-by: Dragos Carp <dragos.carp@toptica.com>
> ---
>  mpc52xx_psc_spi.c |   26 +++++++++++++-------------
>  1 file changed, 13 insertions(+), 13 deletions(-)
> 

> diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
> index 1b74d5c..b15882a 100644
> --- a/drivers/spi/mpc52xx_psc_spi.c
> +++ b/drivers/spi/mpc52xx_psc_spi.c
> @@ -78,7 +78,8 @@ static void mpc52xx_psc_spi_activate_cs(struct spi_device *spi)
>  	struct mpc52xx_psc_spi *mps = spi_master_get_devdata(spi->master);
>  	struct mpc52xx_psc __iomem *psc = mps->psc;
>  	u32 sicr;
> -	u16 ccr;
> +	u32 ccr;
> +	u32 bitclkdiv;
>  
>  	sicr = in_be32(&psc->sicr);
>  
> @@ -98,17 +99,16 @@ static void mpc52xx_psc_spi_activate_cs(struct spi_device *spi)
>  		sicr &= ~0x10000000;
>  	out_be32(&psc->sicr, sicr);
>  
> -	/* Set clock frequency and bits per word
> -	 * Because psc->ccr is defined as 16bit register instead of 32bit
> -	 * just set the lower byte of BitClkDiv
> -	 */
> -	ccr = in_be16((u16 __iomem *)&psc->ccr);
> -	ccr &= 0xFF00;
> -	if (cs->speed_hz)
> -		ccr |= (MCLK / cs->speed_hz - 1) & 0xFF;
> -	else /* by default SPI Clk 1MHz */
> -		ccr |= (MCLK / 1000000 - 1) & 0xFF;
> -	out_be16((u16 __iomem *)&psc->ccr, ccr);
> +	/* Set clock frequency */
> +	bitclkdiv = MCLK / (cs->speed_hz ? cs->speed_hz : 1000000) - 1;
> +	bitclkdiv &= 0xFFFF;
> +	bitclkdiv |= (bitclkdiv & 0xFF) << 16;	/* byte swapped */
> +	bitclkdiv &= 0x00FFFF00;
> +	ccr = in_be32(&psc->ccr);
> +	ccr &= 0xFF0000FF;
> +	ccr |= bitclkdiv;
> +	out_be32(&psc->ccr, ccr);
> +	
>  	mps->bits_per_word = cs->bits_per_word;
>  
>  	if (mps->cs_control)
> @@ -333,7 +333,7 @@ static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps)
>  	/* Configure 8bit codec mode as a SPI master and use EOF flags */
>  	/* SICR_SIM_CODEC8|SICR_GENCLK|SICR_SPI|SICR_MSTR|SICR_USEEOF */
>  	out_be32(&psc->sicr, 0x0180C800);
> -	out_be16((u16 __iomem *)&psc->ccr, 0x070F); /* default SPI Clk 1MHz */
> +	out_be32(&psc->ccr, 0x07130000); /* default SPI Clk 1MHz */
>  
>  	/* Set 2ms DTL delay */
>  	out_8(&psc->ctur, 0x00);

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

  reply	other threads:[~2009-09-16 20:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-16 11:07 [PATCH] mpc52xx_psc_spi: enlarge clock range Dragos Carp
2009-09-16 20:48 ` Wolfram Sang [this message]
     [not found] ` <20090916204853.GA21627-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-09-17 14:04   ` Dragos Carp
2009-09-17 14:13     ` [spi-devel-general] " Grant Likely
     [not found]     ` <4AB241FA.9090604-+ybMorV4k0dBDgjK7y7TUQ@public.gmane.org>
2009-09-17 14:13       ` Wolfram Sang

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=20090916204853.GA21627@pengutronix.de \
    --to=w.sang@pengutronix.de \
    --cc=dbrownell@users.sourceforge.net \
    --cc=dragos.carp@toptica.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=spi-devel-general@lists.sourceforge.net \
    /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;
as well as URLs for NNTP newsgroup(s).