📄 triton_functions.c
字号:
SERI_Send("\r\n CARKIT event detected \r\n");
return(CARKIT);
}
if ((int2_reg_lsb>>4) && 0x01)
{
SERI_Send("\r\n MADC conversion from P2 \r\n");
return(MADC2);
}
if ((int2_reg_lsb>>3) && 0x01)
{
SERI_Send("\r\n MADC conversion from P1 \r\n");
return(MADC1);
}
if ((int2_reg_lsb>>2) && 0x01)
{
SERI_Send("\r\n BCI watchdog \r\n");
return(BCI_WATCHDOG);
}
if ((int2_reg_lsb>>1) && 0x01)
{
SERI_Send("\r\n VBUS precharge \r\n");
return(VBUS_PRECHG);
}
if (int2_reg_lsb && 0x01)
{
SERI_Send("\r\n CHARGE stop \r\n");
return(CHARGE_STOP);
}
if ((int2_reg_msb>>7) && 0x01)
{
SERI_Send("\r\n HEADSET detected \r\n");
return(HSDET);
}
if ((int2_reg_msb>>6) && 0x01)
{
SERI_Send("\r\n HOOK press detected \r\n");
return(HOOKDET);
}
if ((int2_reg_msb>>5) && 0x01)
{
SERI_Send("\r\n HOTDIE condition \r\n");
return(HOTDIE);
}
if ((int2_reg_msb>>4) && 0x01)
{
SERI_Send("\r\n VBUS event detected ");
read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
read_value =((read_value>>3) & 0x01);
if (read_value) SERI_Send("\r\n HIGH \r\n");
else SERI_Send("\r\n LOW \r\n");
return(VBUS);
}
if ((int2_reg_msb>>3) && 0x01)
{
SERI_Send("\r\n VBATLOW condition detected \r\n");
return(VBATLOW);
}
if ((int2_reg_msb>>2) && 0x01)
{
SERI_Send("\r\n RTC event detected \r\n");
return(RTC);
}
if ((int2_reg_msb>>1) && 0x01)
{
SERI_Send("\r\n VAC event detected ");
read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
read_value =((read_value>>2) & 0x01);
if (read_value) SERI_Send("\r\n HIGH \r\n");
else SERI_Send("\r\n LOW \r\n");
return(VAC);
}
if (int2_reg_msb && 0x01)
{
SERI_Send("\r\n RPWON event detected ");
read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
read_value =((read_value>>1) & 0x01);
if (read_value) SERI_Send("LOW \r\n");
else SERI_Send(" HIGH \r\n");
return(RPWON);
}
return 0xDEAD;
}
/*---------------------------------------------------------------------
// NAME : Tritonsys_INT2_Clear
//
// DESCRIPTION : Write 0 to Triton INT2 status register to clear ITs
//
// PARAMETERS : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//--------------------------------------------------------------------- */
void Tritonsys_INT2_Clear(void)
{
// Acknowledge and clear IT
// to access to the page of the Abb module INT2
MSI2C_AccessPage(INT2_page);
MSI2C_MasterPollingSendAbb(INT2_IT2STATUSP1L,0x00);
MSI2C_MasterPollingSendAbb(INT2_IT2STATUSP1H,0x00);
}
/*---------------------------------------------------------------------
// NAME : Tritonsys_Map_MMC_SIM
//
// DESCRIPTION : Remap Triton VRMMC to DEV_GRP_APPLI and VRSIM
// to DEV_GRP_PERIPH
//
// PARAMETERS : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/
void Tritonsys_Map_MMC_SIM(void)
{
int previous_content ;
/* to access to the page of the Abb module PMC_SLAVE */
MSI2C_AccessPage(PMC_SLAVE_page);
/* change VRMMC from NO_GROUP to DEV_GRP_APPLI (0b010) */
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRMMC_CFG_STS,(previous_content & 0x5f));
/* change VRSIM from NO_GROUP to DEV_GRP_PERIPH (0b100) */
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRSIM_CFG_STS,(previous_content & 0x9f));
}
/*---------------------------------------------------------------------
// NAME : Tritonsys_Remap_Resources
//
// DESCRIPTION : Remap CBAT32,CBAT28,MBG,LBG,BIAS,BATPRES_CHECK,VRIO,CLKON,ONOFF,MBG to P1
//
// PARAMETERS : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/
void Tritonsys_Remap_Resources(void)
{
int previous_content ;
// to access to the page of the Abb module PMC_SLAVE
MSI2C_AccessPage(PMC_SLAVE_page);
// change CBAT32 from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_CBAT32_CFG_STS,(previous_content & 0x3f));
// change CBAT28 from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_CBAT28_CFG_STS,(previous_content & 0x3f));
// change MAIN BANDGAP from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGAP_CFG_STS,(previous_content & 0x3f));
// change SLEEP BANDGAP from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGSLP_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGSLP_CFG_STS,(previous_content & 0x3f));
// change BIAS from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BIAS_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_BIAS_CFG_STS,(previous_content & 0x3f));
// change BATPRES_CHECK from ALL to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STS,(previous_content & 0x3f));
// change VRIO from P1+P3 to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRIO_CFG_STS,(previous_content & 0x3f));
// change CLKON from P1+P3 to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CLKON_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_CLKON_CFG_STS,(previous_content & 0x3f));
// change ONNOFF from P1+P2+P3 to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_STATE_MNGT_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_STATE_MNGT_CFG_STS,(previous_content & 0x3f));
// change MBG from P1+P2+P3 to P1 only (0b001)
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGAP_CFG_STS,(previous_content & 0x3f));
}
/*---------------------------------------------------------------------
// NAME : Tritonsys_Regen_Sleep2off
//
// DESCRIPTION : Remap Triton REGEN from DEV_GRP_PERIPH to DEV_GRP_MODEM
// and remap its SLEEP state to OFF
//
// PARAMETERS : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/
void Tritonsys_Regen_Sleep2off(void)
{
int previous_content ;
// to access to the page of the Abb module PMC_SLAVE
MSI2C_AccessPage(PMC_SLAVE_page);
// change REGEN from DEV_GRP_PERIPH to DEV_GRP_MODEM
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STS);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_EXT_REGEN_CFG_STS,(previous_content & 0x9f));
// remap REGEN SLEEP state to OFF
previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STATE);
MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRSIM_CFG_STS,(previous_content & 0xf0));
}
/* copied from triton_deep_sleep_rtc_alarm TEST_RTC_TC_alarm_local function from
// design test
//---------------------------------------------------------------------------
// NAME : SET_RTC_TC_alarm
// DESCRIPTION : SET IRQ_ALARM_CHIP
// RETURN VALU : Return the result of the test TEST_OK or TEST_BAD
// PARAMETERS : alarm_tm : pointer to the alarm struct
// init_tm : pointer to the init struct
// LIMITATIONS : Update 1 result
//--------------------------------------------------------------------------- */
void SET_RTC_TC_alarm(struct rtc_tm *alarm_tm, struct rtc_tm *init_tm)
{
RTC_STOP;
RTC_START;
//RTC_Busy_Falling_Edge();
RTC_STOP;
RTC_Init_Date(init_tm);
RTC_SetAlarm(alarm_tm);
RTC_ENABLEITALARM;
RTC_START;
}
/*---------------------------------------------------------------------------
// NAME : Read_Slave_Resources_Reg
// DESCRIPTION : Read VRxx_CFG_STS,VRxx_RES_ID,VRXX_CFG_STATE
// RETURN VALU :
// PARAMETERS :
// LIMITATIONS :
//---------------------------------------------------------------------------*/
void Read_Slave_Resources_Reg()
{
char st[80];
UWORD16 ReadData; /* register access read value */
MSI2C_AccessPage(PMC_SLAVE_page);
/* VRDBB */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_CFG_STS);
sprintf(st,"\r\nPMC_SLAVE_VCORE_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_RES_ID);
sprintf(st,"\rPMC_SLAVE_VCORE_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VCORE_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRSIM */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRSIM_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRSIM_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRSIM_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRMMC */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRMMC_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRMMC_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRMMC_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VREXTH */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VREXTH_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_RES_ID);
sprintf(st,"\rPMC_SLAVE_VREXTH_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VREXTH_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRPLL */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRPLL_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRPLL_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRPLL_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRIO */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRIO_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRIO_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRIO_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRMEM */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRMEM_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRMEM_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRMEM_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRUSB */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRUSB_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRUSB_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRUSB_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRABB */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRABB_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRABB_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRABB_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VRVBUS */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VRVBUS_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_RES_ID);
sprintf(st,"\rPMC_SLAVE_VRVBUS_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VRVBUS_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* VREXTL */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_CFG_STS);
sprintf(st,"\rPMC_SLAVE_VREXTL_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_RES_ID);
sprintf(st,"\rPMC_SLAVE_VREXTL_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_VREXTL_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* REGEN */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STS);
sprintf(st,"\rPMC_SLAVE_EXT_REGEN_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_RES_ID);
sprintf(st,"\rPMC_SLAVE_EXT_REGEN_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_EXT_REGEN_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* CBAT32 */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STS);
sprintf(st,"\rPMC_SLAVE_CBAT32_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_RES_ID);
sprintf(st,"\rPMC_SLAVE_CBAT32_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_CBAT32_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* CBAT28 */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STS);
sprintf(st,"\rPMC_SLAVE_CBAT28_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_RES_ID);
sprintf(st,"\rPMC_SLAVE_CBAT28_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_CBAT28_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
/* BGAP */
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
sprintf(st,"\rPMC_SLAVE_BGAP_CFG_STS value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_RES_ID);
sprintf(st,"\rPMC_SLAVE_BGAP_RES_ID value = %x \r\n",ReadData);
SERI_Send(st);
ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STATE);
sprintf(st,"\rPMC_SLAVE_BGAP_CFG_STATE value = %x \r\n",ReadData);
SERI_Send(st);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -