blob: 7548cedf2d76ff0e2be2438bd5356aed50ee3778 [file] [log] [blame]
Tzachi Perelstein585cf172007-10-23 15:14:41 -04001/*
Lennert Buytenhek9dd0b192008-03-27 14:51:41 -04002 * include/asm-arm/arch-orion5x/uncompress.h
Tzachi Perelstein585cf172007-10-23 15:14:41 -04003 *
4 * Tzachi Perelstein <tzachi@marvell.com>
5 *
Lennert Buytenhek159ffb32008-03-27 14:51:41 -04006 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
Tzachi Perelstein585cf172007-10-23 15:14:41 -04008 * warranty of any kind, whether express or implied.
9 */
10
Lennert Buytenhek0e3bc052008-06-04 03:16:21 +020011#include <linux/serial_reg.h>
Lennert Buytenhek9dd0b192008-03-27 14:51:41 -040012#include <asm/arch/orion5x.h>
Tzachi Perelstein585cf172007-10-23 15:14:41 -040013
Lennert Buytenhek0e3bc052008-06-04 03:16:21 +020014#define SERIAL_BASE ((unsigned char *)UART0_PHYS_BASE)
Tzachi Perelstein585cf172007-10-23 15:14:41 -040015
16static void putc(const char c)
17{
Lennert Buytenhek0e3bc052008-06-04 03:16:21 +020018 unsigned char *base = SERIAL_BASE;
19 int i;
20
21 for (i = 0; i < 0x1000; i++) {
22 if (base[UART_LSR << 2] & UART_LSR_THRE)
23 break;
Tzachi Perelstein585cf172007-10-23 15:14:41 -040024 barrier();
Lennert Buytenhek0e3bc052008-06-04 03:16:21 +020025 }
26
27 base[UART_TX << 2] = c;
Tzachi Perelstein585cf172007-10-23 15:14:41 -040028}
29
30static void flush(void)
31{
Lennert Buytenhek0e3bc052008-06-04 03:16:21 +020032 unsigned char *base = SERIAL_BASE;
33 unsigned char mask;
34 int i;
35
36 mask = UART_LSR_TEMT | UART_LSR_THRE;
37
38 for (i = 0; i < 0x1000; i++) {
39 if ((base[UART_LSR << 2] & mask) == mask)
40 break;
41 barrier();
42 }
Tzachi Perelstein585cf172007-10-23 15:14:41 -040043}
44
Tzachi Perelstein585cf172007-10-23 15:14:41 -040045/*
46 * nothing to do
47 */
48#define arch_decomp_setup()
49#define arch_decomp_wdog()