2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
6 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
8 #include <linux/init.h>
9 #include <linux/console.h>
10 #include <linux/serial_reg.h>
13 #define SEAD_UART1_REGS_BASE 0xbf000800 /* ttyS1 = DB9 port */
14 #define SEAD_UART0_REGS_BASE 0xbf000900 /* ttyS0 = USB port */
15 #define PORT(base_addr, offset) ((unsigned int __iomem *)(base_addr+(offset)*4))
17 static char console_port
= 1;
19 static inline unsigned int serial_in(int offset
, unsigned int base_addr
)
21 return __raw_readl(PORT(base_addr
, offset
)) & 0xff;
24 static inline void serial_out(int offset
, int value
, unsigned int base_addr
)
26 __raw_writel(value
, PORT(base_addr
, offset
));
29 void __init
fw_init_early_console(char port
)
34 int prom_putchar(char c
)
36 unsigned int base_addr
;
38 base_addr
= console_port
? SEAD_UART1_REGS_BASE
: SEAD_UART0_REGS_BASE
;
40 while ((serial_in(UART_LSR
, base_addr
) & UART_LSR_THRE
) == 0)
43 serial_out(UART_TX
, c
, base_addr
);