ARM: shmobile: r8a7778: cleanup registration of sdhi
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 26 Jul 2013 07:34:58 +0000 (00:34 -0700)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 6 Aug 2013 09:07:09 +0000 (18:07 +0900)
sdhi driver which needs platform data at the time of
registration is used from BockW only.
Now, ARM/shmobile aims to support DT,
and the C code base board support will be removed
if DT support is completed.
Current driver registration method which needs platform data
and which is not shared complicates codes.
This means legacy C code cleanup after DT supporting
will be more complicated
This patch registers it on board code as cleanup C code

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

index c94622a06be0317a3c534dd02df08561dc892873..1c876abdf31752a142e52b7a033a591418316e31 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <linux/mfd/tmio.h>
 #include <linux/mmc/host.h>
+#include <linux/mmc/sh_mobile_sdhi.h>
 #include <linux/mmc/sh_mmcif.h>
 #include <linux/mtd/partitions.h>
 #include <linux/pinctrl/machine.h>
@@ -93,6 +94,11 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
        .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
 };
 
+static struct resource sdhi0_resources[] __initdata = {
+       DEFINE_RES_MEM(0xFFE4C000, 0x100),
+       DEFINE_RES_IRQ(gic_iid(0x77)),
+};
+
 static struct sh_eth_plat_data ether_platform_data __initdata = {
        .phy            = 0x01,
        .edmac_endian   = EDMAC_LITTLE_ENDIAN,
@@ -253,7 +259,10 @@ static void __init bockw_init(void)
                iowrite32(ioread32(base + PUPR4) | (3 << 26), base + PUPR4);
                iounmap(base);
 
-               r8a7778_sdhi_init(0, &sdhi0_info);
+               platform_device_register_resndata(
+                       &platform_bus, "sh_mobile_sdhi", 0,
+                       sdhi0_resources, ARRAY_SIZE(sdhi0_resources),
+                       &sdhi0_info, sizeof(struct sh_mobile_sdhi_info));
        }
 }
 
index a184a13357b67ad09f0745e712630b13f6968423..aaa054497e96007c0db75dcd2d865593d8b93641 100644 (file)
@@ -18,7 +18,6 @@
 #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);
@@ -34,6 +33,5 @@ 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 8947507922ff93af7b6a7a8b453b2907207888e4..c585ee0ec0060274cf0b26856cf1326bda4e78d3 100644 (file)
@@ -234,30 +234,6 @@ void __init r8a7778_pinmux_init(void)
        r8a7778_register_gpio(4);
 };
 
-/* SDHI */
-static struct resource sdhi_resources[] __initdata = {
-       /* 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));
-}
-
 /* I2C */
 static struct resource i2c_resources[] __initdata = {
        /* I2C0 */