All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 06/14] serial: 16550: Add Ingenic JZ4780 support
Date: Fri, 25 Nov 2016 23:32:27 +0100	[thread overview]
Message-ID: <20161125223235.3434-6-marex@denx.de> (raw)
In-Reply-To: <20161125223235.3434-1-marex@denx.de>

Add compatibility string for the Ingenic JZ4780 SoC, the necessary
UART enable bit into FCR and register shift. Neither are encoded
in the DTS coming from Linux, so we need to support it this way.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Paul Burton <paul.burton@imgtec.com>
---
 drivers/serial/ns16550.c | 7 +++++++
 include/ns16550.h        | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 3130a1d..d00161c 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -363,6 +363,7 @@ int ns16550_serial_probe(struct udevice *dev)
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 enum {
 	PORT_NS16550 = 0,
+	PORT_JZ4780,
 };
 #endif
 
@@ -370,6 +371,7 @@ enum {
 int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ns16550_platdata *plat = dev->platdata;
+	const u32 port_type = dev_get_driver_data(dev);
 	fdt_addr_t addr;
 	struct clk clk;
 	int err;
@@ -439,6 +441,10 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 	}
 
 	plat->fcr = UART_FCRVAL;
+	if (port_type == PORT_JZ4780) {
+		plat->fcr |= UART_FCR_UME;
+		plat->reg_shift = 2;
+	}
 
 	return 0;
 }
@@ -461,6 +467,7 @@ const struct dm_serial_ops ns16550_serial_ops = {
 static const struct udevice_id ns16550_serial_ids[] = {
 	{ .compatible = "ns16550",		.data = PORT_NS16550 },
 	{ .compatible = "ns16550a",		.data = PORT_NS16550 },
+	{ .compatible = "ingenic,jz4780-uart",	.data = PORT_JZ4780  },
 	{ .compatible = "nvidia,tegra20-uart",	.data = PORT_NS16550 },
 	{ .compatible = "snps,dw-apb-uart",	.data = PORT_NS16550 },
 	{ .compatible = "ti,omap2-uart",	.data = PORT_NS16550 },
diff --git a/include/ns16550.h b/include/ns16550.h
index 45fd68b..7c97036 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -118,6 +118,9 @@ typedef struct NS16550 *NS16550_t;
 #define UART_FCR_RXSR		0x02 /* Receiver soft reset */
 #define UART_FCR_TXSR		0x04 /* Transmitter soft reset */
 
+/* Ingenic JZ47xx specific UART-enable bit. */
+#define UART_FCR_UME		0x10
+
 /*
  * These are the definitions for the Modem Control Register
  */
-- 
2.10.2

  parent reply	other threads:[~2016-11-25 22:32 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-25 22:32 [U-Boot] [PATCH 01/14] mips: Let cache.h be included from assembly source Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 02/14] spl: mmc: Fix build without LIBCOMMON_SUPPORT Marek Vasut
2016-11-26 20:45   ` Tom Rini
2016-11-26 20:58     ` Marek Vasut
2016-11-28  2:33       ` Jaehoon Chung
2016-11-28  2:53         ` Marek Vasut
2016-12-01 10:10           ` Jaehoon Chung
2016-12-01 11:39             ` Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 03/14] mmc: Fix warning if debug() is not used Marek Vasut
2016-11-26 20:44   ` Tom Rini
2016-11-25 22:32 ` [U-Boot] [PATCH 04/14] serial: 16550: Add getfcr accessor Marek Vasut
2016-11-26 20:46   ` Tom Rini
2016-11-27 17:02   ` Simon Glass
2016-11-25 22:32 ` [U-Boot] [PATCH 05/14] serial: 16550: Add port type as driver data Marek Vasut
2016-11-27 17:03   ` Simon Glass
2016-11-27 17:07     ` Marek Vasut
2016-11-30  0:32       ` Simon Glass
2016-11-30  1:27         ` Marek Vasut
2016-11-30  2:26           ` Simon Glass
2016-11-30  3:04             ` Marek Vasut
2016-11-30  3:10               ` Simon Glass
2016-11-30  3:16                 ` Marek Vasut
2016-11-25 22:32 ` Marek Vasut [this message]
2016-11-27 17:03   ` [U-Boot] [PATCH 06/14] serial: 16550: Add Ingenic JZ4780 support Simon Glass
2016-11-27 17:17     ` Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 07/14] mmc: Tinification of the mmc code Marek Vasut
2016-11-30  0:32   ` Simon Glass
2016-11-30  1:28     ` Marek Vasut
2016-11-30  2:26       ` Simon Glass
2016-11-30  2:44         ` Tom Rini
2016-11-25 22:32 ` [U-Boot] [PATCH 08/14] mmc: Add JZ47xx SD/MMC controller driver Marek Vasut
2016-11-28  2:58   ` Jaehoon Chung
2016-11-28 22:55     ` Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 09/14] gpio: Add JZ47xx GPIO driver Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 10/14] misc: Add JZ47xx efuse driver Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 11/14] mips: Add SPL header Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 12/14] mips: jz47xx: Add JZ4780 SoC support Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 13/14] mips: jz47xx: Add minimal JZ MMC node Marek Vasut
2016-11-25 22:32 ` [U-Boot] [PATCH 14/14] mips: jz47xx: Add Creator CI20 platform Marek Vasut
2016-11-26 20:45   ` Tom Rini
2016-11-30 15:21 ` [U-Boot] [PATCH 01/14] mips: Let cache.h be included from assembly source Daniel Schwierzeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161125223235.3434-6-marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.