diff mbox

[linux,dev-4.10] ARM: aspeed: Release UART1 from reset for all platforms

Message ID 20170704011012.26158-1-joel@jms.id.au
State Superseded, archived
Headers show

Commit Message

Joel Stanley July 4, 2017, 1:10 a.m. UTC
This workaround was in place for Zaius. Make it common to all
platforms as the held-in-reset behaviour breaks the Linux tty layer
where users expect the existence of a device to mean it is usable.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/arm/mach-aspeed/aspeed.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Comments

Xo Wang July 7, 2017, 10:32 p.m. UTC | #1
On Mon, Jul 3, 2017 at 6:10 PM, Joel Stanley <joel@jms.id.au> wrote:
> This workaround was in place for Zaius. Make it common to all
> platforms as the held-in-reset behaviour breaks the Linux tty layer
> where users expect the existence of a device to mean it is usable.
>
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  arch/arm/mach-aspeed/aspeed.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
> index 420a8d0344da..d3eb9e7c2d8b 100644
> --- a/arch/arm/mach-aspeed/aspeed.c
> +++ b/arch/arm/mach-aspeed/aspeed.c
> @@ -173,14 +173,6 @@ static void __init do_zaius_setup(void)
>         /* Set pin high */
>         reg = readl(AST_IO(AST_BASE_GPIO | 0x00));
>         writel(reg | phy_reset_mask, AST_IO(AST_BASE_GPIO | 0x00));
> -
> -       /* Disable default behavior of UART1 being held in reset by LPCRST#.
> -        * By releasing UART1 from being controlled by LPC reset, it becomes
> -        * immediately available regardless of the host being up.
> -        */
> -       reg = readl(AST_IO(AST_BASE_LPC | 0x98));
> -       /* Clear "Enable UART1 reset source from LPC" */
> -       writel(reg & ~BIT(4), AST_IO(AST_BASE_LPC | 0x98));
>  }
>
>  static void __init do_witherspoon_setup(void)
> @@ -254,6 +246,14 @@ static void __init aspeed_init_early(void)
>          */
>         writel(0x001fdff3, AST_IO(AST_BASE_SCU | 0x9c));
>
> +       /* Disable default behavior of UART1 being held in reset by LPCRST#.
> +        * By releasing UART1 from being controlled by LPC reset, it becomes
> +        * immediately available regardless of the host being up.
> +        */
> +       reg = readl(AST_IO(AST_BASE_LPC | 0x98));
> +       /* Clear "Enable UART1 reset source from LPC" */
> +       writel(reg & ~BIT(4), AST_IO(AST_BASE_LPC | 0x98));
> +
>         /*
>          * Temporary setup of AST registers until pinmux driver is complete
>          */
> --
> 2.13.2
>

Reviewed-by: Xo Wang <xow@google.com>
diff mbox

Patch

diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
index 420a8d0344da..d3eb9e7c2d8b 100644
--- a/arch/arm/mach-aspeed/aspeed.c
+++ b/arch/arm/mach-aspeed/aspeed.c
@@ -173,14 +173,6 @@  static void __init do_zaius_setup(void)
 	/* Set pin high */
 	reg = readl(AST_IO(AST_BASE_GPIO | 0x00));
 	writel(reg | phy_reset_mask, AST_IO(AST_BASE_GPIO | 0x00));
-
-	/* Disable default behavior of UART1 being held in reset by LPCRST#.
-	 * By releasing UART1 from being controlled by LPC reset, it becomes
-	 * immediately available regardless of the host being up.
-	 */
-	reg = readl(AST_IO(AST_BASE_LPC | 0x98));
-	/* Clear "Enable UART1 reset source from LPC" */
-	writel(reg & ~BIT(4), AST_IO(AST_BASE_LPC | 0x98));
 }
 
 static void __init do_witherspoon_setup(void)
@@ -254,6 +246,14 @@  static void __init aspeed_init_early(void)
 	 */
 	writel(0x001fdff3, AST_IO(AST_BASE_SCU | 0x9c));
 
+	/* Disable default behavior of UART1 being held in reset by LPCRST#.
+	 * By releasing UART1 from being controlled by LPC reset, it becomes
+	 * immediately available regardless of the host being up.
+	 */
+	reg = readl(AST_IO(AST_BASE_LPC | 0x98));
+	/* Clear "Enable UART1 reset source from LPC" */
+	writel(reg & ~BIT(4), AST_IO(AST_BASE_LPC | 0x98));
+
 	/*
 	 * Temporary setup of AST registers until pinmux driver is complete
 	 */