*/
#include <common.h>
-#include <serial.h>
+#include <stdio_dev.h>
#if defined(CONFIG_CPU_V6)
/*
#define TIMEOUT_COUNT 0x4000000
-static int arm_dcc_init(void)
+#ifndef CONFIG_ARM_DCC_MULTI
+#define arm_dcc_init serial_init
+void serial_setbrg(void) {}
+#define arm_dcc_getc serial_getc
+#define arm_dcc_putc serial_putc
+#define arm_dcc_puts serial_puts
+#define arm_dcc_tstc serial_tstc
+#endif
+
+int arm_dcc_init(void)
{
return 0;
}
-static int arm_dcc_getc(void)
+int arm_dcc_getc(void)
{
int ch;
register unsigned int reg;
return ch;
}
-static void arm_dcc_putc(char ch)
+void arm_dcc_putc(char ch)
{
register unsigned int reg;
unsigned int timeout_count = TIMEOUT_COUNT;
write_dcc(ch);
}
-static int arm_dcc_tstc(void)
+void arm_dcc_puts(const char *s)
+{
+ while (*s)
+ arm_dcc_putc(*s++);
+}
+
+int arm_dcc_tstc(void)
{
register unsigned int reg;
return reg;
}
-static void arm_dcc_setbrg(void)
-{
-}
+#ifdef CONFIG_ARM_DCC_MULTI
+static struct stdio_dev arm_dcc_dev;
-static struct serial_device arm_dcc_drv = {
- .name = "arm_dcc",
- .start = arm_dcc_init,
- .stop = NULL,
- .setbrg = arm_dcc_setbrg,
- .putc = arm_dcc_putc,
- .puts = default_serial_puts,
- .getc = arm_dcc_getc,
- .tstc = arm_dcc_tstc,
-};
-
-void arm_dcc_initialize(void)
+int drv_arm_dcc_init(void)
{
- serial_register(&arm_dcc_drv);
-}
+ int rc;
-__weak struct serial_device *default_serial_console(void)
-{
- return &arm_dcc_drv;
+ /* Device initialization */
+ memset(&arm_dcc_dev, 0, sizeof(arm_dcc_dev));
+
+ strcpy(arm_dcc_dev.name, "dcc");
+ arm_dcc_dev.ext = 0; /* No extensions */
+ arm_dcc_dev.flags = DEV_FLAGS_INPUT | DEV_FLAGS_OUTPUT;
+ arm_dcc_dev.tstc = arm_dcc_tstc; /* 'tstc' function */
+ arm_dcc_dev.getc = arm_dcc_getc; /* 'getc' function */
+ arm_dcc_dev.putc = arm_dcc_putc; /* 'putc' function */
+ arm_dcc_dev.puts = arm_dcc_puts; /* 'puts' function */
+
+ return stdio_register(&arm_dcc_dev);
}
+#endif