earlycon is executed quite early before the device tree probe,
so we need configure the correct reg_off for imx7ulp during
early console setup.

Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Cc: Jiri Slaby <jsl...@suse.com>
Cc: Fugang Duan <fugang.d...@nxp.com>
Cc: Stefan Agner <ste...@agner.ch>
Cc: Mingkai Hu <mingkai...@nxp.com>
Cc: Yangbo Lu <yangbo...@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.d...@nxp.com>
---
 drivers/tty/serial/fsl_lpuart.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 1cdb3f9..5b485e8 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1978,8 +1978,20 @@ static int __init lpuart32_early_console_setup(struct 
earlycon_device *device,
        return 0;
 }
 
+static int __init lpuart32_imx_early_console_setup(struct earlycon_device 
*device,
+                                                  const char *opt)
+{
+       if (!device->port.membase)
+               return -ENODEV;
+
+       lpuart_reg_off = IMX_REG_OFF;
+       device->con->write = lpuart32_early_write;
+
+       return 0;
+}
 OF_EARLYCON_DECLARE(lpuart, "fsl,vf610-lpuart", lpuart_early_console_setup);
 OF_EARLYCON_DECLARE(lpuart32, "fsl,ls1021a-lpuart", 
lpuart32_early_console_setup);
+OF_EARLYCON_DECLARE(lpuart32, "fsl,imx7ulp-lpuart", 
lpuart32_imx_early_console_setup);
 EARLYCON_DECLARE(lpuart, lpuart_early_console_setup);
 EARLYCON_DECLARE(lpuart32, lpuart32_early_console_setup);
 
-- 
2.7.4

Reply via email to