summaryrefslogtreecommitdiffstats
path: root/drivers/serial/linux_console.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:59 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:59 +0200
commit5735a344786aa5b266c4eeac9ba8ddf7a2650e7b (patch)
tree4e924a462c25ed6ab03b4856798f5b744a2ad741 /drivers/serial/linux_console.c
parent5bffd205f6a0ee9d5d63da22224bbd140eacdafe (diff)
downloadbarebox-5735a344786aa5b266c4eeac9ba8ddf7a2650e7b.tar.gz
barebox-5735a344786aa5b266c4eeac9ba8ddf7a2650e7b.tar.xz
svn_rev_501
move linux_console driver to drivers/serial
Diffstat (limited to 'drivers/serial/linux_console.c')
-rw-r--r--drivers/serial/linux_console.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/drivers/serial/linux_console.c b/drivers/serial/linux_console.c
new file mode 100644
index 0000000000..a7f9e8b12e
--- /dev/null
+++ b/drivers/serial/linux_console.c
@@ -0,0 +1,70 @@
+#include <common.h>
+#include <driver.h>
+#include <init.h>
+#include <asm/arch/linux.h>
+#include <malloc.h>
+#include <console.h>
+
+static void linux_console_putc(struct console_device *cdev, char c)
+{
+ linux_putc(c);
+}
+
+static int linux_console_tstc(struct console_device *cdev)
+{
+ return linux_tstc();
+}
+
+static int linux_console_getc(struct console_device *cdev)
+{
+ return linux_getc();
+}
+
+static int linux_console_probe(struct device_d *dev)
+{
+ struct console_device *cdev;
+
+ cdev = malloc(sizeof(struct console_device));
+ dev->type_data = cdev;
+ cdev->dev = dev;
+ cdev->flags = CONSOLE_STDIN | CONSOLE_STDOUT | CONSOLE_STDERR;
+ cdev->tstc = linux_console_tstc;
+ cdev->putc = linux_console_putc;
+ cdev->getc = linux_console_getc;
+
+ console_register(cdev);
+
+ return 0;
+}
+
+
+static struct driver_d linux_console_driver = {
+ .name = "console",
+ .probe = linux_console_probe,
+ .type = DEVICE_TYPE_CONSOLE,
+};
+
+static struct device_d linux_console_device = {
+ .name = "console",
+ .id = "cs0",
+ .type = DEVICE_TYPE_CONSOLE,
+};
+
+#if 0
+static struct device_d linux_console_device1 = {
+ .name = "console",
+ .id = "cs1",
+ .type = DEVICE_TYPE_CONSOLE,
+};
+#endif
+
+static int console_init(void)
+{
+ register_driver(&linux_console_driver);
+ register_device(&linux_console_device);
+// register_device(&linux_console_device1);
+ return 0;
+}
+
+console_initcall(console_init);
+