1 /* 2 * Copyright 2003 ARM Limited 3 * Copyright 2008 Cavium Networks 4 * 5 * This file is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License, Version 2, as 7 * published by the Free Software Foundation. 8 */ 9 10 #include <asm/mach-types.h> 11 #include <mach/cns3xxx.h> 12 13 #define AMBA_UART_DR(base) (*(volatile unsigned char *)((base) + 0x00)) 14 #define AMBA_UART_LCRH(base) (*(volatile unsigned char *)((base) + 0x2c)) 15 #define AMBA_UART_CR(base) (*(volatile unsigned char *)((base) + 0x30)) 16 #define AMBA_UART_FR(base) (*(volatile unsigned char *)((base) + 0x18)) 17 18 /* 19 * Return the UART base address 20 */ get_uart_base(void)21static inline unsigned long get_uart_base(void) 22 { 23 if (machine_is_cns3420vb()) 24 return CNS3XXX_UART0_BASE; 25 else 26 return 0; 27 } 28 29 /* 30 * This does not append a newline 31 */ putc(int c)32static inline void putc(int c) 33 { 34 unsigned long base = get_uart_base(); 35 36 while (AMBA_UART_FR(base) & (1 << 5)) 37 barrier(); 38 39 AMBA_UART_DR(base) = c; 40 } 41 flush(void)42static inline void flush(void) 43 { 44 unsigned long base = get_uart_base(); 45 46 while (AMBA_UART_FR(base) & (1 << 3)) 47 barrier(); 48 } 49 50 /* 51 * nothing to do 52 */ 53 #define arch_decomp_setup() 54 #define arch_decomp_wdog() 55