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