aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-sa1100
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-03-25 18:54:16 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-03-25 18:54:16 -0400
commit374da9da22ebaad0524c77905b5e89ae4619bef3 (patch)
tree78f8ebbbc2e730b8e510e3a68b5b73755196fb68 /arch/arm/mach-sa1100
parentfbae0f8912dc12b284433c05417ea76311205bbf (diff)
parent81e6ca3eb74d6bdbab181dd2db378f49f76f0d97 (diff)
Merge branch 'sa1111' into sa11x0
Conflicts: arch/arm/common/sa1111.c arch/arm/mach-sa1100/neponset.c Fixed: arch/arm/mach-sa1100/assabet.c for the neponset changes
Diffstat (limited to 'arch/arm/mach-sa1100')
-rw-r--r--arch/arm/mach-sa1100/assabet.c15
-rw-r--r--arch/arm/mach-sa1100/badge4.c21
-rw-r--r--arch/arm/mach-sa1100/jornada720.c6
-rw-r--r--arch/arm/mach-sa1100/neponset.c15
4 files changed, 19 insertions, 38 deletions
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c
index f2030bc22cde..e2d411a8d4ce 100644
--- a/arch/arm/mach-sa1100/assabet.c
+++ b/arch/arm/mach-sa1100/assabet.c
@@ -425,21 +425,8 @@ static void __init assabet_map_io(void)
425 */ 425 */
426 Ser1SDCR0 |= SDCR0_SUS; 426 Ser1SDCR0 |= SDCR0_SUS;
427 427
428 if (machine_has_neponset()) { 428 if (!machine_has_neponset())
429#ifdef CONFIG_ASSABET_NEPONSET
430 extern void neponset_map_io(void);
431
432 /*
433 * We map Neponset registers even if it isn't present since
434 * many drivers will try to probe their stuff (and fail).
435 * This is still more friendly than a kernel paging request
436 * crash.
437 */
438 neponset_map_io();
439#endif
440 } else {
441 sa1100_register_uart_fns(&assabet_port_fns); 429 sa1100_register_uart_fns(&assabet_port_fns);
442 }
443 430
444 /* 431 /*
445 * When Neponset is attached, the first UART should be 432 * When Neponset is attached, the first UART should be
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c
index ce2dbdf4ba1a..5839c9d8bb92 100644
--- a/arch/arm/mach-sa1100/badge4.c
+++ b/arch/arm/mach-sa1100/badge4.c
@@ -43,8 +43,24 @@ static struct resource sa1111_resources[] = {
43 [1] = DEFINE_RES_IRQ(BADGE4_IRQ_GPIO_SA1111), 43 [1] = DEFINE_RES_IRQ(BADGE4_IRQ_GPIO_SA1111),
44}; 44};
45 45
46static int badge4_sa1111_enable(void *data, unsigned devid)
47{
48 if (devid == SA1111_DEVID_USB)
49 badge4_set_5V(BADGE4_5V_USB, 1);
50 return 0;
51}
52
53static void badge4_sa1111_disable(void *data, unsigned devid)
54{
55 if (devid == SA1111_DEVID_USB)
56 badge4_set_5V(BADGE4_5V_USB, 0);
57}
58
46static struct sa1111_platform_data sa1111_info = { 59static struct sa1111_platform_data sa1111_info = {
47 .irq_base = IRQ_BOARD_END, 60 .irq_base = IRQ_BOARD_END,
61 .disable_devs = SA1111_DEVID_PS2_MSE,
62 .enable = badge4_sa1111_enable,
63 .disable = badge4_sa1111_disable,
48}; 64};
49 65
50static u64 sa1111_dmamask = 0xffffffffUL; 66static u64 sa1111_dmamask = 0xffffffffUL;
@@ -258,11 +274,6 @@ static struct map_desc badge4_io_desc[] __initdata = {
258 .pfn = __phys_to_pfn(0x10000000), 274 .pfn = __phys_to_pfn(0x10000000),
259 .length = 0x00100000, 275 .length = 0x00100000,
260 .type = MT_DEVICE 276 .type = MT_DEVICE
261 }, { /* SA-1111 */
262 .virtual = 0xf4000000,
263 .pfn = __phys_to_pfn(0x48000000),
264 .length = 0x00100000,
265 .type = MT_DEVICE
266 } 277 }
267}; 278};
268 279
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c
index 8512cfcc0d9b..8be8130baf63 100644
--- a/arch/arm/mach-sa1100/jornada720.c
+++ b/arch/arm/mach-sa1100/jornada720.c
@@ -195,6 +195,7 @@ static struct resource sa1111_resources[] = {
195 195
196static struct sa1111_platform_data sa1111_info = { 196static struct sa1111_platform_data sa1111_info = {
197 .irq_base = IRQ_BOARD_END, 197 .irq_base = IRQ_BOARD_END,
198 .disable_devs = SA1111_DEVID_PS2_MSE,
198}; 199};
199 200
200static u64 sa1111_dmamask = 0xffffffffUL; 201static u64 sa1111_dmamask = 0xffffffffUL;
@@ -268,11 +269,6 @@ static struct map_desc jornada720_io_desc[] __initdata = {
268 .pfn = __phys_to_pfn(EPSONFBSTART), 269 .pfn = __phys_to_pfn(EPSONFBSTART),
269 .length = EPSONFBLEN, 270 .length = EPSONFBLEN,
270 .type = MT_DEVICE 271 .type = MT_DEVICE
271 }, { /* SA-1111 */
272 .virtual = 0xf4000000,
273 .pfn = __phys_to_pfn(SA1111REGSTART),
274 .length = SA1111REGLEN,
275 .type = MT_DEVICE
276 } 272 }
277}; 273};
278 274
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 7ffa631eede4..3297aa22cd77 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -229,6 +229,7 @@ static struct irq_chip nochip = {
229 229
230static struct sa1111_platform_data sa1111_info = { 230static struct sa1111_platform_data sa1111_info = {
231 .irq_base = IRQ_BOARD_END, 231 .irq_base = IRQ_BOARD_END,
232 .disable_devs = SA1111_DEVID_PS2_MSE,
232}; 233};
233 234
234static int __devinit neponset_probe(struct platform_device *dev) 235static int __devinit neponset_probe(struct platform_device *dev)
@@ -432,17 +433,3 @@ static int __init neponset_init(void)
432} 433}
433 434
434subsys_initcall(neponset_init); 435subsys_initcall(neponset_init);
435
436static struct map_desc neponset_io_desc[] __initdata = {
437 { /* SA-1111 */
438 .virtual = 0xf4000000,
439 .pfn = __phys_to_pfn(0x40000000),
440 .length = SZ_1M,
441 .type = MT_DEVICE
442 }
443};
444
445void __init neponset_map_io(void)
446{
447 iotable_init(neponset_io_desc, ARRAY_SIZE(neponset_io_desc));
448}