Skip to content

Commit

Permalink
can: sja1000 platform data fixes
Browse files Browse the repository at this point in the history
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]>
Acked-by: Marc Kleine-Budde <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
grandwolf authored and davem330 committed May 18, 2010
1 parent d19d56d commit 56e6943
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 8 deletions.
6 changes: 3 additions & 3 deletions arch/arm/mach-mx2/pcm970-baseboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
6 changes: 3 additions & 3 deletions arch/arm/mach-mx3/mach-pcm037.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
3 changes: 2 additions & 1 deletion drivers/net/can/sja1000/sja1000_platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 1 addition & 1 deletion include/linux/can/platform/sja1000.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit 56e6943

Please sign in to comment.