summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/system-jz4760.c
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-08-29 00:26:22 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-08-29 00:29:25 -0400
commit5e335f5c33cb9e72c6615c503a876e57b8176dab (patch)
treed3a1c16d461530a32c04b1977b08b3f693499d5b /firmware/target/mips/ingenic_jz47xx/system-jz4760.c
parentfc7eb3b2a399104f72699a6a3a795106250058a8 (diff)
downloadrockbox-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.c10
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
761void cpm_select_msc_clk(void);
762
763void set_cpu_frequency(long frequency) 762void 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