On some systems, UART initialization is performed before running U-Boot.
This commit allows to skip UART re-initializaion on those systems

Signed-off-by: Sergey Temerkhanov <s.temerkha...@gmail.com>
Signed-off-by: Radha Mohan Chintakuntla <rchintakun...@cavium.com>

---

Changes in v3:
- Added __used keyword

Changes in v2: None

 drivers/serial/serial_pl01x.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index ad503af..f40c3ac 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -71,7 +71,7 @@ static int pl01x_tstc(struct pl01x_regs *regs)
        return !(readl(&regs->fr) & UART_PL01x_FR_RXFE);
 }
 
-static int pl01x_generic_serial_init(struct pl01x_regs *regs,
+static __used int pl01x_generic_serial_init(struct pl01x_regs *regs,
                                     enum pl01x_type type)
 {
        switch (type) {
@@ -124,8 +124,9 @@ static int pl011_set_line_control(struct pl01x_regs *regs)
        return 0;
 }
 
-static int pl01x_generic_setbrg(struct pl01x_regs *regs, enum pl01x_type type,
-                               int clock, int baudrate)
+static int __used pl01x_generic_setbrg(struct pl01x_regs *regs,
+                                      enum pl01x_type type,
+                                      int clock, int baudrate)
 {
        switch (type) {
        case TYPE_PL010: {
@@ -215,8 +216,10 @@ static void pl01x_serial_init_baud(int baudrate)
 #endif
        base_regs = (struct pl01x_regs *)port[CONFIG_CONS_INDEX];
 
+#ifndef CONFIG_PL010_SERIAL_PREINIT
        pl01x_generic_serial_init(base_regs, pl01x_type);
        pl01x_generic_setbrg(base_regs, pl01x_type, clock, baudrate);
+#endif
 }
 
 /*
-- 
2.2.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to