forked from len0rd/rockbox
AMS Sansa: Adjust View HW info page to display SD and uSD MCICLK freqs instead
of 400 khz Ident freq. Also misc formatting changes. Displaying the 400 khz ident frequency for the SD and uSD cards was not really useful information. This change displays the MCICLK frequency that we are running the cards at. The page now displays 0MHz until a card access and then will displays the set frequency and the actual frequency. The uSD display is now only displayed for those players with a uSD git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22684 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
2544b001b8
commit
589e1f0072
1 changed files with 66 additions and 36 deletions
|
@ -55,8 +55,8 @@
|
|||
#define CLK_I2SI 8
|
||||
#define CLK_I2SO 9
|
||||
#define CLK_DBOP 10
|
||||
#define CLK_SD_IDENT_NAND 11
|
||||
#define CLK_SD_IDENT_MSD 12
|
||||
#define CLK_SD_MCLK_NAND 11
|
||||
#define CLK_SD_MCLK_MSD 12
|
||||
#define CLK_USB 13
|
||||
|
||||
#define I2C2_CPSR0 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x1C))
|
||||
|
@ -123,9 +123,11 @@ int calc_freq(int clk)
|
|||
case 0:
|
||||
return (CLK_MAIN * (8 - prediv)) / (8 * (postdiv + 1));
|
||||
case 1:
|
||||
return (calc_freq(CLK_PLLA) * (8 - prediv)) / (8*(postdiv + 1));
|
||||
return (calc_freq(CLK_PLLA) * (8 - prediv)) /
|
||||
(8 * (postdiv + 1));
|
||||
case 2:
|
||||
return (calc_freq(CLK_PLLB) * (8 - prediv)) / (8*(postdiv + 1));
|
||||
return (calc_freq(CLK_PLLB) * (8 - prediv)) /
|
||||
(8 * (postdiv + 1));
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
@ -181,20 +183,20 @@ int calc_freq(int clk)
|
|||
}
|
||||
case CLK_DBOP:
|
||||
return calc_freq(CLK_PCLK)/((CGU_DBOP & 7)+1);
|
||||
case CLK_SD_IDENT_NAND:
|
||||
case CLK_SD_MCLK_NAND:
|
||||
if(!(MCI_NAND & (1<<8)))
|
||||
return 0;
|
||||
else if(MCI_NAND & (1<<10))
|
||||
return calc_freq(CLK_PCLK);
|
||||
else
|
||||
return calc_freq(CLK_PCLK)/(((MCI_NAND & 0xff)*2)+1);
|
||||
case CLK_SD_IDENT_MSD:
|
||||
return calc_freq(CLK_PCLK)/(((MCI_NAND & 0xff)+1)*2);
|
||||
case CLK_SD_MCLK_MSD:
|
||||
if(!(MCI_SD & (1<<8)))
|
||||
return 0;
|
||||
else if(MCI_SD & (1<<10))
|
||||
return calc_freq(CLK_PCLK);
|
||||
else
|
||||
return calc_freq(CLK_PCLK)/(((MCI_SD & 0xff)*2)+1);
|
||||
return calc_freq(CLK_PCLK)/(((MCI_SD & 0xff)+1)*2);
|
||||
case CLK_USB:
|
||||
switch(CGU_USB & 3) { /* 0-> div=1 other->div=1/(2*n) */
|
||||
case 0:
|
||||
|
@ -224,6 +226,10 @@ bool __dbg_hw_info(void)
|
|||
{
|
||||
char buf[50];
|
||||
int line;
|
||||
int last_nand = 0;
|
||||
#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2)
|
||||
int last_sd = 0;
|
||||
#endif
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
@ -236,10 +242,12 @@ bool __dbg_hw_info(void)
|
|||
line = 0;
|
||||
_DEBUG_PRINTF("[Clock Frequencies:]");
|
||||
_DEBUG_PRINTF(" SET ACTUAL");
|
||||
_DEBUG_PRINTF("922T:%s %3dMHz", (!(read_cp15()>>30)) ? "FAST " :
|
||||
_DEBUG_PRINTF("922T:%s %3dMHz",
|
||||
(!(read_cp15()>>30)) ? "FAST " :
|
||||
(read_cp15()>>31) ? "ASYNC" : "SYNC ",
|
||||
calc_freq(CLK_922T)/1000000);
|
||||
_DEBUG_PRINTF("PLLA:%3dMHz %3dMHz", AS3525_PLLA_FREQ/1000000, calc_freq(CLK_PLLA)/1000000);
|
||||
_DEBUG_PRINTF("PLLA:%3dMHz %3dMHz", AS3525_PLLA_FREQ/1000000,
|
||||
calc_freq(CLK_PLLA)/1000000);
|
||||
_DEBUG_PRINTF("PLLB: %3dMHz", calc_freq(CLK_PLLB)/1000000);
|
||||
_DEBUG_PRINTF("FCLK: %3dMHz", calc_freq(CLK_FCLK)/1000000);
|
||||
|
||||
|
@ -257,12 +265,18 @@ bool __dbg_hw_info(void)
|
|||
line = 0;
|
||||
#endif /* LCD_HEIGHT < 176 */
|
||||
|
||||
_DEBUG_PRINTF("DRAM:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000, calc_freq(CLK_EXTMEM)/1000000);
|
||||
_DEBUG_PRINTF("PCLK:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000, calc_freq(CLK_PCLK)/1000000);
|
||||
_DEBUG_PRINTF("IDE :%3dMHz %3dMHz", AS3525_IDE_FREQ/1000000,calc_freq(CLK_IDE)/1000000);
|
||||
_DEBUG_PRINTF("DBOP:%3dMHz %3dMHz", AS3525_DBOP_FREQ/1000000,calc_freq(CLK_DBOP)/1000000);
|
||||
_DEBUG_PRINTF("I2C :%3dkHz %3dkHz", AS3525_I2C_FREQ/1000,calc_freq(CLK_I2C)/1000);
|
||||
_DEBUG_PRINTF("I2SI: %s %3dMHz", (CGU_AUDIO & (1<<23)) ? "on " : "off" ,calc_freq(CLK_I2SI)/1000000);
|
||||
_DEBUG_PRINTF("DRAM:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000,
|
||||
calc_freq(CLK_EXTMEM)/1000000);
|
||||
_DEBUG_PRINTF("PCLK:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000,
|
||||
calc_freq(CLK_PCLK)/1000000);
|
||||
_DEBUG_PRINTF("IDE :%3dMHz %3dMHz", AS3525_IDE_FREQ/1000000,
|
||||
calc_freq(CLK_IDE)/1000000);
|
||||
_DEBUG_PRINTF("DBOP:%3dMHz %3dMHz", AS3525_DBOP_FREQ/1000000,
|
||||
calc_freq(CLK_DBOP)/1000000);
|
||||
_DEBUG_PRINTF("I2C :%3dkHz %3dkHz", AS3525_I2C_FREQ/1000,
|
||||
calc_freq(CLK_I2C)/1000);
|
||||
_DEBUG_PRINTF("I2SI: %s %3dMHz", (CGU_AUDIO & (1<<23)) ?
|
||||
"on " : "off" , calc_freq(CLK_I2SI)/1000000);
|
||||
|
||||
#if LCD_HEIGHT < 176 /* clip */
|
||||
lcd_update();
|
||||
|
@ -278,14 +292,29 @@ bool __dbg_hw_info(void)
|
|||
line = 0;
|
||||
#endif /* LCD_HEIGHT < 176 */
|
||||
|
||||
_DEBUG_PRINTF("I2SO: %s %3dMHz", (CGU_AUDIO & (1<<11)) ? "on " : "off", calc_freq(CLK_I2SO)/1000000);
|
||||
_DEBUG_PRINTF("SD :%3dkHz %3dkHz", AS3525_SD_IDENT_FREQ/1000,calc_freq(CLK_SD_IDENT_NAND)/1000);
|
||||
_DEBUG_PRINTF("MSD :%3dkHz %3dkHz", AS3525_SD_IDENT_FREQ/1000,calc_freq(CLK_SD_IDENT_MSD)/1000);
|
||||
_DEBUG_PRINTF("I2SO: %s %3dMHz", (CGU_AUDIO & (1<<11)) ?
|
||||
"on " : "off", calc_freq(CLK_I2SO)/1000000);
|
||||
if(MCI_NAND)
|
||||
last_nand = MCI_NAND;
|
||||
/* MCLK == PCLK */
|
||||
_DEBUG_PRINTF("SD :%3dMHz %3dMHz",
|
||||
((last_nand ? (AS3525_PCLK_FREQ/ 1000000): 0) /
|
||||
((last_nand & MCI_CLOCK_BYPASS)? 1:(((last_nand & 0xff)+1) * 2))),
|
||||
calc_freq(CLK_SD_MCLK_NAND)/1000000);
|
||||
#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2)
|
||||
if(MCI_SD)
|
||||
last_sd = MCI_SD;
|
||||
_DEBUG_PRINTF("uSD :%3dMHz %3dMHz",
|
||||
((last_sd ? (AS3525_PCLK_FREQ/ 1000000): 0) /
|
||||
((last_sd & MCI_CLOCK_BYPASS) ? 1: (((last_sd & 0xff) + 1) * 2))),
|
||||
calc_freq(CLK_SD_MCLK_MSD)/1000000);
|
||||
#endif
|
||||
_DEBUG_PRINTF("USB : %3dMHz", calc_freq(CLK_USB)/1000000);
|
||||
_DEBUG_PRINTF("MMU: %s CVDDP:%4d", (read_cp15() & CP15_MMU) ? " op" : "nop",
|
||||
adc_read(ADC_CVDD) * 25);
|
||||
_DEBUG_PRINTF("Icache:%s Dcache:%s",(read_cp15() & CP15_IC) ? " op" : "nop",
|
||||
(read_cp15() & CP15_DC) ? " op" : "nop");
|
||||
_DEBUG_PRINTF("MMU : %s CVDDP:%4d", (read_cp15() & CP15_MMU) ?
|
||||
" on" : "off", adc_read(ADC_CVDD) * 25);
|
||||
_DEBUG_PRINTF("Icache:%s Dcache:%s",
|
||||
(read_cp15() & CP15_IC) ? " on" : "off",
|
||||
(read_cp15() & CP15_DC) ? " on" : "off");
|
||||
|
||||
lcd_update();
|
||||
int btn = button_get_w_tmo(HZ/10);
|
||||
|
@ -322,7 +351,8 @@ bool __dbg_hw_info(void)
|
|||
|
||||
_DEBUG_PRINTF("CGU_AUDIO :%8x", (unsigned int)(CGU_AUDIO));
|
||||
_DEBUG_PRINTF("CGU_USB :%8x", (unsigned int)(CGU_USB));
|
||||
_DEBUG_PRINTF("I2C2_CPSR :%8x", (unsigned int)(I2C2_CPSR1<<8 | I2C2_CPSR0));
|
||||
_DEBUG_PRINTF("I2C2_CPSR :%8x", (unsigned int)(I2C2_CPSR1<<8 |
|
||||
I2C2_CPSR0));
|
||||
_DEBUG_PRINTF("MCI_NAND :%8x", (unsigned int)(MCI_NAND));
|
||||
_DEBUG_PRINTF("MCI_SD :%8x", (unsigned int)(MCI_SD));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue