blob: 0c898fcf909c90b1b6ef4b124ced34e076f6fe7d [file] [log] [blame]
Binghua Duan02c981c2011-07-08 17:40:12 +08001/*
2 * arch/arm/mach-prima2/include/mach/uncompress.h
3 *
4 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
5 *
6 * Licensed under GPLv2 or later.
7 */
8
9#ifndef __ASM_ARCH_UNCOMPRESS_H
10#define __ASM_ARCH_UNCOMPRESS_H
11
12#include <linux/io.h>
13#include <mach/hardware.h>
14#include <mach/uart.h>
15
16void arch_decomp_setup(void)
17{
18}
19
20#define arch_decomp_wdog()
21
22static __inline__ void putc(char c)
23{
24 /*
25 * during kernel decompression, all mappings are flat:
26 * virt_addr == phys_addr
27 */
Arnd Bergmann49d394b2012-09-14 20:21:17 +000028 while (__raw_readl((void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_STATUS)
Binghua Duan02c981c2011-07-08 17:40:12 +080029 & SIRFSOC_UART1_TXFIFO_FULL)
30 barrier();
31
Arnd Bergmann49d394b2012-09-14 20:21:17 +000032 __raw_writel(c, (void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_DATA);
Binghua Duan02c981c2011-07-08 17:40:12 +080033}
34
35static inline void flush(void)
36{
37}
38
39#endif
40