/**
 * \file    sc8014_reg_defs.h
 * \brief   register definitions for SC8812A
 * 
 * \par     Copyright (c) 2020 UWE Technologies Corp., Ltd. All Rights Reserved.
 * \author  jef.wu
 * \date    2023-06-07
 * \version 
 * 
 *  DP_ALT转换 视频信号控制，整个框架放这里设置
 * 
 */

#ifndef __SYS_ALT_CONTROL_H_
#define __SYS_ALT_CONTROL_H_


#include "drivers.h"
#include "libc.h"



#define DSVL_POL                   DRV_GPIO_1
#define DSVL_DP_SW                 DRV_GPIO_4
#define DSVL_HPDOUT                DRV_GPIO_5

#define  ALT_DC_EN                    DRV_GPIO_28   //增大供电电流
#define  ALT_VBUS_C1EN                DRV_GPIO_30  //28V时候打开
#define  ALT_DC_DET                   DRV_GPIO_6
#define  ALT_SINK_IN                  DRV_GPIO_17
#define  ALT_LED_ON                   DRV_GPIO_12
#define  ALT_SW_A_C                   DRV_GPIO_15
#define  ALT_A_TO_C_CHECK             DRV_GPIO_13

#define  ALT_SINK_DET             DRV_GPIO_17
#define  ALT_SINK_INT             DRV_GPIO_20
#define  ALT_SINK_GPIO            DRV_GPIO_22



#define  I2C_ACK_DAT 0XAA



#define  sys_alt_dc_detget()          drv_gpio_val_get(ALT_DC_DET)  //vbus检测


#define  sys_alt_vbus_c1en(flg)       drv_gpio_val_set(ALT_VBUS_C1EN,flg)  //打开VBUS

#define  sys_alt_dc_en(flg)           drv_gpio_val_set(ALT_DC_EN,flg)   //DC打开


#define  sys_alt_sink_in_get()            drv_gpio_val_get(ALT_SINK_IN)
#define  sys_alt_led_on(flg)              drv_gpio_val_set(ALT_LED_ON,flg)  //灯光

#define  sys_alt_usbc_to_a(flg)            drv_gpio_val_set(ALT_SW_A_C,flg)  //模拟开关，A-C
#define  sys_alt_a_to_c_get()              drv_gpio_val_get(ALT_A_TO_C_CHECK)


#define SYS_DC_IN_ADC_ID        DRV_ADC_CHN_DP1
#define SYS_DC_IN_ADC_CONSTANT   (11U)
typedef enum
{

  e_dp_pass_a = 0,
  e_dp_pass_b,
  e_dp_pass_c,
  e_dp_pass_d,
  e_dp_pass_e,



}DSVL_mode;



void alt_sys_init();
void alt_outputvol(u8_t pos);
void alt_output_enable(u8_t en);
void alt_test_pwm();
u8_t alt_sinkboard_get();
u8_t alt_holdout_get();
void alt_dsvl171_setmode(DSVL_mode mode);


u8_t alt_sinkboard_get();

void  sys_gpio_sink_int_hangdler();

u8_t alt_sinkboard_ledstate_get(void);
u32_t alt_sinkboard_sinkcapt_get(void);
  void  sys_gpio_usba_det_isr(u32_t arg);
  void  sys_gpio_usba_check_in();
  void  sys_gpio_sink_int_hangdler();
  void  alt_sinkboard_pos_set(u8_t pos);
  void  sys_alt_led_set(u8_t dat);
  void  alt_sink_curcap_get(u8_t *pal,u8_t num);
  u8_t alt_sinkboard_numpos_get(void);
  bool_t alt_dc_invol_get();


#endif

