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 <[email protected]> > CC: Marc Kleine-Budde <[email protected]>
Acked-by: Marc Kleine-Budde <[email protected]> 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 |
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
