Re-factoring the legacy NAND code (legacy NAND now only in board-specific
[platform/kernel/u-boot.git] / common / devices.c
index 615b217..bd4dfa0 100644 (file)
@@ -26,6 +26,7 @@
 #include <stdarg.h>
 #include <malloc.h>
 #include <devices.h>
+#include <serial.h>
 #ifdef CONFIG_LOGBUFFER
 #include <logbuff.h>
 #endif
@@ -73,7 +74,7 @@ static void drv_system_init (void)
 
        strcpy (dev.name, "serial");
        dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM;
-#if CONFIG_SERIAL_SOFTWARE_FIFO
+#ifdef CONFIG_SERIAL_SOFTWARE_FIFO
        dev.putc = serial_buffered_putc;
        dev.puts = serial_buffered_puts;
        dev.getc = serial_buffered_getc;
@@ -158,16 +159,18 @@ int device_deregister(char *devname)
 
 int devices_init (void)
 {
+#ifndef CONFIG_ARM     /* already relocated for current ARM implementation */
        DECLARE_GLOBAL_DATA_PTR;
 
-       int i;
        ulong relocation_offset = gd->reloc_off;
+       int i;
 
        /* relocate device name pointers */
        for (i = 0; i < (sizeof (stdio_names) / sizeof (char *)); ++i) {
                stdio_names[i] = (char *) (((ulong) stdio_names[i]) +
                                                relocation_offset);
        }
+#endif
 
        /* Initialize the list */
        devlist = ListCreate (sizeof (device_t));
@@ -185,15 +188,22 @@ int devices_init (void)
 #if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
        drv_video_init ();
 #endif
-#ifdef CONFIG_WL_4PPM_KEYBOARD
-       drv_wlkbd_init ();
+#ifdef CONFIG_KEYBOARD
+       drv_keyboard_init ();
 #endif
 #ifdef CONFIG_LOGBUFFER
        drv_logbuff_init ();
 #endif
        drv_system_init ();
-
-       gd-> flags |= GD_FLG_DEVINIT;   /* device initialization done */
+#ifdef CONFIG_SERIAL_MULTI
+       serial_devices_init ();
+#endif
+#ifdef CONFIG_USB_TTY
+       drv_usbtty_init ();
+#endif
+#ifdef CONFIG_NETCONSOLE
+       drv_nc_init ();
+#endif
 
        return (0);
 }