Loading arch/sh/kernel/cpu/sh4a/setup-shx3.c +207 −2 Original line number Original line Diff line number Diff line /* /* * SH-X3 Setup * SH-X3 Prototype Setup * * * Copyright (C) 2007 Paul Mundt * Copyright (C) 2007 - 2009 Paul Mundt * * * This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * License. See the file "COPYING" in the main directory of this archive Loading @@ -12,6 +12,7 @@ #include <linux/serial.h> #include <linux/serial.h> #include <linux/serial_sci.h> #include <linux/serial_sci.h> #include <linux/io.h> #include <linux/io.h> #include <linux/sh_timer.h> #include <asm/mmzone.h> #include <asm/mmzone.h> static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port sci_platform_data[] = { Loading Loading @@ -48,17 +49,221 @@ static struct platform_device sci_device = { }, }, }; }; static struct sh_timer_config tmu0_platform_data = { .name = "TMU0", .channel_offset = 0x04, .timer_bit = 0, .clk = "module_clk", .clockevent_rating = 200, }; static struct resource tmu0_resources[] = { [0] = { .name = "TMU0", .start = 0xffc10008, .end = 0xffc10013, .flags = IORESOURCE_MEM, }, [1] = { .start = 16, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu0_device = { .name = "sh_tmu", .id = 0, .dev = { .platform_data = &tmu0_platform_data, }, .resource = tmu0_resources, .num_resources = ARRAY_SIZE(tmu0_resources), }; static struct sh_timer_config tmu1_platform_data = { .name = "TMU1", .channel_offset = 0x10, .timer_bit = 1, .clk = "module_clk", .clocksource_rating = 200, }; static struct resource tmu1_resources[] = { [0] = { .name = "TMU1", .start = 0xffc10014, .end = 0xffc1001f, .flags = IORESOURCE_MEM, }, [1] = { .start = 17, .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 = { .name = "TMU2", .channel_offset = 0x1c, .timer_bit = 2, .clk = "module_clk", }; static struct resource tmu2_resources[] = { [0] = { .name = "TMU2", .start = 0xffc10020, .end = 0xffc1002f, .flags = IORESOURCE_MEM, }, [1] = { .start = 18, .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 sh_timer_config tmu3_platform_data = { .name = "TMU3", .channel_offset = 0x04, .timer_bit = 0, .clk = "module_clk", }; static struct resource tmu3_resources[] = { [0] = { .name = "TMU3", .start = 0xffc20008, .end = 0xffc20013, .flags = IORESOURCE_MEM, }, [1] = { .start = 19, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu3_device = { .name = "sh_tmu", .id = 3, .dev = { .platform_data = &tmu3_platform_data, }, .resource = tmu3_resources, .num_resources = ARRAY_SIZE(tmu3_resources), }; static struct sh_timer_config tmu4_platform_data = { .name = "TMU4", .channel_offset = 0x10, .timer_bit = 1, .clk = "module_clk", }; static struct resource tmu4_resources[] = { [0] = { .name = "TMU4", .start = 0xffc20014, .end = 0xffc2001f, .flags = IORESOURCE_MEM, }, [1] = { .start = 20, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu4_device = { .name = "sh_tmu", .id = 4, .dev = { .platform_data = &tmu4_platform_data, }, .resource = tmu4_resources, .num_resources = ARRAY_SIZE(tmu4_resources), }; static struct sh_timer_config tmu5_platform_data = { .name = "TMU5", .channel_offset = 0x1c, .timer_bit = 2, .clk = "module_clk", }; static struct resource tmu5_resources[] = { [0] = { .name = "TMU5", .start = 0xffc20020, .end = 0xffc2002b, .flags = IORESOURCE_MEM, }, [1] = { .start = 21, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu5_device = { .name = "sh_tmu", .id = 5, .dev = { .platform_data = &tmu5_platform_data, }, .resource = tmu5_resources, .num_resources = ARRAY_SIZE(tmu5_resources), }; static struct platform_device *shx3_early_devices[] __initdata = { &tmu0_device, &tmu1_device, &tmu2_device, &tmu3_device, &tmu4_device, &tmu5_device, }; static struct platform_device *shx3_devices[] __initdata = { static struct platform_device *shx3_devices[] __initdata = { &sci_device, &sci_device, }; }; static int __init shx3_devices_setup(void) static int __init shx3_devices_setup(void) { { int ret; ret = platform_add_devices(shx3_early_devices, ARRAY_SIZE(shx3_early_devices)); if (unlikely(ret != 0)) return ret; return platform_add_devices(shx3_devices, return platform_add_devices(shx3_devices, ARRAY_SIZE(shx3_devices)); ARRAY_SIZE(shx3_devices)); } } __initcall(shx3_devices_setup); __initcall(shx3_devices_setup); void __init plat_early_device_setup(void) { early_platform_add_devices(shx3_early_devices, ARRAY_SIZE(shx3_early_devices)); } enum { enum { UNUSED = 0, UNUSED = 0, Loading Loading
arch/sh/kernel/cpu/sh4a/setup-shx3.c +207 −2 Original line number Original line Diff line number Diff line /* /* * SH-X3 Setup * SH-X3 Prototype Setup * * * Copyright (C) 2007 Paul Mundt * Copyright (C) 2007 - 2009 Paul Mundt * * * This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * License. See the file "COPYING" in the main directory of this archive Loading @@ -12,6 +12,7 @@ #include <linux/serial.h> #include <linux/serial.h> #include <linux/serial_sci.h> #include <linux/serial_sci.h> #include <linux/io.h> #include <linux/io.h> #include <linux/sh_timer.h> #include <asm/mmzone.h> #include <asm/mmzone.h> static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port sci_platform_data[] = { Loading Loading @@ -48,17 +49,221 @@ static struct platform_device sci_device = { }, }, }; }; static struct sh_timer_config tmu0_platform_data = { .name = "TMU0", .channel_offset = 0x04, .timer_bit = 0, .clk = "module_clk", .clockevent_rating = 200, }; static struct resource tmu0_resources[] = { [0] = { .name = "TMU0", .start = 0xffc10008, .end = 0xffc10013, .flags = IORESOURCE_MEM, }, [1] = { .start = 16, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu0_device = { .name = "sh_tmu", .id = 0, .dev = { .platform_data = &tmu0_platform_data, }, .resource = tmu0_resources, .num_resources = ARRAY_SIZE(tmu0_resources), }; static struct sh_timer_config tmu1_platform_data = { .name = "TMU1", .channel_offset = 0x10, .timer_bit = 1, .clk = "module_clk", .clocksource_rating = 200, }; static struct resource tmu1_resources[] = { [0] = { .name = "TMU1", .start = 0xffc10014, .end = 0xffc1001f, .flags = IORESOURCE_MEM, }, [1] = { .start = 17, .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 = { .name = "TMU2", .channel_offset = 0x1c, .timer_bit = 2, .clk = "module_clk", }; static struct resource tmu2_resources[] = { [0] = { .name = "TMU2", .start = 0xffc10020, .end = 0xffc1002f, .flags = IORESOURCE_MEM, }, [1] = { .start = 18, .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 sh_timer_config tmu3_platform_data = { .name = "TMU3", .channel_offset = 0x04, .timer_bit = 0, .clk = "module_clk", }; static struct resource tmu3_resources[] = { [0] = { .name = "TMU3", .start = 0xffc20008, .end = 0xffc20013, .flags = IORESOURCE_MEM, }, [1] = { .start = 19, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu3_device = { .name = "sh_tmu", .id = 3, .dev = { .platform_data = &tmu3_platform_data, }, .resource = tmu3_resources, .num_resources = ARRAY_SIZE(tmu3_resources), }; static struct sh_timer_config tmu4_platform_data = { .name = "TMU4", .channel_offset = 0x10, .timer_bit = 1, .clk = "module_clk", }; static struct resource tmu4_resources[] = { [0] = { .name = "TMU4", .start = 0xffc20014, .end = 0xffc2001f, .flags = IORESOURCE_MEM, }, [1] = { .start = 20, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu4_device = { .name = "sh_tmu", .id = 4, .dev = { .platform_data = &tmu4_platform_data, }, .resource = tmu4_resources, .num_resources = ARRAY_SIZE(tmu4_resources), }; static struct sh_timer_config tmu5_platform_data = { .name = "TMU5", .channel_offset = 0x1c, .timer_bit = 2, .clk = "module_clk", }; static struct resource tmu5_resources[] = { [0] = { .name = "TMU5", .start = 0xffc20020, .end = 0xffc2002b, .flags = IORESOURCE_MEM, }, [1] = { .start = 21, .flags = IORESOURCE_IRQ, }, }; static struct platform_device tmu5_device = { .name = "sh_tmu", .id = 5, .dev = { .platform_data = &tmu5_platform_data, }, .resource = tmu5_resources, .num_resources = ARRAY_SIZE(tmu5_resources), }; static struct platform_device *shx3_early_devices[] __initdata = { &tmu0_device, &tmu1_device, &tmu2_device, &tmu3_device, &tmu4_device, &tmu5_device, }; static struct platform_device *shx3_devices[] __initdata = { static struct platform_device *shx3_devices[] __initdata = { &sci_device, &sci_device, }; }; static int __init shx3_devices_setup(void) static int __init shx3_devices_setup(void) { { int ret; ret = platform_add_devices(shx3_early_devices, ARRAY_SIZE(shx3_early_devices)); if (unlikely(ret != 0)) return ret; return platform_add_devices(shx3_devices, return platform_add_devices(shx3_devices, ARRAY_SIZE(shx3_devices)); ARRAY_SIZE(shx3_devices)); } } __initcall(shx3_devices_setup); __initcall(shx3_devices_setup); void __init plat_early_device_setup(void) { early_platform_add_devices(shx3_early_devices, ARRAY_SIZE(shx3_early_devices)); } enum { enum { UNUSED = 0, UNUSED = 0, Loading