📄 test.cpp
字号:
break;
case 3:
for(count = 0; count <= VGEN_1_80V; count++)
{
lCount.vgen =(MC13783_REGULATOR_VREG_VOLTAGE_VGEN) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 4:
#ifndef PLAT_FALCON
for(count = 0;count <= VRFDIG_1_875V; count++)
{
lCount.vrfdig =(MC13783_REGULATOR_VREG_VOLTAGE_VRFDIG) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
#endif
break;
case 5:
for(count = 0; count <= VRFREF_2_775V; count++)
{
lCount.vrfref =(MC13783_REGULATOR_VREG_VOLTAGE_VRFREF) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 6:
for(count = 0; count <= VRFCP_2_775V; count++)
{
lCount.vrfcp =(MC13783_REGULATOR_VREG_VOLTAGE_VRFCP) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 7:
for(count = 0; count <= VSIM_2_9V; count++)
{
lCount.vsim =(MC13783_REGULATOR_VREG_VOLTAGE_SIM) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 8:
for(count = 0; count <= VESIM_2_9V; count++)
{
lCount.vesim =(MC13783_REGULATOR_VREG_VOLTAGE_ESIM) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 9:
for(count = 0; count <= VCAM_8;count++)
{
lCount.vcam =(MC13783_REGULATOR_VREG_VOLTAGE_CAM) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 10:
#if 0
for(count = 0; count <= V_VIB_3_0V; count++)
{
lCount.v_vib =(MC13783_REGULATOR_VREG_VOLTAGE_VIB) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
if(count==V_VIB_3_0V)
PmicVoltageRegulatorOff ((PMIC_REGULATOR_VREG)i);
#endif
break;
case 11:
#if 0
for(count = 0; count <= VRF2_2_775V; count++)
{
lCount.vrf =(MC13783_REGULATOR_VREG_VOLTAGE_VRF) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
#endif
break;
case 12:
#if 0
for(count = 0;count <= VRF2_2_775V; count++)
{
lCount.vrf =(MC13783_REGULATOR_VREG_VOLTAGE_VRF) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
#endif
break;
case 13:
for(count = 0; count <= VMMC_8; count++)
{
lCount.vmmc =(MC13783_REGULATOR_VREG_VOLTAGE_MMC) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
case 14:
for(count = 0; count <= VMMC_8; count++)
{
lCount.vmmc =(MC13783_REGULATOR_VREG_VOLTAGE_MMC) count;
PmicVoltageRegulatorSetVoltageLevel (( PMIC_REGULATOR_VREG)i,lCount);
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
Sleep(3000);
}
break;
default :
break;
}
PmicVoltageRegulatorGetVoltageLevel (( PMIC_REGULATOR_VREG) i,&Reg_Voltage);
Print_VoltageregulatorValues(( PMIC_REGULATOR_VREG) i,Reg_Voltage);
}
Sleep(10000);
//Switch off the vibrator after 10 seconds
i=10;
PmicVoltageRegulatorOff ((PMIC_REGULATOR_VREG)i);
//
//PmicSwitchModeRegulatorGetMode
//SW1A = 0, SW1B, SW2A, SW2B,
//LOW = 0, HIGH,
// SW_MODE_OFF, SW_MODE_PWM, SW_MODE_PULSESKIP, SW_MODE_PFM,
for (j = 0; j < 4; j++)
{
sreg = sreg_tab[j];
sreg_name = sreg_name_tab[j];
PmicSwitchModeRegulatorGetMode(sreg,(PMIC_REGULATOR_SREG_STBY)LOW,&mode);
g_pKato->Log(LOG_COMMENT, TEXT("Switch Mode Voltage Regulator %s mode is : 0x%x \r\n"), sreg_name, mode);
regulator_mode = mode;
for(i = 0; i < 4; i++)
{
if (!((i == 0) && (sreg == SW2A || sreg == SW2B || sreg == SW1A)))
{
PmicSwitchModeRegulatorSetMode(sreg,(PMIC_REGULATOR_SREG_STBY)LOW,(PMIC_REGULATOR_SREG_MODE)i);
PmicSwitchModeRegulatorGetMode(sreg,(PMIC_REGULATOR_SREG_STBY)LOW, &mode);
g_pKato->Log(LOG_COMMENT, TEXT("Switch Mode Voltage Regulator %s is in:"), sreg_name);
switch(mode)
{
case 0:
g_pKato->Log(LOG_COMMENT, TEXT(" SW_MODE_OFF \r\n"));
break ;
case 1:
g_pKato->Log(LOG_COMMENT, TEXT(" SW_MODE_PWM \r\n"));
break;
case 2:
g_pKato->Log(LOG_COMMENT, TEXT(" SW_MODE_PULSESKIP \r\n"));
break ;
case 3:
g_pKato->Log(LOG_COMMENT, TEXT(" SW_MODE_PFM \r\n"));
break;
default :
g_pKato->Log(LOG_COMMENT, TEXT(" Unknown Mode \r\n"));
break ;
}
}
}
PmicSwitchModeRegulatorSetMode(sreg,(PMIC_REGULATOR_SREG_STBY)LOW,(PMIC_REGULATOR_SREG_MODE )regulator_mode);
}
for(dvsspeed = 0; dvsspeed < 4; dvsspeed++)
{
PmicSwitchModeRegulatorSetDVSSpeed((PMIC_REGULATOR_SREG)SW1A,dvsspeed);
}
g_pKato->Log(LOG_COMMENT, TEXT("PASS \r\n"));
GPT_TEST_FUNCTION_EXIT();
return TPR_PASS;
}
//------------------------------------------------------------------------------
//
// Function: PMICTestPowerControl
//
// This function attempts to test PMIC PowerControl APIs
//
// Parameters:
// uiMsg
// [in] Ignored.
//
// tpParam
// [in] Ignored.
//
// lpFTE
// [in] Ignored.
//
// Returns:
// Specifies if the test passed (TPR_PASS), failed (TPR_FAIL), or was
// skipped (TPR_SKIP).
//
//------------------------------------------------------------------------------
TESTPROCAPI PMICTestPowerControl(UINT uMsg, TPPARAM tpParam, LPFUNCTION_TABLE_ENTRY lpFTE)
{
UINT32 reg;
unsigned char index;
bool power_cut,warm_start,user_off_en;
struct t_power_cut_conf var_pc, var2_pc;
UINT8 coincellvoltagelevel;
struct t_p_up_sense *mod={0,};
UNREFERENCED_PARAMETER(tpParam);
UNREFERENCED_PARAMETER(lpFTE);
// Validate that the shell wants the test to run
if (uMsg != TPM_EXECUTE)
{
return TPR_NOT_HANDLED;
}
g_pKato->Log(LOG_COMMENT, TEXT("PMICTestPowerControl() +\r\n"));
MC13783_power_get_power_mode_sense(mod);
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Register MC13783_PWR_CTL0_ADDR is 0X%X\r\n"), (reg & 0xFFFFFF));
if(0x01®){
power_cut =1;
g_pKato->Log(LOG_COMMENT, TEXT("Power Cut is Enabled\r\n"));
}
else
{
power_cut =0;
g_pKato->Log(LOG_COMMENT, TEXT("Power Cut is Disabled and call the Power Cut enabled\r\n"));
#if 0
PmicPwrctrlEnablePowerCut();
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Register MC13783_PWR_CTL0_ADDR is 0X%X\r\n"), (reg & 0xFFFFFF));
if(0x01®)
g_pKato->Log(LOG_COMMENT, TEXT("Power Cut is Enabled\r\n"));
else
g_pKato->Log(LOG_COMMENT, TEXT("Power Cut is Disabled !!!!!!!!!!!\r\n"));
#endif
}
if(reg & 0x4){
warm_start=1;
g_pKato->Log(LOG_COMMENT, TEXT("Warm start enabled \r\n"));
}
else {
warm_start=0;
g_pKato->Log(LOG_COMMENT, TEXT("Warm start disabled\r\n"));
}
if(reg & 0x4){
user_off_en=1;
g_pKato->Log(LOG_COMMENT, TEXT("SPI command for entering User off modes is enabled \r\n"));
}
else {
user_off_en=0;
g_pKato->Log(LOG_COMMENT, TEXT("SPI command for entering User off modes is disabled\r\n"));
}
var_pc.pc_counter_en = false;
var_pc.pc_auto_user_off = false;
#ifdef PLAT_FALCON
var_pc.pc_user_off_32k_en = true;
#else
var_pc.pc_user_off_32k_en = false;
#endif
var_pc.pc_timer = 5;
var_pc.pc_counter = 4;
var_pc.pc_max_nb_pc = 2;
var_pc.pc_ext_timer = 3;
var_pc.pc_ext_timer_inf = false;
MC13783_power_cut_conf(&var_pc);
MC13783_power_cut_get_conf(&var2_pc);
//BP Detection
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
g_pKato->Log(LOG_COMMENT, TEXT("Register MC13783_PWR_CTL0_ADDR is 0X%X\r\n"), (reg & 0xFFFFFF));
g_pKato->Log(LOG_COMMENT, TEXT("Set BP Detection to 2\r\n"));
reg |= 0x20000;
PmicRegisterWrite(index, reg,0Xffff);
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
if(reg & 0x20000)
g_pKato->Log(LOG_COMMENT, TEXT("BP Detection threshould setting 0X%X\r\n"), (reg & 0xFFFFFF));
g_pKato->Log(LOG_COMMENT, TEXT("Set BP Detection to 0\r\n"));
reg &= ~0x20000;
PmicRegisterWrite(index, reg,0Xffff);
index = 0x0D;//MC13783_PWR_CTL0_ADDR
PmicRegisterRead(index, ®);
if(reg & 0x20000)
g_pKato->Log(LOG_COMMENT, TEXT("BP Detection threshould setting 0X%X\r\n"), (reg & 0xFFFFFF));
else
g_pKato->Log(LOG_COMMENT, TEXT("Set BP Detection to 0\r\n"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -