| From 6bf3d520cc10b69cac1460e690fedc7f1b685536 Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Mon, 14 Oct 2013 19:45:36 -0700 |
| Subject: ARM: shmobile: r8a7779: cleanup registration of VIN |
| |
| VIN driver which needs platform data at the time of |
| registration is used from Marzen 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> |
| Acked-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| (cherry picked from commit 4bd4c5b32b851b07d81209e1dc0c8b20b283f2e2) |
| (Queued by ARM-SoC for v3.14 but not yet in Linus's tree) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/board-marzen.c | 24 +++++++++++++++-- |
| arch/arm/mach-shmobile/include/mach/r8a7779.h | 2 -- |
| arch/arm/mach-shmobile/setup-r8a7779.c | 37 --------------------------- |
| 3 files changed, 22 insertions(+), 41 deletions(-) |
| |
| diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c |
| index da1352f5f71b..fa102f7d149c 100644 |
| --- a/arch/arm/mach-shmobile/board-marzen.c |
| +++ b/arch/arm/mach-shmobile/board-marzen.c |
| @@ -259,10 +259,30 @@ static struct platform_device leds_device = { |
| }, |
| }; |
| |
| +/* VIN */ |
| static struct rcar_vin_platform_data vin_platform_data __initdata = { |
| .flags = RCAR_VIN_BT656, |
| }; |
| |
| +#define MARZEN_VIN(idx) \ |
| +static struct resource vin##idx##_resources[] __initdata = { \ |
| + DEFINE_RES_MEM(0xffc50000 + 0x1000 * (idx), 0x1000), \ |
| + DEFINE_RES_IRQ(gic_iid(0x5f + (idx))), \ |
| +}; \ |
| + \ |
| +static struct platform_device_info vin##idx##_info __initdata = { \ |
| + .parent = &platform_bus, \ |
| + .name = "r8a7779-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), \ |
| +} |
| +MARZEN_VIN(1); |
| +MARZEN_VIN(3); |
| + |
| #define MARZEN_CAMERA(idx) \ |
| static struct i2c_board_info camera##idx##_info = { \ |
| I2C_BOARD_INFO("adv7180", 0x20 + (idx)), \ |
| @@ -367,8 +387,8 @@ static void __init marzen_init(void) |
| r8a7779_init_irq_extpin(1); /* IRQ1 as individual interrupt */ |
| |
| r8a7779_add_standard_devices(); |
| - r8a7779_add_vin_device(1, &vin_platform_data); |
| - r8a7779_add_vin_device(3, &vin_platform_data); |
| + platform_device_register_full(&vin1_info); |
| + platform_device_register_full(&vin3_info); |
| platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); |
| marzen_add_du_device(); |
| } |
| diff --git a/arch/arm/mach-shmobile/include/mach/r8a7779.h b/arch/arm/mach-shmobile/include/mach/r8a7779.h |
| index 17af34ed89c8..905420a2f11f 100644 |
| --- a/arch/arm/mach-shmobile/include/mach/r8a7779.h |
| +++ b/arch/arm/mach-shmobile/include/mach/r8a7779.h |
| @@ -41,8 +41,6 @@ extern void r8a7779_add_early_devices(void); |
| extern void r8a7779_add_standard_devices(void); |
| extern void r8a7779_add_standard_devices_dt(void); |
| extern void r8a7779_add_ether_device(struct sh_eth_plat_data *pdata); |
| -extern void r8a7779_add_vin_device(int idx, |
| - struct rcar_vin_platform_data *pdata); |
| extern void r8a7779_init_late(void); |
| extern void r8a7779_clock_init(void); |
| extern void r8a7779_pinmux_init(void); |
| diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c |
| index 13049e9d691c..51a43c52c611 100644 |
| --- a/arch/arm/mach-shmobile/setup-r8a7779.c |
| +++ b/arch/arm/mach-shmobile/setup-r8a7779.c |
| @@ -610,33 +610,6 @@ static struct resource ether_resources[] __initdata = { |
| }, |
| }; |
| |
| -#define R8A7779_VIN(idx) \ |
| -static struct resource vin##idx##_resources[] __initdata = { \ |
| - DEFINE_RES_MEM(0xffc50000 + 0x1000 * (idx), 0x1000), \ |
| - DEFINE_RES_IRQ(gic_iid(0x5f + (idx))), \ |
| -}; \ |
| - \ |
| -static struct platform_device_info vin##idx##_info __initdata = { \ |
| - .parent = &platform_bus, \ |
| - .name = "r8a7779-vin", \ |
| - .id = idx, \ |
| - .res = vin##idx##_resources, \ |
| - .num_res = ARRAY_SIZE(vin##idx##_resources), \ |
| - .dma_mask = DMA_BIT_MASK(32), \ |
| -} |
| - |
| -R8A7779_VIN(0); |
| -R8A7779_VIN(1); |
| -R8A7779_VIN(2); |
| -R8A7779_VIN(3); |
| - |
| -static struct platform_device_info *vin_info_table[] __initdata = { |
| - &vin0_info, |
| - &vin1_info, |
| - &vin2_info, |
| - &vin3_info, |
| -}; |
| - |
| /* HPB-DMA */ |
| |
| /* Asynchronous mode register bits */ |
| @@ -833,16 +806,6 @@ void __init r8a7779_add_ether_device(struct sh_eth_plat_data *pdata) |
| pdata, sizeof(*pdata)); |
| } |
| |
| -void __init r8a7779_add_vin_device(int id, struct rcar_vin_platform_data *pdata) |
| -{ |
| - BUG_ON(id < 0 || id > 3); |
| - |
| - vin_info_table[id]->data = pdata; |
| - vin_info_table[id]->size_data = sizeof(*pdata); |
| - |
| - platform_device_register_full(vin_info_table[id]); |
| -} |
| - |
| /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ |
| void __init __weak r8a7779_register_twd(void) { } |
| |
| -- |
| 1.8.5.rc3 |
| |