Beispiel #1
0
void DRVPDN_ini(void)
{
   kal_uint8 index;/*obtain all device handle*/
   for (index =0;index<PDN_MAX_DEV;index++)
   {
      ASSERT(PDNID_2_DEVI[index] != 0xff);
#if defined(MT6208) || defined(MT6205B) || defined(MT6218B) || defined(MT6217)
      if ((index == DRVPDN_CON1_UART1) || (index == DRVPDN_CON1_UART2) )
#else
      if ((index == DRVPDN_CON1_UART1) || (index == DRVPDN_CON1_UART2) || (index == DRVPDN_CON1_UART3))
#endif  /* MT6208, MT6205B, MT6218B, MT6217 */
      {
         lpwr_module_open(&LPWR_DEV[index], PDNID_2_DEVI[index], NULL, NULL);
      }
      else
      {
         lpwr_module_open(&LPWR_DEV[index], PDNID_2_DEVI[index], DRV_PDN_EN, DRV_PDN_DIS);
      }
   }
}
Beispiel #2
0
/*************************************************************************
* FUNCTION
*  DRVPDN_ini
*
* DESCRIPTION
*  initialize PDN control
*
* PARAMETERS
*  none
*
* RETURNS
*  none
*
*************************************************************************/ 
void DRVPDN_ini(void)
{
    kal_uint32 index;
    kal_uint32 irq_mask;
    
    irq_mask = SaveAndSetIRQMask();

    if( DRVPDN_NOT_INITIALIZED == drvpdn_initial_state )
    {
        drvpdn_initial_state = DRVPDN_INITIALIZING;
        RestoreIRQMask(irq_mask); //SHENGKAI

        for (index =0; index < PDN_MAX_DEV; index++) {
            ASSERT(PDNID_2_DEVI[index] != DEV_NULL_ID);
            if (pdn_options[index] & PDN_OPT_NEVER_OFF) {
                lpwr_module_open(&LPWR_DEV[index], PDNID_2_DEVI[index], NULL, NULL);
            } else {
                lpwr_module_open(&LPWR_DEV[index], PDNID_2_DEVI[index], pdn_set_callback, pdn_clr_callback);
            }
        }

        irq_mask = SaveAndSetIRQMask();
        drvpdn_initial_state = DRVPDN_INITIALIZED;
        RestoreIRQMask(irq_mask);//shengkai
    }
    else if( (DRVPDN_INITIALIZED != drvpdn_initial_state) && (DRVPDN_INITIALIZING !=drvpdn_initial_state) )
    {
        RestoreIRQMask(irq_mask); //shengkai
        /* memory corruption on DRVPDN initialization state */
        EXT_ASSERT(0, drvpdn_initial_state, (kal_uint32)&drvpdn_initial_state, 0);
    }
    else
    {
        RestoreIRQMask(irq_mask);//shengkai
    }
}