1
0
Fork 0
forked from len0rd/rockbox

FS#10245 by Jack Halpin : Adjust Clocking scheme on Sansa AMS

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21088 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2009-05-26 18:44:02 +00:00
parent 29bbcebee4
commit ef9aacb2e0
9 changed files with 158 additions and 76 deletions

View file

@ -120,39 +120,39 @@ int calc_freq(int clk)
switch(CGU_PROC & 3) {
case 0:
return CLK_MAIN/
((8/(8-((CGU_PROC & 0xc)>>2)))*(((CGU_PROC & 0xf0)>>4) + 1));
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
case 1:
return calc_freq(CLK_PLLA)/
((8/(8-((CGU_PROC & 0xc)>>2)))*(((CGU_PROC & 0xf0)>>4) + 1));
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
case 2:
return calc_freq(CLK_PLLB)/
((8/(8-((CGU_PROC & 0xc)>>2)))*(((CGU_PROC & 0xf0)>>4) + 1));
((8/(8-((CGU_PROC>>2)& 0x3)))*(((CGU_PROC>>4)& 0xf) + 1));
default:
return 0;
}
case CLK_EXTMEM:
switch(CGU_PERI & 3) {
case 0:
return CLK_MAIN/(((CGU_PERI & 0x3c)>>2)+1);
return CLK_MAIN/(((CGU_PERI>>2)& 0xf)+1);
case 1:
return calc_freq(CLK_PLLA)/(((CGU_PERI & 0x3c)>>2)+1);
return calc_freq(CLK_PLLA)/(((CGU_PERI>>2)& 0xf)+1);
case 2:
return calc_freq(CLK_PLLB)/(((CGU_PERI & 0x3c)>>2)+1);
return calc_freq(CLK_PLLB)/(((CGU_PERI>>2)& 0xf)+1);
case 3:
return calc_freq(CLK_FCLK)/(((CGU_PERI & 0x3c)>>2)+1);
return calc_freq(CLK_FCLK)/(((CGU_PERI>>2)& 0xf)+1);
default:
return 0;
}
case CLK_PCLK:
return calc_freq(CLK_EXTMEM)/(((CGU_PERI & 0x40)>>6)+1);
return calc_freq(CLK_EXTMEM)/(((CGU_PERI>>6)& 0x1)+1);
case CLK_IDE:
switch(CGU_IDE & 3) {
case 0:
return CLK_MAIN/(((CGU_IDE & 0x3c)>>2)+1);
return CLK_MAIN/(((CGU_IDE>>2)& 0xf)+1);
case 1:
return calc_freq(CLK_PLLA)/(((CGU_IDE & 0x3c)>>2)+1);;
return calc_freq(CLK_PLLA)/(((CGU_IDE>>2)& 0xf)+1);
case 2:
return calc_freq(CLK_PLLB)/(((CGU_IDE & 0x3c)>>2)+1);
return calc_freq(CLK_PLLB)/(((CGU_IDE>>2)& 0xf)+1);
default:
return 0;
}