summaryrefslogtreecommitdiff
path: root/arch/arm/plat-aspeed/dev-lpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-aspeed/dev-lpc.c')
-rw-r--r--arch/arm/plat-aspeed/dev-lpc.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/arch/arm/plat-aspeed/dev-lpc.c b/arch/arm/plat-aspeed/dev-lpc.c
index 50eb4e6b9a03..945e320945dc 100644
--- a/arch/arm/plat-aspeed/dev-lpc.c
+++ b/arch/arm/plat-aspeed/dev-lpc.c
@@ -25,22 +25,14 @@
#include <linux/string.h>
#include <linux/platform_device.h>
+#include <asm/io.h>
#include <mach/irqs.h>
#include <mach/platform.h>
#include <plat/devs.h>
#include <plat/ast-scu.h>
+#include <plat/regs-lpc.h>
-
-
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/platform_device.h>
-
-#include <mach/irqs.h>
-#include <mach/platform.h>
-#include <plat/devs.h>
-#include <plat/ast-scu.h>
-
+static u32 ast_lpc_base = IO_ADDRESS(AST_LPC_BASE);
/* --------------------------------------------------------------------
* LPC
@@ -100,6 +92,12 @@ void __init ast_add_device_lpc(void)
platform_device_register(&ast_lpc_plus_device);
}
#else
-void __init ast_add_device_lpc(void) {}
+void __init ast_add_device_lpc(void) {
+ // Since we disable LPC, bring the UART1 and UART2 out from LPC control
+ writel((readl(ast_lpc_base + AST_LPC_HICR9)
+ & ~(LPC_HICR9_SOURCE_UART1|LPC_HICR9_SOURCE_UART2
+ |LPC_HICR9_SOURCE_UART3|LPC_HICR9_SOURCE_UART4)),
+ ast_lpc_base + AST_LPC_HICR9);
+}
#endif