diff options
author | Magnus Damm <damm@opensource.se> | 2012-02-29 07:37:19 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-03-12 17:19:41 -0400 |
commit | 5d7220ec000fe357b8e91b4be66a2b0b061c867f (patch) | |
tree | 0560e35b6a22d32e0d877d54eae79b317a277c90 /arch/arm/mach-shmobile | |
parent | bfc46f3ef838ab3c01f5e240ec43afaf59f7061b (diff) |
ARM: mach-shmobile: sh7372 map_io and init_early update
Update the sh7372 SoC and the AP4EVB and Mackerel boards to make use
of the functions sh7372_map_io() and sh7372_add_early_devices().
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/board-ap4evb.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/common.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-sh7372.c | 22 |
4 files changed, 27 insertions, 46 deletions
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index eeb4d9664584..c57ded14607c 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -61,7 +61,6 @@ | |||
61 | 61 | ||
62 | #include <asm/mach-types.h> | 62 | #include <asm/mach-types.h> |
63 | #include <asm/mach/arch.h> | 63 | #include <asm/mach/arch.h> |
64 | #include <asm/mach/map.h> | ||
65 | #include <asm/mach/time.h> | 64 | #include <asm/mach/time.h> |
66 | #include <asm/setup.h> | 65 | #include <asm/setup.h> |
67 | 66 | ||
@@ -1190,27 +1189,6 @@ static struct i2c_board_info i2c1_devices[] = { | |||
1190 | }, | 1189 | }, |
1191 | }; | 1190 | }; |
1192 | 1191 | ||
1193 | static struct map_desc ap4evb_io_desc[] __initdata = { | ||
1194 | /* create a 1:1 entity map for 0xe6xxxxxx | ||
1195 | * used by CPGA, INTC and PFC. | ||
1196 | */ | ||
1197 | { | ||
1198 | .virtual = 0xe6000000, | ||
1199 | .pfn = __phys_to_pfn(0xe6000000), | ||
1200 | .length = 256 << 20, | ||
1201 | .type = MT_DEVICE_NONSHARED | ||
1202 | }, | ||
1203 | }; | ||
1204 | |||
1205 | static void __init ap4evb_map_io(void) | ||
1206 | { | ||
1207 | iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc)); | ||
1208 | |||
1209 | /* setup early devices and console here as well */ | ||
1210 | sh7372_add_early_devices(); | ||
1211 | shmobile_setup_console(); | ||
1212 | } | ||
1213 | |||
1214 | #define GPIO_PORT9CR 0xE6051009 | 1192 | #define GPIO_PORT9CR 0xE6051009 |
1215 | #define GPIO_PORT10CR 0xE605100A | 1193 | #define GPIO_PORT10CR 0xE605100A |
1216 | #define USCCR1 0xE6058144 | 1194 | #define USCCR1 0xE6058144 |
@@ -1469,7 +1447,8 @@ static struct sys_timer ap4evb_timer = { | |||
1469 | }; | 1447 | }; |
1470 | 1448 | ||
1471 | MACHINE_START(AP4EVB, "ap4evb") | 1449 | MACHINE_START(AP4EVB, "ap4evb") |
1472 | .map_io = ap4evb_map_io, | 1450 | .map_io = sh7372_map_io, |
1451 | .init_early = sh7372_add_early_devices, | ||
1473 | .init_irq = sh7372_init_irq, | 1452 | .init_irq = sh7372_init_irq, |
1474 | .handle_irq = shmobile_handle_irq_intc, | 1453 | .handle_irq = shmobile_handle_irq_intc, |
1475 | .init_machine = ap4evb_init, | 1454 | .init_machine = ap4evb_init, |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index a2813247b455..de51c07b8686 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -58,7 +58,6 @@ | |||
58 | 58 | ||
59 | #include <asm/mach/arch.h> | 59 | #include <asm/mach/arch.h> |
60 | #include <asm/mach/time.h> | 60 | #include <asm/mach/time.h> |
61 | #include <asm/mach/map.h> | ||
62 | #include <asm/mach-types.h> | 61 | #include <asm/mach-types.h> |
63 | 62 | ||
64 | /* | 63 | /* |
@@ -1337,27 +1336,6 @@ static struct i2c_board_info i2c1_devices[] = { | |||
1337 | }, | 1336 | }, |
1338 | }; | 1337 | }; |
1339 | 1338 | ||
1340 | static struct map_desc mackerel_io_desc[] __initdata = { | ||
1341 | /* create a 1:1 entity map for 0xe6xxxxxx | ||
1342 | * used by CPGA, INTC and PFC. | ||
1343 | */ | ||
1344 | { | ||
1345 | .virtual = 0xe6000000, | ||
1346 | .pfn = __phys_to_pfn(0xe6000000), | ||
1347 | .length = 256 << 20, | ||
1348 | .type = MT_DEVICE_NONSHARED | ||
1349 | }, | ||
1350 | }; | ||
1351 | |||
1352 | static void __init mackerel_map_io(void) | ||
1353 | { | ||
1354 | iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc)); | ||
1355 | |||
1356 | /* setup early devices and console here as well */ | ||
1357 | sh7372_add_early_devices(); | ||
1358 | shmobile_setup_console(); | ||
1359 | } | ||
1360 | |||
1361 | #define GPIO_PORT9CR 0xE6051009 | 1339 | #define GPIO_PORT9CR 0xE6051009 |
1362 | #define GPIO_PORT10CR 0xE605100A | 1340 | #define GPIO_PORT10CR 0xE605100A |
1363 | #define GPIO_PORT167CR 0xE60520A7 | 1341 | #define GPIO_PORT167CR 0xE60520A7 |
@@ -1587,7 +1565,8 @@ static struct sys_timer mackerel_timer = { | |||
1587 | }; | 1565 | }; |
1588 | 1566 | ||
1589 | MACHINE_START(MACKEREL, "mackerel") | 1567 | MACHINE_START(MACKEREL, "mackerel") |
1590 | .map_io = mackerel_map_io, | 1568 | .map_io = sh7372_map_io, |
1569 | .init_early = sh7372_add_early_devices, | ||
1591 | .init_irq = sh7372_init_irq, | 1570 | .init_irq = sh7372_init_irq, |
1592 | .handle_irq = shmobile_handle_irq_intc, | 1571 | .handle_irq = shmobile_handle_irq_intc, |
1593 | .init_machine = mackerel_init, | 1572 | .init_machine = mackerel_init, |
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h index a77f027ccc3c..3858b897f98b 100644 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h | |||
@@ -32,6 +32,7 @@ extern struct clk sh7377_extalc1_clk; | |||
32 | extern struct clk sh7377_extal2_clk; | 32 | extern struct clk sh7377_extal2_clk; |
33 | 33 | ||
34 | extern void sh7372_init_irq(void); | 34 | extern void sh7372_init_irq(void); |
35 | extern void sh7372_map_io(void); | ||
35 | extern void sh7372_add_early_devices(void); | 36 | extern void sh7372_add_early_devices(void); |
36 | extern void sh7372_add_standard_devices(void); | 37 | extern void sh7372_add_standard_devices(void); |
37 | extern void sh7372_clock_init(void); | 38 | extern void sh7372_clock_init(void); |
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index a83cf51fc099..12b437801f00 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -33,9 +33,28 @@ | |||
33 | #include <linux/pm_domain.h> | 33 | #include <linux/pm_domain.h> |
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
35 | #include <mach/sh7372.h> | 35 | #include <mach/sh7372.h> |
36 | #include <mach/common.h> | ||
37 | #include <asm/mach/map.h> | ||
36 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
37 | #include <asm/mach/arch.h> | 39 | #include <asm/mach/arch.h> |
38 | 40 | ||
41 | static struct map_desc sh7372_io_desc[] __initdata = { | ||
42 | /* create a 1:1 entity map for 0xe6xxxxxx | ||
43 | * used by CPGA, INTC and PFC. | ||
44 | */ | ||
45 | { | ||
46 | .virtual = 0xe6000000, | ||
47 | .pfn = __phys_to_pfn(0xe6000000), | ||
48 | .length = 256 << 20, | ||
49 | .type = MT_DEVICE_NONSHARED | ||
50 | }, | ||
51 | }; | ||
52 | |||
53 | void __init sh7372_map_io(void) | ||
54 | { | ||
55 | iotable_init(sh7372_io_desc, ARRAY_SIZE(sh7372_io_desc)); | ||
56 | } | ||
57 | |||
39 | /* SCIFA0 */ | 58 | /* SCIFA0 */ |
40 | static struct plat_sci_port scif0_platform_data = { | 59 | static struct plat_sci_port scif0_platform_data = { |
41 | .mapbase = 0xe6c40000, | 60 | .mapbase = 0xe6c40000, |
@@ -1049,4 +1068,7 @@ void __init sh7372_add_early_devices(void) | |||
1049 | { | 1068 | { |
1050 | early_platform_add_devices(sh7372_early_devices, | 1069 | early_platform_add_devices(sh7372_early_devices, |
1051 | ARRAY_SIZE(sh7372_early_devices)); | 1070 | ARRAY_SIZE(sh7372_early_devices)); |
1071 | |||
1072 | /* setup early console here as well */ | ||
1073 | shmobile_setup_console(); | ||
1052 | } | 1074 | } |