forked from len0rd/rockbox
AMSSansa: clock-target.h and debug-as3525 now use AS3525_FCLK_PREDIV correctly. Default frequency scheme remains 248/62/62.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21125 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
b4b7c7501e
commit
b714ace163
2 changed files with 7 additions and 8 deletions
|
@ -89,8 +89,8 @@
|
||||||
|
|
||||||
/* FCLK */
|
/* FCLK */
|
||||||
#define AS3525_FCLK_SEL AS3525_CLK_PLLA
|
#define AS3525_FCLK_SEL AS3525_CLK_PLLA
|
||||||
#define AS3525_FCLK_PREDIV 0 /* div = (8-n)/8 acts strange when used!*/
|
#define AS3525_FCLK_PREDIV 0 /* div = (8-n)/8 Enter manually & postdiv will be calculated*/
|
||||||
#define AS3525_FCLK_POSTDIV (CLK_DIV(AS3525_PLLA_FREQ, AS3525_FCLK_FREQ) - 1) /*div=1/(n+1)*/
|
#define AS3525_FCLK_POSTDIV (CLK_DIV((AS3525_PLLA_FREQ*(8-AS3525_FCLK_PREDIV)/8), AS3525_FCLK_FREQ) - 1) /*div=1/(n+1)*/
|
||||||
|
|
||||||
/* PCLK */
|
/* PCLK */
|
||||||
#ifdef ASYNCHRONOUS_BUS
|
#ifdef ASYNCHRONOUS_BUS
|
||||||
|
|
|
@ -84,6 +84,8 @@ static unsigned read_cp15 (void)
|
||||||
int calc_freq(int clk)
|
int calc_freq(int clk)
|
||||||
{
|
{
|
||||||
int out_div;
|
int out_div;
|
||||||
|
unsigned int prediv = ((unsigned int)CGU_PROC>>2) & 0x3;
|
||||||
|
unsigned int postdiv = ((unsigned int)CGU_PROC>>4) & 0xf;
|
||||||
|
|
||||||
switch(clk) {
|
switch(clk) {
|
||||||
/* clk_main = clk_int = 24MHz oscillator */
|
/* clk_main = clk_int = 24MHz oscillator */
|
||||||
|
@ -119,14 +121,11 @@ int calc_freq(int clk)
|
||||||
case CLK_FCLK:
|
case CLK_FCLK:
|
||||||
switch(CGU_PROC & 3) {
|
switch(CGU_PROC & 3) {
|
||||||
case 0:
|
case 0:
|
||||||
return CLK_MAIN/
|
return (CLK_MAIN * (8 - prediv)) / (8*(postdiv + 1));
|
||||||
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
|
|
||||||
case 1:
|
case 1:
|
||||||
return calc_freq(CLK_PLLA)/
|
return (calc_freq(CLK_PLLA) * (8 - prediv)) / (8*(postdiv + 1));
|
||||||
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
|
|
||||||
case 2:
|
case 2:
|
||||||
return calc_freq(CLK_PLLB)/
|
return (calc_freq(CLK_PLLB) * (8 - prediv)) / (8*(postdiv + 1));
|
||||||
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
|
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue