/**
  *****************************************************************************
  * @file    sys_qc_hook.h
  * @author  Solution Team
  * @version V1.00
  * @date    28-February-2023
  * @brief   System QC hook implimentation
  *****************************************************************************
  * @attention 
  *  Copyright (c) 2017 - 2023 Unicmicro Co., Ltd. 
  *  All Rights Reserved. 
  *****************************************************************************
  */
 
#ifndef __SYS_QC_HOOK_H_
#define __SYS_QC_HOOK_H_


#include "drv_gpio.h"
#include "usbpd.h"


#if SYS_QUICK_CHARGE_ENABLED
#if SYS_USBA_ENABLED 
extern volatile DPM_QC_INFO_t g_usba1_qc_info;
#endif
extern volatile DPM_QC_INFO_t g_usbc_qc_info;

void sys_qc_init();
void sys_qc_disable();
u32_t sys_usbc_volt_get(DPM_QC_VOLT_INTF_TYPE_t type);
#if SYS_USBA_ENABLED 
void sys_usba1_src_dpdm_mode_set(DPM_SRC_DPDM_MODE_t mode);
u32_t sys_usba1_volt_get(DPM_QC_VOLT_INTF_TYPE_t type);
#else
#define sys_usba1_src_dpdm_mode_set(mode)
#define sys_usba1_volt_get(type)       0

#endif
bool_t sys_usbc_vbus_set(u32_t volt);
void sys_usbc_src_dpdm_mode_set(DPM_SRC_DPDM_MODE_t mode);

#endif /* SYS_QUICK_CHARGE_ENABLED */


#endif /* #ifndef __SYS_QC_HOOK_H_ */

