1 /****************************************************************************//** 2 * @file utcpd.h 3 * @version V1.00 4 * @brief NPD48 series UTCPD driver header file 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. 8 *****************************************************************************/ 9 #ifndef __UTCPD_H__ 10 #define __UTCPD_H__ 11 12 #include "NuMicro.h" 13 14 #ifdef __cplusplus 15 extern "C" 16 { 17 #endif 18 19 /** @addtogroup Standard_Driver Standard Driver 20 @{ 21 */ 22 23 /** @addtogroup UTCPD_Driver UTCPD Driver 24 @{ 25 */ 26 27 /** @addtogroup UTCPD_EXPORTED_CONSTANTS UTCPD Exported Constants 28 @{ 29 */ 30 31 /*---------------------------------------------------------------------------------------------------------*/ 32 /* ALERT constant definitions. */ 33 /*---------------------------------------------------------------------------------------------------------*/ 34 #define UTCPD_ALERT_CCSCHIS UTCPD_IS_CCSCHIS_Msk /*!< UTCPD_T::ALERT: CCSCHIS Mask */ 35 #define UTCPD_ALERT_PWRSCHIS UTCPD_IS_PWRSCHIS_Msk /*!< UTCPD_T::ALERT: PWRSCHIS Mask */ 36 #define UTCPD_ALERT_RXSOPIS UTCPD_IS_RXSOPIS_Msk /*!< UTCPD_T::ALERT: RXSOPIS Mask */ 37 #define UTCPD_ALERT_RXHRSTIS UTCPD_IS_RXHRSTIS_Msk /*!< UTCPD_T::ALERT: RXHRSTIS Mask */ 38 #define UTCPD_ALERT_TXFAILIS UTCPD_IS_TXFALIS_Msk /*!< UTCPD_T::ALERT: TXFAILIS Mask */ 39 #define UTCPD_ALERT_TXDCUIS UTCPD_IS_TXDCUDIS_Msk /*!< UTCPD_T::ALERT: TXDCUIS Mask */ 40 #define UTCPD_ALERT_TXOKIS UTCPD_IS_TXOKIS_Msk /*!< UTCPD_T::ALERT: TXOKIS Mask */ 41 #define UTCPD_ALERT_VBAMHIS UTCPD_IS_VBAMHIS_Msk /*!< UTCPD_T::ALERT: VBAMHIS Mask */ 42 #define UTCPD_ALERT_VBAMLIS UTCPD_IS_VBAMLIS_Msk /*!< UTCPD_T::ALERT: VBAMLIS Mask */ 43 #define UTCPD_ALERT_FUTIS UTCPD_IS_FUTIS_Msk /*!< UTCPD_T::ALERT: FUTIS Mask */ 44 #define UTCPD_ALERT_RXOFIS UTCPD_IS_RXOFIS_Msk /*!< UTCPD_T::ALERT: RXOFIS Mask */ 45 #define UTCPD_ALERT_SKDCDTIS UTCPD_IS_SKDCDTIS_Msk /*!< UTCPD_T::ALERT: SKDCDTIS Mask */ 46 #define UTCPD_ALERT_VNDIS UTCPD_IS_VNDIS_Msk /*!< UTCPD_T::ALERT: VNDIS Mask */ 47 48 49 /*---------------------------------------------------------------------------------------------------------*/ 50 /* ALERT Mask constant definitions. */ 51 /*---------------------------------------------------------------------------------------------------------*/ 52 #define UTCPD_ALERTM_CCSCHIE UTCPD_IE_CCSCHIE_Msk /*!< UTCPD_T::ALERTM: CCSCHIE Mask */ 53 #define UTCPD_ALERTM_PWRSCHIE UTCPD_IE_PWRSCHIE_Msk /*!< UTCPD_T::ALERTM: PWRSCHIE Mask */ 54 #define UTCPD_ALERTM_RXSOPIE UTCPD_IE_RXSOPIE_Msk /*!< UTCPD_T::ALERTM: RXSOPIE Mask */ 55 #define UTCPD_ALERTM_RXHRSTIE UTCPD_IE_RXHRSTIE_Msk /*!< UTCPD_T::ALERTM: RXHRSTIE Mask */ 56 #define UTCPD_ALERTM_TXFAILIE UTCPD_IE_TXFAILIE_Msk /*!< UTCPD_T::ALERTM: TXFAILIE Mask */ 57 #define UTCPD_ALERTM_TXDCUIE UTCPD_IE_TXDCUDIE_Msk /*!< UTCPD_T::ALERTM: TXDCUIE Mask */ 58 #define UTCPD_ALERTM_TXOKIE UTCPD_IE_TXOKIE_Msk /*!< UTCPD_T::ALERTM: TXOKIE Mask */ 59 #define UTCPD_ALERTM_VBAMHIE UTCPD_IE_VBAMHIE_Msk /*!< UTCPD_T::ALERTM: VBAMHIE Mask */ 60 #define UTCPD_ALERTM_VBAMLIE UTCPD_IE_VBAMLIE_Msk /*!< UTCPD_T::ALERTM: VBAMLIE Mask */ 61 #define UTCPD_ALERTM_FUTIE UTCPD_IE_FUTIE_Msk /*!< UTCPD_T::ALERTM: FUTIE Mask */ 62 #define UTCPD_ALERTM_RXOFIE UTCPD_IE_RXOFIE_Msk /*!< UTCPD_T::ALERTM: RXOFIE Mask */ 63 #define UTCPD_ALERTM_SKDCDTIE UTCPD_IE_SKDCDTIE_Msk /*!< UTCPD_T::ALERTM: SKDCDTIE Mask */ 64 #define UTCPD_ALERTM_VNDIE UTCPD_IE_VNDIE_Msk /*!< UTCPD_T::ALERTM: VNDIE Mask */ 65 66 /*---------------------------------------------------------------------------------------------------------*/ 67 /* PWRSM Power Status Mask constant definitions. */ 68 /*---------------------------------------------------------------------------------------------------------*/ 69 #define UTCPD_PWRSM_SKVBIE UTCPD_PWRSTSIE_SKVBIE_Msk /*!< UTCPD_T::PWRSM: SKVBIE Mask */ 70 #define UTCPD_PWRSM_VCPSIE UTCPD_PWRSTSIE_VCPSIE_Msk /*!< UTCPD_T::PWRSM: VCPSIE Mask */ 71 #define UTCPD_PWRSM_VBPSIE UTCPD_PWRSTSIE_VBPSIE_Msk /*!< UTCPD_T::PWRSM: VBPSIE Mask */ 72 #define UTCPD_PWRSM_VBDTDGIE UTCPD_PWRSTSIE_VBDTDGIE_Msk /*!< UTCPD_T::PWRSM: VBDTDGIE Mask */ 73 #define UTCPD_PWRSM_SRVBIE UTCPD_PWRSTSIE_SRVBIE_Msk /*!< UTCPD_T::PWRSM: SRVBIE Mask */ 74 #define UTCPD_PWRSM_SRHVIE UTCPD_PWRSTSIE_SRHVIE_Msk /*!< UTCPD_T::PWRSM: SRHVIE Mask */ 75 #define UTCPD_PWRSM_DACONIE UTCPD_PWRSTSIE_DACONIE_Msk /*!< UTCPD_T::PWRSM: DACONIE Mask */ 76 77 78 /*---------------------------------------------------------------------------------------------------------*/ 79 /* FAULTSM Fault Status Mask constant definitions. */ 80 /*---------------------------------------------------------------------------------------------------------*/ 81 #define UTCPD_FAULTSM_VCOCIE UTCPD_FUTSTSIE_VCOCIE_Msk /*!< UTCPD_T::FAULTSM: VCOCIE Mask */ 82 #define UTCPD_FAULTSM_VBOVIE UTCPD_FUTSTSIE_VBOVIE_Msk /*!< UTCPD_T::FAULTSM: VBOVIE Mask */ 83 #define UTCPD_FAULTSM_VBOCIE UTCPD_FUTSTSIE_VBOCIE_Msk /*!< UTCPD_T::FAULTSM: VBOCIE Mask */ 84 #define UTCPD_FAULTSM_FDGFALIE UTCPD_FUTSTSIE_FDGFALIE_Msk /*!< UTCPD_T::FAULTSM: FDGFALIE Mask */ 85 #define UTCPD_FAULTSM_ADGFALIE UTCPD_FUTSTSIE_ADGFALIE_Msk /*!< UTCPD_T::FAULTSM: ADGFALIE Mask */ 86 #define UTCPD_FAULTSM_FOFFVBIE UTCPD_FUTSTSIE_FOFFVBIE_Msk /*!< UTCPD_T::FAULTSM: FOFFVBIE Mask */ 87 88 /*---------------------------------------------------------------------------------------------------------*/ 89 /* FAULTCTL constant definitions. */ 90 /*---------------------------------------------------------------------------------------------------------*/ 91 #define UTCPD_FAULTCTL_VCOCDTDS UTCPD_FUTCTL_VCOCDTDS_Msk /*!< UTCPD_T::FAULTCTL: VCOCDTDS Mask */ 92 #define UTCPD_FAULTCTL_VBOVDTDS UTCPD_FUTCTL_VBOVDTDS_Msk /*!< UTCPD_T::FAULTCTL: VBOVDTDS Mask */ 93 #define UTCPD_FAULTCTL_VBOCDTDS UTCPD_FUTCTL_VBOCDTDS_Msk /*!< UTCPD_T::FAULTCTL: VBOCDTDS Position */ 94 #define UTCPD_FAULTCTL_VBDGTMDS UTCPD_FUTCTL_VBDGTMDS_Msk /*!< UTCPD_T::FAULTCTL: VBDGTMDS Mask */ 95 #define UTCPD_FAULTCTL_FOFFVBDS UTCPD_FUTCTL_FOFFVBDS_Msk /*!< UTCPD_T::FAULTCTL: FOFFVBDS Mask */ 96 97 /*---------------------------------------------------------------------------------------------------------*/ 98 /* PWRCTL constant definitions. */ 99 /*---------------------------------------------------------------------------------------------------------*/ 100 #define UTCPD_PWRCTL_VCEN UTCPD_PWRCTL_VCEN_Msk /*!< UTCPD_T::PWRCTL: VCEN Mask */ 101 #define UTCPD_PWRCTL_VCPWR UTCPD_PWRCTL_VCPWR_Msk /*!< UTCPD_T::PWRCTL: VCPWR Mask */ 102 #define UTCPD_PWRCTL_FDGEN UTCPD_PWRCTL_FDGEN_Msk /*!< UTCPD_T::PWRCTL: FDGEN Mask */ 103 #define UTCPD_PWRCTL_BDGEN UTCPD_PWRCTL_BDGEN_Msk /*!< UTCPD_T::PWRCTL: BDGEN Mask */ 104 #define UTCPD_PWRCTL_ADGDC UTCPD_PWRCTL_ADGDC_Msk /*!< UTCPD_T::PWRCTL: ADGDC Mask */ 105 #define UTCPD_PWRCTL_DSVBAM_DIS UTCPD_PWRCTL_DSVBAM_Msk /*!< UTCPD_T::PWRCTL: DSVBAM Mask */ 106 #define UTCPD_PWRCTL_VBMONI_DIS UTCPD_PWRCTL_VBMONI_Msk /*!< UTCPD_T::PWRCTL: VBMONI Mask */ 107 108 /*---------------------------------------------------------------------------------------------------------*/ 109 /* TCPCCTL constant definitions. */ 110 /*---------------------------------------------------------------------------------------------------------*/ 111 #define UTCPD_TCPCCTL_ORIENT UTCPD_CTL_ORIENT_Msk /*!< UTCPD_T::TCPCCTL: ORIENT Mask */ 112 #define UTCPD_TCPCCTL_BISTEN UTCPD_CTL_BISTEN_Msk /*!< UTCPD_T::TCPCCTL: BISTEN Mask */ 113 114 /*---------------------------------------------------------------------------------------------------------*/ 115 /* ROLECTL constant definitions. */ 116 /*---------------------------------------------------------------------------------------------------------*/ 117 #define UTCPD_ROLECTL_CC1 UTCPD_ROLCTL_CC1_Msk /*!< UTCPD_T::ROLECTL: CC1 Mask */ 118 #define UTCPD_ROLECTL_CC2 UTCPD_ROLCTL_CC2_Msk /*!< UTCPD_T::ROLECTL: CC2 Mask */ 119 #define UTCPD_ROLECTL_RPVALUE UTCPD_ROLCTL_RPVALUE_Msk /*!< UTCPD_T::ROLECTL: RPVALUE Mask */ 120 #define UTCPD_ROLECTL_DRP UTCPD_ROLCTL_DRP_Msk /*!< UTCPD_T::ROLECTL: DRP Mask */ 121 122 #define UTCPD_ROLECTL_CC1_RA (0 << 0) 123 #define UTCPD_ROLECTL_CC1_RP (1 << 0) 124 #define UTCPD_ROLECTL_CC1_RD (2 << 0) 125 #define UTCPD_ROLECTL_CC1_OPEN (3 << 0) 126 127 #define UTCPD_ROLECTL_CC2_RA (0 << 2) 128 #define UTCPD_ROLECTL_CC2_RP (1 << 2) 129 #define UTCPD_ROLECTL_CC2_RD (2 << 2) 130 #define UTCPD_ROLECTL_CC2_OPEN (3 << 2) 131 132 #define UTCPD_ROLECTL_RPVALUE_DEF (0 << 4) 133 #define UTCPD_ROLECTL_RPVALUE_1P5A (1 << 4) 134 #define UTCPD_ROLECTL_RPVALUE_3A (2 << 4) 135 136 /*---------------------------------------------------------------------------------------------------------*/ 137 /* CCSTS constant definitions. */ 138 /*---------------------------------------------------------------------------------------------------------*/ 139 #define UTCPD_CCSTS_CC1STATE UTCPD_CCSTS_CC1STATE_Msk /*!< UTCPD_T::CCSTS: CC1STATE Mask */ 140 #define UTCPD_CCSTS_CC2STATE UTCPD_CCSTS_CC2STATE_Msk /*!< UTCPD_T::CCSTS: CC2STATE Mask */ 141 #define UTCPD_CCSTS_CONRLT UTCPD_CCSTS_CONRLT_Msk /*!< UTCPD_T::CCSTS: CONRLT Mask */ 142 #define UTCPD_CCSTS_LK4CONN UTCPD_CCSTS_LK4CONN_Msk /*!< UTCPD_T::CCSTS: LK4CONN Mask */ 143 144 #define UTCPD_UNDER_LK4CONN (1 << 5) 145 #define UTCPD_LK4CONN_DONE (0 << 5) 146 147 #define UTCPD_CONN_RESULT_RP (0 << 4) 148 #define UTCPD_CONN_RESULT_RD (1 << 4) 149 150 #define UTCPD_CCSTS_CC2STATE_SRC_OPEN (0 << 2) 151 #define UTCPD_CCSTS_CC2STATE_SRC_RA (1 << 2) 152 #define UTCPD_CCSTS_CC2STATE_SRC_RD (2 << 2) 153 154 #define UTCPD_CCSTS_CC2STATE_SNK_OPEN (0 << 2) 155 #define UTCPD_CCSTS_CC2STATE_SNK_DEF (1 << 2) 156 #define UTCPD_CCSTS_CC2STATE_SNK_1P5A (2 << 2) 157 #define UTCPD_CCSTS_CC2STATE_SNK_3A (3 << 2) 158 159 #define UTCPD_CCSTS_CC1STATE_SRC_OPEN (0 << 0) 160 #define UTCPD_CCSTS_CC1STATE_SRC_RA (1 << 0) 161 #define UTCPD_CCSTS_CC1STATE_SRC_RD (2 << 0) 162 163 #define UTCPD_CCSTS_CC1STATE_SNK_OPEN (0 << 0) 164 #define UTCPD_CCSTS_CC1STATE_SNK_DEF (1 << 0) 165 #define UTCPD_CCSTS_CC1STATE_SNK_1P5A (2 << 0) 166 #define UTCPD_CCSTS_CC1STATE_SNK_3A (3 << 0) 167 168 /*---------------------------------------------------------------------------------------------------------*/ 169 /* PWRSTS constant definitions. */ 170 /*---------------------------------------------------------------------------------------------------------*/ 171 #define UTCPD_PWRSTS_SKVB UTCPD_PWRSTS_SKVB_Msk /*!< UTCPD_T::PWRSTS: SKVB Mask */ 172 #define UTCPD_PWRSTS_VCPS UTCPD_PWRSTS_VCPS_Msk /*!< UTCPD_T::PWRSTS: VCPS Mask */ 173 #define UTCPD_PWRSTS_VBPS UTCPD_PWRSTS_VBPS_Msk /*!< UTCPD_T::PWRSTS: VBPS Mask */ 174 #define UTCPD_PWRSTS_VBPSDTEN UTCPD_PWRSTS_VBPSDTEN_Msk /*!< UTCPD_T::PWRSTS: VBPSDTEN Mask */ 175 #define UTCPD_PWRSTS_SRVB UTCPD_PWRSTS_SRVB_Msk /*!< UTCPD_T::PWRSTS: SRVB Mask */ 176 #define UTCPD_PWRSTS_SRHV UTCPD_PWRSTS_SRHV_Msk /*!< UTCPD_T::PWRSTS: SRHV Mask */ 177 #define UTCPD_PWRSTS_DACON UTCPD_PWRSTS_DACON_Msk /*!< UTCPD_T::PWRSTS: DACON Mask */ 178 179 /*---------------------------------------------------------------------------------------------------------*/ 180 /* FAULTSTS constant definitions. */ 181 /*---------------------------------------------------------------------------------------------------------*/ 182 183 #define UTCPD_FAULTSTS_VCOCFUT UTCPD_FUTSTS_VCOCFUT_Pos /*!< UTCPD_T::FAULTSTS: VCOCFUT Mask */ 184 #define UTCPD_FAULTSTS_VBOVFUT UTCPD_FUTSTS_VBOVFUT_Msk /*!< UTCPD_T::FAULTSTS: VBOVFUT Mask */ 185 #define UTCPD_FAULTSTS_VBOCFUT UTCPD_FUTSTS_VBOCFUT_Msk /*!< UTCPD_T::FAULTSTS: VBOCFUT Mask */ 186 #define UTCPD_FAULTSTS_FDGFAL UTCPD_FUTSTS_FDGFAL_Msk /*!< UTCPD_T::FAULTSTS: FDGFAL Mask */ 187 #define UTCPD_FAULTSTS_ADGFAL UTCPD_FUTSTS_ADGFAL_Msk /*!< UTCPD_T::FAULTSTS: ADGFAL Mask */ 188 #define UTCPD_FAULTSTS_FOFFVB UTCPD_FUTSTS_FOFFVB_Msk /*!< UTCPD_T::FAULTSTS: FOFFVB Mask */ 189 190 /*---------------------------------------------------------------------------------------------------------*/ 191 /* CMD constant definitions. */ 192 /*---------------------------------------------------------------------------------------------------------*/ 193 //#define NPD48_CMD_WAKEI2C (0x11) /* Not Support */ 194 #define UTCPD_CMD_DISABLE_VBUS_DETECT (0x22) 195 #define UTCPD_CMD_ENABLE_VBUS_DETECT (0x33) 196 #define UTCPD_CMD_DISABLE_SINK_VBUS (0x44) 197 #define UTCPD_CMD_SINK_VBUS (0x55) 198 #define UTCPD_CMD_DISABLE_SRC_VBUS (0x66) 199 #define UTCPD_CMD_SRC_VBUS_DEFAULT (0x77) 200 #define UTCPD_CMD_SRC_VBUS_NONDEFAULT (0x88) 201 #define UTCPD_CMD_LOOK4CONNECTION (0x99) 202 //#define UTCPD_CMD_RX_ONE_MORE (0xAA) /* Not Support */ 203 //#define UTCPD_CMD_SEND_FRS_SWAP_SIGNAL (0xCC) /* Not Support */ 204 //#define UTCPD_CMD_SEND_RESET_TX_BUF (0xDD) /* Not Support */ 205 //#define UTCPD_CMD_SEND_RESET_RX_BUF (0xEE) /* Not Support */ 206 //#define UTCPD_CMD_I2C_IDLE (0xFF) /* Not Support */ 207 208 /*---------------------------------------------------------------------------------------------------------*/ 209 /* NPD48_MHINFO constant definitions. */ 210 /*---------------------------------------------------------------------------------------------------------*/ 211 #define UTCPD_MHINFO_DROLE_UFP (0x0UL << UTCPD_MSHEAD_DAROL_Pos) /*!< UTCPD_T::MHINFO: DROLE Position */ 212 #define UTCPD_MHINFO_DROLE_DFP (0x1UL << UTCPD_MSHEAD_DAROL_Pos) /*!< UTCPD_T::MHINFO: DROLE Position */ 213 214 #define UTCPD_MHINFO_PDREV_10 (0x0UL << UTCPD_MSHEAD_PDREV_Pos) /*!< UTCPD_T::MHINFO: PDREV Position */ 215 #define UTCPD_MHINFO_PDREV_20 (0x1UL << UTCPD_MSHEAD_PDREV_Pos) /*!< UTCPD_T::MHINFO: PDREV Position */ 216 #define UTCPD_MHINFO_PDREV_30 (0x2UL << UTCPD_MSHEAD_PDREV_Pos) /*!< UTCPD_T::MHINFO: PDREV Position */ 217 #define UTCPD_MHINFO_PDREV_31 (0x3UL << UTCPD_MSHEAD_PDREV_Pos) /*!< UTCPD_T::MHINFO: PDREV Position */ 218 219 #define UTCPD_MHINFO_PROLE_SNK (0x0UL << UTCPD_MSHEAD_PWRROL_Pos) /*!< UTCPD_T::MHINFO: PROLE Position */ 220 #define UTCPD_MHINFO_PROLE_SRC (0x1UL << UTCPD_MSHEAD_PWRROL_Pos) /*!< UTCPD_T::MHINFO: PROLE Position */ 221 222 /*---------------------------------------------------------------------------------------------------------*/ 223 /* RDET constant definitions. */ 224 /*---------------------------------------------------------------------------------------------------------*/ 225 #define UTCPD_RDET_SOPEN UTCPD_DTRXEVNT_SOPEN_Msk /*!< UTCPD_T::RDET: SOPEN Mask */ 226 #define UTCPD_RDET_SOPPEN UTCPD_DTRXEVNT_SOPPEN_Msk /*!< UTCPD_T::RDET: SOPPEN Mask */ 227 #define UTCPD_RDET_SOPPPEN UTCPD_DTRXEVNT_SOPPPEN_Msk /*!< UTCPD_T::RDET: SOPPPEN Mask */ 228 #define UTCPD_RDET_SDBGPEN UTCPD_DTRXEVNT_SDBGPEN_Msk /*!< UTCPD_T::RDET: SDBGPEN Mask */ 229 #define UTCPD_RDET_SDBGPPEN UTCPD_DTRXEVNT_SDBGPPEN_Msk /*!< UTCPD_T::RDET: SDBGPPEN Mask */ 230 #define UTCPD_RDET_HRSTEN UTCPD_DTRXEVNT_HRSTEN_Msk /*!< UTCPD_T::RDET: HRSTEN Mask */ 231 #define UTCPD_RDET_CABRSTEN UTCPD_DTRXEVNT_CABRSTEN_Msk /*!< UTCPD_T::RDET: CABRSTEN Mask */ 232 233 234 /*---------------------------------------------------------------------------------------------------------*/ 235 /* FSTXCTL constant definitions. */ 236 /*---------------------------------------------------------------------------------------------------------*/ 237 #define UTCPD_FSTXCTL_FSTXEN UTCPD_FRSRXCTL_FRSTX_Msk /*!< UTCPD_T::FSTXCTL: FSTXEN Mask */ 238 #define UTCPD_FSTXCTL_FSDVVB UTCPD_FRSRXCTL_FRSDVVB_Msk /*!< UTCPD_T::FSTXCTL: FSDVVB Mask */ 239 #define UTCPD_FSTXCTL_FSRXDET UTCPD_FRSRXCTL_FRSRXEN_Msk /*!< UTCPD_T::FSTXCTL: FSRXDET Mask */ 240 241 242 243 /*---------------------------------------------------------------------------------------------------------*/ 244 /* MUXSEL constant definitions. */ 245 /*---------------------------------------------------------------------------------------------------------*/ 246 #define UTCPD_VCONN_OC_EINT0 (0UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From EINT0 */ 247 #define UTCPD_VCONN_OC_EINT1 (1UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From EINT1 */ 248 #define UTCPD_VCONN_OC_EINT2 (2UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From EINT2 */ 249 #define UTCPD_VCONN_OC_EINT3 (3UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From EINT3 */ 250 #define UTCPD_VCONN_OC_ADC_CMP1 (4UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From ADC_CMP1 */ 251 #define UTCPD_VCONN_OC_ACMP0 (5UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From ACMP0 */ 252 #define UTCPD_VCONN_OC_ACMP1 (6UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From ACMP1 */ 253 #define UTCPD_VCONN_OC_ACMP2 (7UL << UTCPD_MUXSEL_VCOCS_Pos) /*!< UTCPD_T::MUXSEL: VCONN OC Source From ACMP2 */ 254 255 256 #define UTCPD_VBUS_OC_EINT0 (0UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From EINT0 */ 257 #define UTCPD_VBUS_OC_EINT1 (1UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From EINT1 */ 258 #define UTCPD_VBUS_OC_EINT2 (2UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From EINT2 */ 259 #define UTCPD_VBUS_OC_EINT3 (3UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From EINT3 */ 260 #define UTCPD_VBUS_OC_ADC_CMP0 (4UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From ADC_CMP0 */ 261 #define UTCPD_VBUS_OC_ACMP0 (5UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From ACMP0 */ 262 #define UTCPD_VBUS_OC_ACMP1 (6UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From ACMP1 */ 263 #define UTCPD_VBUS_OC_ACMP2 (7UL << UTCPD_MUXSEL_VBOCS_Pos) /*!< UTCPD_T::MUXSEL: VBUS OC Source From ACMP2 */ 264 /*---------------------------------------------------------------------------------------------------------*/ 265 /* PWRASTS constant definitions. */ 266 /*---------------------------------------------------------------------------------------------------------*/ 267 #define UTCPD_PWRASTS_SRCENLVL_HIGH (0x0ul << 0) /*!< UTCPD_T::PWRASTS: SRC Enable Level */ 268 #define UTCPD_PWRASTS_SRCENLVL_LOW (0x1ul << 0) /*!< UTCPD_T::PWRASTS: SRC Enable Level */ 269 270 #define UTCPD_PWRASTS_SNKENLVL_HIGH (0x0ul << 1) /*!< UTCPD_T::PWRASTS: SNK Enable Level */ 271 #define UTCPD_PWRASTS_SNKENLVL_LOW (0x1ul << 1) /*!< UTCPD_T::PWRASTS: SNK Enable Level */ 272 273 #define UTCPD_PWRASTS_FORCEDLVL_HIGH (0x0ul << 2) /*!< UTCPD_T::PWRASTS: Force Discharge Level*/ 274 #define UTCPD_PWRASTS_FORCEDLVL_LOW (0x1ul << 2) /*!< UTCPD_T::PWRASTS: Force Discharge Level*/ 275 276 #define UTCPD_PWRASTS_BLEEDDLVL_HIGH (0x0ul << 3) /*!< UTCPD_T::PWRASTS: Bleed Discharge Level*/ 277 #define UTCPD_PWRASTS_BLEEDDLVL_LOW (0x1ul << 3) /*!< UTCPD_T::PWRASTS: Bleed Discharge Level*/ 278 /*@}*/ /* end of group I2C_EXPORTED_CONSTANTS */ 279 280 /*---------------------------------------------------------------------------------------------------------*/ 281 /* Define utcpd functions prototype */ 282 /*---------------------------------------------------------------------------------------------------------*/ 283 int32_t UTCPD_GetAlertStatus(int port, int* i32AlertSts); 284 int32_t UTCPD_ClearAlertStatus(int port, int AlertStClr); 285 int32_t UTCPD_EnableAlertMask(int port, int mask_set); 286 int32_t UTCPD_DisableAlertMask(int port, int mask_clr); 287 int32_t UTCPD_EnablePowerStatusMask(int port, int mask_set); 288 int32_t UTCPD_DisablePowerStatusMask(int port, int mask_clr); 289 int32_t UTCPD_EnableFaultMask(int port, int mask_set); 290 int32_t UTCPD_DisableFaultMask(int port, int mask_clr); 291 int32_t UTCPD_EnablePowerCtrl(int port, uint32_t mask_set); 292 int32_t UTCPD_DisablePowerCtrl(int port, uint32_t maskclr); 293 int32_t UTCPD_EnableFaultCtrl(int port, uint32_t mask_set); 294 int32_t UTCPD_DisableFaultCtrl(int port, uint32_t maskclr); 295 int32_t UTCPD_ClearPowerStatus(int port, int PowerStClr); 296 int32_t UTCPD_EnableFaultStatusMask(int port, int mask_set); 297 int32_t UTCPD_DisableFaultStatusMask(int port, int mask_clr); 298 int32_t UTCPD_GetFaultStatus(int port, int* pi32RegData); 299 int32_t UTCPD_ClearFaultStatus(int port, int FaultStClr); 300 int32_t UTCPD_SetRoleCtrl(int port, uint32_t u32DrpToggle, uint32_t u32Rpvalue, uint32_t u32CC2, uint32_t u32CC1); 301 int32_t UTCPD_GetRoleCtrl(int port, uint32_t* pu32DrpToggle, uint32_t* pu32CC1, uint32_t* pu32CC2, uint32_t* pu32Rpvalue); 302 int32_t UTCPD_SetTypeCPortCtrl(int port, uint32_t u32BistMode, uint32_t u32Orient); 303 int32_t UTCPD_GetTypeCPortCtrl(int port, uint32_t* pu32BistMode, uint32_t* pu32Orient); 304 int32_t UTCPD_IsssueCmd(int port, uint32_t cmd); 305 int32_t UTCPD_GetCCSts(int port, uint32_t* pu32Look4Con, uint32_t* pu32ConRlt, uint32_t* pu32CC2Sts, uint32_t* pu32CC1Sts); 306 int32_t UTCPD_GetPwrSts(int port, uint32_t* pu32VBUSDetEn, uint32_t* pu32VBUSPresent, uint32_t* pu32VCONNPresent, uint32_t* pu32SnkVBUS); 307 int32_t UTCPD_GetPwrStsExt(int port, uint32_t* pu32DbgAccessory, uint32_t* pu32SrcNonDefVBUS, uint32_t* pu32SrcDefVBUS); 308 int32_t UTCPD_GetFaultSts(int port, uint32_t* pu32VBUSOverCurr, uint32_t* pu32VBUSOverVolt, uint32_t* pu32VCONNOverCurr, uint32_t* pu32I2CInfErr); 309 int32_t UTCPD_GetFaultStsExt(int port, uint32_t* pu32ForceOffFat, uint32_t* pu32AutoDiscFat, uint32_t* pu32ForceDiscFat); 310 int32_t UTCPD_SetMsgHeaderInfo(int port, uint32_t u32DataRole, uint32_t u32Revision, uint32_t u32PwrRole); 311 int32_t UTCPD_SetRecDetect(int port, uint32_t u32RegData); 312 int32_t UTCPD_SetVBUSAlarm(int port, uint32_t u32AlarmH, uint32_t u32AlarmL); 313 int32_t UTCPD_SetSnkDisconnect(int port, uint32_t u32SnkDiscVolt); 314 int32_t UTCPD_SetStopDischargeVolt(int port, uint32_t u32StopDischgVolt); 315 void UTCPD_vconn_disable_src_cc(int port); 316 void UTCPD_vconn_enable_src_cc(int port); 317 void UTCPD_vconn_enable_from_cc2(int port); 318 void UTCPD_vconn_enable_from_cc1(int port); 319 void UTCPD_vconn_polarity_active_low(int port); 320 void UTCPD_vconn_polarity_active_high(int port); 321 void UTCPD_vconn_disable_oc_fault(int port); 322 void UTCPD_vconn_enable_oc_fault(int port); 323 void UTCPD_vconn_mux_selection(int port, uint32_t cc1vcensel, uint32_t cc2vcensel); 324 void UTCPD_vconn_configure_oc_detection_soruce(int port, uint32_t u32Src); 325 void UTCPD_vbus_srcen_polarity_active_low(int port); 326 void UTCPD_vbus_srcen_polarity_active_high(int port); 327 void UTCPD_vbus_snken_polarity_active_low(int port); 328 void UTCPD_vbus_snken_polarity_active_high(int port); 329 void UTCPD_vbus_disable_oc_fault(int port); 330 void UTCPD_vbus_enable_oc_fault(int port); 331 void UTCPD_vbus_discharge_polarity_active_low(int port); 332 void UTCPD_vbus_discharge_polarity_active_high(int port); 333 void UTCPD_vbus_configure_oc_soruce(int port, uint32_t u32Src); 334 void UTCPD_vbus_disable_ov_fault(int port); 335 void UTCPD_vbus_enable_ov_fault(int port); 336 void UTCPD_vbus_disable_forceoff_fault(int port); 337 void UTCPD_vbus_enable_forceoff_fault(int port); 338 uint32_t UTCPD_vbus_is_source(int port); 339 uint32_t UTCPD_vbus_is_sink(int port); 340 uint32_t UTCPD_vbus_is_source_hv(int port); 341 void UTCPD_power_enable_monitor(int port); 342 void UTCPD_power_disable_monitor(int port); 343 void UTCPD_power_disable_auto_discharge(int port); 344 void UTCPD_power_enable_auto_discharge(int port); 345 void UTCPD_frs_tx_polarity_active_low(int port); 346 void UTCPD_frs_tx_polarity_active_high(int port); 347 void UTCPD_frs_mux_selection(int port, uint32_t cc1frssel, uint32_t cc2frssel); 348 uint32_t UTCPD_Open(int port); 349 350 351 /*@}*/ /* end of group UTCPD_EXPORTED_FUNCTIONS */ 352 353 /*@}*/ /* end of group UTCPD_Driver */ 354 355 /*@}*/ /* end of group Standard_Driver */ 356 357 #ifdef __cplusplus 358 } 359 #endif 360 361 #endif 362 363 /*** (C) COPYRIGHT 2020 Nuvoton Technology Corp. ***/