Exemplo n.º 1
0
AST_HIF_HW_RESULT ast_hif_hw_set_gpio(char value, char pin)
{
    DCL_HANDLE handle;
    handle=DclGPIO_Open(DCL_GPIO, pin);	
    if(0==value)
        DclGPIO_Control(handle,GPIO_CMD_WRITE_LOW,0);
    else if(1==value)
        DclGPIO_Control(handle,GPIO_CMD_WRITE_HIGH,0);
    else
    {
        DclGPIO_Close(handle);
        ASSERT(0);
    }
    DclGPIO_Close(handle);
    return AST_HIF_HW_RESULT_OK;
}
AST_HIF_HW_RESULT ast_hif_hw_init(AST_HIF_HW_CONFIG_T* pConfigParam)
{
    DCL_HANDLE gpio_handle;
    GPIO_CTRL_SET_CLK_OUT_T gpio_clk_data;
    ASSERT(pConfigParam != NULL);
    
    ast_gpio_wakeup_pin = gpio_ast_wakeup_pin;
    ast_gpio_rst_pin = gpio_ast_rst_pin;

    //enable 32k to AST1001
    gpio_handle = DclGPIO_Open(DCL_GPIO_CLK, AST_GPIO_CLK32K_MODULE);
    gpio_clk_data.u2ClkNum=AST_GPIO_CLK32K_MODULE;
    gpio_clk_data.u2Mode=mode_f32k_ck;
    DclGPIO_Control(gpio_handle,GPIO_CMD_SET_CLK_OUT,(DCL_CTRL_DATA_T*)&gpio_clk_data);
    DclGPIO_Close(gpio_handle);	
    
    ast_hif_port = AST_HIF_PORT;
    ast_hif_hw_handle = hif_open(AST_HIF_PORT);
    
    ASSERT(ast_hif_hw_handle);
    
    ast_hif_hw_power_ctrl(KAL_TRUE);
    
    ast_hif_hw_config(pConfigParam);
	{
		HIF_REALTIME_CALLBACK_T HifRealTimeCB;
		HifRealTimeCB.realtime_callback_en = KAL_TRUE;
	    hif_ioctl(ast_hif_hw_handle,HIF_IOCTL_REALTIME_CALLBACK,&HifRealTimeCB);
    }
    
    ast_hif_hw_power_ctrl(KAL_FALSE);
    return AST_HIF_HW_RESULT_OK;
}
/*************************************************************************
* FUNCTION
*	bmt_check_ac_usb
*
* DESCRIPTION
*	This function is to tell USB and AC
*
* PARAMETERS
*	measurement voltage
*
* RETURNS
*  AC or USB
*
* GLOBALS AFFECTED
*
*************************************************************************/
charger_usb_present_enum bmt_check_ac_usb(kal_int32 vol)
{
   #ifdef _GPIO_DETECT_USB_CHARGER_	
    kal_uint16 gpio_pin;
    kal_uint8  gpio_state;
    DCL_HANDLE gpio_handle;
    GPIO_CTRL_READ_T gpio_data;
   #endif	

    #ifdef _ADC_DETECT_USB_CHARGER_
    // Use ADC to get voltage value (Analog method)
    /* Use voltage to tell AC/USB */
   	if(vol<chr_usb_detect_volt)      
		return USB_PRESENT;
   	else 
      	return CHARGER_PRESENT;  
   #elif defined(_GPIO_DETECT_USB_CHARGER_) // #ifdef _ADC_DETECT_USB_CHARGER_
   	/* 
        Kerwin:
        use GPIO state(high/low) to differentiate voltage value,
        because for digital(GPIO is digital due to 0/1),
        GPIO=1, if voltage > V
        GPIO=0, if voltage < V
        use V to differentiate USB or CHARGER,
        the following gpio_pin should be customized according to physical layout
    */
    #ifdef __CUST_NEW__
    gpio_handle = DclGPIO_Open(DCL_GPIO, gpio_bmt_check_ac_usb_pin);   
    DclGPIO_Control(gpio_handle, GPIO_CMD_READ, (DCL_CTRL_DATA_T*)&gpio_data);
    DclGPIO_Close(gpio_handle);   
    gpio_state = gpio_data.u1IOData;
    #else /* __CUST_NEW__ */
    /*use GPIO to tell AC/USB*/
    gpio_pin=1;/*GPIO port number*/
    gpio_handle = DclGPIO_Open(DCL_GPIO, gpio_pin);	   
    DclGPIO_Control(gpio_handle, GPIO_CMD_SET_MODE_0, 0);
    DclGPIO_Control(gpio_handle, GPIO_CMD_SET_DIR_IN, 0);
    DclGPIO_Control(gpio_handle, GPIO_CMD_READ, (DCL_CTRL_DATA_T*)&gpio_data);
    DclGPIO_Close(gpio_handle); 
    gpio_state = gpio_data.u1IOData;
    #endif /* __CUST_NEW__ */
    if(gpio_state)      
		return USB_PRESENT;
    else 
		return CHARGER_PRESENT;        
    #endif // #ifdef _ADC_DETECT_USB_CHARGER_             
}   
Exemplo n.º 4
0
/*************************************************************************
* FUNCTION
*	bmt_charger_action
*
* DESCRIPTION
*	This function is to do something whenever AC is plug-in
*
* PARAMETERS
*	AC plug in or plug out
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
#ifdef __CUST_NEW__
   //#define BMT_CHARGER_ACTION_WITH_GPIO
   #undef BMT_CHARGER_ACTION_WITH_GPIO
   #ifdef BMT_CHARGER_ACTION_WITH_GPIO
   extern const char gpio_bmt_charger_action_pin;
   #endif
#endif /* __CUST_NEW__ */
void bmt_charger_action(kal_bool in)
{
#ifdef __CUST_NEW__
	#ifdef BMT_CHARGER_ACTION_WITH_GPIO
    DCL_HANDLE gpio_handle;
    gpio_handle = DclGPIO_Open(DCL_GPIO, gpio_bmt_charger_action_pin);	
    if(in==KAL_FALSE)
        DclGPIO_Control(gpio_handle, GPIO_CMD_WRITE_LOW, 0);
    else if(in==KAL_TRUE)
        DclGPIO_Control(gpio_handle, GPIO_CMD_WRITE_HIGH, 0);
    else
    {
    	DclGPIO_Close(gpio_handle);
    	ASSERT(0);
    }
    DclGPIO_Close(gpio_handle);
  	#endif /* BMT_CHARGER_ACTION_WITH_GPIO */
#else /*  __CUST_NEW__ */
   	kal_uint16 gpio_pin=0xff;
    DCL_HANDLE gpio_handle;
    gpio_handle = DclGPIO_Open(DCL_GPIO, gpio_pin);	      
    if(gpio_pin!=0xff)
    {    
        DclGPIO_Control(gpio_handle,GPIO_CMD_SET_MODE_0,0);
      
        if(in==KAL_FALSE)
            DclGPIO_Control(gpio_handle, GPIO_CMD_WRITE_LOW, 0);
        else if(in==KAL_TRUE)
            DclGPIO_Control(gpio_handle, GPIO_CMD_WRITE_HIGH, 0);
        else
        {
            DclGPIO_Close(gpio_handle);
            ASSERT(0);
        }    
        
        DclGPIO_Close(gpio_handle);
    }      
#endif /* __CUST_NEW__ */
}   
static void custom_em_gpo_writeIO(kal_uint8 data,kal_uint8 port)
{
	DCL_HANDLE handle;
    
	handle=DclGPIO_Open(DCL_GPO,port);	

    if(0 == data)
		DclGPIO_Control(handle,GPO_CMD_WRITE_LOW,0);
	else if(1 == data)
		DclGPIO_Control(handle,GPO_CMD_WRITE_HIGH,0);

	DclGPIO_Close(handle);
}
Exemplo n.º 6
0
AST_HIF_HW_RESULT ast_hif_hw_init(AST_HIF_HW_CONFIG_T* pConfigParam)
{
    DCL_HANDLE gpio_handle;
    GPIO_CTRL_SET_CLK_OUT_T gpio_clk_data;
    #if defined(GET_AST_GPIO_CLK32K_LPCEID_BY_DCT_TOOL)
    ast_gpio_dct_init();
    #endif
    
    ASSERT(pConfigParam != NULL);

    //enable 32k to AST1001
    gpio_handle = DclGPIO_Open(DCL_GPIO_CLK, AST_GPIO_CLK32K_MODULE);
    gpio_clk_data.u2ClkNum=AST_GPIO_CLK32K_MODULE;
    gpio_clk_data.u2Mode=mode_f32k_ck;
    DclGPIO_Control(gpio_handle,GPIO_CMD_SET_CLK_OUT,(DCL_CTRL_DATA_T*)&gpio_clk_data);
    DclGPIO_Close(gpio_handle);	
    
    ast_hif_hw_handle = hif_open(AST_HIF_PORT);
    
    ASSERT(ast_hif_hw_handle);
    
    ast_hif_hw_power_ctrl(KAL_TRUE);
    
    ast_hif_hw_config(pConfigParam);
	{
		HIF_REALTIME_CALLBACK_T HifRealTimeCB;
		HIF_ULTRA_HIGH_CTRL_T UltraHighCtrl;
		HifRealTimeCB.realtime_callback_en = KAL_TRUE;
	  hif_ioctl(ast_hif_hw_handle,HIF_IOCTL_REALTIME_CALLBACK,&HifRealTimeCB);
       
    UltraHighCtrl.ultra_high_en = KAL_TRUE;
    hif_ioctl(ast_hif_hw_handle, HIF_IOCTL_ULTRA_HIGH_CTRL, &UltraHighCtrl);	
    }
    
    ast_hif_hw_power_ctrl(KAL_FALSE);
  #if defined(MT6922) && (!defined(__NLD_CENTRAL_CTRL__))
  #if defined(APOLLO22N_E2_EVB)
    set_lcd_driving_current(LCD_DRIVING_16MA);
  #else
    set_lcd_driving_current(LCD_DRIVING_8MA);
  #endif
#endif
    return AST_HIF_HW_RESULT_OK;
}