From: Chen-Yu Tsai <wens@csie.org>
Date: Wed, 22 Oct 2014 08:47:46 +0000 (+0800)
Subject: ARM: sunxi: Allow specifying module in prcm apb0 init function
X-Git-Tag: v2025.01-rc5-pxa1908~14452^2~6
X-Git-Url: http://git.dujemihanovic.xyz/browse.php?a=commitdiff_plain;h=472ed0641e73ea5c5b80f9bfa804bfe0f89eca69;p=u-boot.git

ARM: sunxi: Allow specifying module in prcm apb0 init function

The prcm apb0 controls multiple modules. Allow specifying which
modules to enable clocks and de-assert resets so the function
can be reused.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
---

diff --git a/arch/arm/cpu/armv7/sunxi/prcm.c b/arch/arm/cpu/armv7/sunxi/prcm.c
index 7b3ee89302..19b4938dc9 100644
--- a/arch/arm/cpu/armv7/sunxi/prcm.c
+++ b/arch/arm/cpu/armv7/sunxi/prcm.c
@@ -21,13 +21,15 @@
 #include <asm/arch/prcm.h>
 #include <asm/arch/sys_proto.h>
 
-void prcm_init_apb0(void)
+/* APB0 clock gate and reset bit offsets are the same. */
+void prcm_apb0_enable(u32 flags)
 {
 	struct sunxi_prcm_reg *prcm =
 		(struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
 
-	setbits_le32(&prcm->apb0_gate, PRCM_APB0_GATE_P2WI |
-				       PRCM_APB0_GATE_PIO);
-	setbits_le32(&prcm->apb0_reset, PRCM_APB0_RESET_P2WI |
-					PRCM_APB0_RESET_PIO);
+	/* open the clock for module */
+	setbits_le32(&prcm->apb0_gate, flags);
+
+	/* deassert reset for module */
+	setbits_le32(&prcm->apb0_reset, flags);
 }
diff --git a/arch/arm/include/asm/arch-sunxi/prcm.h b/arch/arm/include/asm/arch-sunxi/prcm.h
index 1b40f094f5..3d3bfa6cd1 100644
--- a/arch/arm/include/asm/arch-sunxi/prcm.h
+++ b/arch/arm/include/asm/arch-sunxi/prcm.h
@@ -233,6 +233,6 @@ struct sunxi_prcm_reg {
 	u32 dram_tst;		/* 0x190 */
 };
 
-void prcm_init_apb0(void);
+void prcm_apb0_enable(u32 flags);
 #endif /* __ASSEMBLY__ */
 #endif /* _PRCM_H */