diff options
Diffstat (limited to 'arch/sh/kernel/cpu/sh4/setup-sh7760.c')
| -rw-r--r-- | arch/sh/kernel/cpu/sh4/setup-sh7760.c | 140 | 
1 files changed, 45 insertions, 95 deletions
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c index 98e075ada44..973b736b3b9 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c @@ -128,108 +128,117 @@ static DECLARE_INTC_DESC(intc_desc_irq, "sh7760-irq", vectors_irq, groups,  			 mask_registers, prio_registers, NULL);  static struct plat_sci_port scif0_platform_data = { -	.mapbase	= 0xfe600000,  	.flags		= UPF_BOOT_AUTOCONF,  	.scscr		= SCSCR_RE | SCSCR_TE | SCSCR_REIE, -	.scbrr_algo_id	= SCBRR_ALGO_2,  	.type		= PORT_SCIF, -	.irqs		= { evt2irq(0x880), -			    evt2irq(0x8a0), -			    evt2irq(0x8e0), -			    evt2irq(0x8c0) },  	.regtype	= SCIx_SH4_SCIF_FIFODATA_REGTYPE,  }; +static struct resource scif0_resources[] = { +	DEFINE_RES_MEM(0xfe600000, 0x100), +	DEFINE_RES_IRQ(evt2irq(0x880)), +	DEFINE_RES_IRQ(evt2irq(0x8a0)), +	DEFINE_RES_IRQ(evt2irq(0x8e0)), +	DEFINE_RES_IRQ(evt2irq(0x8c0)), +}; +  static struct platform_device scif0_device = {  	.name		= "sh-sci",  	.id		= 0, +	.resource	= scif0_resources, +	.num_resources	= ARRAY_SIZE(scif0_resources),  	.dev		= {  		.platform_data	= &scif0_platform_data,  	},  };  static struct plat_sci_port scif1_platform_data = { -	.mapbase	= 0xfe610000,  	.flags		= UPF_BOOT_AUTOCONF,  	.type		= PORT_SCIF,  	.scscr		= SCSCR_RE | SCSCR_TE | SCSCR_REIE, -	.scbrr_algo_id	= SCBRR_ALGO_2, -	.irqs		= { evt2irq(0xb00), -			    evt2irq(0xb20), -			    evt2irq(0xb60), -			    evt2irq(0xb40) },  	.regtype	= SCIx_SH4_SCIF_FIFODATA_REGTYPE,  }; +static struct resource scif1_resources[] = { +	DEFINE_RES_MEM(0xfe610000, 0x100), +	DEFINE_RES_IRQ(evt2irq(0xb00)), +	DEFINE_RES_IRQ(evt2irq(0xb20)), +	DEFINE_RES_IRQ(evt2irq(0xb60)), +	DEFINE_RES_IRQ(evt2irq(0xb40)), +}; +  static struct platform_device scif1_device = {  	.name		= "sh-sci",  	.id		= 1, +	.resource	= scif1_resources, +	.num_resources	= ARRAY_SIZE(scif1_resources),  	.dev		= {  		.platform_data	= &scif1_platform_data,  	},  };  static struct plat_sci_port scif2_platform_data = { -	.mapbase	= 0xfe620000,  	.flags		= UPF_BOOT_AUTOCONF,  	.scscr		= SCSCR_RE | SCSCR_TE | SCSCR_REIE, -	.scbrr_algo_id	= SCBRR_ALGO_2,  	.type		= PORT_SCIF, -	.irqs		= { evt2irq(0xb80), -			    evt2irq(0xba0), -			    evt2irq(0xbe0), -			    evt2irq(0xbc0) },  	.regtype	= SCIx_SH4_SCIF_FIFODATA_REGTYPE,  }; +static struct resource scif2_resources[] = { +	DEFINE_RES_MEM(0xfe620000, 0x100), +	DEFINE_RES_IRQ(evt2irq(0xb80)), +	DEFINE_RES_IRQ(evt2irq(0xba0)), +	DEFINE_RES_IRQ(evt2irq(0xbe0)), +	DEFINE_RES_IRQ(evt2irq(0xbc0)), +}; +  static struct platform_device scif2_device = {  	.name		= "sh-sci",  	.id		= 2, +	.resource	= scif2_resources, +	.num_resources	= ARRAY_SIZE(scif2_resources),  	.dev		= {  		.platform_data	= &scif2_platform_data,  	},  };  static struct plat_sci_port scif3_platform_data = { -	.mapbase	= 0xfe480000,  	.flags		= UPF_BOOT_AUTOCONF,  	.scscr		= SCSCR_RE | SCSCR_TE | SCSCR_REIE, -	.scbrr_algo_id	= SCBRR_ALGO_2,  	.type		= PORT_SCI, -	.irqs		= { evt2irq(0xc00), -			    evt2irq(0xc20), -			    evt2irq(0xc40), },  	.regshift	= 2,  }; +static struct resource scif3_resources[] = { +	DEFINE_RES_MEM(0xfe480000, 0x100), +	DEFINE_RES_IRQ(evt2irq(0xc00)), +	DEFINE_RES_IRQ(evt2irq(0xc20)), +	DEFINE_RES_IRQ(evt2irq(0xc40)), +}; +  static struct platform_device scif3_device = {  	.name		= "sh-sci",  	.id		= 3, +	.resource	= scif3_resources, +	.num_resources	= ARRAY_SIZE(scif3_resources),  	.dev		= {  		.platform_data	= &scif3_platform_data,  	},  };  static struct sh_timer_config tmu0_platform_data = { -	.channel_offset = 0x04, -	.timer_bit = 0, -	.clockevent_rating = 200, +	.channels_mask = 7,  };  static struct resource tmu0_resources[] = { -	[0] = { -		.start	= 0xffd80008, -		.end	= 0xffd80013, -		.flags	= IORESOURCE_MEM, -	}, -	[1] = { -		.start	= evt2irq(0x400), -		.flags	= IORESOURCE_IRQ, -	}, +	DEFINE_RES_MEM(0xffd80000, 0x30), +	DEFINE_RES_IRQ(evt2irq(0x400)), +	DEFINE_RES_IRQ(evt2irq(0x420)), +	DEFINE_RES_IRQ(evt2irq(0x440)),  };  static struct platform_device tmu0_device = { -	.name		= "sh_tmu", +	.name		= "sh-tmu",  	.id		= 0,  	.dev = {  		.platform_data	= &tmu0_platform_data, @@ -238,61 +247,6 @@ static struct platform_device tmu0_device = {  	.num_resources	= ARRAY_SIZE(tmu0_resources),  }; -static struct sh_timer_config tmu1_platform_data = { -	.channel_offset = 0x10, -	.timer_bit = 1, -	.clocksource_rating = 200, -}; - -static struct resource tmu1_resources[] = { -	[0] = { -		.start	= 0xffd80014, -		.end	= 0xffd8001f, -		.flags	= IORESOURCE_MEM, -	}, -	[1] = { -		.start	= evt2irq(0x420), -		.flags	= IORESOURCE_IRQ, -	}, -}; - -static struct platform_device tmu1_device = { -	.name		= "sh_tmu", -	.id		= 1, -	.dev = { -		.platform_data	= &tmu1_platform_data, -	}, -	.resource	= tmu1_resources, -	.num_resources	= ARRAY_SIZE(tmu1_resources), -}; - -static struct sh_timer_config tmu2_platform_data = { -	.channel_offset = 0x1c, -	.timer_bit = 2, -}; - -static struct resource tmu2_resources[] = { -	[0] = { -		.start	= 0xffd80020, -		.end	= 0xffd8002f, -		.flags	= IORESOURCE_MEM, -	}, -	[1] = { -		.start	= evt2irq(0x440), -		.flags	= IORESOURCE_IRQ, -	}, -}; - -static struct platform_device tmu2_device = { -	.name		= "sh_tmu", -	.id		= 2, -	.dev = { -		.platform_data	= &tmu2_platform_data, -	}, -	.resource	= tmu2_resources, -	.num_resources	= ARRAY_SIZE(tmu2_resources), -}; -  static struct platform_device *sh7760_devices[] __initdata = {  	&scif0_device, @@ -300,8 +254,6 @@ static struct platform_device *sh7760_devices[] __initdata = {  	&scif2_device,  	&scif3_device,  	&tmu0_device, -	&tmu1_device, -	&tmu2_device,  };  static int __init sh7760_devices_setup(void) @@ -317,8 +269,6 @@ static struct platform_device *sh7760_early_devices[] __initdata = {  	&scif2_device,  	&scif3_device,  	&tmu0_device, -	&tmu1_device, -	&tmu2_device,  };  void __init plat_early_device_setup(void)  | 
