diff options
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-bast.c')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 59 |
1 files changed, 23 insertions, 36 deletions
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 27f63d5d3a7b..965f27129707 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/arch/arm/mach-s3c2410/mach-bast.c | 1 | /* linux/arch/arm/mach-s3c2410/mach-bast.c |
2 | * | 2 | * |
3 | * Copyright (c) 2003-2005 Simtec Electronics | 3 | * Copyright (c) 2003-2005,2008 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * http://www.simtec.co.uk/products/EB2410ITX/ | 6 | * http://www.simtec.co.uk/products/EB2410ITX/ |
@@ -20,6 +20,8 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/dm9000.h> | 22 | #include <linux/dm9000.h> |
23 | #include <linux/ata_platform.h> | ||
24 | #include <linux/i2c.h> | ||
23 | 25 | ||
24 | #include <net/ax88796.h> | 26 | #include <net/ax88796.h> |
25 | 27 | ||
@@ -56,7 +58,9 @@ | |||
56 | #include <asm/plat-s3c24xx/clock.h> | 58 | #include <asm/plat-s3c24xx/clock.h> |
57 | #include <asm/plat-s3c24xx/devs.h> | 59 | #include <asm/plat-s3c24xx/devs.h> |
58 | #include <asm/plat-s3c24xx/cpu.h> | 60 | #include <asm/plat-s3c24xx/cpu.h> |
61 | |||
59 | #include "usb-simtec.h" | 62 | #include "usb-simtec.h" |
63 | #include "nor-simtec.h" | ||
60 | 64 | ||
61 | #define COPYRIGHT ", (c) 2004-2005 Simtec Electronics" | 65 | #define COPYRIGHT ", (c) 2004-2005 Simtec Electronics" |
62 | 66 | ||
@@ -134,37 +138,21 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
134 | { VA_C2(BAST_VA_ISAIO), PA_CS2(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, | 138 | { VA_C2(BAST_VA_ISAIO), PA_CS2(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, |
135 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 139 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
136 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 140 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
137 | { VA_C2(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | ||
138 | { VA_C2(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | ||
139 | { VA_C2(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | ||
140 | { VA_C2(BAST_VA_IDESECAUX), PA_CS3(BAST_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | ||
141 | 141 | ||
142 | /* slow, word */ | 142 | /* slow, word */ |
143 | { VA_C3(BAST_VA_ISAIO), PA_CS3(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, | 143 | { VA_C3(BAST_VA_ISAIO), PA_CS3(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, |
144 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 144 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
145 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 145 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
146 | { VA_C3(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | ||
147 | { VA_C3(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | ||
148 | { VA_C3(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | ||
149 | { VA_C3(BAST_VA_IDESECAUX), PA_CS3(BAST_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | ||
150 | 146 | ||
151 | /* fast, byte */ | 147 | /* fast, byte */ |
152 | { VA_C4(BAST_VA_ISAIO), PA_CS4(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, | 148 | { VA_C4(BAST_VA_ISAIO), PA_CS4(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, |
153 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 149 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
154 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 150 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
155 | { VA_C4(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | ||
156 | { VA_C4(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | ||
157 | { VA_C4(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | ||
158 | { VA_C4(BAST_VA_IDESECAUX), PA_CS5(BAST_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | ||
159 | 151 | ||
160 | /* fast, word */ | 152 | /* fast, word */ |
161 | { VA_C5(BAST_VA_ISAIO), PA_CS5(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, | 153 | { VA_C5(BAST_VA_ISAIO), PA_CS5(BAST_PA_ISAIO), SZ_16M, MT_DEVICE }, |
162 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 154 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
163 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 155 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
164 | { VA_C5(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | ||
165 | { VA_C5(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | ||
166 | { VA_C5(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | ||
167 | { VA_C5(BAST_VA_IDESECAUX), PA_CS5(BAST_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | ||
168 | }; | 156 | }; |
169 | 157 | ||
170 | #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK | 158 | #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK |
@@ -218,23 +206,6 @@ static struct s3c2410_uartcfg bast_uartcfgs[] __initdata = { | |||
218 | } | 206 | } |
219 | }; | 207 | }; |
220 | 208 | ||
221 | /* NOR Flash on BAST board */ | ||
222 | |||
223 | static struct resource bast_nor_resource[] = { | ||
224 | [0] = { | ||
225 | .start = S3C2410_CS1 + 0x4000000, | ||
226 | .end = S3C2410_CS1 + 0x4000000 + (32*1024*1024) - 1, | ||
227 | .flags = IORESOURCE_MEM, | ||
228 | } | ||
229 | }; | ||
230 | |||
231 | static struct platform_device bast_device_nor = { | ||
232 | .name = "bast-nor", | ||
233 | .id = -1, | ||
234 | .num_resources = ARRAY_SIZE(bast_nor_resource), | ||
235 | .resource = bast_nor_resource, | ||
236 | }; | ||
237 | |||
238 | /* NAND Flash on BAST board */ | 209 | /* NAND Flash on BAST board */ |
239 | 210 | ||
240 | #ifdef CONFIG_PM | 211 | #ifdef CONFIG_PM |
@@ -374,7 +345,7 @@ static struct resource bast_dm9k_resource[] = { | |||
374 | [2] = { | 345 | [2] = { |
375 | .start = IRQ_DM9000, | 346 | .start = IRQ_DM9000, |
376 | .end = IRQ_DM9000, | 347 | .end = IRQ_DM9000, |
377 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH, | 348 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, |
378 | } | 349 | } |
379 | 350 | ||
380 | }; | 351 | }; |
@@ -564,6 +535,18 @@ static struct s3c2410fb_mach_info __initdata bast_fb_info = { | |||
564 | .default_display = 1, | 535 | .default_display = 1, |
565 | }; | 536 | }; |
566 | 537 | ||
538 | /* I2C devices fitted. */ | ||
539 | |||
540 | static struct i2c_board_info bast_i2c_devs[] __initdata = { | ||
541 | { | ||
542 | I2C_BOARD_INFO("tlv320aic23", 0x1a), | ||
543 | }, { | ||
544 | I2C_BOARD_INFO("simtec-pmu", 0x6b), | ||
545 | }, { | ||
546 | I2C_BOARD_INFO("ch7013", 0x75), | ||
547 | }, | ||
548 | }; | ||
549 | |||
567 | /* Standard BAST devices */ | 550 | /* Standard BAST devices */ |
568 | 551 | ||
569 | static struct platform_device *bast_devices[] __initdata = { | 552 | static struct platform_device *bast_devices[] __initdata = { |
@@ -573,7 +556,6 @@ static struct platform_device *bast_devices[] __initdata = { | |||
573 | &s3c_device_i2c, | 556 | &s3c_device_i2c, |
574 | &s3c_device_rtc, | 557 | &s3c_device_rtc, |
575 | &s3c_device_nand, | 558 | &s3c_device_nand, |
576 | &bast_device_nor, | ||
577 | &bast_device_dm9k, | 559 | &bast_device_dm9k, |
578 | &bast_device_asix, | 560 | &bast_device_asix, |
579 | &bast_device_axpp, | 561 | &bast_device_axpp, |
@@ -622,6 +604,11 @@ static void __init bast_init(void) | |||
622 | 604 | ||
623 | s3c24xx_fb_set_platdata(&bast_fb_info); | 605 | s3c24xx_fb_set_platdata(&bast_fb_info); |
624 | platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); | 606 | platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); |
607 | |||
608 | i2c_register_board_info(0, bast_i2c_devs, | ||
609 | ARRAY_SIZE(bast_i2c_devs)); | ||
610 | |||
611 | nor_simtec_init(); | ||
625 | } | 612 | } |
626 | 613 | ||
627 | MACHINE_START(BAST, "Simtec-BAST") | 614 | MACHINE_START(BAST, "Simtec-BAST") |