mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 21:22:39 -05:00
imx233: enable PLL on startup
Implement PLL enabling/disable and unconditionally power the PLL on startup. This is needed at least on the Zen X-Fi2. Change-Id: Ib9ddfdeaf973cedded4b3586dd16aa95a61e78ba
This commit is contained in:
parent
0ebfb937aa
commit
cd7a478ec1
3 changed files with 14 additions and 1 deletions
|
|
@ -43,6 +43,17 @@ void imx233_clkctrl_enable_clock(enum imx233_clock_t clk, bool enable)
|
|||
{
|
||||
case CLK_PIX: REG = &HW_CLKCTRL_PIX; break;
|
||||
case CLK_SSP: REG = &HW_CLKCTRL_SSP; break;
|
||||
case CLK_PLL:
|
||||
{
|
||||
if(enable)
|
||||
{
|
||||
__REG_SET(HW_CLKCTRL_PLLCTRL0) = HW_CLKCTRL_PLLCTRL0__POWER;
|
||||
while(!(HW_CLKCTRL_PLLCTRL1 & HW_CLKCTRL_PLLCTRL1__LOCK));
|
||||
}
|
||||
else
|
||||
__REG_CLR(HW_CLKCTRL_PLLCTRL0) = HW_CLKCTRL_PLLCTRL0__POWER;
|
||||
return;
|
||||
}
|
||||
default: return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#define HW_CLKCTRL_PLLCTRL0__DIV_SEL_BM (3 << 20)
|
||||
|
||||
#define HW_CLKCTRL_PLLCTRL1 (*(volatile uint32_t *)(HW_CLKCTRL_BASE + 0x10))
|
||||
#define HW_CLKCTRL_PLLCTRL1__LOCK (1 << 31)
|
||||
|
||||
#define HW_CLKCTRL_CPU (*(volatile uint32_t *)(HW_CLKCTRL_BASE + 0x20))
|
||||
#define HW_CLKCTRL_CPU__DIV_CPU_BP 0
|
||||
|
|
@ -121,7 +122,7 @@ enum imx233_clock_t
|
|||
CLK_IO, /* freq, frac */
|
||||
CLK_CPU, /* freq, div, frac, bypass */
|
||||
CLK_HBUS, /* freq, div, frac */
|
||||
CLK_PLL, /* freq */
|
||||
CLK_PLL, /* freq, enable */
|
||||
CLK_XTAL, /* freq */
|
||||
CLK_EMI, /* freq */
|
||||
CLK_XBUS, /* freq, div */
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ void memory_init(void)
|
|||
|
||||
void system_init(void)
|
||||
{
|
||||
imx233_clkctrl_enable_clock(CLK_PLL, true);
|
||||
imx233_rtc_init();
|
||||
imx233_icoll_init();
|
||||
imx233_pinctrl_init();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue