Patchwork [U-Boot,1/2] da850: provide davinci_enable_uart0

login
register
mail settings
Submitter Eric Benard
Date April 22, 2013, 3:54 p.m.
Message ID <1366646100-2456-1-git-send-email-eric@eukrea.com>
Download mbox | patch
Permalink /patch/238594/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Eric Benard - April 22, 2013, 3:54 p.m.
this is needed to bring UART0 out of reset but this function
currently only exists for dm644x/355/365/646x when da850 (at
least am1808 also need it).

Signed-off-by: Eric BĂ©nard <eric@eukrea.com>
---
 arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c | 8 ++++++++
 arch/arm/include/asm/arch-davinci/hardware.h    | 2 ++
 2 files changed, 10 insertions(+)
Tom Rini - April 29, 2013, 8:22 p.m.
On Mon, Apr 22, 2013 at 05:54:59PM +0200, Eric B??nard wrote:

> this is needed to bring UART0 out of reset but this function
> currently only exists for dm644x/355/365/646x when da850 (at
> least am1808 also need it).
> 
> Signed-off-by: Eric B??nard <eric@eukrea.com>

Along with 2/2, applied to u-boot-ti/master, thanks!

Patch

diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
index ff2e2e3..127beb8 100644
--- a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
+++ b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
@@ -32,6 +32,14 @@ 
 #include <asm/arch/emif_defs.h>
 #include <asm/arch/pll_defs.h>
 
+void davinci_enable_uart0(void)
+{
+	lpsc_on(DAVINCI_LPSC_UART0);
+
+	/* Bringup UART0 out of reset */
+	REG(UART0_PWREMU_MGMT) = 0x00006001;
+}
+
 #if defined(CONFIG_SYS_DA850_PLL_INIT)
 void da850_waitloop(unsigned long loopcnt)
 {
diff --git a/arch/arm/include/asm/arch-davinci/hardware.h b/arch/arm/include/asm/arch-davinci/hardware.h
index 6eed6c9..a9017e4 100644
--- a/arch/arm/include/asm/arch-davinci/hardware.h
+++ b/arch/arm/include/asm/arch-davinci/hardware.h
@@ -346,6 +346,8 @@  void davinci_errata_workarounds(void);
 #define PSC_PSC0_MODULE_ID_CNT		16
 #define PSC_PSC1_MODULE_ID_CNT		32
 
+#define UART0_PWREMU_MGMT		(0x01c42030)
+
 struct davinci_psc_regs {
 	dv_reg	revid;
 	dv_reg	rsvd0[71];