2006-02-13 01:10:25 +08:00
|
|
|
/*
|
|
|
|
* (C) P. Horton 2006
|
|
|
|
*/
|
2007-10-02 22:13:17 +08:00
|
|
|
#include <linux/io.h>
|
2006-02-13 01:10:25 +08:00
|
|
|
#include <linux/serial_reg.h>
|
2007-03-06 20:34:44 +08:00
|
|
|
|
2008-01-12 07:25:17 +08:00
|
|
|
#include <cobalt.h>
|
|
|
|
|
2007-10-02 22:13:17 +08:00
|
|
|
#define UART_BASE ((void __iomem *)CKSEG1ADDR(0x1c800000))
|
2006-02-13 01:10:25 +08:00
|
|
|
|
2007-03-02 11:42:33 +08:00
|
|
|
void prom_putchar(char c)
|
2006-02-13 01:10:25 +08:00
|
|
|
{
|
2008-01-12 07:25:17 +08:00
|
|
|
if (cobalt_board_id <= COBALT_BRD_ID_QUBE1)
|
|
|
|
return;
|
|
|
|
|
2007-10-02 22:13:17 +08:00
|
|
|
while (!(readb(UART_BASE + UART_LSR) & UART_LSR_THRE))
|
2006-02-13 01:10:25 +08:00
|
|
|
;
|
|
|
|
|
2007-10-02 22:13:17 +08:00
|
|
|
writeb(c, UART_BASE + UART_TX);
|
2006-02-13 01:10:25 +08:00
|
|
|
}
|