Commit | Line | Data |
---|---|---|
73a59c1c | 1 | /* |
9d041268 | 2 | * include/asm-arm/arch-at91/uncompress.h |
73a59c1c SP |
3 | * |
4 | * Copyright (C) 2003 SAN People | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 | */ | |
20 | ||
21 | #ifndef __ASM_ARCH_UNCOMPRESS_H | |
22 | #define __ASM_ARCH_UNCOMPRESS_H | |
23 | ||
030f4810 | 24 | #include <asm/io.h> |
fa3218d8 GL |
25 | #include <linux/atmel_serial.h> |
26 | ||
27 | #if defined(CONFIG_AT91_EARLY_DBGU) | |
28 | #define UART_OFFSET (AT91_DBGU + AT91_BASE_SYS) | |
29 | #elif defined(CONFIG_AT91_EARLY_USART0) | |
30 | #define UART_OFFSET AT91_USART0 | |
31 | #elif defined(CONFIG_AT91_EARLY_USART1) | |
32 | #define UART_OFFSET AT91_USART1 | |
33 | #elif defined(CONFIG_AT91_EARLY_USART2) | |
34 | #define UART_OFFSET AT91_USART2 | |
35 | #elif defined(CONFIG_AT91_EARLY_USART3) | |
36 | #define UART_OFFSET AT91_USART3 | |
37 | #elif defined(CONFIG_AT91_EARLY_USART4) | |
38 | #define UART_OFFSET AT91_USART4 | |
39 | #elif defined(CONFIG_AT91_EARLY_USART5) | |
40 | #define UART_OFFSET AT91_USART5 | |
41 | #endif | |
73a59c1c SP |
42 | |
43 | /* | |
44 | * The following code assumes the serial port has already been | |
55d8baee | 45 | * initialized by the bootloader. If you didn't setup a port in |
73a59c1c SP |
46 | * your bootloader then nothing will appear (which might be desired). |
47 | * | |
48 | * This does not append a newline | |
49 | */ | |
a081568d RK |
50 | static void putc(int c) |
51 | { | |
fa3218d8 GL |
52 | #ifdef UART_OFFSET |
53 | void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */ | |
a081568d | 54 | |
fa3218d8 | 55 | while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXRDY)) |
a081568d | 56 | barrier(); |
fa3218d8 | 57 | __raw_writel(c, sys + ATMEL_US_THR); |
b54942f8 | 58 | #endif |
a081568d RK |
59 | } |
60 | ||
61 | static inline void flush(void) | |
73a59c1c | 62 | { |
fa3218d8 GL |
63 | #ifdef UART_OFFSET |
64 | void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */ | |
73a59c1c | 65 | |
73a59c1c | 66 | /* wait for transmission to complete */ |
fa3218d8 | 67 | while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXEMPTY)) |
a081568d | 68 | barrier(); |
b54942f8 | 69 | #endif |
73a59c1c SP |
70 | } |
71 | ||
72 | #define arch_decomp_setup() | |
73 | ||
74 | #define arch_decomp_wdog() | |
75 | ||
76 | #endif |