aboutsummaryrefslogtreecommitdiff
path: root/arch/sh/boards/mach-kfr2r09
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-10-26 10:47:44 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-10-26 10:47:44 +0900
commit15893fb565921507da80e500d85bb2575989bb57 (patch)
tree16473cd98b2b4dd43f55d4880a7b42973f2f6bd0 /arch/sh/boards/mach-kfr2r09
parentf32154c9b580f11017b01bf093514c900c09364e (diff)
parent96987d96f0058d8689a2b8ac288dbff2e6d85563 (diff)
Merge branch 'sh/sdhi-mfd'
Conflicts: arch/sh/boards/mach-ecovec24/setup.c arch/sh/boards/mach-kfr2r09/setup.c
Diffstat (limited to 'arch/sh/boards/mach-kfr2r09')
-rw-r--r--arch/sh/boards/mach-kfr2r09/setup.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c
index ce01d6a953b..43d75ee9335 100644
--- a/arch/sh/boards/mach-kfr2r09/setup.c
+++ b/arch/sh/boards/mach-kfr2r09/setup.c
@@ -332,6 +332,28 @@ static struct platform_device kfr2r09_camera = {
},
};
+static struct resource kfr2r09_sh_sdhi0_resources[] = {
+ [0] = {
+ .name = "SDHI0",
+ .start = 0x04ce0000,
+ .end = 0x04ce01ff,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = 101,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device kfr2r09_sh_sdhi0_device = {
+ .name = "sh_mobile_sdhi",
+ .num_resources = ARRAY_SIZE(kfr2r09_sh_sdhi0_resources),
+ .resource = kfr2r09_sh_sdhi0_resources,
+ .archdata = {
+ .hwblk_id = HWBLK_SDHI0,
+ },
+};
+
static struct platform_device *kfr2r09_devices[] __initdata = {
&kfr2r09_nor_flash_device,
&kfr2r09_nand_flash_device,
@@ -339,6 +361,7 @@ static struct platform_device *kfr2r09_devices[] __initdata = {
&kfr2r09_sh_lcdc_device,
&kfr2r09_ceu_device,
&kfr2r09_camera,
+ &kfr2r09_sh_sdhi0_device,
};
#define BSC_CS0BCR 0xfec10004
@@ -500,6 +523,16 @@ static int __init kfr2r09_devices_setup(void)
platform_resource_setup_memory(&kfr2r09_ceu_device, "ceu", 4 << 20);
+ /* SDHI0 connected to yc304 */
+ gpio_request(GPIO_FN_SDHI0CD, NULL);
+ gpio_request(GPIO_FN_SDHI0WP, NULL);
+ gpio_request(GPIO_FN_SDHI0D3, NULL);
+ gpio_request(GPIO_FN_SDHI0D2, NULL);
+ gpio_request(GPIO_FN_SDHI0D1, NULL);
+ gpio_request(GPIO_FN_SDHI0D0, NULL);
+ gpio_request(GPIO_FN_SDHI0CMD, NULL);
+ gpio_request(GPIO_FN_SDHI0CLK, NULL);
+
return platform_add_devices(kfr2r09_devices,
ARRAY_SIZE(kfr2r09_devices));
}