pcm037: Add support for SJA1000 on baseboard
authorSascha Hauer <s.hauer@pengutronix.de>
Tue, 23 Jun 2009 11:21:28 +0000 (13:21 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 7 Aug 2009 10:11:09 +0000 (12:11 +0200)
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx3/pcm037.c

index c755c06..1b9140e 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/spi/spi.h>
 #include <linux/irq.h>
 #include <linux/fsl_devices.h>
+#include <linux/can/platform/sja1000.h>
 
 #include <media/soc_camera.h>
 
@@ -514,6 +515,33 @@ static struct mx3fb_platform_data mx3fb_pdata = {
        .num_modes      = ARRAY_SIZE(fb_modedb),
 };
 
+static struct resource pcm970_sja1000_resources[] = {
+       {
+               .start   = CS5_BASE_ADDR,
+               .end     = CS5_BASE_ADDR + 0x100 - 1,
+               .flags   = IORESOURCE_MEM,
+       }, {
+               .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),
+};
+
 /*
  * Board specific initialization.
  */
@@ -574,6 +602,8 @@ static void __init mxc_board_init(void)
 
        if (!pcm037_camera_alloc_dma(4 * 1024 * 1024))
                mxc_register_device(&mx3_camera, &camera_pdata);
+
+       platform_device_register(&pcm970_sja1000);
 }
 
 static void __init pcm037_timer_init(void)