nt9856x/code/hdal/drivers/k_driver/include/comm/usb_chrgdet.h
2023-03-28 15:07:53 +08:00

83 lines
2.5 KiB
C
Executable File

#ifndef __USB_CHRGDET_H_
#define __USB_CHRGDET_H_
#include "kwrap/type.h"
/**
*/
typedef enum {
USB_CHRGDET_PORT_USB30, ///< [get]
USB_CHRGDET_PORT_USB20, ///< [get]
ENUM_DUMMY4WORD(USB_CHRGDET_PORT)
} USB_CHRGDET_PORT;
/**
*/
typedef enum {
USB_CHRGDET_STS_NONE, ///< No charger detected
USB_CHRGDET_STS_STANDARD_PC = USB_CHRGDET_STS_NONE, ///< Standard PC
USB_CHRGDET_STS_CHARGING_DOWNSTREAM_PORT, ///< Charging downstream port
USB_CHRGDET_STS_CHARGING_PC = USB_CHRGDET_STS_CHARGING_DOWNSTREAM_PORT, ///< Charger capable PC
USB_CHRGDET_STS_CHARGER, ///< Charger detected
USB_CHRGDET_STS_DISCONNECT, ///< USB cable is removed when charger detection is applied
ENUM_DUMMY4WORD(USB_CHRGDET_STS)
} USB_CHRGDET_STS;
/**
usb charger detect parameter select id
This is used in usb_chrgdet_get to get the usb device mode charger detect result
*/
typedef enum {
USB_CHRGDET_TYPE_STD, ///< [set] std or non-std. TRUE: Standard Charger. FALSE: Non-Standard Charger.
///< Default is Non-Standard Charger.
USB_CHRGDET_PLUG, ///< [get] Get the usb cable is plug or not @usb-device-mode
USB_CHRGDET_STATUS, ///< [get] usb charger detect return result would be USB_CHRGDET_STS
ENUM_DUMMY4WORD(USB_CHRGDET_PARAM_ID)
} USB_CHRGDET_PARAM_ID;
/*!
* @fn INT32 usb_chrgdet_get(UINT32 handler, USB_CHRGDET_PARAM_ID id, VOID *param)
* @brief set parameters to hardware engine
* @param id the handler of hardware
* @param param_id the id of parameters
* @param p_param shall the (UINT32 *) or the address the get structure.
* @return return 0 on success, -1 on error
*/
INT32 __usb_chrgdet_set(USB_CHRGDET_PORT usb_port, USB_CHRGDET_PARAM_ID param_id, VOID *p_param);
/*!
* @fn INT32 usb_chrgdet_get(UINT32 handler, USB_CHRGDET_PARAM_ID id, VOID *param)
* @brief set parameters to hardware engine
* @param id the handler of hardware
* @param param_id the id of parameters
* @param p_param shall the (UINT32 *) or the address the get structure.
* @return return 0 on success, -1 on error
*/
INT32 __usb_chrgdet_get(USB_CHRGDET_PORT usb_port, USB_CHRGDET_PARAM_ID param_id, VOID *p_param);
#define usb_chrgdet_get(id, param_id, p_param) __usb_chrgdet_get((UINT32)(id), (USB_CHRGDET_PARAM_ID)(param_id), (VOID *)(p_param))
INT32 __usb_chrgdet_set(USB_CHRGDET_PORT usb_port, USB_CHRGDET_PARAM_ID param_id, VOID *p_param);
#define usb_chrgdet_set(id, param_id, p_param) __usb_chrgdet_set((UINT32)(id), (USB_CHRGDET_PARAM_ID)(param_id), (VOID *)(p_param))
#endif