Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
uncompress.h
Go to the documentation of this file.
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 volatile unsigned long *UART;
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  /* default to UART2 */
41  UART = (unsigned long *)UART2_BASE;
42 
43  if (machine_is_avengers_lite())
44  UART = (unsigned long *)UART3_BASE;
45 }
46 
47 /*
48  * nothing to do
49  */
50 
51 #define arch_decomp_wdog()