| From e4fc2e07c52c5f04eb320332f35b5dfcbf35b173 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Fri, 6 Dec 2013 10:59:23 +0100 |
| Subject: ARM: shmobile: r8a7740: Use macros to declare SCIF devices |
| |
| Replace copy-n-paste SCIF platform data and device declaration with a |
| macro. This reduces the amount of code and improves readability. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| (cherry picked from commit c9e06d8edc56d87c1882824c2896c7227aedb358) |
| (Queued by Simon Horman for v3.14 but not yet in Linus's tree) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/setup-r8a7740.c | 191 +++++---------------------------- |
| 1 file changed, 29 insertions(+), 162 deletions(-) |
| |
| diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c |
| index b7d4b2c3bc29..8778b57ed7d9 100644 |
| --- a/arch/arm/mach-shmobile/setup-r8a7740.c |
| +++ b/arch/arm/mach-shmobile/setup-r8a7740.c |
| @@ -203,167 +203,34 @@ static struct platform_device irqpin3_device = { |
| }, |
| }; |
| |
| -/* SCIFA0 */ |
| -static struct plat_sci_port scif0_platform_data = { |
| - .mapbase = 0xe6c40000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(100)), |
| -}; |
| - |
| -static struct platform_device scif0_device = { |
| - .name = "sh-sci", |
| - .id = 0, |
| - .dev = { |
| - .platform_data = &scif0_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA1 */ |
| -static struct plat_sci_port scif1_platform_data = { |
| - .mapbase = 0xe6c50000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(101)), |
| -}; |
| - |
| -static struct platform_device scif1_device = { |
| - .name = "sh-sci", |
| - .id = 1, |
| - .dev = { |
| - .platform_data = &scif1_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA2 */ |
| -static struct plat_sci_port scif2_platform_data = { |
| - .mapbase = 0xe6c60000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(102)), |
| -}; |
| - |
| -static struct platform_device scif2_device = { |
| - .name = "sh-sci", |
| - .id = 2, |
| - .dev = { |
| - .platform_data = &scif2_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA3 */ |
| -static struct plat_sci_port scif3_platform_data = { |
| - .mapbase = 0xe6c70000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(103)), |
| -}; |
| - |
| -static struct platform_device scif3_device = { |
| - .name = "sh-sci", |
| - .id = 3, |
| - .dev = { |
| - .platform_data = &scif3_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA4 */ |
| -static struct plat_sci_port scif4_platform_data = { |
| - .mapbase = 0xe6c80000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(104)), |
| -}; |
| - |
| -static struct platform_device scif4_device = { |
| - .name = "sh-sci", |
| - .id = 4, |
| - .dev = { |
| - .platform_data = &scif4_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA5 */ |
| -static struct plat_sci_port scif5_platform_data = { |
| - .mapbase = 0xe6cb0000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(105)), |
| -}; |
| - |
| -static struct platform_device scif5_device = { |
| - .name = "sh-sci", |
| - .id = 5, |
| - .dev = { |
| - .platform_data = &scif5_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA6 */ |
| -static struct plat_sci_port scif6_platform_data = { |
| - .mapbase = 0xe6cc0000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(106)), |
| -}; |
| - |
| -static struct platform_device scif6_device = { |
| - .name = "sh-sci", |
| - .id = 6, |
| - .dev = { |
| - .platform_data = &scif6_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFA7 */ |
| -static struct plat_sci_port scif7_platform_data = { |
| - .mapbase = 0xe6cd0000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFA, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(107)), |
| -}; |
| - |
| -static struct platform_device scif7_device = { |
| - .name = "sh-sci", |
| - .id = 7, |
| - .dev = { |
| - .platform_data = &scif7_platform_data, |
| - }, |
| -}; |
| - |
| -/* SCIFB */ |
| -static struct plat_sci_port scifb_platform_data = { |
| - .mapbase = 0xe6c30000, |
| - .flags = UPF_BOOT_AUTOCONF, |
| - .scscr = SCSCR_RE | SCSCR_TE, |
| - .scbrr_algo_id = SCBRR_ALGO_4, |
| - .type = PORT_SCIFB, |
| - .irqs = SCIx_IRQ_MUXED(gic_spi(108)), |
| -}; |
| +/* SCIF */ |
| +#define R8A7740_SCIF(scif_type, index, baseaddr, irq) \ |
| +static struct plat_sci_port scif##index##_platform_data = { \ |
| + .type = scif_type, \ |
| + .mapbase = baseaddr, \ |
| + .flags = UPF_BOOT_AUTOCONF, \ |
| + .irqs = SCIx_IRQ_MUXED(irq), \ |
| + .scbrr_algo_id = SCBRR_ALGO_4, \ |
| + .scscr = SCSCR_RE | SCSCR_TE, \ |
| +}; \ |
| + \ |
| +static struct platform_device scif##index##_device = { \ |
| + .name = "sh-sci", \ |
| + .id = index, \ |
| + .dev = { \ |
| + .platform_data = &scif##index##_platform_data, \ |
| + }, \ |
| +} |
| |
| -static struct platform_device scifb_device = { |
| - .name = "sh-sci", |
| - .id = 8, |
| - .dev = { |
| - .platform_data = &scifb_platform_data, |
| - }, |
| -}; |
| +R8A7740_SCIF(PORT_SCIFA, 0, 0xe6c40000, gic_spi(100)); |
| +R8A7740_SCIF(PORT_SCIFA, 1, 0xe6c50000, gic_spi(101)); |
| +R8A7740_SCIF(PORT_SCIFA, 2, 0xe6c60000, gic_spi(102)); |
| +R8A7740_SCIF(PORT_SCIFA, 3, 0xe6c70000, gic_spi(103)); |
| +R8A7740_SCIF(PORT_SCIFA, 4, 0xe6c80000, gic_spi(104)); |
| +R8A7740_SCIF(PORT_SCIFA, 5, 0xe6cb0000, gic_spi(105)); |
| +R8A7740_SCIF(PORT_SCIFA, 6, 0xe6cc0000, gic_spi(106)); |
| +R8A7740_SCIF(PORT_SCIFA, 7, 0xe6cd0000, gic_spi(107)); |
| +R8A7740_SCIF(PORT_SCIFB, 8, 0xe6c30000, gic_spi(108)); |
| |
| /* CMT */ |
| static struct sh_timer_config cmt10_platform_data = { |
| @@ -528,7 +395,7 @@ static struct platform_device *r8a7740_devices_dt[] __initdata = { |
| &scif5_device, |
| &scif6_device, |
| &scif7_device, |
| - &scifb_device, |
| + &scif8_device, |
| &cmt10_device, |
| }; |
| |
| @@ -981,7 +848,7 @@ void __init r8a7740_add_standard_devices(void) |
| rmobile_add_device_to_domain("A3SP", &scif5_device); |
| rmobile_add_device_to_domain("A3SP", &scif6_device); |
| rmobile_add_device_to_domain("A3SP", &scif7_device); |
| - rmobile_add_device_to_domain("A3SP", &scifb_device); |
| + rmobile_add_device_to_domain("A3SP", &scif8_device); |
| rmobile_add_device_to_domain("A3SP", &i2c1_device); |
| } |
| |
| -- |
| 1.8.5.rc3 |
| |