[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4BF155CF.3030905@pengutronix.de>
Date: Mon, 17 May 2010 16:42:23 +0200
From: Marc Kleine-Budde <mkl@...gutronix.de>
To: Wolfgang Grandegger <wg@...ndegger.com>
CC: Netdev@...r.kernel.org,
SocketCAN Core Mailing List <socketcan-core@...ts.berlios.de>
Subject: Re: [PATCH net-next-2.6] can: sja1000 platform data fixes
Wolfgang Grandegger wrote:
> The member "clock" of struct "sja1000_platform_data" is documented as
> "CAN bus oscillator frequency in Hz" but it's actually used as the CAN
> clock frequency, which is half of it. To avoid further confusion, this
> patch fixes it by renaming the member to "osc_freq". That way, also
> non mainline users will notice the change. The platform code for the
> relevant boards is updated accordingly. Furthermore, pre-defined
> values are now used for the members "ocr" and "cdr".
>
> Signed-off-by: Wolfgang Grandegger <wg@...ndegger.com>
> CC: Marc Kleine-Budde <mkl@...gutronix.de>
Acked-by: Marc Kleine-Budde <mkl@...gutronix.de>
Cheers, Marc
>
> diff --git a/arch/arm/mach-mx2/pcm970-baseboard.c b/arch/arm/mach-mx2/pcm970-baseboard.c
> index 4aafd5b..f490a40 100644
> --- a/arch/arm/mach-mx2/pcm970-baseboard.c
> +++ b/arch/arm/mach-mx2/pcm970-baseboard.c
> @@ -201,9 +201,9 @@ static struct resource pcm970_sja1000_resources[] = {
> };
>
> struct sja1000_platform_data pcm970_sja1000_platform_data = {
> - .clock = 16000000 / 2,
> - .ocr = 0x40 | 0x18,
> - .cdr = 0x40,
> + .osc_freq = 16000000,
> + .ocr = OCR_TX1_PULLDOWN | OCR_TX0_PUSHPULL,
> + .cdr = CDR_CBP,
> };
>
> static struct platform_device pcm970_sja1000 = {
> diff --git a/arch/arm/mach-mx3/mach-pcm037.c b/arch/arm/mach-mx3/mach-pcm037.c
> index 2df1ec5..78ecd75 100644
> --- a/arch/arm/mach-mx3/mach-pcm037.c
> +++ b/arch/arm/mach-mx3/mach-pcm037.c
> @@ -530,9 +530,9 @@ static struct resource pcm970_sja1000_resources[] = {
> };
>
> struct sja1000_platform_data pcm970_sja1000_platform_data = {
> - .clock = 16000000 / 2,
> - .ocr = 0x40 | 0x18,
> - .cdr = 0x40,
> + .osc_freq = 16000000,
> + .ocr = OCR_TX1_PULLDOWN | OCR_TX0_PUSHPULL,
> + .cdr = CDR_CBP,
> };
>
> static struct platform_device pcm970_sja1000 = {
> diff --git a/drivers/net/can/sja1000/sja1000_platform.c b/drivers/net/can/sja1000/sja1000_platform.c
> index b65cabb..d9fadc4 100644
> --- a/drivers/net/can/sja1000/sja1000_platform.c
> +++ b/drivers/net/can/sja1000/sja1000_platform.c
> @@ -111,7 +111,8 @@ static int sp_probe(struct platform_device *pdev)
> dev->irq = res_irq->start;
> priv->irq_flags = res_irq->flags & (IRQF_TRIGGER_MASK | IRQF_SHARED);
> priv->reg_base = addr;
> - priv->can.clock.freq = pdata->clock;
> + /* The CAN clock frequency is half the oscillator clock frequency */
> + priv->can.clock.freq = pdata->osc_freq / 2;
> priv->ocr = pdata->ocr;
> priv->cdr = pdata->cdr;
>
> diff --git a/include/linux/can/platform/sja1000.h b/include/linux/can/platform/sja1000.h
> index 01ee2ae..96f8fcc 100644
> --- a/include/linux/can/platform/sja1000.h
> +++ b/include/linux/can/platform/sja1000.h
> @@ -26,7 +26,7 @@
> #define OCR_TX_SHIFT 2
>
> struct sja1000_platform_data {
> - u32 clock; /* CAN bus oscillator frequency in Hz */
> + u32 osc_freq; /* CAN bus oscillator frequency in Hz */
>
> u8 ocr; /* output control register */
> u8 cdr; /* clock divider register */
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Download attachment "signature.asc" of type "application/pgp-signature" (261 bytes)
Powered by blists - more mailing lists