All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ramon Fried <ramon.fried@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 7/7] serial: serial_msm: added pinmux & config
Date: Sat, 12 May 2018 13:15:58 +0300	[thread overview]
Message-ID: <20180512101558.24375-8-ramon.fried@gmail.com> (raw)
In-Reply-To: <20180512101558.24375-1-ramon.fried@gmail.com>

Serial port configuration was missing from previous implementation.
It only worked because it was preconfigured by LK.
This patch configures the uart for 115200 8N1.
It also configures the pin mux for uart pins using DT bindings.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
---
 drivers/serial/serial_msm.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c
index 22301c0e37..4a0a2cc450 100644
--- a/drivers/serial/serial_msm.c
+++ b/drivers/serial/serial_msm.c
@@ -16,6 +16,7 @@
 #include <watchdog.h>
 #include <asm/io.h>
 #include <linux/compiler.h>
+#include <dm/pinctrl.h>
 
 /* Serial registers - this driver works in uartdm mode*/
 
@@ -25,6 +26,9 @@
 #define UARTDM_RXFS             0x50 /* RX channel status register */
 #define UARTDM_RXFS_BUF_SHIFT   0x7  /* Number of bytes in the packing buffer */
 #define UARTDM_RXFS_BUF_MASK    0x7
+#define UARTDM_MR1				 0x00
+#define UARTDM_MR2				 0x04
+#define UARTDM_CSR				 0xA0
 
 #define UARTDM_SR                0xA4 /* Status register */
 #define UARTDM_SR_RX_READY       (1 << 0) /* Word is the receiver FIFO */
@@ -45,6 +49,10 @@
 #define UARTDM_TF               0x100 /* UART Transmit FIFO register */
 #define UARTDM_RF               0x140 /* UART Receive FIFO register */
 
+#define UART_DM_CLK_RX_TX_BIT_RATE 0xCC
+#define MSM_BOOT_UART_DM_8_N_1_MODE 0x34
+#define MSM_BOOT_UART_DM_CMD_RESET_RX 0x10
+#define MSM_BOOT_UART_DM_CMD_RESET_TX 0x20
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -179,6 +187,14 @@ static int msm_uart_clk_init(struct udevice *dev)
 	return 0;
 }
 
+static void uart_dm_init(struct msm_serial_data *priv)
+{
+	writel(UART_DM_CLK_RX_TX_BIT_RATE, priv->base + UARTDM_CSR);
+	writel(0x0, priv->base + UARTDM_MR1);
+	writel(MSM_BOOT_UART_DM_8_N_1_MODE, priv->base + UARTDM_MR2);
+	writel(MSM_BOOT_UART_DM_CMD_RESET_RX, priv->base + UARTDM_CR);
+	writel(MSM_BOOT_UART_DM_CMD_RESET_TX, priv->base + UARTDM_CR);
+}
 static int msm_serial_probe(struct udevice *dev)
 {
 	struct msm_serial_data *priv = dev_get_priv(dev);
@@ -190,12 +206,8 @@ static int msm_serial_probe(struct udevice *dev)
 	if (msm_uart_clk_init(dev))
 		return -EINVAL;
 
-	if (readl(priv->base + UARTDM_SR) & UARTDM_SR_UART_OVERRUN)
-		writel(UARTDM_CR_CMD_RESET_ERR, priv->base + UARTDM_CR);
-
-	writel(0, priv->base + UARTDM_IMR);
-	writel(UARTDM_CR_CMD_STALE_EVENT_DISABLE, priv->base + UARTDM_CR);
-	msm_serial_fetch(dev);
+	pinctrl_select_state(dev, "uart");
+	uart_dm_init(priv);
 
 	return 0;
 }
-- 
2.14.1

  parent reply	other threads:[~2018-05-12 10:15 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-12 10:15 [U-Boot] [PATCH 0/7] *** Qualcomm Snapdraon serial fixes*** Ramon Fried
2018-05-12 10:15 ` [U-Boot] [PATCH 1/7] db820c: set clk node to be probed before relocation Ramon Fried
2018-05-13 22:00   ` Simon Glass
2018-05-14  7:06     ` Ramon Fried
2018-05-12 10:15 ` [U-Boot] [PATCH 2/7] serial: serial_msm: fail probe if settings clocks fails Ramon Fried
2018-05-13 22:00   ` Simon Glass
2018-05-14  7:07     ` Ramon Fried
2018-05-12 10:15 ` [U-Boot] [PATCH 3/7] serial: serial_msm: initialize uart only before relocation Ramon Fried
2018-05-13 22:00   ` Simon Glass
2018-05-12 10:15 ` [U-Boot] [PATCH 4/7] mach-snapdragon: Fix UART clock flow Ramon Fried
2018-05-12 10:15 ` [U-Boot] [PATCH 5/7] mach-snapdragon: Introduce pinctrl driver Ramon Fried
2018-05-13 22:00   ` Simon Glass
2018-05-14  7:10     ` Ramon Fried
2018-05-14 19:51       ` Simon Glass
2018-05-14 21:23         ` Ramon Fried
2018-05-15 16:02           ` Simon Glass
2018-05-15 16:09             ` Ramon Fried
2018-05-15 16:15               ` Simon Glass
2018-05-16  5:37                 ` Ramon Fried
2018-05-12 10:15 ` [U-Boot] [PATCH 6/7] db410: added pinctrl node and serial bindings Ramon Fried
2018-05-13 22:00   ` Simon Glass
2018-05-12 10:15 ` Ramon Fried [this message]
2018-05-13 22:00   ` [U-Boot] [PATCH 7/7] serial: serial_msm: added pinmux & config Simon Glass

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=20180512101558.24375-8-ramon.fried@gmail.com \
    --to=ramon.fried@gmail.com \
    --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.