]> git.sur5r.net Git - u-boot/blobdiff - drivers/serial/serial_msm.c
serial: serial_msm: initialize uart only before relocation
[u-boot] / drivers / serial / serial_msm.c
index 7bed756a71f147f3ea48b2b563925878dfb0506d..a4279accb4f7ffa8d75a35d179ad7f7d777fa72a 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Qualcomm UART driver
  *
@@ -5,8 +6,6 @@
  *
  * UART will work in Data Mover mode.
  * Based on Linux driver.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -182,10 +181,16 @@ static int msm_uart_clk_init(struct udevice *dev)
 
 static int msm_serial_probe(struct udevice *dev)
 {
+       int ret;
        struct msm_serial_data *priv = dev_get_priv(dev);
 
-       msm_uart_clk_init(dev); /* Ignore return value and hope clock was
-                                 properly initialized by earlier loaders */
+       /* No need to reinitialize the UART after relocation */
+       if (gd->flags & GD_FLG_RELOC)
+               return 0;
+
+       ret = msm_uart_clk_init(dev);
+       if (ret)
+               return ret;
 
        if (readl(priv->base + UARTDM_SR) & UARTDM_SR_UART_OVERRUN)
                writel(UARTDM_CR_CMD_RESET_ERR, priv->base + UARTDM_CR);