1/*
2 * Copyright (C) 2012, Florian Fainelli <florian@openwrt.org>
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#ifndef __ASM_ARCH_UNCOMPRESS_H
10#define __ASM_ARCH_UNCOMPRESS_H
11
12#include <linux/serial_reg.h>
13#include <asm/io.h>
14#include <mach/mcs814x.h>
15#include <mach/cpu.h>
16
17#define UART_SHIFT	(2)
18
19/* cannot be static because the code will be inlined */
20void __iomem *uart_base;
21
22static inline void putc(int c)
23{
24	while (!(__raw_readb(uart_base + (UART_LSR << UART_SHIFT)) & UART_LSR_TEMT));
25	__raw_writeb(c, uart_base + (UART_TX << UART_SHIFT));
26}
27
28static inline void flush(void)
29{
30}
31
32static inline void arch_decomp_setup(void)
33{
34	if (soc_is_mcs8140())
35		uart_base = (void __iomem *)(MCS814X_PHYS_BASE +MCS814X_UART);
36}
37
38#define arch_decomp_wdog()
39
40#endif
41