aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch b/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch
new file mode 100644
index 0000000000..a4cb65cfec
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch
@@ -0,0 +1,68 @@
+From 932dac0380bbf7276d4111c35674679bc9ad6384 Mon Sep 17 00:00:00 2001
+From: Vabhav Sharma <vabhav.sharma@nxp.com>
+Date: Thu, 31 Oct 2019 19:20:47 +0530
+Subject: [PATCH] tty: serial: lpuart: add LS1028A support
+
+NXP LS1028A lpuart is the same IP as LS1021A, but it is
+little endian for register accessing instead of big endian
+on LS1021A.
+
+So add LS1028A matching data to distiguish the chips.
+
+Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
+Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
+Acked-by: Fugang Duan <fugang.duan@nxp.com>
+---
+ drivers/tty/serial/fsl_lpuart.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/drivers/tty/serial/fsl_lpuart.c
++++ b/drivers/tty/serial/fsl_lpuart.c
+@@ -3,6 +3,7 @@
+ * Freescale lpuart serial port driver
+ *
+ * Copyright 2012-2014 Freescale Semiconductor, Inc.
++ * Copyright 2019 NXP
+ */
+
+ #if defined(CONFIG_SERIAL_FSL_LPUART_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+@@ -260,6 +261,7 @@ static DEFINE_IDA(fsl_lpuart_ida);
+ enum lpuart_type {
+ VF610_LPUART,
+ LS1021A_LPUART,
++ LS1028A_LPUART,
+ IMX7ULP_LPUART,
+ IMX8QXP_LPUART,
+ };
+@@ -311,13 +313,20 @@ static const struct lpuart_soc_data vf_d
+ .rx_dma_cyclic = true,
+ };
+
+-static const struct lpuart_soc_data ls_data = {
++static const struct lpuart_soc_data ls1021a_data = {
+ .devtype = LS1021A_LPUART,
+ .iotype = UPIO_MEM32BE,
+ .rx_watermark = 0,
+ .rx_dma_cyclic = true,
+ };
+
++static const struct lpuart_soc_data ls1028a_data = {
++ .devtype = LS1028A_LPUART,
++ .iotype = UPIO_MEM32,
++ .rx_watermark = 0,
++ .rx_dma_cyclic = true,
++};
++
+ static struct lpuart_soc_data imx7ulp_data = {
+ .devtype = IMX7ULP_LPUART,
+ .iotype = UPIO_MEM32,
+@@ -336,7 +345,8 @@ static struct lpuart_soc_data imx8qxp_da
+
+ static const struct of_device_id lpuart_dt_ids[] = {
+ { .compatible = "fsl,vf610-lpuart", .data = &vf_data, },
+- { .compatible = "fsl,ls1021a-lpuart", .data = &ls_data, },
++ { .compatible = "fsl,ls1021a-lpuart", .data = &ls1021a_data, },
++ { .compatible = "fsl,ls1028a-lpuart", .data = &ls1028a_data, },
+ { .compatible = "fsl,imx7ulp-lpuart", .data = &imx7ulp_data, },
+ { .compatible = "fsl,imx8qxp-lpuart", .data = &imx8qxp_data, },
+ { /* sentinel */ }