]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: shmobile: r8a7778: Register SDHI device
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 17 Apr 2013 05:17:25 +0000 (22:17 -0700)
committerSimon Horman <horms+renesas@verge.net.au>
Wed, 24 Apr 2013 08:05:46 +0000 (17:05 +0900)
This patch adds SDHI register function which needs id number (= 0/1/2)

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/include/mach/r8a7778.h
arch/arm/mach-shmobile/setup-r8a7778.c

index 68053fc4d9dcc106c5e40c422c099b4506d22da8..ae65b459483f6d79c87bb96ad1b15295a855e0e0 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef __ASM_R8A7778_H__
 #define __ASM_R8A7778_H__
 
+#include <linux/mmc/sh_mobile_sdhi.h>
 #include <linux/sh_eth.h>
 
 extern void r8a7778_add_standard_devices(void);
@@ -29,5 +30,6 @@ extern void r8a7778_init_irq_dt(void);
 extern void r8a7778_clock_init(void);
 extern void r8a7778_init_irq_extpin(int irlm);
 extern void r8a7778_pinmux_init(void);
+extern void r8a7778_sdhi_init(int id, struct sh_mobile_sdhi_info *info);
 
 #endif /* __ASM_R8A7778_H__ */
index d82954b97abbd63da71c5cebac2ea876bdbfe76a..4c32784fde62d62e8684dbd4b146f6964df6ad00 100644 (file)
@@ -115,6 +115,30 @@ void __init r8a7778_pinmux_init(void)
                ARRAY_SIZE(pfc_resources));
 }
 
+/* SDHI */
+static struct resource sdhi_resources[] = {
+       /* SDHI0 */
+       DEFINE_RES_MEM(0xFFE4C000, 0x100),
+       DEFINE_RES_IRQ(gic_iid(0x77)),
+       /* SDHI1 */
+       DEFINE_RES_MEM(0xFFE4D000, 0x100),
+       DEFINE_RES_IRQ(gic_iid(0x78)),
+       /* SDHI2 */
+       DEFINE_RES_MEM(0xFFE4F000, 0x100),
+       DEFINE_RES_IRQ(gic_iid(0x76)),
+};
+
+void __init r8a7778_sdhi_init(int id,
+                             struct sh_mobile_sdhi_info *info)
+{
+       BUG_ON(id < 0 || id > 2);
+
+       platform_device_register_resndata(
+               &platform_bus, "sh_mobile_sdhi", id,
+               sdhi_resources + (2 * id), 2,
+               info, sizeof(*info));
+}
+
 void __init r8a7778_add_standard_devices(void)
 {
        int i;