blob: 46c23b66bc171883d2d9ae2e58dc8d750ffd7bab [file] [log] [blame]
Peter Hortone87ddde2006-02-12 17:10:25 +00001/*
2 * (C) P. Horton 2006
3 */
4
Peter Hortone87ddde2006-02-12 17:10:25 +00005#include <linux/init.h>
6#include <linux/kernel.h>
7#include <linux/console.h>
8#include <linux/serial_reg.h>
9#include <asm/addrspace.h>
10#include <asm/mach-cobalt/cobalt.h>
11
12static void putchar(int c)
13{
14 if(c == '\n')
15 putchar('\r');
16
17 while(!(COBALT_UART[UART_LSR] & UART_LSR_THRE))
18 ;
19
20 COBALT_UART[UART_TX] = c;
21}
22
23static void cons_write(struct console *c, const char *s, unsigned n)
24{
25 while(n-- && *s)
26 putchar(*s++);
27}
28
29static struct console cons_info =
30{
31 .name = "uart",
32 .write = cons_write,
33 .flags = CON_PRINTBUFFER | CON_BOOT,
34 .index = -1,
35};
36
37void __init cobalt_early_console(void)
38{
39 register_console(&cons_info);
40
41 printk("Cobalt: early console registered\n");
42}
Yoichi Yuasa973c7892006-06-07 09:53:34 +090043
44void __init disable_early_printk(void)
45{
46 unregister_console(&cons_info);
47}