From: Chen-Yu Tsai Date: Wed, 22 Oct 2014 08:47:46 +0000 (+0800) Subject: ARM: sunxi: Allow specifying module in prcm apb0 init function X-Git-Tag: v2015.01-rc1~127^2~6 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=472ed0641e73ea5c5b80f9bfa804bfe0f89eca69;p=u-boot 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 Acked-by: Ian Campbell --- 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 #include -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 */