⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triton_pm.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
📖 第 1 页 / 共 2 页
字号:
//===============================================================================
//            TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//
//   Property of Texas Instruments
//   For  Unrestricted  Internal  Use  Only
//   Unauthorized reproduction and/or distribution is strictly prohibited.
//   This product is protected under copyright law and trade secret law
//   as an unpublished work.
//   Created 2000, (C) Copyright 1999 Texas Instruments.  All rights reserved.
//
//===============================================================================

#include "global_types.h"
#include "triton_mapping.h"
#include "triton_pm.h"
#include "result.h"




//########################################################################################
// NAME        : PM_P1_DEVSLP
//
// DESCRIPTION : SW put P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}

//########################################################################################
// NAME        : PM_P2_DEVSLP
//
// DESCRIPTION : SW put P2 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
}

//########################################################################################
// NAME        : PM_P3_DEVSLP
//
// DESCRIPTION : SW put P3 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P3_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
}

//########################################################################################
// NAME        : PM_P1_P2_DEVSLP
//
// DESCRIPTION : SW put P2 then P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P2_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}

//########################################################################################
// NAME        : PM_P1_P3_DEVSLP
//
// DESCRIPTION : SW put P3 then P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P3_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}


//########################################################################################
// NAME        : PM_P2_P3_DEVSLP
//
// DESCRIPTION : SW put P2 then P3 in Sleep mode with ACT2SLP transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_P3_DEVSLP(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
}

//########################################################################################
// NAME        : PM_P1_DEVOFF
//
// DESCRIPTION : SW put P1 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}

//########################################################################################
// NAME        : PM_P2_DEVOFF
//
// DESCRIPTION : SW put P2 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
}


//########################################################################################
// NAME        : PM_P3_DEVOFF
//
// DESCRIPTION : SW put P3 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P3_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
}

//########################################################################################
// NAME        : PM_P1_P2_DEVOFF
//
// DESCRIPTION : SW put P2 then P1 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P2_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}

//########################################################################################
// NAME        : PM_P1_P3_DEVOFF
//
// DESCRIPTION : SW put P3 then P1 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P3_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}

//########################################################################################
// NAME        : PM_P2_P3_DEVOFF
//
// DESCRIPTION : SW put P2 then P3 in Off mode with ACT2OFF transition
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_P3_DEVOFF(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
}

//########################################################################################
// NAME        : PM_Set_PKEY
//
// DESCRIPTION : Authorize access to PKey protected reg
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : None
//########################################################################################
UWORD8 PM_Set_PKEY(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_PKEY, PKEY);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_EN, PWEN);
  //Check access
  if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_PKEY) == VALID_KEY)
    return VALID_KEY;
  else 
    return 0x00;
}

//########################################################################################
// NAME        : PM_Set_TKEY
//
// DESCRIPTION : Authorize access to TKey protected reg
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : You must enable PKEY before
//########################################################################################
UWORD8 PM_Set_TKEY(void)
{
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_TKEY, TKEY);
  MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_EN, TRWEN | PWEN );
  //Check access
  if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_TKEY) == VALID_KEY)
    return VALID_KEY;
  else 
    return 0x00;
}

//########################################################################################
// NAME        : PM_SEQ_OFF_ASYNC
//
// DESCRIPTION : Authorize Asynchronous Act2Off and Off2Act transitions on P1/2/3
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : You must enable PKEY before
//########################################################################################
UWORD8 PM_SEQ_OFF_ASYNC(void)
{
  UWORD8 SEQ_CFG_MODE;
  MSI2C_AccessPage(PMC_MASTER_page);  //Page 1  
  //Check access
  if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_PKEY) == VALID_KEY)
  {
    SEQ_CFG_MODE = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_SEQ_CFG_MODE);
    MSI2C_MasterPollingSendAbb(PMC_MASTER_SEQ_CFG_MODE, SEQ_CFG_MODE & ~(SEQ_OFFSYNC));
    return VALID_KEY;
  }
  else 
    return 0x00;
}

//########################################################################################
// NAME        : PM_Freeze_SEQ_Stable
//
// DESCRIPTION : Freeze next transitions on P1/2/3, wait for the last transitions
//
// PARAMETERS  : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : You must enable PKEY before

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -