void clock_init(void) { tca_ckc_setfbusctrl( CLKCTRL0, ENABLE, 0, 8000000, DIRECTPLL5); /*FBUS_CPU 800 MHz*/ // 1.2V tca_ckc_setfbusctrl( CLKCTRL1, ENABLE, 0, 2500000, DIRECTPLL1); /*FBUS_DDI 290 MHz*/ tca_ckc_setfbusctrl( CLKCTRL2, ENABLE, 0, 4000000, DIRECTPLL3); /*FBUS_MEM 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL3, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_GRP 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL4, ENABLE, 0, 1680000, DIRECTPLL3); /*FBUS_IOB 190 MHz */ tca_ckc_setfbusctrl( CLKCTRL5, DISABLE, 0, 2970000, DIRECTPLL0); /*FBUS_VBUS 300 MHz */ tca_ckc_setfbusctrl( CLKCTRL6, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_VCODEC 290 MHz */ tca_ckc_setfbusctrl( CLKCTRL7, ENABLE, 0, 2000000, DIRECTPLL5); /*FBUS_SMU 200 MHz */ tca_ckc_setfbusctrl( CLKCTRL8, ENABLE, 0, 2160000, DIRECTPLL2); /*FBUS_HSIO 240 MHz */ tca_ckc_setfbusctrl( CLKCTRL9, DISABLE, 0, 2970000, DIRECTPLL0); /*CAMBUS 330 MHz */ }
/************************************************************ * Function : clock_init() * Description : * - increase fbus clock (1.2V or higher level) ************************************************************/ void clock_init(void) { #if defined(AXP192_PMIC) axp192_init(I2C_CH_MASTER0); axp192_set_voltage(AXP192_ID_DCDC2, 1250); // CoreA 1200mV axp192_set_voltage(AXP192_ID_DCDC1, 0); // CoreB Disable #endif #if defined(RN5T614_PMIC) rn5t614_init(I2C_CH_MASTER0); #if (HW_REV == 0x2004) rn5t614_set_voltage(RN5T614_ID_DCDC1, 0); rn5t614_set_power(RN5T614_ID_DCDC1, 0); #else rn5t614_set_voltage(RN5T614_ID_DCDC1, 1250); rn5t614_set_power(RN5T614_ID_DCDC1, 1); #endif rn5t614_set_voltage(RN5T614_ID_LDO1, 1800); rn5t614_set_power(RN5T614_ID_LDO1, 1); rn5t614_set_voltage(RN5T614_ID_LDO3, 3000); rn5t614_set_power(RN5T614_ID_LDO3, 1); rn5t614_set_voltage(RN5T614_ID_LDO5, 3300); rn5t614_set_power(RN5T614_ID_LDO5, 1); rn5t614_set_voltage(RN5T614_ID_LDO6, 1200); rn5t614_set_power(RN5T614_ID_LDO6, 1); rn5t614_set_voltage(RN5T614_ID_LDO7, 1800); rn5t614_set_power(RN5T614_ID_LDO7, 1); #endif tca_ckc_setfbusctrl( FBUS_CPU, ENABLE, 8000000); /*FBUS_CPU 800 MHz */ // 1.35V // tca_ckc_setfbusctrl( FBUS_CPU, ENABLE, 6250000); /*FBUS_CPU 625 MHz */ // 1.2V #if defined(DRAM_DDR3) tca_ckc_setfbusctrl( FBUS_MEM, ENABLE, 5330000); /*FBUS_MEM 533 MHz */ #else tca_ckc_setfbusctrl( FBUS_MEM, ENABLE, 3000000); /*FBUS_MEM 300 MHz */ #endif tca_ckc_setfbusctrl( FBUS_DDI, ENABLE, 3120000); /*FBUS_DDI 312 MHz */ tca_ckc_setfbusctrl( FBUS_GPU, DISABLE, 3700000); /*FBUS_GRP 370 MHz */ tca_ckc_setfbusctrl( FBUS_IO, ENABLE, 1960000); /*FBUS_IOB 196 MHz */ tca_ckc_setfbusctrl( FBUS_VBUS, DISABLE, 2770000); /*FBUS_VBUS 277 MHz */ tca_ckc_setfbusctrl( FBUS_VCORE, DISABLE, 2770000); /*FBUS_VCODEC 277 MHz */ tca_ckc_setfbusctrl( FBUS_HSIO, ENABLE, 2500000); /*FBUS_HSIO 250 MHz */ tca_ckc_setfbusctrl( FBUS_SMU, ENABLE, 1000000); /*FBUS_SMU 196 MHz */ }
void clock_init(void) { #if defined(AXP192_PMIC) axp192_init(I2C_CORE0_CH0); axp192_set_voltage(AXP192_ID_DCDC2, 1200); // CoreA 1200mV #endif tca_ckc_setfbusctrl( CLKCTRL0, ENABLE, 0, 8000000, DIRECTPLL5); /*FBUS_CPU 800 MHz*/ // 1.2V tca_ckc_setfbusctrl( CLKCTRL1, ENABLE, 0, 2500000, DIRECTPLL1); /*FBUS_DDI 290 MHz*/ tca_ckc_setfbusctrl( CLKCTRL2, ENABLE, 0, 3200000, DIRECTPLL3); /*FBUS_MEM 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL3, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_GRP 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL4, ENABLE, 0, 1680000, DIRECTPLL3); /*FBUS_IOB 190 MHz */ tca_ckc_setfbusctrl( CLKCTRL5, DISABLE, 0, 2970000, DIRECTPLL0); /*FBUS_VBUS 300 MHz */ tca_ckc_setfbusctrl( CLKCTRL6, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_VCODEC 290 MHz */ tca_ckc_setfbusctrl( CLKCTRL7, ENABLE, 0, 2000000, DIRECTPLL5); /*FBUS_SMU 200 MHz */ tca_ckc_setfbusctrl( CLKCTRL8, ENABLE, 0, 2160000, DIRECTPLL2); /*FBUS_HSIO 240 MHz */ tca_ckc_setfbusctrl( CLKCTRL9, DISABLE, 0, 2970000, DIRECTPLL0); /*CAMBUS 330 MHz */ }
void clock_init_early(void) { tca_ckc_init(); tca_ckc_setpll(5940000, 0); tca_ckc_setpll(5000000, 1); tca_ckc_setpll(4320000, 2); tca_ckc_setpll(6720000, 3); // tca_ckc_setpll(6000000, 4); // tca_ckc_setpll(6480000, 5); // tca_ckc_setfbusctrl( CLKCTRL0, ENABLE, 0, 8000000, DIRECTPLL5); /*FBUS_CPU 800 MHz*/ // 1.2V tca_ckc_setfbusctrl( CLKCTRL1, ENABLE, 0, 2500000, DIRECTPLL1); /*FBUS_DDI 290 MHz*/ // tca_ckc_setfbusctrl( CLKCTRL2, ENABLE, 0, 3200000, DIRECTPLL3); /*FBUS_MEM 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL3, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_GRP 320 MHz */ tca_ckc_setfbusctrl( CLKCTRL4, ENABLE, 0, 1680000, DIRECTPLL3); /*FBUS_IOB 190 MHz */ tca_ckc_setfbusctrl( CLKCTRL5, DISABLE, 0, 2970000, DIRECTPLL0); /*FBUS_VBUS 300 MHz */ tca_ckc_setfbusctrl( CLKCTRL6, DISABLE, 0, 2500000, DIRECTPLL1); /*FBUS_VCODEC 290 MHz */ tca_ckc_setfbusctrl( CLKCTRL7, ENABLE, 0, 2000000, DIRECTPLL5); /*FBUS_SMU 200 MHz */ tca_ckc_setfbusctrl( CLKCTRL8, ENABLE, 0, 2160000, DIRECTPLL2); /*FBUS_HSIO 240 MHz */ tca_ckc_setfbusctrl( CLKCTRL9, DISABLE, 0, 2970000, DIRECTPLL0); /*CAMBUS 330 MHz */ // init Peri. Clock tca_ckc_setperi(PERI_TCX , DISABLE, 120000, PCDIRECTXIN); tca_ckc_setperi(PERI_TCT , ENABLE, 120000, PCDIRECTXIN); tca_ckc_setperi(PERI_TCZ , ENABLE, 120000, PCDIRECTXIN); tca_ckc_setperi(PERI_LCD0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_LCD1 , ENABLE, 960000,PCDIRECTPLL3); tca_ckc_setperi(PERI_LCDSI0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_LCDSI1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_HDMIA , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_DSI , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_RESERVED0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_HDMI , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_USB11H , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SDMMC0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_MSTICK , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_I2C0 , ENABLE, 40000, PCDIRECTXIN); tca_ckc_setperi(PERI_UART0 , ENABLE, 480000,PCDIRECTPLL3); tca_ckc_setperi(PERI_UART1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_UART2 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_UART3 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_UART4 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_UART5 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB2 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB3 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB4 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GPSB5 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_ADC , ENABLE, 120000, PCDIRECTXIN); tca_ckc_setperi(PERI_SPDIF , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_EHI0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_EHI1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_AUD , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_PDM , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SDMMC1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SDMMC2 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SDMMC3 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_DAI0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_DAI1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_DAI2 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_I2C1 , ENABLE, 40000, PCDIRECTXIN); tca_ckc_setperi(PERI_SATA_REF0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SATA_REF1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SATAH0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_SATAH1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_USB20H , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_GMAC , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_CIFMC , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_CIFSC , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_ISPJ , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_ISPS , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_FILTER , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_RESERVED1 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_RESERVED2 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_RESERVED3 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_OUT0 , DISABLE, 10000, PCDIRECTXIN); tca_ckc_setperi(PERI_OUT1 , DISABLE, 10000, PCDIRECTXIN); }
/************************************************************ * Function : clock_init_early() * Description : * - set pll/peri-clock and * - set fbus clock to low (1.0V level) ************************************************************/ void clock_init_early(void) { tca_ckc_init(); tca_ckc_setfbusctrl( FBUS_IO, ENABLE, 60000); /*FBUS_IO 6 MHz */ tca_ckc_setfbusctrl( FBUS_SMU, ENABLE, 60000); /*FBUS_SMU 6 MHz */ tca_ckc_setpll(5940000, 0); tca_ckc_setpll(5000000, 1); tca_ckc_setpll(7280000, 2); tca_ckc_setpll(6720000, 3); // tca_ckc_setpll(6000000, 4); // for memory bus // tca_ckc_setpll(6480000, 5); // for cpu // tca_ckc_setfbusctrl( FBUS_CPU, ENABLE, 4000000); /*FBUS_CPU 400 MHz */ // 1.0V // tca_ckc_setfbusctrl( FBUS_MEM, ENABLE, 1250000); /*FBUS_MEM 160 MHz */ tca_ckc_setfbusctrl( FBUS_DDI, ENABLE, 1250000); /*FBUS_DDI 290 MHz */ tca_ckc_setfbusctrl( FBUS_GPU, DISABLE, 1250000); /*FBUS_GRP 320 MHz */ tca_ckc_setfbusctrl( FBUS_IO, ENABLE, 720000); /*FBUS_IO 190 MHz */ tca_ckc_setfbusctrl( FBUS_VBUS, DISABLE, 990000); /*FBUS_VBUS 300 MHz */ tca_ckc_setfbusctrl( FBUS_VCORE, DISABLE, 1250000); /*FBUS_VCODEC 290 MHz */ tca_ckc_setfbusctrl( FBUS_HSIO, ENABLE, 1080000); /*FBUS_HSIO 240 MHz */ tca_ckc_setfbusctrl( FBUS_SMU, ENABLE, 1000000); /*FBUS_SMU 200 MHz */ // init Peri. Clock tca_ckc_setperi(PERI_TCX , DISABLE, 120000); tca_ckc_setperi(PERI_TCT , ENABLE, 120000); tca_ckc_setperi(PERI_TCZ , ENABLE, 120000); tca_ckc_setperi(PERI_LCD0 , DISABLE, 10000); tca_ckc_setperi(PERI_LCDSI0 , DISABLE, 10000); tca_ckc_setperi(PERI_LCD1 , ENABLE, 960000); tca_ckc_setperi(PERI_LCDSI1 , DISABLE, 10000); tca_ckc_setperi(PERI_RESERVED0 , DISABLE, 10000); tca_ckc_setperi(PERI_LCDTIMER , DISABLE, 10000); tca_ckc_setperi(PERI_JPEG , DISABLE, 10000); tca_ckc_setperi(PERI_RESERVED1 , DISABLE, 10000); tca_ckc_setperi(PERI_RESERVED2 , DISABLE, 10000); tca_ckc_setperi(PERI_GMAC , DISABLE, 10000); tca_ckc_setperi(PERI_USBOTG , DISABLE, 10000); tca_ckc_setperi(PERI_RESERVED3 , DISABLE, 10000); tca_ckc_setperi(PERI_OUT0 , DISABLE, 10000); tca_ckc_setperi(PERI_USB20H , DISABLE, 10000); tca_ckc_setperi(PERI_HDMI , DISABLE, 10000); tca_ckc_setperi(PERI_HDMIA , DISABLE, 10000); tca_ckc_setperi(PERI_OUT1 , DISABLE, 10000); tca_ckc_setperi(PERI_EHI , DISABLE, 10000); tca_ckc_setperi(PERI_SDMMC0 , DISABLE, 10000); tca_ckc_setperi(PERI_SDMMC1 , DISABLE, 10000); tca_ckc_setperi(PERI_SDMMC2 , DISABLE, 10000); tca_ckc_setperi(PERI_SDMMC3 , DISABLE, 10000); tca_ckc_setperi(PERI_ADAI1 , DISABLE, 10000); tca_ckc_setperi(PERI_ADAM1 , DISABLE, 10000); tca_ckc_setperi(PERI_SPDIF1 , DISABLE, 10000); tca_ckc_setperi(PERI_ADAI0 , DISABLE, 10000); tca_ckc_setperi(PERI_ADAM0 , DISABLE, 10000); tca_ckc_setperi(PERI_SPDIF0 , DISABLE, 10000); tca_ckc_setperi(PERI_PDM , DISABLE, 10000); tca_ckc_setperi(PERI_RESERVED4 , DISABLE, 10000); tca_ckc_setperi(PERI_ADC , ENABLE, 120000); tca_ckc_setperi(PERI_I2C0 , ENABLE, 40000); tca_ckc_setperi(PERI_I2C1 , ENABLE, 40000); tca_ckc_setperi(PERI_I2C2 , ENABLE, 40000); tca_ckc_setperi(PERI_I2C3 , ENABLE, 40000); tca_ckc_setperi(PERI_UART0 , ENABLE, 480000); tca_ckc_setperi(PERI_UART1 , DISABLE, 10000); tca_ckc_setperi(PERI_UART2 , DISABLE, 10000); tca_ckc_setperi(PERI_UART3 , DISABLE, 10000); tca_ckc_setperi(PERI_UART4 , DISABLE, 10000); tca_ckc_setperi(PERI_UART5 , DISABLE, 10000); tca_ckc_setperi(PERI_UART6 , DISABLE, 10000); tca_ckc_setperi(PERI_UART7 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB0 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB1 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB2 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB3 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB4 , DISABLE, 10000); tca_ckc_setperi(PERI_GPSB5 , DISABLE, 10000); }