diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-08-29 00:26:22 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-08-29 00:29:25 -0400 |
commit | 5e335f5c33cb9e72c6615c503a876e57b8176dab (patch) | |
tree | d3a1c16d461530a32c04b1977b08b3f693499d5b /firmware/target/mips/ingenic_jz47xx/system-jz4760.c | |
parent | fc7eb3b2a399104f72699a6a3a795106250058a8 (diff) | |
download | rockbox-5e335f5c33cb9e72c6615c503a876e57b8176dab.tar.gz rockbox-5e335f5c33cb9e72c6615c503a876e57b8176dab.zip |
jz4760: do the MSC (ie SD) clocking setup when we change PLL0
Change-Id: Ia17b1d7069af507c3f029bcaed0f65e7e97df275
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/system-jz4760.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/system-jz4760.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c index d94bea3f00..eab3ef64e6 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c | |||
@@ -491,12 +491,14 @@ static void pll0_init(unsigned int freq) | |||
491 | | CPPCR0_PLLEN; /* enable PLL */ | 491 | | CPPCR0_PLLEN; /* enable PLL */ |
492 | 492 | ||
493 | /* | 493 | /* |
494 | * Init USB Host clock, pllout2 must be n*48MHz | 494 | * Init USB Host clock, PLL0 must be multiple of 48MHz! |
495 | * For JZ4760b UHC - River. | ||
496 | */ | 495 | */ |
497 | usbdiv = (cfcr & CPCCR_PCS) ? freq : (freq / 2); | 496 | usbdiv = (cfcr & CPCCR_PCS) ? freq : (freq / 2); |
498 | REG_CPM_UHCCDR = usbdiv / 48000000 - 1; | 497 | REG_CPM_UHCCDR = usbdiv / 48000000 - 1; |
499 | 498 | ||
499 | /* Init MSC clock; shoot for 48MHz base clock. */ | ||
500 | REG_CPM_MSCCDR = MSCCDR_MCS | ((freq / 48000000) - 1); | ||
501 | |||
500 | /* init PLL */ | 502 | /* init PLL */ |
501 | REG_CPM_CPCCR = cfcr; | 503 | REG_CPM_CPCCR = cfcr; |
502 | REG_CPM_CPPCR0 = plcr1; | 504 | REG_CPM_CPPCR0 = plcr1; |
@@ -756,10 +758,7 @@ int system_memory_guard(int newmode) | |||
756 | return 0; | 758 | return 0; |
757 | } | 759 | } |
758 | 760 | ||
759 | |||
760 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 761 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
761 | void cpm_select_msc_clk(void); | ||
762 | |||
763 | void set_cpu_frequency(long frequency) | 762 | void set_cpu_frequency(long frequency) |
764 | { | 763 | { |
765 | if (frequency == cpu_frequency) | 764 | if (frequency == cpu_frequency) |
@@ -771,6 +770,5 @@ void set_cpu_frequency(long frequency) | |||
771 | 770 | ||
772 | pll0_init(frequency); | 771 | pll0_init(frequency); |
773 | cpu_frequency = __cpm_get_pllout2(); | 772 | cpu_frequency = __cpm_get_pllout2(); |
774 | cpm_select_msc_clk(); | ||
775 | } | 773 | } |
776 | #endif | 774 | #endif |