static void wait_clock(unsigned clk,unsigned dest) { char * pszCLK[] = { NULL,NULL,NULL,"DDR PLL","USB0 CLK","USB1 CLK", "VID PLL","CLK81",NULL,NULL,NULL,"ETH RMII","VID2 PLL", }; unsigned cur; do{ cur=clk_util_clk_msr(clk); serial_puts("\nSet ["); if(clk < (sizeof(pszCLK)/sizeof(pszCLK[0])) && pszCLK[clk]) serial_puts(pszCLK[clk]); else serial_puts("N/A"); serial_puts("] to "); serial_put_dec(dest); serial_puts("MHz now it is "); //tolerance +/- 1 if((cur == dest-1) || (cur == dest+1)) serial_put_dec(dest); else serial_put_dec(cur); serial_puts("MHz"); __udelay(100); }while(cur<dest-1 || cur >dest+1); serial_puts(" --> OK!\n"); }
void power_init(int mode) { pwm_init(pwm_b); pwm_init(pwm_d); serial_puts("set vcck to "); serial_put_dec(CONFIG_VCCK_INIT_VOLTAGE); serial_puts(" mv\n"); pwm_set_voltage(pwm_b, CONFIG_VCCK_INIT_VOLTAGE); serial_puts("set vddee to "); serial_put_dec(CONFIG_VDDEE_INIT_VOLTAGE); serial_puts(" mv\n"); pwm_set_voltage(pwm_d, CONFIG_VDDEE_INIT_VOLTAGE); }