Commit fc551908 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Simon Horman
Browse files

ARM: shmobile: r8a7778: cleanup registration of sdhi



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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 044e2121
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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));
	}
}

+0 −2
Original line number Diff line number Diff line
@@ -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__ */
+0 −24
Original line number Diff line number Diff line
@@ -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 */