📄 convity_test.cpp
字号:
PMIC_CONVITY_USB_OTG_CONFIG cfg, cfgtmp;
PmicConvitySetMode(handle, USB);
PmicConvityUsbSetPowerSource(handle, USB_POWER_INTERNAL, USB_POWER_3V3);
PmicConvityUsbOtgGetConfig(handle, &cfg);
dump_regs(TEXT("Initial Value"));
g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);
cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_LOW);
PmicConvityUsbOtgSetConfig(handle, cfgtmp);
PmicConvityUsbOtgGetConfig(handle, &cfg);
MY_ASSERT(cfg == cfgtmp);
dump_regs(TEXT("USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_LOW"));
g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);
cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_HIGH);
PmicConvityUsbOtgSetConfig(handle,
(PMIC_CONVITY_USB_OTG_CONFIG)(USB_VBUS_CURRENT_LIMIT_HIGH));
PmicConvityUsbOtgGetConfig(handle, &cfg);
MY_ASSERT(cfg == cfgtmp);
dump_regs(TEXT("USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_HIGH"));
g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);
cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_VBUS_CURRENT_LIMIT_HIGH);
PmicConvityUsbOtgClearConfig(handle,
(PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN));
PmicConvityUsbOtgGetConfig(handle, &cfg);
MY_ASSERT(cfg == cfgtmp);
dump_regs(TEXT("USB_VBUS_CURRENT_LIMIT_HIGH"));
g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);
g_pKato->Log(LOG_COMMENT, TEXT("UsbOtgCfgTest complete\r\n"));
g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}
void Rs232CfgTest(PMIC_CONVITY_HANDLE handle)
{
PMIC_CONVITY_RS232_INTERNAL in;
PMIC_CONVITY_RS232_EXTERNAL ex;
BOOL tri;
PmicConvitySetMode(handle, RS232);
PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP,
RS232_TX_UDM_RX_UDP, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_UDM_RX_UDP"));
PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM,
RS232_TX_UDM_RX_UDP, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_UDM_RX_UDP"));
PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO,
RS232_TX_UDM_RX_UDP, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_UDM_RX_UDP"));
PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT,
RS232_TX_UDM_RX_UDP, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_UDM_RX_UDP"));
PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP,
RS232_TX_UDP_RX_UDM, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_UDP_RX_UDM"));
PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM,
RS232_TX_UDP_RX_UDM, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_UDP_RX_UDM"));
PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO,
RS232_TX_UDP_RX_UDM, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_UDP_RX_UDM"));
PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT,
RS232_TX_UDP_RX_UDM, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_UDP_RX_UDM"));
PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP,
RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_RX_EXTERNAL_DEFAULT"));
PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM,
RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_RX_EXTERNAL_DEFAULT"));
PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO,
RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_RX_EXTERNAL_DEFAULT"));
PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT,
RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_RX_EXTERNAL_DEFAULT"));
g_pKato->Log(LOG_COMMENT, TEXT("Rs232CfgTest complete\r\n"));
g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}
void Cea936DetectionCfgTest(PMIC_CONVITY_HANDLE handle)
{
PMIC_CONVITY_CEA936_DETECTION_CONFIG cfg, cfgtmp;
PmicConvitySetMode(handle, RS232);
cfgtmp = (PMIC_CONVITY_CEA936_DETECTION_CONFIG)
(ACCESSORY_ID_ID100KPU | ACCESSORY_ID_IDPUCNTRL);
PmicConvityCea936SetDetectionConfig(handle, cfgtmp);
PmicConvityCea936GetDetectionConfig(handle, &cfg);
MY_ASSERT(cfg == cfgtmp);
dump_regs(TEXT("ACCESSORY_ID_ID100KPU | ACCESSORY_ID_IDPUCNTRL"));
g_pKato->Log(LOG_COMMENT, TEXT("Cea936DetectionCfgTest complete\r\n"));
g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}
//------------------------------------------------------------------------------
//
// Function: PMICTestConvityRegisterAccess
//
// This function attempts to test PMIC Connectivity register access.
//
// 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 PMICTestConvityRegisterAccess(UINT uMsg, TPPARAM tpParam,
LPFUNCTION_TABLE_ENTRY lpFTE)
{
PMIC_CONVITY_HANDLE handle;
PMIC_STATUS status;
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("Connectivity -- PMICTestConnectivity() +\r\n"));
status = PmicConvityOpen(&handle, USB);
if (status != PMIC_SUCCESS)
g_pKato->Log(LOG_COMMENT, TEXT("Open Failed\r\n"));
else
g_pKato->Log(LOG_COMMENT, TEXT("Open Successful\r\n"));
if (status == PMIC_SUCCESS)
{
IfModeTest(handle);
UsbSpeedTest(handle);
UsbSetPowerTest(handle);
UsbSetXcvrTest(handle);
UsbHnpTesting(handle);
UsbOtgCfgTest(handle);
Rs232CfgTest(handle);
Cea936DetectionCfgTest(handle);
PmicConvityReset(handle);
dump_regs(TEXT("Reset"));
g_pKato->Log(LOG_COMMENT, TEXT("PmicConvityReset complete\r\n"));
PmicConvityClose(handle);
}
return TPR_PASS;
}
//------------------------------------------------------------------------------
//
// Function: PMICTestConvityEvents
//
// This function attempts to test PMIC Connectivity events.
//
// 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 PMICTestConvityEvents(UINT uMsg, TPPARAM tpParam,
LPFUNCTION_TABLE_ENTRY lpFTE)
{
int i;
PMIC_CONVITY_HANDLE handle;
PMIC_STATUS status;
PMIC_CONVITY_EVENTS evtmask;
PMIC_CONVITY_CALLBACK funcaddr = NULL;
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("Connectivity -- PMICTestConvityEvents() +\r\n"));
status = PmicConvityOpen(&handle, USB);
if (status != PMIC_SUCCESS)
g_pKato->Log(LOG_COMMENT, TEXT("Open Failed\r\n"));
else
g_pKato->Log(LOG_COMMENT, TEXT("Open Successful\r\n"));
if (status == PMIC_SUCCESS)
{
PmicConvitySetCallback(handle, (PMIC_CONVITY_CALLBACK)&usbCB,
(PMIC_CONVITY_EVENTS)0x1fff);
i = 0;
while (i++ < 10)
{
g_pKato->Log(LOG_COMMENT, TEXT("Waiting for events for %d more seconds\r\n"),
3 * (11 - i));
Sleep(3001);
}
PmicConvityGetCallback(handle, &funcaddr, &evtmask);
g_pKato->Log(LOG_COMMENT,
TEXT("Waiting completed. printing current mask: 0x%.8x\r\n"), evtmask);
MY_ASSERT(((unsigned int)funcaddr) == ((unsigned int)&usbCB));
PmicConvityClearCallback(handle);
PmicConvityClose(handle);
}
return TPR_PASS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -