serial: serial_msm: fail probe if settings clocks fails
[oweals/u-boot.git] / drivers / serial / serial_msm.c
index 63b3006c638ade35b66f9c4115d560717ef6042f..8b585deeeb537587c00f1f48543989d68895f64d 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,12 @@ 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 */
+       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);
@@ -201,7 +202,7 @@ static int msm_serial_ofdata_to_platdata(struct udevice *dev)
 {
        struct msm_serial_data *priv = dev_get_priv(dev);
 
-       priv->base = dev_get_addr(dev);
+       priv->base = devfdt_get_addr(dev);
        if (priv->base == FDT_ADDR_T_NONE)
                return -EINVAL;