diff options
Diffstat (limited to 'kernel/arch/arm/mach-mmp/include/mach/uncompress.h')
-rw-r--r-- | kernel/arch/arm/mach-mmp/include/mach/uncompress.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kernel/arch/arm/mach-mmp/include/mach/uncompress.h b/kernel/arch/arm/mach-mmp/include/mach/uncompress.h new file mode 100644 index 000000000..8890fa8fa --- /dev/null +++ b/kernel/arch/arm/mach-mmp/include/mach/uncompress.h @@ -0,0 +1,45 @@ +/* + * arch/arm/mach-mmp/include/mach/uncompress.h + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/serial_reg.h> +#include <mach/addr-map.h> +#include <asm/mach-types.h> + +#define UART1_BASE (APB_PHYS_BASE + 0x36000) +#define UART2_BASE (APB_PHYS_BASE + 0x17000) +#define UART3_BASE (APB_PHYS_BASE + 0x18000) + +volatile unsigned long *UART; + +static inline void putc(char c) +{ + /* UART enabled? */ + if (!(UART[UART_IER] & UART_IER_UUE)) + return; + + while (!(UART[UART_LSR] & UART_LSR_THRE)) + barrier(); + + UART[UART_TX] = c; +} + +/* + * This does not append a newline + */ +static inline void flush(void) +{ +} + +static inline void arch_decomp_setup(void) +{ + /* default to UART2 */ + UART = (unsigned long *)UART2_BASE; + + if (machine_is_avengers_lite()) + UART = (unsigned long *)UART3_BASE; +} |