[ARM] mmp: avengers lite (pxa168) board bring up
[linux-2.6.git] / arch / arm / mach-mmp / include / mach / uncompress.h
1 /*
2  * arch/arm/mach-mmp/include/mach/uncompress.h
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #include <linux/serial_reg.h>
10 #include <mach/addr-map.h>
11 #include <asm/mach-types.h>
12
13 #define UART1_BASE      (APB_PHYS_BASE + 0x36000)
14 #define UART2_BASE      (APB_PHYS_BASE + 0x17000)
15 #define UART3_BASE      (APB_PHYS_BASE + 0x18000)
16
17 static volatile unsigned long *UART = (unsigned long *)UART2_BASE;
18
19 static inline void putc(char c)
20 {
21         /* UART enabled? */
22         if (!(UART[UART_IER] & UART_IER_UUE))
23                 return;
24
25         while (!(UART[UART_LSR] & UART_LSR_THRE))
26                 barrier();
27
28         UART[UART_TX] = c;
29 }
30
31 /*
32  * This does not append a newline
33  */
34 static inline void flush(void)
35 {
36 }
37
38 static inline void arch_decomp_setup(void)
39 {
40         if (machine_is_avengers_lite())
41                 UART = (unsigned long *)UART3_BASE;
42 }
43
44 /*
45  * nothing to do
46  */
47
48 #define arch_decomp_wdog()