Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
[pandora-kernel.git] / arch / arm / mach-shmobile / board-mackerel.c
index c5497ac..3689ad2 100644 (file)
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
-#include <linux/pm_runtime.h>
+#include <linux/pm_clock.h>
 #include <linux/smsc911x.h>
 #include <linux/sh_intc.h>
 #include <linux/tca6416_keypad.h>
 #include <linux/usb/r8a66597.h>
 #include <linux/usb/renesas_usbhs.h>
+#include <linux/dma-mapping.h>
 
 #include <video/sh_mobile_hdmi.h>
 #include <video/sh_mobile_lcdc.h>
@@ -810,6 +811,7 @@ static struct usbhs_private usbhs1_private = {
                },
                .driver_param = {
                        .buswait_bwait  = 4,
+                       .has_otg        = 1,
                        .pipe_type      = usbhs1_pipe_cfg,
                        .pipe_size      = ARRAY_SIZE(usbhs1_pipe_cfg),
                        .d0_tx_id       = SHDMA_SLAVE_USB1_TX,
@@ -1070,14 +1072,17 @@ static struct resource sdhi1_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
+               .name   = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
                .start  = evt2irq(0x0e80), /* SDHI1_SDHI1I0 */
                .flags  = IORESOURCE_IRQ,
        },
        [2] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDCARD,
                .start  = evt2irq(0x0ea0), /* SDHI1_SDHI1I1 */
                .flags  = IORESOURCE_IRQ,
        },
        [3] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDIO,
                .start  = evt2irq(0x0ec0), /* SDHI1_SDHI1I2 */
                .flags  = IORESOURCE_IRQ,
        },
@@ -1121,14 +1126,17 @@ static struct resource sdhi2_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
+               .name   = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
                .start  = evt2irq(0x1200), /* SDHI2_SDHI2I0 */
                .flags  = IORESOURCE_IRQ,
        },
        [2] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDCARD,
                .start  = evt2irq(0x1220), /* SDHI2_SDHI2I1 */
                .flags  = IORESOURCE_IRQ,
        },
        [3] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDIO,
                .start  = evt2irq(0x1240), /* SDHI2_SDHI2I2 */
                .flags  = IORESOURCE_IRQ,
        },
@@ -1381,6 +1389,8 @@ static struct map_desc mackerel_io_desc[] __initdata = {
 static void __init mackerel_map_io(void)
 {
        iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc));
+       /* DMA memory at 0xf6000000 - 0xffdfffff */
+       init_consistent_dma_size(158 << 20);
 
        /* setup early devices and console here as well */
        sh7372_add_early_devices();
@@ -1589,6 +1599,15 @@ static void __init mackerel_init(void)
        sh7372_add_device_to_domain(&sh7372_a4lc, &hdmi_lcdc_device);
        sh7372_add_device_to_domain(&sh7372_a4lc, &meram_device);
        sh7372_add_device_to_domain(&sh7372_a4mp, &fsi_device);
+       sh7372_add_device_to_domain(&sh7372_a3sp, &usbhs0_device);
+       sh7372_add_device_to_domain(&sh7372_a3sp, &usbhs1_device);
+       sh7372_add_device_to_domain(&sh7372_a3sp, &sh_mmcif_device);
+       sh7372_add_device_to_domain(&sh7372_a3sp, &sdhi0_device);
+#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
+       sh7372_add_device_to_domain(&sh7372_a3sp, &sdhi1_device);
+#endif
+       sh7372_add_device_to_domain(&sh7372_a3sp, &sdhi2_device);
+       sh7372_add_device_to_domain(&sh7372_a4r, &ceu_device);
 
        hdmi_init_pm_clock();
        sh7372_pm_init();