diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-12-19 14:32:45 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-03-24 11:03:44 +0100 |
commit | d4deb5fc78a221c3fb74054f4dd26284690ce3ef (patch) | |
tree | 612d1e3f1eeb1bfb8059395913a041aa1c0ea36e | |
parent | ffd7af33149457f6b9fc7ca8dbe37afd74554955 (diff) | |
download | linux-2.6-d4deb5fc78a221c3fb74054f4dd26284690ce3ef.tar.gz linux-2.6-d4deb5fc78a221c3fb74054f4dd26284690ce3ef.tar.xz |
PCM037: Add CAN support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/mach-mx3/pcm037.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c index e8b13c6d0a3..c5840f0e06d 100644 --- a/arch/arm/mach-mx3/pcm037.c +++ b/arch/arm/mach-mx3/pcm037.c @@ -32,6 +32,9 @@ #include <linux/spi/spi.h> #include <linux/irq.h> #include <linux/fb.h> +#if defined CONFIG_CAN_SJA1000 || defined CONFIG_CAN_SJA1000_MODULE +#include <linux/can/sja1000_platform.h> +#endif #include <mach/hardware.h> #include <asm/mach-types.h> @@ -475,6 +478,36 @@ static struct mx3fb_platform_data mx3fb_pdata = { .num_modes = ARRAY_SIZE(fb_modedb), }; +#if defined CONFIG_CAN_SJA1000 || defined CONFIG_CAN_SJA1000_MODULE +static struct resource pcm970_sja1000_resources[] = { + [0] = { + .start = CS5_BASE_ADDR, + .end = CS5_BASE_ADDR + 0x100 - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IOMUX_TO_IRQ(IOMUX_PIN(48, 105)), + .end = IOMUX_TO_IRQ(IOMUX_PIN(48, 105)), + .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, + }, +}; + +struct sja1000_platform_data pcm970_sja1000_platform_data = { + .clock = 16000000 / 2, + .ocr = 0x40 | 0x18, + .cdr = 0x40, +}; + +static struct platform_device pcm970_sja1000 = { + .name = "sja1000_platform", + .dev = { + .platform_data = &pcm970_sja1000_platform_data, + }, + .resource = pcm970_sja1000_resources, + .num_resources = ARRAY_SIZE(pcm970_sja1000_resources), +}; +#endif + /* * Board specific initialization. */ @@ -513,6 +546,10 @@ static void __init mxc_board_init(void) spi_register_board_info(pcm037_spi_board_info, ARRAY_SIZE(pcm037_spi_board_info)); #endif + +#if defined CONFIG_CAN_SJA1000 || defined CONFIG_CAN_SJA1000_MODULE + platform_device_register(&pcm970_sja1000); +#endif } static void __init pcm037_timer_init(void) |