diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2008-04-18 17:43:11 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2008-04-18 17:43:11 -0400 |
commit | 9a386f0651d06002a0468ce4d0e15aaf7c316a3c (patch) | |
tree | bd57c73634d9d59ab9d4776c605dfce31ccd5234 /include | |
parent | 80192735e4b01a2e4d437699f2e9b5b93dfab13c (diff) |
RealView: Move the UART definitions to EB specific files
Since the PB1176 has different UART base addresses, this patch moves
the definitions form platorm.h to board-eb.h. It also modifies
uncompress.h to detect the platform type at run-time.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-arm/arch-realview/board-eb.h | 4 | ||||
-rw-r--r-- | include/asm-arm/arch-realview/platform.h | 4 | ||||
-rw-r--r-- | include/asm-arm/arch-realview/uncompress.h | 32 |
3 files changed, 28 insertions, 12 deletions
diff --git a/include/asm-arm/arch-realview/board-eb.h b/include/asm-arm/arch-realview/board-eb.h index 142d77a72f39..565bb937ac86 100644 --- a/include/asm-arm/arch-realview/board-eb.h +++ b/include/asm-arm/arch-realview/board-eb.h | |||
@@ -26,6 +26,10 @@ | |||
26 | /* | 26 | /* |
27 | * RealView EB + ARM11MPCore peripheral addresses | 27 | * RealView EB + ARM11MPCore peripheral addresses |
28 | */ | 28 | */ |
29 | #define REALVIEW_EB_UART0_BASE 0x10009000 /* UART 0 */ | ||
30 | #define REALVIEW_EB_UART1_BASE 0x1000A000 /* UART 1 */ | ||
31 | #define REALVIEW_EB_UART2_BASE 0x1000B000 /* UART 2 */ | ||
32 | #define REALVIEW_EB_UART3_BASE 0x1000C000 /* UART 3 */ | ||
29 | #define REALVIEW_EB_TIMER0_1_BASE 0x10011000 /* Timer 0 and 1 */ | 33 | #define REALVIEW_EB_TIMER0_1_BASE 0x10011000 /* Timer 0 and 1 */ |
30 | #define REALVIEW_EB_TIMER2_3_BASE 0x10012000 /* Timer 2 and 3 */ | 34 | #define REALVIEW_EB_TIMER2_3_BASE 0x10012000 /* Timer 2 and 3 */ |
31 | #define REALVIEW_EB_GIC_CPU_BASE 0x10040000 /* Generic interrupt controller CPU interface */ | 35 | #define REALVIEW_EB_GIC_CPU_BASE 0x10040000 /* Generic interrupt controller CPU interface */ |
diff --git a/include/asm-arm/arch-realview/platform.h b/include/asm-arm/arch-realview/platform.h index 7aa78a5ebc88..d18fb128ed9c 100644 --- a/include/asm-arm/arch-realview/platform.h +++ b/include/asm-arm/arch-realview/platform.h | |||
@@ -182,10 +182,6 @@ | |||
182 | #define REALVIEW_KMI0_BASE 0x10006000 /* KMI interface */ | 182 | #define REALVIEW_KMI0_BASE 0x10006000 /* KMI interface */ |
183 | #define REALVIEW_KMI1_BASE 0x10007000 /* KMI 2nd interface */ | 183 | #define REALVIEW_KMI1_BASE 0x10007000 /* KMI 2nd interface */ |
184 | #define REALVIEW_CHAR_LCD_BASE 0x10008000 /* Character LCD */ | 184 | #define REALVIEW_CHAR_LCD_BASE 0x10008000 /* Character LCD */ |
185 | #define REALVIEW_UART0_BASE 0x10009000 /* UART 0 */ | ||
186 | #define REALVIEW_UART1_BASE 0x1000A000 /* UART 1 */ | ||
187 | #define REALVIEW_UART2_BASE 0x1000B000 /* UART 2 */ | ||
188 | #define REALVIEW_UART3_BASE 0x1000C000 /* UART 3 */ | ||
189 | #define REALVIEW_SSP_BASE 0x1000D000 /* Synchronous Serial Port */ | 185 | #define REALVIEW_SSP_BASE 0x1000D000 /* Synchronous Serial Port */ |
190 | #define REALVIEW_SCI_BASE 0x1000E000 /* Smart card controller */ | 186 | #define REALVIEW_SCI_BASE 0x1000E000 /* Smart card controller */ |
191 | /* Reserved 0x1000F000 */ | 187 | /* Reserved 0x1000F000 */ |
diff --git a/include/asm-arm/arch-realview/uncompress.h b/include/asm-arm/arch-realview/uncompress.h index 3d5c2db07a26..9b790a7e782d 100644 --- a/include/asm-arm/arch-realview/uncompress.h +++ b/include/asm-arm/arch-realview/uncompress.h | |||
@@ -18,28 +18,44 @@ | |||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | #include <asm/hardware.h> | 20 | #include <asm/hardware.h> |
21 | #include <asm/mach-types.h> | ||
21 | 22 | ||
22 | #include <asm/arch/platform.h> | 23 | #include <asm/arch/board-eb.h> |
23 | 24 | ||
24 | #define AMBA_UART_DR (*(volatile unsigned char *) (REALVIEW_UART0_BASE + 0x00)) | 25 | #define AMBA_UART_DR(base) (*(volatile unsigned char *)((base) + 0x00)) |
25 | #define AMBA_UART_LCRH (*(volatile unsigned char *) (REALVIEW_UART0_BASE + 0x2c)) | 26 | #define AMBA_UART_LCRH(base) (*(volatile unsigned char *)((base) + 0x2c)) |
26 | #define AMBA_UART_CR (*(volatile unsigned char *) (REALVIEW_UART0_BASE + 0x30)) | 27 | #define AMBA_UART_CR(base) (*(volatile unsigned char *)((base) + 0x30)) |
27 | #define AMBA_UART_FR (*(volatile unsigned char *) (REALVIEW_UART0_BASE + 0x18)) | 28 | #define AMBA_UART_FR(base) (*(volatile unsigned char *)((base) + 0x18)) |
29 | |||
30 | /* | ||
31 | * Return the UART base address | ||
32 | */ | ||
33 | static inline unsigned long get_uart_base(void) | ||
34 | { | ||
35 | if (machine_is_realview_eb()) | ||
36 | return REALVIEW_EB_UART0_BASE; | ||
37 | else | ||
38 | return 0; | ||
39 | } | ||
28 | 40 | ||
29 | /* | 41 | /* |
30 | * This does not append a newline | 42 | * This does not append a newline |
31 | */ | 43 | */ |
32 | static inline void putc(int c) | 44 | static inline void putc(int c) |
33 | { | 45 | { |
34 | while (AMBA_UART_FR & (1 << 5)) | 46 | unsigned long base = get_uart_base(); |
47 | |||
48 | while (AMBA_UART_FR(base) & (1 << 5)) | ||
35 | barrier(); | 49 | barrier(); |
36 | 50 | ||
37 | AMBA_UART_DR = c; | 51 | AMBA_UART_DR(base) = c; |
38 | } | 52 | } |
39 | 53 | ||
40 | static inline void flush(void) | 54 | static inline void flush(void) |
41 | { | 55 | { |
42 | while (AMBA_UART_FR & (1 << 3)) | 56 | unsigned long base = get_uart_base(); |
57 | |||
58 | while (AMBA_UART_FR(base) & (1 << 3)) | ||
43 | barrier(); | 59 | barrier(); |
44 | } | 60 | } |
45 | 61 | ||