📄 test.cpp
字号:
//BP Detection
// EOL conf
PmicBatteryDisableEolComparator();
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
if(reg & 0x40000)
g_pKato->Log(LOG_COMMENT, TEXT("Disabled EOL conf setting 0X%X\r\n"), (reg & 0xFFFFFF));
else
g_pKato->Log(LOG_COMMENT, TEXT(" ENABLED EOL conf to 0\r\n"));
coincellvoltagelevel = 5;
g_pKato->Log(LOG_COMMENT, TEXT("Set Coin Cell Voltage level to %d\r\n"),coincellvoltagelevel);
PmicBatterySetCoincellVoltage (coincellvoltagelevel);
PmicBatteryGetCoincellVoltage (&coincellvoltagelevel);
g_pKato->Log(LOG_COMMENT, TEXT("Get Coin Cell Voltage level: %d\r\n"),coincellvoltagelevel);
coincellvoltagelevel = 0;
g_pKato->Log(LOG_COMMENT, TEXT("Set Coin Cell Voltage level to %d\r\n"),coincellvoltagelevel);
PmicBatterySetCoincellVoltage (coincellvoltagelevel);
PmicBatteryDisableCoincellCharger();
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
if(reg & 0x08000000)
g_pKato->Log(LOG_COMMENT, TEXT("Enable Coincell Charger 0X%X\r\n"), (reg & 0xFFFFFF));
else
g_pKato->Log(LOG_COMMENT, TEXT(" Disable Coincell Charger\r\n"));
index = 0x0F;//MC13783_PWR_CTL2_ADDR
reg = 0x01;
PmicRegisterWrite(index, reg,0xffff);
g_pKato->Log(LOG_COMMENT, TEXT("Enable Auto Restart after System Reset\r\n"));
index = 0x0F;//MC13783_PWR_CTL2_ADDR
PmicRegisterRead(index, ®);
if(reg & 0x01)
g_pKato->Log(LOG_COMMENT, TEXT("Enable Auto Restart after System Reset\r\n"));
else
g_pKato->Log(LOG_COMMENT, TEXT(" Disable Auto Restart after System Reset\r\n"));
index = 0x0F;//MC13783_PWR_CTL2_ADDR
reg = 0x00;
PmicRegisterWrite(index, reg,0xffff);
g_pKato->Log(LOG_COMMENT, TEXT("Disable Auto Restart of System Reset\r\n"));
index = 0x0F;//MC13783_PWR_CTL2_ADDR
PmicRegisterRead(index, ®);
////////////////////////////////////////////
g_pKato->Log(LOG_COMMENT, TEXT("Pwrctrl Set VBKUP2 Regulator\r\n"));
PmicPwrctrlSetVBKUPRegulator ((MC13783_PWRCTRL_REG_VBKUP)1, (MC13783_PWRCTRL_VBKUP_MODE)0);
index = 0x0D;//MC13783_PWR_CTL0_ADDR
reg = 0x00;
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Pwrctrl Get VBKUP2 Regulator : 0x%x\r\n"),reg);
PmicRegisterWrite(index, reg,(0xffff & ~reg));
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Pwrctrl Get VBKUP2 Regulator : 0x%x\r\n"),reg);
#if 0
for (i=0;i<REGU_NUMBER;i++) {
if( ((i == REGU_VAUDIO) ||
(i == REGU_VCAM) ||
(i == REGU_VVIB) ||
(i == REGU_VMMC1) ||
(i == REGU_VMMC2)) ) {
g_pKato->Log(LOG_COMMENT, TEXT("TEST Regu conf %d\r\n"),i);
if( !((i == REGU_VSIM) ||
(i == REGU_VESIM) ||
(i == REGU_VVIB) )) {
PmicPwrctrlEnableRegenAssig((t_regulator)i);
PmicPwrctrlGetRegenAssig ((t_regulator)i, &value);
if (value!=1) {
g_pKato->Log(LOG_COMMENT, TEXT("Error in Regen conf %d\r\n"),i);
}
PmicPwrctrlDisableRegenAssig((t_regulator)i);
}
if(!(i == VRF2)){
PmicVoltageRegulatorOn((PMIC_REGULATOR_VREG)i) ;
// CHECK_ERROR(MC13783_power_get_regu_state(i,&val));
PmicVoltageRegulatorOff((PMIC_REGULATOR_VREG)i) ;
}
}
}
#endif
#ifndef PLAT_FALCON
UINT32 i;
UINT8 value;
for(i=0;i<16;i++)
{
if(REGULATOR_REGEN_BIT[i]!=-1)
{
PmicPwrctrlEnableRegenAssig((t_regulator)i);
PmicPwrctrlGetRegenAssig ((t_regulator)i, &value);
if (value!=1) {
g_pKato->Log(LOG_COMMENT, TEXT("Error in Regen conf %d\r\n"),i);
GPT_TEST_FUNCTION_EXIT();
return TPR_FAIL;
}
PmicPwrctrlDisableRegenAssig((t_regulator)i);
PmicPwrctrlGetRegenAssig ((t_regulator)i, &value);
if (value!=0) {
g_pKato->Log(LOG_COMMENT, TEXT("Error in Regen Disable %d\r\n"),i);
GPT_TEST_FUNCTION_EXIT();
return TPR_FAIL;
}
}
}
#endif
GPT_TEST_FUNCTION_EXIT();
return TPR_PASS;
}
int MC13783_power_get_power_mode_sense(struct t_p_up_sense* mod)
{
UINT32 reg;
unsigned char index;
/*
Additional sense bits are available in the power up mode sense register. Via these bits the state of the
power up mode selection pins for the regulators, charger and USB can be read out. The table below
summarizes these bits.
*/
index = 0x06;//MC13783_PWR_MOD_ADDR
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Register MC13783_PWR_MOD_ADDR is 0X%X\r\n"), (reg & 0xFFFFFF));
mod=(struct t_p_up_sense*)®
g_pKato->Log(LOG_COMMENT, TEXT("Register MC13783_PWR_MOD_ADDR is 0X%X\r\n"), (mod->state_ictest));
if(mod)
{
if(mod->state_ictest)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins high %d\r\n"), (mod->state_ictest));
else
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins low %d\r\n"), (mod->state_ictest));
if(mod->state_clksel)
g_pKato->Log(LOG_COMMENT, TEXT("CLKSELS SET %d\r\n"), (mod->state_clksel));
if(mod->state_chrgmode10 ==0)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD0 low %d\r\n"), (mod->state_chrgmode10));
else if(mod->state_chrgmode10 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD0 Open %d\r\n"), (mod->state_chrgmode10));
else if(mod->state_chrgmode10==2)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD0 Not available %d\r\n"), (mod->state_chrgmode10));
else if(mod->state_chrgmode10 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD0 high %d\r\n"), (mod->state_chrgmode10));
if(mod->state_chrgmode20 ==0)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD1 low %d\r\n"), (mod->state_chrgmode20));
else if(mod->state_chrgmode20 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD1 Open %d\r\n"), (mod->state_chrgmode20));
else if(mod->state_chrgmode20 ==2)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD1 Not available %d\r\n"), (mod->state_chrgmode20));
else if(mod->state_chrgmode20 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("charger interface CHRGMOD1 high %d\r\n"), (mod->state_chrgmode20));
if(mod->state_pums00 ==0)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS1 low %d\r\n"), (mod->state_pums00));
else if(mod->state_pums00 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS1 Open %d\r\n"), (mod->state_pums00));
else if(mod->state_pums00 ==2)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS1 Not available %d\r\n"), (mod->state_pums00));
else if(mod->state_pums00 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS1 high %d\r\n"), (mod->state_pums00));
if(mod->state_pums10==0)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS2 low %d\r\n"), (mod->state_pums10));
else if(mod->state_pums10 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS2 Open %d\r\n"), (mod->state_pums10));
else if(mod->state_pums10 ==2)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS2 Not available %d\r\n"), (mod->state_pums10));
else if(mod->state_pums10 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS2 high %d\r\n"), (mod->state_pums10));
if(mod->state_pums20 ==0)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS3 low %d\r\n"), (mod->state_pums20));
else if(mod->state_pums20 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS3 Open %d\r\n"), (mod->state_pums20));
else if(mod->state_pums20 ==2)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS3 Not available %d\r\n"), (mod->state_pums20));
else if(mod->state_pums20 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("power up mode select pins PUMS3 high %d\r\n"), (mod->state_pums20));
if(mod->state_sw_1a1b_joined)
g_pKato->Log(LOG_COMMENT, TEXT("sw_1a1b joined %d\r\n"), (mod->state_sw_1a1b_joined));
else
g_pKato->Log(LOG_COMMENT, TEXT("sw_1a1b open %d\r\n"), (mod->state_sw_1a1b_joined));
if(mod->state_sw_2a2b_joined)
g_pKato->Log(LOG_COMMENT, TEXT("sw_2a2b joined %d\r\n"), (mod->state_sw_2a2b_joined));
else
g_pKato->Log(LOG_COMMENT, TEXT("sw_2a2b open %d\r\n"), (mod->state_sw_2a2b_joined));
if(mod->state_umod00 ==0)
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver operation mode selection at power up UMOD low %d\r\n"), (mod->state_umod00));
else if(mod->state_umod00 ==1)
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver operation mode selection at power up UMOD Open %d\r\n"), (mod->state_umod00));
else if(mod->state_umod00 ==2)
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver operation mode selection at power up UMOD Not available %d\r\n"), (mod->state_umod00));
else if(mod->state_umod00 ==3)
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver operation mode selection at power up UMOD high %d\r\n"), (mod->state_umod00));
if(mod->state_usben)
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver enabled %d\r\n"), (mod->state_usben));
else
g_pKato->Log(LOG_COMMENT, TEXT("USB transceiver disabled %d\r\n"), (mod->state_usben));
}
return 0;
}
int MC13783_power_cut_conf(struct t_power_cut_conf *pc)
{
if(!pc->pc_counter_en)
{
PmicPwrctrlDisablePowerCut();
}
else
PmicPwrctrlEnablePowerCut();
if(!pc->pc_auto_user_off)
{
PmicPwrctrlDisableUserOffModeWhenDelay();
}
else
PmicPwrctrlEnableUserOffModeWhenDelay();
if(!pc->pc_user_off_32k_en)
{
PmicPwrctrlDisableClk32kMCU();
}
else
PmicPwrctrlEnableClk32kMCU();
if(pc->pc_timer)
PmicPwrctrlSetPowerCutTimer ((UINT8)(pc->pc_timer));
if(pc->pc_counter)
PmicPwrctrlSetPowerCutCounter((UINT8)(pc->pc_counter));
if(pc->pc_max_nb_pc)
PmicPwrctrlSetPowerCutMaxCounter((UINT8)(pc->pc_max_nb_pc));
if(pc->pc_ext_timer)
PmicPwrctrlSetMemHoldTimer ((UINT8)(pc->pc_ext_timer));
if(pc->pc_ext_timer_inf)
PmicPwrctrlSetMemHoldTimerAllOn();
else
PmicPwrctrlClearMemHoldTimerAllOn();
return 0;
}
int MC13783_power_cut_get_conf(struct t_power_cut_conf *pc)
{
UINT8 duration;
UINT8 counter;
UINT32 reg;
unsigned char index;
PmicPwrctrlGetPowerCutTimer (&duration);
pc->pc_timer = duration;
PmicPwrctrlGetPowerCutCounter (&counter);
pc->pc_counter = counter;
PmicPwrctrlGetPowerCutMaxCounter(&duration);
pc->pc_max_nb_pc = duration;
PmicPwrctrlGetMemHoldTimer (&duration);
pc->pc_ext_timer = duration;
index = 0x0E;//MC13783_PWR_CTL1_ADDR
PmicRegisterRead(index, ®);
if((reg &0x00100000))
pc->pc_ext_timer_inf = 1;//((reg &0x00100000) >> 20);
else
pc->pc_ext_timer_inf = 0;
pc->pc_max_nb_pc = ((reg &0x0000F800) >> 11);
PmicPwrctrlGetMemHoldTimer (&duration);
pc->pc_ext_timer=duration;
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
if((reg &0x00000002))
pc->pc_counter_en = 1;
else
pc->pc_counter_en = 0;
if((reg &0x00000008))
pc->pc_auto_user_off =1;
else
pc->pc_auto_user_off =0;
if((reg &0x00000020))
pc->pc_user_off_32k_en=1;
else
pc->pc_user_off_32k_en=0;
return 0;
}
//Local function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -