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

ARM: shmobile: r8a7778: cleanup registration of vin



vin 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 cde214a8
Loading
Loading
Loading
Loading
+26 −6
Original line number Diff line number Diff line
@@ -162,10 +162,6 @@ static struct sh_mmcif_plat_data sh_mmcif_plat __initdata = {
			  MMC_CAP_NEEDS_POLL,
};

static struct rcar_vin_platform_data vin_platform_data __initdata = {
	.flags	= RCAR_VIN_BT656,
};

/* In the default configuration both decoders reside on I2C bus 0 */
#define BOCKW_CAMERA(idx)						\
static struct i2c_board_info camera##idx##_info = {			\
@@ -181,6 +177,30 @@ static struct soc_camera_link iclink##idx##_ml86v7667 __initdata = { \
BOCKW_CAMERA(0);
BOCKW_CAMERA(1);

/* VIN */
static struct rcar_vin_platform_data vin_platform_data __initdata = {
	.flags	= RCAR_VIN_BT656,
};

#define R8A7778_VIN(idx)						\
static struct resource vin##idx##_resources[] __initdata = {		\
	DEFINE_RES_MEM(0xffc50000 + 0x1000 * (idx), 0x1000),		\
	DEFINE_RES_IRQ(gic_iid(0x5a)),					\
};									\
									\
static struct platform_device_info vin##idx##_info __initdata = {	\
	.parent		= &platform_bus,				\
	.name		= "r8a7778-vin",				\
	.id		= idx,						\
	.res		= vin##idx##_resources,				\
	.num_res	= ARRAY_SIZE(vin##idx##_resources),		\
	.dma_mask	= DMA_BIT_MASK(32),				\
	.data		= &vin_platform_data,				\
	.size_data	= sizeof(vin_platform_data),			\
}
R8A7778_VIN(0);
R8A7778_VIN(1);

static const struct pinctrl_map bockw_pinctrl_map[] = {
	/* Ether */
	PIN_MAP_MUX_GROUP_DEFAULT("r8a777x-ether", "pfc-r8a7778",
@@ -236,10 +256,10 @@ static void __init bockw_init(void)
	r8a7778_init_irq_extpin(1);
	r8a7778_add_standard_devices();
	r8a7778_add_ether_device(&ether_platform_data);
	r8a7778_add_vin_device(0, &vin_platform_data);
	platform_device_register_full(&vin0_info);
	/* VIN1 has a pin conflict with Ether */
	if (!IS_ENABLED(CONFIG_SH_ETH))
		r8a7778_add_vin_device(1, &vin_platform_data);
		platform_device_register_full(&vin1_info);
	platform_device_register_data(&platform_bus, "soc-camera-pdrv", 0,
				      &iclink0_ml86v7667,
				      sizeof(iclink0_ml86v7667));
+0 −2
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@
extern void r8a7778_add_standard_devices(void);
extern void r8a7778_add_standard_devices_dt(void);
extern void r8a7778_add_ether_device(struct sh_eth_plat_data *pdata);
extern void r8a7778_add_vin_device(int id,
				   struct rcar_vin_platform_data *pdata);
extern void r8a7778_add_dt_devices(void);

extern void r8a7778_init_late(void);
+0 −34
Original line number Diff line number Diff line
@@ -281,40 +281,6 @@ void __init r8a7778_register_hspi(int id)
		hspi_resources + (2 * id), 2);
}

/* VIN */
#define R8A7778_VIN(idx)						\
static struct resource vin##idx##_resources[] __initdata = {		\
	DEFINE_RES_MEM(0xffc50000 + 0x1000 * (idx), 0x1000),		\
	DEFINE_RES_IRQ(gic_iid(0x5a)),					\
};									\
									\
static struct platform_device_info vin##idx##_info __initdata = {	\
	.parent		= &platform_bus,				\
	.name		= "r8a7778-vin",				\
	.id		= idx,						\
	.res		= vin##idx##_resources,				\
	.num_res	= ARRAY_SIZE(vin##idx##_resources),		\
	.dma_mask	= DMA_BIT_MASK(32),				\
}

R8A7778_VIN(0);
R8A7778_VIN(1);

static struct platform_device_info *vin_info_table[] __initdata = {
	&vin0_info,
	&vin1_info,
};

void __init r8a7778_add_vin_device(int id, struct rcar_vin_platform_data *pdata)
{
	BUG_ON(id < 0 || id > 1);

	vin_info_table[id]->data = pdata;
	vin_info_table[id]->size_data = sizeof(*pdata);

	platform_device_register_full(vin_info_table[id]);
}

void __init r8a7778_add_dt_devices(void)
{
	int i;