]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/serial/serial.c
omap: clean-up dead configs
[karo-tx-uboot.git] / drivers / serial / serial.c
index 67301355d7dcba85d1a7c2608c1d1814c4e6e687..d2eb7520d03886748c7d0130a0851c51eca8d997 100644 (file)
@@ -74,9 +74,6 @@ static int on_baudrate(const char *name, const char *value, enum env_op op,
                }
 
                gd->baudrate = baudrate;
-#if defined(CONFIG_PPC) || defined(CONFIG_MCF52x2)
-               gd->bd->bi_baudrate = baudrate;
-#endif
 
                serial_setbrg();
 
@@ -117,7 +114,7 @@ serial_initfunc(ns16550_serial_initialize);
 serial_initfunc(pxa_serial_initialize);
 serial_initfunc(s3c24xx_serial_initialize);
 serial_initfunc(s5p_serial_initialize);
-serial_initfunc(zynq_serial_initalize);
+serial_initfunc(zynq_serial_initialize);
 serial_initfunc(bfin_serial_initialize);
 serial_initfunc(bfin_jtag_initialize);
 serial_initfunc(mpc512x_serial_initialize);
@@ -150,15 +147,16 @@ serial_initfunc(oc_serial_initialize);
 serial_initfunc(sandbox_serial_initialize);
 serial_initfunc(clps7111_serial_initialize);
 serial_initfunc(imx_serial_initialize);
-serial_initfunc(ixp_serial_initialize);
 serial_initfunc(ks8695_serial_initialize);
 serial_initfunc(lh7a40x_serial_initialize);
 serial_initfunc(max3100_serial_initialize);
 serial_initfunc(mxc_serial_initialize);
 serial_initfunc(pl01x_serial_initialize);
-serial_initfunc(s3c44b0_serial_initialize);
 serial_initfunc(sa1100_serial_initialize);
 serial_initfunc(sh_serial_initialize);
+serial_initfunc(arm_dcc_initialize);
+serial_initfunc(mxs_auart_initialize);
+serial_initfunc(arc_serial_initialize);
 
 /**
  * serial_register() - Register serial driver with serial driver core
@@ -213,7 +211,7 @@ void serial_initialize(void)
        bfin_serial_initialize();
        bfin_jtag_initialize();
        uartlite_serial_initialize();
-       zynq_serial_initalize();
+       zynq_serial_initialize();
        au1x00_serial_initialize();
        asc_serial_initialize();
        jz_serial_initialize();
@@ -242,19 +240,62 @@ void serial_initialize(void)
        sandbox_serial_initialize();
        clps7111_serial_initialize();
        imx_serial_initialize();
-       ixp_serial_initialize();
        ks8695_serial_initialize();
        lh7a40x_serial_initialize();
        max3100_serial_initialize();
        mxc_serial_initialize();
        pl01x_serial_initialize();
-       s3c44b0_serial_initialize();
        sa1100_serial_initialize();
        sh_serial_initialize();
+       arm_dcc_initialize();
+       mxs_auart_initialize();
+       arc_serial_initialize();
 
        serial_assign(default_serial_console()->name);
 }
 
+int serial_stub_start(struct stdio_dev *sdev)
+{
+       struct serial_device *dev = sdev->priv;
+
+       return dev->start();
+}
+
+int serial_stub_stop(struct stdio_dev *sdev)
+{
+       struct serial_device *dev = sdev->priv;
+
+       return dev->stop();
+}
+
+void serial_stub_putc(struct stdio_dev *sdev, const char ch)
+{
+       struct serial_device *dev = sdev->priv;
+
+       dev->putc(ch);
+}
+
+void serial_stub_puts(struct stdio_dev *sdev, const char *str)
+{
+       struct serial_device *dev = sdev->priv;
+
+       dev->puts(str);
+}
+
+int serial_stub_getc(struct stdio_dev *sdev)
+{
+       struct serial_device *dev = sdev->priv;
+
+       return dev->getc();
+}
+
+int serial_stub_tstc(struct stdio_dev *sdev)
+{
+       struct serial_device *dev = sdev->priv;
+
+       return dev->tstc();
+}
+
 /**
  * serial_stdio_init() - Register serial ports with STDIO core
  *
@@ -273,12 +314,12 @@ void serial_stdio_init(void)
                strcpy(dev.name, s->name);
                dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT;
 
-               dev.start = s->start;
-               dev.stop = s->stop;
-               dev.putc = s->putc;
-               dev.puts = s->puts;
-               dev.getc = s->getc;
-               dev.tstc = s->tstc;
+               dev.start = serial_stub_start;
+               dev.stop = serial_stub_stop;
+               dev.putc = serial_stub_putc;
+               dev.puts = serial_stub_puts;
+               dev.getc = serial_stub_getc;
+               dev.tstc = serial_stub_tstc;
 
                stdio_register(&dev);
 
@@ -377,6 +418,7 @@ static struct serial_device *get_current(void)
  */
 int serial_init(void)
 {
+       gd->flags |= GD_FLG_SERIAL_READY;
        return get_current()->start();
 }
 
@@ -500,12 +542,11 @@ int uart_post_test(int flags)
        unsigned char c;
        int ret, saved_baud, b;
        struct serial_device *saved_dev, *s;
-       bd_t *bd = gd->bd;
 
        /* Save current serial state */
        ret = 0;
        saved_dev = serial_current;
-       saved_baud = bd->bi_baudrate;
+       saved_baud = gd->baudrate;
 
        for (s = serial_devices; s; s = s->next) {
                /* If this driver doesn't support loop back, skip it */
@@ -528,7 +569,7 @@ int uart_post_test(int flags)
 
                /* Test every available baud rate */
                for (b = 0; b < ARRAY_SIZE(bauds); ++b) {
-                       bd->bi_baudrate = bauds[b];
+                       gd->baudrate = bauds[b];
                        serial_setbrg();
 
                        /*
@@ -570,7 +611,7 @@ int uart_post_test(int flags)
  done:
        /* Restore previous serial state */
        serial_current = saved_dev;
-       bd->bi_baudrate = saved_baud;
+       gd->baudrate = saved_baud;
        serial_reinit_all();
        serial_setbrg();