summaryrefslogtreecommitdiff
path: root/common/serial.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-05-15 07:56:25 -0700
committerSimon Glass <sjg@chromium.org>2011-08-24 10:01:33 -0700
commit3a47c614c2f5f204ee9a6428df03df3e85fe0b51 (patch)
treeb320ae1cb0ec40fc99d737f9a86b3bfbfa042737 /common/serial.c
parent16016e7f644ba2301848f7769af6192cafc45c20 (diff)
fdt: Add serial port controlled by device tree
This adds a new console serial port which is implemented by the driver selected in the device tree. BUG=chromium-os:11623 TEST=build and boot U-Boot on Seaboard Change-Id: I0e41f795a78d165c2907a9f8faeeabe1a2639a18 Reviewed-on: http://gerrit.chromium.org/gerrit/958 Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/serial.c')
-rw-r--r--common/serial.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/common/serial.c b/common/serial.c
index 8ebf9a5d2ed..ebe6ae3302a 100644
--- a/common/serial.c
+++ b/common/serial.c
@@ -24,6 +24,8 @@
#include <common.h>
#include <serial.h>
#include <stdio_dev.h>
+#include <serial_fdt.h>
+
DECLARE_GLOBAL_DATA_PTR;
@@ -33,7 +35,9 @@ static struct serial_device *serial_current = NULL;
#if !defined(CONFIG_LWMON) && !defined(CONFIG_PXA250) && !defined(CONFIG_PXA27X)
struct serial_device *__default_serial_console (void)
{
-#if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2)
+#ifdef CONFIG_OF_CONTROL
+ return serial_fdt_get_console_f();
+#elif defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2)
return &serial_smc_device;
#elif defined(CONFIG_8xx_CONS_SCC1) || defined(CONFIG_8xx_CONS_SCC2) \
|| defined(CONFIG_8xx_CONS_SCC3) || defined(CONFIG_8xx_CONS_SCC4)
@@ -117,6 +121,9 @@ int serial_register (struct serial_device *dev)
void serial_initialize (void)
{
+#ifdef CONFIG_OF_CONTROL
+ serial_register(serial_fdt_get_console_r());
+#endif
#if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2)
serial_register (&serial_smc_device);
#endif