[PATCH linux dev-4.7 2/2] arm: aspeed: romulus: Disable LPC reset for UART1
Joel Stanley
joel at jms.id.au
Fri Mar 24 15:30:25 AEDT 2017
On Thu, Mar 23, 2017 at 5:14 PM, Lei YU <mine260309 at gmail.com> wrote:
> This follows Zaius's fix, that clear the LPC block control bit that
> enables LPCRST# as a reset source for UART1, making UART1
> immediately useful in that it won't discard bytes.
>
> Signed-off-by: Lei YU <mine260309 at gmail.com>
It's not ideal to be adding more hacks to the board file. We need to
add a driver for doing this reset.
I have applied the patch to dev-4.7 so your system can work now.
Cheers,
Joel
> ---
> arch/arm/mach-aspeed/aspeed.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
> index 7ac006a..a7b03a0 100644
> --- a/arch/arm/mach-aspeed/aspeed.c
> +++ b/arch/arm/mach-aspeed/aspeed.c
> @@ -220,6 +220,7 @@ static void __init do_witherspoon_setup(void)
>
> static void __init do_romulus_setup(void)
> {
> + unsigned long reg;
> do_common_setup();
>
> /* Set SPI1 CE1 decoding window to 0x34000000 */
> @@ -227,6 +228,14 @@ static void __init do_romulus_setup(void)
>
> /* Set SPI1 CE0 decoding window to 0x30000000 */
> writel(0x68600000, AST_IO(AST_BASE_SPI | 0x30));
> +
> + /* 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));
> }
>
> #define SCU_PASSWORD 0x1688A8A8
> --
> 1.9.1
>
More information about the openbmc
mailing list