1 /**
2   ******************************************************************************
3   * @file    stm32n6xx_ll_ucpd.h
4   * @author  MCD Application Team
5   * @brief   Header file of UCPD LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2023 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32N6xx_LL_UCPD_H
21 #define STM32N6xx_LL_UCPD_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32n6xx.h"
29 
30 /** @addtogroup STM32N6xx_LL_Driver
31   * @{
32   */
33 
34 #if defined (UCPD1)
35 
36 /** @defgroup UCPD_LL UCPD
37   * @{
38   */
39 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /* Private macros ------------------------------------------------------------*/
43 
44 /* Exported types ------------------------------------------------------------*/
45 #if defined(USE_FULL_LL_DRIVER)
46 /** @defgroup UCPD_LL_ES_INIT UCPD Exported Init structure
47   * @{
48   */
49 
50 /**
51   * @brief  UCPD Init structures definition
52   */
53 typedef struct
54 {
55   uint32_t psc_ucpdclk;         /*!< Specify the prescaler for the UCPD clock.
56                                      This parameter can be a value of @ref UCPD_LL_EC_PSC.
57                                      This feature can be modified afterwards using function @ref LL_UCPD_SetPSCClk().
58                                 */
59 
60   uint32_t transwin;            /*!< Specify the number of cycles (minus 1) of the half bit clock (see HBITCLKDIV)
61                                    to achieve a legal tTransitionWindow (set according to peripheral clock to define
62                                     an interval of between 12 and 20 us).
63                                     This parameter can be a value between Min_Data=0x1 and Max_Data=0x1F
64                                     This value can be modified afterwards using function @ref LL_UCPD_SetTransWin().
65                                 */
66 
67   uint32_t IfrGap;              /*!< Specify the definition of the clock divider (minus 1) in order to generate
68                                     tInterframeGap from the peripheral clock.
69                                     This parameter can be a value between Min_Data=0x1 and Max_Data=0x1F
70                                     This feature can be modified afterwards using function @ref LL_UCPD_SetIfrGap().
71                                 */
72 
73   uint32_t HbitClockDiv;        /*!< Specify the number of cycles (minus one) at UCPD peripheral for a half bit clock
74                                      e.g. program 3 for a bit clock that takes 8 cycles of the peripheral clock :
75                                      "UCPD1_CLK".
76                                      This parameter can be a value between Min_Data=0x0 and Max_Data=0x3F.
77                                      This feature can be modified using function @ref LL_UCPD_SetHbitClockDiv().
78                                 */
79 
80 } LL_UCPD_InitTypeDef;
81 
82 /**
83   * @}
84   */
85 #endif /* USE_FULL_LL_DRIVER */
86 
87 /* Exported constants --------------------------------------------------------*/
88 /** @defgroup UCPD_LL_Exported_Constants UCPD Exported Constants
89   * @{
90   */
91 
92 /** @defgroup UCPD_LL_EC_GET_FLAG Get Flags Defines
93   * @brief    Flags defines which can be used with LL_ucpd_ReadReg function
94   * @{
95   */
96 #define LL_UCPD_SR_TXIS             UCPD_SR_TXIS                  /*!< Transmit interrupt status                      */
97 #define LL_UCPD_SR_TXMSGDISC        UCPD_SR_TXMSGDISC             /*!< Transmit message discarded interrupt           */
98 #define LL_UCPD_SR_TXMSGSENT        UCPD_SR_TXMSGSENT             /*!< Transmit message sent interrupt                */
99 #define LL_UCPD_SR_TXMSGABT         UCPD_SR_TXMSGABT              /*!< Transmit message abort interrupt               */
100 #define LL_UCPD_SR_HRSTDISC         UCPD_SR_HRSTDISC              /*!< HRST discarded interrupt                       */
101 #define LL_UCPD_SR_HRSTSENT         UCPD_SR_HRSTSENT              /*!< HRST sent interrupt                            */
102 #define LL_UCPD_SR_TXUND            UCPD_SR_TXUND                 /*!< Tx data underrun condition interrupt           */
103 #define LL_UCPD_SR_RXNE             UCPD_SR_RXNE                  /*!< Receive data register not empty interrupt      */
104 #define LL_UCPD_SR_RXORDDET         UCPD_SR_RXORDDET              /*!< Rx ordered set (4 K-codes) detected interrupt  */
105 #define LL_UCPD_SR_RXHRSTDET        UCPD_SR_RXHRSTDET             /*!< Rx Hard Reset detect interrupt                 */
106 #define LL_UCPD_SR_RXOVR            UCPD_SR_RXOVR                 /*!< Rx data overflow interrupt                     */
107 #define LL_UCPD_SR_RXMSGEND         UCPD_SR_RXMSGEND              /*!< Rx message received                            */
108 #define LL_UCPD_SR_RXERR            UCPD_SR_RXERR                 /*!< Rx error                                       */
109 #define LL_UCPD_SR_TYPECEVT1        UCPD_SR_TYPECEVT1             /*!< Type C voltage level event on CC1              */
110 #define LL_UCPD_SR_TYPECEVT2        UCPD_SR_TYPECEVT2             /*!< Type C voltage level event on CC2              */
111 #define LL_UCPD_SR_TYPEC_VSTATE_CC1 UCPD_SR_TYPEC_VSTATE_CC1      /*!<Status of DC level on CC1 pin                   */
112 #define LL_UCPD_SR_TYPEC_VSTATE_CC2 UCPD_SR_TYPEC_VSTATE_CC2      /*!<Status of DC level on CC2 pin                   */
113 
114 /**
115   * @}
116   */
117 
118 /** @defgroup UCPD_LL_EC_IT IT Defines
119   * @brief    IT defines which can be used with LL_UCPD_ReadReg and  LL_UCPD_WriteReg functions
120   * @{
121   */
122 #define LL_UCPD_IMR_TXIS             UCPD_IMR_TXISIE              /*!< Enable transmit interrupt status                     */
123 #define LL_UCPD_IMR_TXMSGDISC        UCPD_IMR_TXMSGDISCIE         /*!< Enable transmit message discarded interrupt          */
124 #define LL_UCPD_IMR_TXMSGSENT        UCPD_IMR_TXMSGSENTIE         /*!< Enable transmit message sent interrupt               */
125 #define LL_UCPD_IMR_TXMSGABT         UCPD_IMR_TXMSGABTIE          /*!< Enable transmit message abort interrupt              */
126 #define LL_UCPD_IMR_HRSTDISC         UCPD_IMR_HRSTDISCIE          /*!< Enable HRST discarded interrupt                      */
127 #define LL_UCPD_IMR_HRSTSENT         UCPD_IMR_HRSTSENTIE          /*!< Enable HRST sent interrupt                           */
128 #define LL_UCPD_IMR_TXUND            UCPD_IMR_TXUNDIE             /*!< Enable tx data underrun condition interrupt          */
129 #define LL_UCPD_IMR_RXNE             UCPD_IMR_RXNEIE              /*!< Enable Receive data register not empty interrupt     */
130 #define LL_UCPD_IMR_RXORDDET         UCPD_IMR_RXORDDETIE          /*!< Enable Rx ordered set (4 K-codes) detected interrupt */
131 #define LL_UCPD_IMR_RXHRSTDET        UCPD_IMR_RXHRSTDETIE         /*!< Enable Rx Hard Reset detect interrupt                */
132 #define LL_UCPD_IMR_RXOVR            UCPD_IMR_RXOVRIE             /*!< Enable Rx data overflow interrupt                    */
133 #define LL_UCPD_IMR_RXMSGEND         UCPD_IMR_RXMSGENDIE          /*!< Enable Rx message received                           */
134 #define LL_UCPD_IMR_TYPECEVT1        UCPD_IMR_TYPECEVT1IE         /*!< Enable Type C voltage level event on CC1             */
135 #define LL_UCPD_IMR_TYPECEVT2        UCPD_IMR_TYPECEVT2IE         /*!< Enable Type C voltage level event on CC2             */
136 
137 /**
138   * @}
139   */
140 
141 /** @defgroup UCPD_LL_EC_ORDERSET Ordered sets value
142   * @brief    definition of the usual Ordered sets
143   * @{
144   */
145 #define LL_UCPD_SYNC1 0x18u                                       /*!< K-code for Startsynch #1                             */
146 #define LL_UCPD_SYNC2 0x11u                                       /*!< K-code for Startsynch #2                             */
147 #define LL_UCPD_SYNC3 0x06u                                       /*!< K-code for Startsynch #3                             */
148 #define LL_UCPD_RST1  0x07u                                       /*!< K-code for Hard Reset #1                             */
149 #define LL_UCPD_RST2  0x19u                                       /*!< K-code for Hard Reset #2                             */
150 #define LL_UCPD_EOP   0x0Du                                       /*!< K-code for EOP End of Packet                         */
151 
152 #define LL_UCPD_ORDERED_SET_SOP         (LL_UCPD_SYNC1 | (LL_UCPD_SYNC1<<5u) | (LL_UCPD_SYNC1<<10u) | (LL_UCPD_SYNC2<<15u)) /*!< SOP Ordered set coding         */
153 #define LL_UCPD_ORDERED_SET_SOP1        (LL_UCPD_SYNC1 | (LL_UCPD_SYNC1<<5u) | (LL_UCPD_SYNC3<<10u) | (LL_UCPD_SYNC3<<15u)) /*!< SOP' Ordered set coding        */
154 #define LL_UCPD_ORDERED_SET_SOP2        (LL_UCPD_SYNC1 | (LL_UCPD_SYNC3<<5u) | (LL_UCPD_SYNC1<<10u) | (LL_UCPD_SYNC3<<15u)) /*!< SOP'' Ordered set coding       */
155 #define LL_UCPD_ORDERED_SET_HARD_RESET  (LL_UCPD_RST1  | (LL_UCPD_RST1<<5u)  | (LL_UCPD_RST1<<10u)  | (LL_UCPD_RST2<<15u )) /*!< Hard Reset Ordered set coding  */
156 #define LL_UCPD_ORDERED_SET_CABLE_RESET (LL_UCPD_RST1  | (LL_UCPD_SYNC1<<5u) | (LL_UCPD_RST1<<10u)  | (LL_UCPD_SYNC3<<15u)) /*!< Cable Reset Ordered set coding */
157 #define LL_UCPD_ORDERED_SET_SOP1_DEBUG  (LL_UCPD_SYNC1 | (LL_UCPD_RST2<<5u)  | (LL_UCPD_RST2<<10u)  | (LL_UCPD_SYNC3<<15u)) /*!< SOP' Debug Ordered set coding  */
158 #define LL_UCPD_ORDERED_SET_SOP2_DEBUG  (LL_UCPD_SYNC1 | (LL_UCPD_RST2<<5u)  | (LL_UCPD_SYNC3<<10u) | (LL_UCPD_SYNC2<<15u)) /*!< SOP'' Debug Ordered set coding */
159 /**
160   * @}
161   */
162 
163 /** @defgroup UCPD_LL_EC_MODE Role Mode
164   * @{
165   */
166 #define LL_UCPD_ROLE_SNK             UCPD_CR_ANAMODE              /*!< Mode SNK Rd                                    */
167 #define LL_UCPD_ROLE_SRC             0x0U                         /*!< Mode SRC Rp                                    */
168 /**
169   * @}
170   */
171 
172 /** @defgroup UCPD_LL_EC_RESISTOR Resistor value
173   * @{
174   */
175 #define LL_UCPD_RESISTOR_DEFAULT    UCPD_CR_ANASUBMODE_0          /*!< Rp default                                     */
176 #define LL_UCPD_RESISTOR_1_5A       UCPD_CR_ANASUBMODE_1          /*!< Rp 1.5 A                                       */
177 #define LL_UCPD_RESISTOR_3_0A       UCPD_CR_ANASUBMODE            /*!< Rp 3.0 A                                       */
178 #define LL_UCPD_RESISTOR_NONE       0x0U                          /*!< No resistor                                    */
179 /**
180   * @}
181   */
182 
183 /** @defgroup UCPD_LL_EC_CFG1_ORDERSET ordered set configuration
184   * @{
185   */
186 #define LL_UCPD_ORDERSET_SOP         UCPD_CFG1_RXORDSETEN_0       /*!< SOP Ordered set detection enabled              */
187 #define LL_UCPD_ORDERSET_SOP1        UCPD_CFG1_RXORDSETEN_1       /*!< SOP' Ordered set detection enabled             */
188 #define LL_UCPD_ORDERSET_SOP2        UCPD_CFG1_RXORDSETEN_2       /*!< SOP'' Ordered set detection enabled            */
189 #define LL_UCPD_ORDERSET_HARDRST     UCPD_CFG1_RXORDSETEN_3       /*!< Hard Reset Ordered set detection enabled       */
190 #define LL_UCPD_ORDERSET_CABLERST    UCPD_CFG1_RXORDSETEN_4       /*!< Cable Reset Ordered set detection enabled      */
191 #define LL_UCPD_ORDERSET_SOP1_DEBUG  UCPD_CFG1_RXORDSETEN_5       /*!< SOP' Debug Ordered set detection enabled       */
192 #define LL_UCPD_ORDERSET_SOP2_DEBUG  UCPD_CFG1_RXORDSETEN_6       /*!< SOP'' Debug Ordered set detection enabled      */
193 #define LL_UCPD_ORDERSET_SOP_EXT1    UCPD_CFG1_RXORDSETEN_7       /*!< SOP extension#1 Ordered set detection enabled  */
194 #define LL_UCPD_ORDERSET_SOP_EXT2    UCPD_CFG1_RXORDSETEN_8       /*!< SOP extension#2 Ordered set detection enabled  */
195 /**
196   * @}
197   */
198 
199 /** @defgroup UCPD_LL_EC_CCxEVT  CCx event
200   * @{
201   */
202 #define LL_UCPD_SNK_CC1_VOPEN      0x00u                                                      /*!< CC1 Sink Open state              */
203 #define LL_UCPD_SNK_CC1_VRP        UCPD_SR_TYPEC_VSTATE_CC1_0                                 /*!< CC1 Sink vRP default state       */
204 #define LL_UCPD_SNK_CC1_VRP15A     UCPD_SR_TYPEC_VSTATE_CC1_1                                 /*!< CC1 Sink vRP 1.5A state          */
205 #define LL_UCPD_SNK_CC1_VRP30A     (UCPD_SR_TYPEC_VSTATE_CC1_0 | UCPD_SR_TYPEC_VSTATE_CC1_1)  /*!< CC1 Sink vRP 3.0A state          */
206 
207 #define LL_UCPD_SNK_CC2_VOPEN      0x00u                                                      /*!< CC2 Sink Open state              */
208 #define LL_UCPD_SNK_CC2_VRP        UCPD_SR_TYPEC_VSTATE_CC2_0                                 /*!< CC2 Sink vRP default state       */
209 #define LL_UCPD_SNK_CC2_VRP15A     UCPD_SR_TYPEC_VSTATE_CC2_1                                 /*!< CC2 Sink vRP 1.5A state          */
210 #define LL_UCPD_SNK_CC2_VRP30A     (UCPD_SR_TYPEC_VSTATE_CC2_0 | UCPD_SR_TYPEC_VSTATE_CC2_1)  /*!< CC2 Sink vRP 3.0A state          */
211 
212 #define LL_UCPD_SRC_CC1_VRA        0x0U                                                      /*!< CC1 Source vRA state              */
213 #define LL_UCPD_SRC_CC1_VRD        UCPD_SR_TYPEC_VSTATE_CC1_0                                /*!< CC1 Source vRD state              */
214 #define LL_UCPD_SRC_CC1_OPEN       UCPD_SR_TYPEC_VSTATE_CC1_1                                /*!< CC1 Source Open state             */
215 
216 #define LL_UCPD_SRC_CC2_VRA        0x0U                                                      /*!< CC2 Source vRA state              */
217 #define LL_UCPD_SRC_CC2_VRD        UCPD_SR_TYPEC_VSTATE_CC2_0                                /*!< CC2 Source vRD state              */
218 #define LL_UCPD_SRC_CC2_OPEN       UCPD_SR_TYPEC_VSTATE_CC2_1                                /*!< CC2 Source Open state             */
219 /**
220   * @}
221   */
222 
223 /** @defgroup UCPD_LL_EC_PSC prescaler for UCPDCLK
224   * @{
225   */
226 #define LL_UCPD_PSC_DIV1            0x0u                                                     /*!< Bypass pre-scaling / divide by 1  */
227 #define LL_UCPD_PSC_DIV2            UCPD_CFG1_PSC_UCPDCLK_0                                  /*!< Pre-scale clock by dividing by 2  */
228 #define LL_UCPD_PSC_DIV4            UCPD_CFG1_PSC_UCPDCLK_1                                  /*!< Pre-scale clock by dividing by 4  */
229 #define LL_UCPD_PSC_DIV8            (UCPD_CFG1_PSC_UCPDCLK_1 | UCPD_CFG1_PSC_UCPDCLK_0)      /*!< Pre-scale clock by dividing by 8  */
230 #define LL_UCPD_PSC_DIV16           UCPD_CFG1_PSC_UCPDCLK_2                                  /*!< Pre-scale clock by dividing by 16 */
231 /**
232   * @}
233   */
234 
235 /** @defgroup UCPD_LL_EC_CCENABLE CC pin enable
236   * @{
237   */
238 #define LL_UCPD_CCENABLE_NONE       0x0U                                                     /*!< Neither PHY is activated (e.g. disabled state of source)          */
239 #define LL_UCPD_CCENABLE_CC1        UCPD_CR_CCENABLE_0                                       /*!< Controls apply to only CC1                                        */
240 #define LL_UCPD_CCENABLE_CC2        UCPD_CR_CCENABLE_1                                       /*!< Controls apply to only CC1                                        */
241 #define LL_UCPD_CCENABLE_CC1CC2     (UCPD_CR_CCENABLE_0 | UCPD_CR_CCENABLE_1)                /*!< Controls apply to both CC1 and CC2 (normal usage for sink/source) */
242 /**
243   * @}
244   */
245 
246 /** @defgroup UCPD_LL_EC_CCPIN CC pin selection
247   * @{
248   */
249 #define LL_UCPD_CCPIN_CC1           0x0U                    /*!< Use CC1 IO for power delivery communication              */
250 #define LL_UCPD_CCPIN_CC2           UCPD_CR_PHYCCSEL        /*!< Use CC2 IO for power delivery communication              */
251 /**
252   * @}
253   */
254 
255 /** @defgroup UCPD_LL_EC_RXMODE Receiver mode
256   * @{
257   */
258 #define LL_UCPD_RXMODE_NORMAL           0x0U                /*!< Normal receive mode                                      */
259 #define LL_UCPD_RXMODE_BIST_TEST_DATA   UCPD_CR_RXMODE      /*!< BIST receive mode (BIST Test Data Mode)                  */
260 /**
261   * @}
262   */
263 
264 /** @defgroup UCPD_LL_EC_TXMODE Type of Tx packet
265   * @{
266   */
267 #define LL_UCPD_TXMODE_NORMAL           0x0U                /*!< Initiate the transfer of a Tx message                    */
268 #define LL_UCPD_TXMODE_CABLE_RESET      UCPD_CR_TXMODE_0    /*!< Trigger a the transfer of a Cable Reset sequence         */
269 #define LL_UCPD_TXMODE_BIST_CARRIER2    UCPD_CR_TXMODE_1    /*!< Trigger a BIST test sequence send (BIST Carrier Mode 2)  */
270 /**
271   * @}
272   */
273 
274 /** @defgroup UCPD_LL_EC_RXORDSET Rx ordered set code detected
275   * @{
276   */
277 #define LL_UCPD_RXORDSET_SOP             0x0U                                                                                 /*!< SOP code detected in receiver              */
278 #define LL_UCPD_RXORDSET_SOP1            UCPD_RX_ORDSET_RXORDSET_0                                                            /*!< SOP' code detected in receiver             */
279 #define LL_UCPD_RXORDSET_SOP2            UCPD_RX_ORDSET_RXORDSET_1                                                            /*!< SOP'' code detected in receiver            */
280 #define LL_UCPD_RXORDSET_SOP1_DEBUG      (UCPD_RX_ORDSET_RXORDSET_0 | UCPD_RX_ORDSET_RXORDSET_1)                              /*!< SOP' Debug code detected in receiver       */
281 #define LL_UCPD_RXORDSET_SOP2_DEBUG      UCPD_RX_ORDSET_RXORDSET_2                                                            /*!< SOP'' Debug code detected in receiver      */
282 #define LL_UCPD_RXORDSET_CABLE_RESET     (UCPD_RX_ORDSET_RXORDSET_2 | UCPD_RX_ORDSET_RXORDSET_0)                              /*!< Cable Reset code detected in receiver      */
283 #define LL_UCPD_RXORDSET_SOPEXT1         (UCPD_RX_ORDSET_RXORDSET_2 | UCPD_RX_ORDSET_RXORDSET_1)                              /*!< SOP extension#1 code detected in receiver  */
284 #define LL_UCPD_RXORDSET_SOPEXT2         (UCPD_RX_ORDSET_RXORDSET_2 | UCPD_RX_ORDSET_RXORDSET_1 | UCPD_RX_ORDSET_RXORDSET_0)  /*!< SOP extension#2 code detected in receiver  */
285 /**
286   * @}
287   */
288 
289 /**
290   * @}
291   */
292 
293 /* Exported macro ------------------------------------------------------------*/
294 /** @defgroup UCPD_LL_Exported_Macros UCPD Exported Macros
295   * @{
296   */
297 
298 /** @defgroup UCPD_LL_EM_WRITE_READ Common Write and read registers Macros
299   * @{
300   */
301 
302 /**
303   * @brief  Write a value in UCPD register
304   * @param  __INSTANCE__ UCPD Instance
305   * @param  __REG__ Register to be written
306   * @param  __VALUE__ Value to be written in the register
307   * @retval None
308   */
309 #define LL_UCPD_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
310 
311 /**
312   * @brief  Read a value in UCPD register
313   * @param  __INSTANCE__ UCPD Instance
314   * @param  __REG__ Register to be read
315   * @retval Register value
316   */
317 #define LL_UCPD_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
318 /**
319   * @}
320   */
321 
322 /**
323   * @}
324   */
325 
326 /* Exported functions --------------------------------------------------------*/
327 /** @defgroup UCPD_LL_Exported_Functions UCPD Exported Functions
328   * @{
329   */
330 
331 /** @defgroup UCPD_LL_EF_Configuration Configuration
332   * @{
333   */
334 
335 /** @defgroup UCPD_LL_EF_CFG1 CFG1 register
336   * @{
337   */
338 /**
339   * @brief  Enable UCPD peripheral
340   * @rmtoll CFG1          UCPDEN           LL_UCPD_Enable
341   * @param  UCPDx UCPD Instance
342   * @retval None
343   */
LL_UCPD_Enable(UCPD_TypeDef * UCPDx)344 __STATIC_INLINE void LL_UCPD_Enable(UCPD_TypeDef *UCPDx)
345 {
346   SET_BIT(UCPDx->CFG1, UCPD_CFG1_UCPDEN);
347 }
348 
349 /**
350   * @brief  Disable UCPD peripheral
351   * @note   When disabling the UCPD, follow the procedure described in the Reference Manual.
352   * @rmtoll CFG1          UCPDEN           LL_UCPD_Disable
353   * @param  UCPDx UCPD Instance
354   * @retval None
355   */
LL_UCPD_Disable(UCPD_TypeDef * UCPDx)356 __STATIC_INLINE void LL_UCPD_Disable(UCPD_TypeDef *UCPDx)
357 {
358   CLEAR_BIT(UCPDx->CFG1, UCPD_CFG1_UCPDEN);
359 }
360 
361 /**
362   * @brief  Check if UCPD peripheral is enabled
363   * @rmtoll CFG1          UCPDEN           LL_UCPD_IsEnabled
364   * @param  UCPDx UCPD Instance
365   * @retval State of bit (1 or 0).
366   */
LL_UCPD_IsEnabled(UCPD_TypeDef const * const UCPDx)367 __STATIC_INLINE uint32_t LL_UCPD_IsEnabled(UCPD_TypeDef const *const UCPDx)
368 {
369   return ((READ_BIT(UCPDx->CFG1, UCPD_CFG1_UCPDEN) == (UCPD_CFG1_UCPDEN)) ? 1UL : 0UL);
370 }
371 
372 /**
373   * @brief  Set the receiver ordered set detection enable
374   * @rmtoll CFG1          RXORDSETEN          LL_UCPD_SetRxOrderSet
375   * @param  UCPDx UCPD Instance
376   * @param  OrderSet This parameter can be combination of the following values:
377   *         @arg @ref LL_UCPD_ORDERSET_SOP
378   *         @arg @ref LL_UCPD_ORDERSET_SOP1
379   *         @arg @ref LL_UCPD_ORDERSET_SOP2
380   *         @arg @ref LL_UCPD_ORDERSET_HARDRST
381   *         @arg @ref LL_UCPD_ORDERSET_CABLERST
382   *         @arg @ref LL_UCPD_ORDERSET_SOP1_DEBUG
383   *         @arg @ref LL_UCPD_ORDERSET_SOP2_DEBUG
384   *         @arg @ref LL_UCPD_ORDERSET_SOP_EXT1
385   *         @arg @ref LL_UCPD_ORDERSET_SOP_EXT2
386   * @retval None
387   */
LL_UCPD_SetRxOrderSet(UCPD_TypeDef * UCPDx,uint32_t OrderSet)388 __STATIC_INLINE void LL_UCPD_SetRxOrderSet(UCPD_TypeDef *UCPDx, uint32_t OrderSet)
389 {
390   MODIFY_REG(UCPDx->CFG1, UCPD_CFG1_RXORDSETEN, OrderSet);
391 }
392 
393 /**
394   * @brief  Set the prescaler for ucpd clock
395   * @rmtoll CFG1          UCPDCLK          LL_UCPD_SetPSCClk
396   * @param  UCPDx UCPD Instance
397   * @param  Psc This parameter can be one of the following values:
398   *         @arg @ref LL_UCPD_PSC_DIV1
399   *         @arg @ref LL_UCPD_PSC_DIV2
400   *         @arg @ref LL_UCPD_PSC_DIV4
401   *         @arg @ref LL_UCPD_PSC_DIV8
402   *         @arg @ref LL_UCPD_PSC_DIV16
403   * @retval None
404   */
LL_UCPD_SetPSCClk(UCPD_TypeDef * UCPDx,uint32_t Psc)405 __STATIC_INLINE void LL_UCPD_SetPSCClk(UCPD_TypeDef *UCPDx, uint32_t Psc)
406 {
407   MODIFY_REG(UCPDx->CFG1, UCPD_CFG1_PSC_UCPDCLK, Psc);
408 }
409 
410 /**
411   * @brief  Set the number of cycles (minus 1) of the half bit clock
412   * @rmtoll CFG1          TRANSWIN          LL_UCPD_SetTransWin
413   * @param  UCPDx UCPD Instance
414   * @param  TransWin a value between Min_Data=0x1 and Max_Data=0x1F
415   * @retval None
416   */
LL_UCPD_SetTransWin(UCPD_TypeDef * UCPDx,uint32_t TransWin)417 __STATIC_INLINE void LL_UCPD_SetTransWin(UCPD_TypeDef *UCPDx, uint32_t TransWin)
418 {
419   MODIFY_REG(UCPDx->CFG1, UCPD_CFG1_TRANSWIN, TransWin << UCPD_CFG1_TRANSWIN_Pos);
420 }
421 
422 /**
423   * @brief  Set the clock divider value to generate an interframe gap
424   * @rmtoll CFG1          IFRGAP          LL_UCPD_SetIfrGap
425   * @param  UCPDx UCPD Instance
426   * @param  IfrGap a value between Min_Data=0x1 and Max_Data=0x1F
427   * @retval None
428   */
LL_UCPD_SetIfrGap(UCPD_TypeDef * UCPDx,uint32_t IfrGap)429 __STATIC_INLINE void LL_UCPD_SetIfrGap(UCPD_TypeDef *UCPDx, uint32_t IfrGap)
430 {
431   MODIFY_REG(UCPDx->CFG1, UCPD_CFG1_IFRGAP, IfrGap << UCPD_CFG1_IFRGAP_Pos);
432 }
433 
434 /**
435   * @brief  Set the clock divider value to generate an interframe gap
436   * @rmtoll CFG1          HBITCLKDIV          LL_UCPD_SetHbitClockDiv
437   * @param  UCPDx UCPD Instance
438   * @param  HbitClock a value between Min_Data=0x0 and Max_Data=0x3F
439   * @retval None
440   */
LL_UCPD_SetHbitClockDiv(UCPD_TypeDef * UCPDx,uint32_t HbitClock)441 __STATIC_INLINE void LL_UCPD_SetHbitClockDiv(UCPD_TypeDef *UCPDx, uint32_t HbitClock)
442 {
443   MODIFY_REG(UCPDx->CFG1, UCPD_CFG1_HBITCLKDIV, HbitClock << UCPD_CFG1_HBITCLKDIV_Pos);
444 }
445 
446 /**
447   * @}
448   */
449 
450 /** @defgroup UCPD_LL_EF_CFG2 CFG2 register
451   * @{
452   */
453 
454 /**
455   * @brief  Enable Rx Analog Filter
456   * @rmtoll CFG2          RXAFILTEN          LL_UCPD_RxAnalogFilterEnable
457   * @param  UCPDx UCPD Instance
458   * @retval None
459   */
LL_UCPD_RxAnalogFilterEnable(UCPD_TypeDef * UCPDx)460 __STATIC_INLINE void LL_UCPD_RxAnalogFilterEnable(UCPD_TypeDef *UCPDx)
461 {
462   SET_BIT(UCPDx->CFG2, UCPD_CFG2_RXAFILTEN);
463 }
464 
465 /**
466   * @brief  Disable Rx Analog Filter
467   * @rmtoll CFG2          RXAFILTEN          LL_UCPD_RxAnalogFilterDisable
468   * @param  UCPDx UCPD Instance
469   * @retval None
470   */
LL_UCPD_RxAnalogFilterDisable(UCPD_TypeDef * UCPDx)471 __STATIC_INLINE void LL_UCPD_RxAnalogFilterDisable(UCPD_TypeDef *UCPDx)
472 {
473   CLEAR_BIT(UCPDx->CFG2, UCPD_CFG2_RXAFILTEN);
474 }
475 
476 /**
477   * @brief  Enable the wakeup mode
478   * @rmtoll CFG2          WUPEN          LL_UCPD_WakeUpEnable
479   * @param  UCPDx UCPD Instance
480   * @retval None
481   */
LL_UCPD_WakeUpEnable(UCPD_TypeDef * UCPDx)482 __STATIC_INLINE void LL_UCPD_WakeUpEnable(UCPD_TypeDef *UCPDx)
483 {
484   SET_BIT(UCPDx->CFG2, UCPD_CFG2_WUPEN);
485 }
486 
487 /**
488   * @brief  Disable the wakeup mode
489   * @rmtoll CFG2          WUPEN          LL_UCPD_WakeUpDisable
490   * @param  UCPDx UCPD Instance
491   * @retval None
492   */
LL_UCPD_WakeUpDisable(UCPD_TypeDef * UCPDx)493 __STATIC_INLINE void LL_UCPD_WakeUpDisable(UCPD_TypeDef *UCPDx)
494 {
495   CLEAR_BIT(UCPDx->CFG2, UCPD_CFG2_WUPEN);
496 }
497 
498 /**
499   * @brief  Force clock enable
500   * @rmtoll CFG2          FORCECLK          LL_UCPD_ForceClockEnable
501   * @param  UCPDx UCPD Instance
502   * @retval None
503   */
LL_UCPD_ForceClockEnable(UCPD_TypeDef * UCPDx)504 __STATIC_INLINE void LL_UCPD_ForceClockEnable(UCPD_TypeDef *UCPDx)
505 {
506   SET_BIT(UCPDx->CFG2, UCPD_CFG2_FORCECLK);
507 }
508 
509 /**
510   * @brief  Force clock disable
511   * @rmtoll CFG2          FORCECLK          LL_UCPD_ForceClockDisable
512   * @param  UCPDx UCPD Instance
513   * @retval None
514   */
LL_UCPD_ForceClockDisable(UCPD_TypeDef * UCPDx)515 __STATIC_INLINE void LL_UCPD_ForceClockDisable(UCPD_TypeDef *UCPDx)
516 {
517   CLEAR_BIT(UCPDx->CFG2, UCPD_CFG2_FORCECLK);
518 }
519 
520 /**
521   * @brief  RxFilter enable
522   * @rmtoll CFG2          RXFILTDIS          LL_UCPD_RxFilterEnable
523   * @param  UCPDx UCPD Instance
524   * @retval None
525   */
LL_UCPD_RxFilterEnable(UCPD_TypeDef * UCPDx)526 __STATIC_INLINE void LL_UCPD_RxFilterEnable(UCPD_TypeDef *UCPDx)
527 {
528   CLEAR_BIT(UCPDx->CFG2, UCPD_CFG2_RXFILTDIS);
529 }
530 
531 /**
532   * @brief  RxFilter disable
533   * @rmtoll CFG2          RXFILTDIS          LL_UCPD_RxFilterDisable
534   * @param  UCPDx UCPD Instance
535   * @retval None
536   */
LL_UCPD_RxFilterDisable(UCPD_TypeDef * UCPDx)537 __STATIC_INLINE void LL_UCPD_RxFilterDisable(UCPD_TypeDef *UCPDx)
538 {
539   SET_BIT(UCPDx->CFG2, UCPD_CFG2_RXFILTDIS);
540 }
541 
542 /**
543   * @}
544   */
545 
546 /**
547   * @}
548   */
549 
550 /** @defgroup UCPD_LL_EF_CR CR register
551   * @{
552   */
553 /**
554   * @brief  Type C detector for CC2 enable
555   * @rmtoll CR          CC2TCDIS          LL_UCPD_TypeCDetectionCC2Enable
556   * @param  UCPDx UCPD Instance
557   * @retval None
558   */
LL_UCPD_TypeCDetectionCC2Enable(UCPD_TypeDef * UCPDx)559 __STATIC_INLINE void LL_UCPD_TypeCDetectionCC2Enable(UCPD_TypeDef *UCPDx)
560 {
561   CLEAR_BIT(UCPDx->CR, UCPD_CR_CC2TCDIS);
562 }
563 
564 /**
565   * @brief  Type C detector for CC2 disable
566   * @rmtoll CR          CC2TCDIS          LL_UCPD_TypeCDetectionCC2Disable
567   * @param  UCPDx UCPD Instance
568   * @retval None
569   */
LL_UCPD_TypeCDetectionCC2Disable(UCPD_TypeDef * UCPDx)570 __STATIC_INLINE void LL_UCPD_TypeCDetectionCC2Disable(UCPD_TypeDef *UCPDx)
571 {
572   SET_BIT(UCPDx->CR, UCPD_CR_CC2TCDIS);
573 }
574 
575 /**
576   * @brief  Type C detector for CC1 enable
577   * @rmtoll CR          CC1TCDIS          LL_UCPD_TypeCDetectionCC1Enable
578   * @param  UCPDx UCPD Instance
579   * @retval None
580   */
LL_UCPD_TypeCDetectionCC1Enable(UCPD_TypeDef * UCPDx)581 __STATIC_INLINE void LL_UCPD_TypeCDetectionCC1Enable(UCPD_TypeDef *UCPDx)
582 {
583   CLEAR_BIT(UCPDx->CR, UCPD_CR_CC1TCDIS);
584 }
585 
586 /**
587   * @brief  Type C detector for CC1 disable
588   * @rmtoll CR          CC1TCDIS          LL_UCPD_TypeCDetectionCC1Disable
589   * @param  UCPDx UCPD Instance
590   * @retval None
591   */
LL_UCPD_TypeCDetectionCC1Disable(UCPD_TypeDef * UCPDx)592 __STATIC_INLINE void LL_UCPD_TypeCDetectionCC1Disable(UCPD_TypeDef *UCPDx)
593 {
594   SET_BIT(UCPDx->CR, UCPD_CR_CC1TCDIS);
595 }
596 
597 /**
598   * @brief  Source Vconn discharge enable
599   * @rmtoll CR          RDCH          LL_UCPD_VconnDischargeEnable
600   * @param  UCPDx UCPD Instance
601   * @retval None
602   */
LL_UCPD_VconnDischargeEnable(UCPD_TypeDef * UCPDx)603 __STATIC_INLINE void LL_UCPD_VconnDischargeEnable(UCPD_TypeDef *UCPDx)
604 {
605   SET_BIT(UCPDx->CR, UCPD_CR_RDCH);
606 }
607 
608 /**
609   * @brief  Source Vconn discharge disable
610   * @rmtoll CR          RDCH          LL_UCPD_VconnDischargeDisable
611   * @param  UCPDx UCPD Instance
612   * @retval None
613   */
LL_UCPD_VconnDischargeDisable(UCPD_TypeDef * UCPDx)614 __STATIC_INLINE void LL_UCPD_VconnDischargeDisable(UCPD_TypeDef *UCPDx)
615 {
616   CLEAR_BIT(UCPDx->CR, UCPD_CR_RDCH);
617 }
618 
619 /**
620   * @brief  Signal Fast Role Swap request
621   * @rmtoll CR          FRSTX          LL_UCPD_VconnDischargeDisable
622   * @param  UCPDx UCPD Instance
623   * @retval None
624   */
LL_UCPD_SignalFRSTX(UCPD_TypeDef * UCPDx)625 __STATIC_INLINE void LL_UCPD_SignalFRSTX(UCPD_TypeDef *UCPDx)
626 {
627   SET_BIT(UCPDx->CR, UCPD_CR_FRSTX);
628 }
629 
630 /**
631   * @brief  Set cc enable
632   * @rmtoll CR          CC1VCONNEN          LL_UCPD_SetccEnable
633   * @param  UCPDx UCPD Instance
634   * @param  CCEnable This parameter can be one of the following values:
635   *         @arg @ref LL_UCPD_CCENABLE_NONE
636   *         @arg @ref LL_UCPD_CCENABLE_CC1
637   *         @arg @ref LL_UCPD_CCENABLE_CC2
638   *         @arg @ref LL_UCPD_CCENABLE_CC1CC2
639   * @retval None
640   */
LL_UCPD_SetccEnable(UCPD_TypeDef * UCPDx,uint32_t CCEnable)641 __STATIC_INLINE void LL_UCPD_SetccEnable(UCPD_TypeDef *UCPDx, uint32_t CCEnable)
642 {
643   MODIFY_REG(UCPDx->CR, UCPD_CR_CCENABLE, CCEnable);
644 }
645 
646 /**
647   * @brief  Set UCPD SNK role
648   * @rmtoll CR        ANAMODE          LL_UCPD_SetSNKRole
649   * @param  UCPDx UCPD Instance
650   * @retval None
651   */
LL_UCPD_SetSNKRole(UCPD_TypeDef * UCPDx)652 __STATIC_INLINE void LL_UCPD_SetSNKRole(UCPD_TypeDef *UCPDx)
653 {
654   SET_BIT(UCPDx->CR, UCPD_CR_ANAMODE);
655 }
656 
657 /**
658   * @brief  Set UCPD SRC role
659   * @rmtoll CR        ANAMODE          LL_UCPD_SetSRCRole
660   * @param  UCPDx UCPD Instance
661   * @retval None
662   */
LL_UCPD_SetSRCRole(UCPD_TypeDef * UCPDx)663 __STATIC_INLINE void LL_UCPD_SetSRCRole(UCPD_TypeDef *UCPDx)
664 {
665   CLEAR_BIT(UCPDx->CR, UCPD_CR_ANAMODE);
666 }
667 
668 /**
669   * @brief  Get UCPD Role
670   * @rmtoll CR          ANAMODE          LL_UCPD_GetRole
671   * @param  UCPDx UCPD Instance
672   * @retval Returned value can be one of the following values:
673   *         @arg @ref LL_UCPD_ROLE_SNK
674   *         @arg @ref LL_UCPD_ROLE_SRC
675   */
LL_UCPD_GetRole(UCPD_TypeDef const * const UCPDx)676 __STATIC_INLINE uint32_t LL_UCPD_GetRole(UCPD_TypeDef const *const UCPDx)
677 {
678   return (uint32_t)(READ_BIT(UCPDx->CR, UCPD_CR_ANAMODE));
679 }
680 
681 /**
682   * @brief  Set Rp resistor
683   * @rmtoll CR        ANASUBMODE          LL_UCPD_SetRpResistor
684   * @param  UCPDx UCPD Instance
685   * @param  Resistor This parameter can be one of the following values:
686   *         @arg @ref LL_UCPD_RESISTOR_DEFAULT
687   *         @arg @ref LL_UCPD_RESISTOR_1_5A
688   *         @arg @ref LL_UCPD_RESISTOR_3_0A
689   *         @arg @ref LL_UCPD_RESISTOR_NONE
690   * @retval None
691   */
LL_UCPD_SetRpResistor(UCPD_TypeDef * UCPDx,uint32_t Resistor)692 __STATIC_INLINE void LL_UCPD_SetRpResistor(UCPD_TypeDef *UCPDx, uint32_t Resistor)
693 {
694   MODIFY_REG(UCPDx->CR, UCPD_CR_ANASUBMODE,  Resistor);
695 }
696 
697 /**
698   * @brief  Set CC pin
699   * @rmtoll CR        PHYCCSEL          LL_UCPD_SetCCPin
700   * @param  UCPDx UCPD Instance
701   * @param  CCPin This parameter can be one of the following values:
702   *         @arg @ref LL_UCPD_CCPIN_CC1
703   *         @arg @ref LL_UCPD_CCPIN_CC2
704   * @retval None
705   */
LL_UCPD_SetCCPin(UCPD_TypeDef * UCPDx,uint32_t CCPin)706 __STATIC_INLINE void LL_UCPD_SetCCPin(UCPD_TypeDef *UCPDx, uint32_t CCPin)
707 {
708   MODIFY_REG(UCPDx->CR, UCPD_CR_PHYCCSEL,  CCPin);
709 }
710 
711 /**
712   * @brief  Rx enable
713   * @rmtoll CR        PHYRXEN          LL_UCPD_RxEnable
714   * @param  UCPDx UCPD Instance
715   * @retval None
716   */
LL_UCPD_RxEnable(UCPD_TypeDef * UCPDx)717 __STATIC_INLINE void LL_UCPD_RxEnable(UCPD_TypeDef *UCPDx)
718 {
719   SET_BIT(UCPDx->CR, UCPD_CR_PHYRXEN);
720 }
721 
722 /**
723   * @brief  Rx disable
724   * @rmtoll CR        PHYRXEN          LL_UCPD_RxDisable
725   * @param  UCPDx UCPD Instance
726   * @retval None
727   */
LL_UCPD_RxDisable(UCPD_TypeDef * UCPDx)728 __STATIC_INLINE void LL_UCPD_RxDisable(UCPD_TypeDef *UCPDx)
729 {
730   CLEAR_BIT(UCPDx->CR, UCPD_CR_PHYRXEN);
731 }
732 
733 /**
734   * @brief  Set Rx mode
735   * @rmtoll CR        RXMODE          LL_UCPD_SetRxMode
736   * @param  UCPDx UCPD Instance
737   * @param  RxMode This parameter can be one of the following values:
738   *         @arg @ref LL_UCPD_RXMODE_NORMAL
739   *         @arg @ref LL_UCPD_RXMODE_BIST_TEST_DATA
740   * @retval None
741   */
LL_UCPD_SetRxMode(UCPD_TypeDef * UCPDx,uint32_t RxMode)742 __STATIC_INLINE void LL_UCPD_SetRxMode(UCPD_TypeDef *UCPDx, uint32_t RxMode)
743 {
744   MODIFY_REG(UCPDx->CR, UCPD_CR_RXMODE, RxMode);
745 }
746 
747 /**
748   * @brief  Send Hard Reset
749   * @rmtoll CR        TXHRST          LL_UCPD_SendHardReset
750   * @param  UCPDx UCPD Instance
751   * @retval None
752   */
LL_UCPD_SendHardReset(UCPD_TypeDef * UCPDx)753 __STATIC_INLINE void LL_UCPD_SendHardReset(UCPD_TypeDef *UCPDx)
754 {
755   SET_BIT(UCPDx->CR, UCPD_CR_TXHRST);
756 }
757 
758 /**
759   * @brief  Send message
760   * @rmtoll CR        TXSEND          LL_UCPD_SendMessage
761   * @param  UCPDx UCPD Instance
762   * @retval None
763   */
LL_UCPD_SendMessage(UCPD_TypeDef * UCPDx)764 __STATIC_INLINE void LL_UCPD_SendMessage(UCPD_TypeDef *UCPDx)
765 {
766   SET_BIT(UCPDx->CR, UCPD_CR_TXSEND);
767 }
768 
769 /**
770   * @brief  Set Tx mode
771   * @rmtoll CR        TXMODE          LL_UCPD_SetTxMode
772   * @param  UCPDx UCPD Instance
773   * @param  TxMode This parameter can be one of the following values:
774   *         @arg @ref LL_UCPD_TXMODE_NORMAL
775   *         @arg @ref LL_UCPD_TXMODE_CABLE_RESET
776   *         @arg @ref LL_UCPD_TXMODE_BIST_CARRIER2
777   * @retval None
778   */
LL_UCPD_SetTxMode(UCPD_TypeDef * UCPDx,uint32_t TxMode)779 __STATIC_INLINE void LL_UCPD_SetTxMode(UCPD_TypeDef *UCPDx, uint32_t TxMode)
780 {
781   MODIFY_REG(UCPDx->CR, UCPD_CR_TXMODE, TxMode);
782 }
783 
784 /**
785   * @}
786   */
787 
788 /** @defgroup UCPD_LL_EF_IT_Management Interrupt Management
789   * @{
790   */
791 
792 /**
793   * @brief  Enable type c event on CC2
794   * @rmtoll IMR          TYPECEVT2IE        LL_UCPD_EnableIT_TypeCEventCC2
795   * @param  UCPDx UCPD Instance
796   * @retval None
797   */
LL_UCPD_EnableIT_TypeCEventCC2(UCPD_TypeDef * UCPDx)798 __STATIC_INLINE void LL_UCPD_EnableIT_TypeCEventCC2(UCPD_TypeDef *UCPDx)
799 {
800   SET_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT2IE);
801 }
802 
803 /**
804   * @brief  Enable type c event on CC1
805   * @rmtoll IMR          TYPECEVT1IE        LL_UCPD_EnableIT_TypeCEventCC1
806   * @param  UCPDx UCPD Instance
807   * @retval None
808   */
LL_UCPD_EnableIT_TypeCEventCC1(UCPD_TypeDef * UCPDx)809 __STATIC_INLINE void LL_UCPD_EnableIT_TypeCEventCC1(UCPD_TypeDef *UCPDx)
810 {
811   SET_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT1IE);
812 }
813 
814 /**
815   * @brief  Enable Rx message end interrupt
816   * @rmtoll IMR          RXMSGENDIE         LL_UCPD_EnableIT_RxMsgEnd
817   * @param  UCPDx UCPD Instance
818   * @retval None
819   */
LL_UCPD_EnableIT_RxMsgEnd(UCPD_TypeDef * UCPDx)820 __STATIC_INLINE void LL_UCPD_EnableIT_RxMsgEnd(UCPD_TypeDef *UCPDx)
821 {
822   SET_BIT(UCPDx->IMR, UCPD_IMR_RXMSGENDIE);
823 }
824 
825 /**
826   * @brief  Enable Rx overrun interrupt
827   * @rmtoll IMR          RXOVRIE         LL_UCPD_EnableIT_RxOvr
828   * @param  UCPDx UCPD Instance
829   * @retval None
830   */
LL_UCPD_EnableIT_RxOvr(UCPD_TypeDef * UCPDx)831 __STATIC_INLINE void LL_UCPD_EnableIT_RxOvr(UCPD_TypeDef *UCPDx)
832 {
833   SET_BIT(UCPDx->IMR, UCPD_IMR_RXOVRIE);
834 }
835 
836 /**
837   * @brief  Enable Rx hard reset interrupt
838   * @rmtoll IMR          RXHRSTDETIE         LL_UCPD_EnableIT_RxHRST
839   * @param  UCPDx UCPD Instance
840   * @retval None
841   */
LL_UCPD_EnableIT_RxHRST(UCPD_TypeDef * UCPDx)842 __STATIC_INLINE void LL_UCPD_EnableIT_RxHRST(UCPD_TypeDef *UCPDx)
843 {
844   SET_BIT(UCPDx->IMR, UCPD_IMR_RXHRSTDETIE);
845 }
846 
847 /**
848   * @brief  Enable Rx orderset interrupt
849   * @rmtoll IMR          RXORDDETIE         LL_UCPD_EnableIT_RxOrderSet
850   * @param  UCPDx UCPD Instance
851   * @retval None
852   */
LL_UCPD_EnableIT_RxOrderSet(UCPD_TypeDef * UCPDx)853 __STATIC_INLINE void LL_UCPD_EnableIT_RxOrderSet(UCPD_TypeDef *UCPDx)
854 {
855   SET_BIT(UCPDx->IMR, UCPD_IMR_RXORDDETIE);
856 }
857 
858 /**
859   * @brief  Enable Rx non empty interrupt
860   * @rmtoll IMR          RXNEIE         LL_UCPD_EnableIT_RxNE
861   * @param  UCPDx UCPD Instance
862   * @retval None
863   */
LL_UCPD_EnableIT_RxNE(UCPD_TypeDef * UCPDx)864 __STATIC_INLINE void LL_UCPD_EnableIT_RxNE(UCPD_TypeDef *UCPDx)
865 {
866   SET_BIT(UCPDx->IMR, UCPD_IMR_RXNEIE);
867 }
868 
869 /**
870   * @brief  Enable TX underrun interrupt
871   * @rmtoll IMR          TXUNDIE         LL_UCPD_EnableIT_TxUND
872   * @param  UCPDx UCPD Instance
873   * @retval None
874   */
LL_UCPD_EnableIT_TxUND(UCPD_TypeDef * UCPDx)875 __STATIC_INLINE void LL_UCPD_EnableIT_TxUND(UCPD_TypeDef *UCPDx)
876 {
877   SET_BIT(UCPDx->IMR, UCPD_IMR_TXUNDIE);
878 }
879 
880 /**
881   * @brief  Enable hard reset sent interrupt
882   * @rmtoll IMR          HRSTSENTIE         LL_UCPD_EnableIT_TxHRSTSENT
883   * @param  UCPDx UCPD Instance
884   * @retval None
885   */
LL_UCPD_EnableIT_TxHRSTSENT(UCPD_TypeDef * UCPDx)886 __STATIC_INLINE void LL_UCPD_EnableIT_TxHRSTSENT(UCPD_TypeDef *UCPDx)
887 {
888   SET_BIT(UCPDx->IMR, UCPD_IMR_HRSTSENTIE);
889 }
890 
891 /**
892   * @brief  Enable hard reset discard interrupt
893   * @rmtoll IMR          HRSTDISCIE         LL_UCPD_EnableIT_TxHRSTDISC
894   * @param  UCPDx UCPD Instance
895   * @retval None
896   */
LL_UCPD_EnableIT_TxHRSTDISC(UCPD_TypeDef * UCPDx)897 __STATIC_INLINE void LL_UCPD_EnableIT_TxHRSTDISC(UCPD_TypeDef *UCPDx)
898 {
899   SET_BIT(UCPDx->IMR, UCPD_IMR_HRSTDISCIE);
900 }
901 
902 /**
903   * @brief  Enable Tx message abort interrupt
904   * @rmtoll IMR          TXMSGABTIE         LL_UCPD_EnableIT_TxMSGABT
905   * @param  UCPDx UCPD Instance
906   * @retval None
907   */
LL_UCPD_EnableIT_TxMSGABT(UCPD_TypeDef * UCPDx)908 __STATIC_INLINE void LL_UCPD_EnableIT_TxMSGABT(UCPD_TypeDef *UCPDx)
909 {
910   SET_BIT(UCPDx->IMR, UCPD_IMR_TXMSGABTIE);
911 }
912 
913 /**
914   * @brief  Enable Tx message sent interrupt
915   * @rmtoll IMR          TXMSGSENTIE         LL_UCPD_EnableIT_TxMSGSENT
916   * @param  UCPDx UCPD Instance
917   * @retval None
918   */
LL_UCPD_EnableIT_TxMSGSENT(UCPD_TypeDef * UCPDx)919 __STATIC_INLINE void LL_UCPD_EnableIT_TxMSGSENT(UCPD_TypeDef *UCPDx)
920 {
921   SET_BIT(UCPDx->IMR, UCPD_IMR_TXMSGSENTIE);
922 }
923 
924 /**
925   * @brief  Enable Tx message discarded interrupt
926   * @rmtoll IMR          TXMSGDISCIE         LL_UCPD_EnableIT_TxMSGDISC
927   * @param  UCPDx UCPD Instance
928   * @retval None
929   */
LL_UCPD_EnableIT_TxMSGDISC(UCPD_TypeDef * UCPDx)930 __STATIC_INLINE void LL_UCPD_EnableIT_TxMSGDISC(UCPD_TypeDef *UCPDx)
931 {
932   SET_BIT(UCPDx->IMR, UCPD_IMR_TXMSGDISCIE);
933 }
934 
935 /**
936   * @brief  Enable Tx data receive interrupt
937   * @rmtoll IMR          TXISIE         LL_UCPD_EnableIT_TxIS
938   * @param  UCPDx UCPD Instance
939   * @retval None
940   */
LL_UCPD_EnableIT_TxIS(UCPD_TypeDef * UCPDx)941 __STATIC_INLINE void LL_UCPD_EnableIT_TxIS(UCPD_TypeDef *UCPDx)
942 {
943   SET_BIT(UCPDx->IMR, UCPD_IMR_TXISIE);
944 }
945 
946 /**
947   * @brief  Disable type c event on CC2
948   * @rmtoll IMR          TYPECEVT2IE        LL_UCPD_DisableIT_TypeCEventCC2
949   * @param  UCPDx UCPD Instance
950   * @retval None
951   */
LL_UCPD_DisableIT_TypeCEventCC2(UCPD_TypeDef * UCPDx)952 __STATIC_INLINE void LL_UCPD_DisableIT_TypeCEventCC2(UCPD_TypeDef *UCPDx)
953 {
954   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT2IE);
955 }
956 
957 /**
958   * @brief  Disable type c event on CC1
959   * @rmtoll IMR          TYPECEVT1IE        LL_UCPD_DisableIT_TypeCEventCC1
960   * @param  UCPDx UCPD Instance
961   * @retval None
962   */
LL_UCPD_DisableIT_TypeCEventCC1(UCPD_TypeDef * UCPDx)963 __STATIC_INLINE void LL_UCPD_DisableIT_TypeCEventCC1(UCPD_TypeDef *UCPDx)
964 {
965   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT1IE);
966 }
967 
968 /**
969   * @brief  Disable Rx message end interrupt
970   * @rmtoll IMR          RXMSGENDIE         LL_UCPD_DisableIT_RxMsgEnd
971   * @param  UCPDx UCPD Instance
972   * @retval None
973   */
LL_UCPD_DisableIT_RxMsgEnd(UCPD_TypeDef * UCPDx)974 __STATIC_INLINE void LL_UCPD_DisableIT_RxMsgEnd(UCPD_TypeDef *UCPDx)
975 {
976   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_RXMSGENDIE);
977 }
978 
979 /**
980   * @brief  Disable Rx overrun interrupt
981   * @rmtoll IMR          RXOVRIE         LL_UCPD_DisableIT_RxOvr
982   * @param  UCPDx UCPD Instance
983   * @retval None
984   */
LL_UCPD_DisableIT_RxOvr(UCPD_TypeDef * UCPDx)985 __STATIC_INLINE void LL_UCPD_DisableIT_RxOvr(UCPD_TypeDef *UCPDx)
986 {
987   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_RXOVRIE);
988 }
989 
990 /**
991   * @brief  Disable Rx hard reset interrupt
992   * @rmtoll IMR          RXHRSTDETIE         LL_UCPD_DisableIT_RxHRST
993   * @param  UCPDx UCPD Instance
994   * @retval None
995   */
LL_UCPD_DisableIT_RxHRST(UCPD_TypeDef * UCPDx)996 __STATIC_INLINE void LL_UCPD_DisableIT_RxHRST(UCPD_TypeDef *UCPDx)
997 {
998   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_RXHRSTDETIE);
999 }
1000 
1001 /**
1002   * @brief  Disable Rx orderset interrupt
1003   * @rmtoll IMR          RXORDDETIE         LL_UCPD_DisableIT_RxOrderSet
1004   * @param  UCPDx UCPD Instance
1005   * @retval None
1006   */
LL_UCPD_DisableIT_RxOrderSet(UCPD_TypeDef * UCPDx)1007 __STATIC_INLINE void LL_UCPD_DisableIT_RxOrderSet(UCPD_TypeDef *UCPDx)
1008 {
1009   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_RXORDDETIE);
1010 }
1011 
1012 /**
1013   * @brief  Disable Rx non empty interrupt
1014   * @rmtoll IMR          RXNEIE         LL_UCPD_DisableIT_RxNE
1015   * @param  UCPDx UCPD Instance
1016   * @retval None
1017   */
LL_UCPD_DisableIT_RxNE(UCPD_TypeDef * UCPDx)1018 __STATIC_INLINE void LL_UCPD_DisableIT_RxNE(UCPD_TypeDef *UCPDx)
1019 {
1020   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_RXNEIE);
1021 }
1022 
1023 /**
1024   * @brief  Disable TX underrun interrupt
1025   * @rmtoll IMR          TXUNDIE         LL_UCPD_DisableIT_TxUND
1026   * @param  UCPDx UCPD Instance
1027   * @retval None
1028   */
LL_UCPD_DisableIT_TxUND(UCPD_TypeDef * UCPDx)1029 __STATIC_INLINE void LL_UCPD_DisableIT_TxUND(UCPD_TypeDef *UCPDx)
1030 {
1031   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TXUNDIE);
1032 }
1033 
1034 /**
1035   * @brief  Disable hard reset sent interrupt
1036   * @rmtoll IMR          HRSTSENTIE         LL_UCPD_DisableIT_TxHRSTSENT
1037   * @param  UCPDx UCPD Instance
1038   * @retval None
1039   */
LL_UCPD_DisableIT_TxHRSTSENT(UCPD_TypeDef * UCPDx)1040 __STATIC_INLINE void LL_UCPD_DisableIT_TxHRSTSENT(UCPD_TypeDef *UCPDx)
1041 {
1042   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_HRSTSENTIE);
1043 }
1044 
1045 /**
1046   * @brief  Disable hard reset discard interrupt
1047   * @rmtoll IMR          HRSTDISCIE         LL_UCPD_DisableIT_TxHRSTDISC
1048   * @param  UCPDx UCPD Instance
1049   * @retval None
1050   */
LL_UCPD_DisableIT_TxHRSTDISC(UCPD_TypeDef * UCPDx)1051 __STATIC_INLINE void LL_UCPD_DisableIT_TxHRSTDISC(UCPD_TypeDef *UCPDx)
1052 {
1053   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_HRSTDISCIE);
1054 }
1055 
1056 /**
1057   * @brief  Disable Tx message abort interrupt
1058   * @rmtoll IMR          TXMSGABTIE         LL_UCPD_DisableIT_TxMSGABT
1059   * @param  UCPDx UCPD Instance
1060   * @retval None
1061   */
LL_UCPD_DisableIT_TxMSGABT(UCPD_TypeDef * UCPDx)1062 __STATIC_INLINE void LL_UCPD_DisableIT_TxMSGABT(UCPD_TypeDef *UCPDx)
1063 {
1064   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TXMSGABTIE);
1065 }
1066 
1067 /**
1068   * @brief  Disable Tx message sent interrupt
1069   * @rmtoll IMR          TXMSGSENTIE         LL_UCPD_DisableIT_TxMSGSENT
1070   * @param  UCPDx UCPD Instance
1071   * @retval None
1072   */
LL_UCPD_DisableIT_TxMSGSENT(UCPD_TypeDef * UCPDx)1073 __STATIC_INLINE void LL_UCPD_DisableIT_TxMSGSENT(UCPD_TypeDef *UCPDx)
1074 {
1075   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TXMSGSENTIE);
1076 }
1077 
1078 /**
1079   * @brief  Disable Tx message discarded interrupt
1080   * @rmtoll IMR          TXMSGDISCIE         LL_UCPD_DisableIT_TxMSGDISC
1081   * @param  UCPDx UCPD Instance
1082   * @retval None
1083   */
LL_UCPD_DisableIT_TxMSGDISC(UCPD_TypeDef * UCPDx)1084 __STATIC_INLINE void LL_UCPD_DisableIT_TxMSGDISC(UCPD_TypeDef *UCPDx)
1085 {
1086   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TXMSGDISCIE);
1087 }
1088 
1089 /**
1090   * @brief  Disable Tx data receive interrupt
1091   * @rmtoll IMR          TXISIE         LL_UCPD_DisableIT_TxIS
1092   * @param  UCPDx UCPD Instance
1093   * @retval None
1094   */
LL_UCPD_DisableIT_TxIS(UCPD_TypeDef * UCPDx)1095 __STATIC_INLINE void LL_UCPD_DisableIT_TxIS(UCPD_TypeDef *UCPDx)
1096 {
1097   CLEAR_BIT(UCPDx->IMR, UCPD_IMR_TXISIE);
1098 }
1099 
1100 /**
1101   * @brief  Check if type c event on CC2 enabled
1102   * @rmtoll IMR          TYPECEVT2IE        LL_UCPD_DisableIT_TypeCEventCC2
1103   * @param  UCPDx UCPD Instance
1104   * @retval State of bit (1 or 0).
1105   */
LL_UCPD_IsEnableIT_TypeCEventCC2(UCPD_TypeDef const * const UCPDx)1106 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TypeCEventCC2(UCPD_TypeDef const *const UCPDx)
1107 {
1108   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT2IE) == UCPD_IMR_TYPECEVT2IE) ? 1UL : 0UL);
1109 }
1110 
1111 /**
1112   * @brief  Check if type c event on CC1 enabled
1113   * @rmtoll IMR2          TYPECEVT1IE        LL_UCPD_IsEnableIT_TypeCEventCC1
1114   * @param  UCPDx UCPD Instance
1115   * @retval State of bit (1 or 0).
1116   */
LL_UCPD_IsEnableIT_TypeCEventCC1(UCPD_TypeDef const * const UCPDx)1117 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TypeCEventCC1(UCPD_TypeDef const *const UCPDx)
1118 {
1119   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TYPECEVT1IE) == UCPD_IMR_TYPECEVT1IE) ? 1UL : 0UL);
1120 }
1121 
1122 /**
1123   * @brief  Check if Rx message end interrupt enabled
1124   * @rmtoll IMR          RXMSGENDIE         LL_UCPD_IsEnableIT_RxMsgEnd
1125   * @param  UCPDx UCPD Instance
1126   * @retval State of bit (1 or 0).
1127   */
LL_UCPD_IsEnableIT_RxMsgEnd(UCPD_TypeDef const * const UCPDx)1128 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_RxMsgEnd(UCPD_TypeDef const *const UCPDx)
1129 {
1130   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_RXMSGENDIE) == UCPD_IMR_RXMSGENDIE) ? 1UL : 0UL);
1131 }
1132 
1133 /**
1134   * @brief  Check if Rx overrun interrupt enabled
1135   * @rmtoll IMR          RXOVRIE         LL_UCPD_IsEnableIT_RxOvr
1136   * @param  UCPDx UCPD Instance
1137   * @retval State of bit (1 or 0).
1138   */
LL_UCPD_IsEnableIT_RxOvr(UCPD_TypeDef const * const UCPDx)1139 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_RxOvr(UCPD_TypeDef const *const UCPDx)
1140 {
1141   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_RXOVRIE) == UCPD_IMR_RXOVRIE) ? 1UL : 0UL);
1142 }
1143 
1144 /**
1145   * @brief  Check if Rx hard reset interrupt enabled
1146   * @rmtoll IMR          RXHRSTDETIE         LL_UCPD_IsEnableIT_RxHRST
1147   * @param  UCPDx UCPD Instance
1148   * @retval State of bit (1 or 0).
1149   */
LL_UCPD_IsEnableIT_RxHRST(UCPD_TypeDef const * const UCPDx)1150 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_RxHRST(UCPD_TypeDef const *const UCPDx)
1151 {
1152   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_RXHRSTDETIE) == UCPD_IMR_RXHRSTDETIE) ? 1UL : 0UL);
1153 }
1154 
1155 /**
1156   * @brief  Check if Rx orderset interrupt enabled
1157   * @rmtoll IMR          RXORDDETIE         LL_UCPD_IsEnableIT_RxOrderSet
1158   * @param  UCPDx UCPD Instance
1159   * @retval State of bit (1 or 0).
1160   */
LL_UCPD_IsEnableIT_RxOrderSet(UCPD_TypeDef const * const UCPDx)1161 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_RxOrderSet(UCPD_TypeDef const *const UCPDx)
1162 {
1163   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_RXORDDETIE) == UCPD_IMR_RXORDDETIE) ? 1UL : 0UL);
1164 }
1165 
1166 /**
1167   * @brief  Check if Rx non empty interrupt enabled
1168   * @rmtoll IMR          RXNEIE         LL_UCPD_IsEnableIT_RxNE
1169   * @param  UCPDx UCPD Instance
1170   * @retval State of bit (1 or 0).
1171   */
LL_UCPD_IsEnableIT_RxNE(UCPD_TypeDef const * const UCPDx)1172 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_RxNE(UCPD_TypeDef const *const UCPDx)
1173 {
1174   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_RXNEIE) == UCPD_IMR_RXNEIE) ? 1UL : 0UL);
1175 }
1176 
1177 /**
1178   * @brief  Check if TX underrun interrupt enabled
1179   * @rmtoll IMR          TXUNDIE         LL_UCPD_IsEnableIT_TxUND
1180   * @param  UCPDx UCPD Instance
1181   * @retval State of bit (1 or 0).
1182   */
LL_UCPD_IsEnableIT_TxUND(UCPD_TypeDef const * const UCPDx)1183 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxUND(UCPD_TypeDef const *const UCPDx)
1184 {
1185   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TXUNDIE) == UCPD_IMR_TXUNDIE) ? 1UL : 0UL);
1186 }
1187 
1188 /**
1189   * @brief  Check if hard reset sent interrupt enabled
1190   * @rmtoll IMR          HRSTSENTIE         LL_UCPD_IsEnableIT_TxHRSTSENT
1191   * @param  UCPDx UCPD Instance
1192   * @retval State of bit (1 or 0).
1193   */
LL_UCPD_IsEnableIT_TxHRSTSENT(UCPD_TypeDef const * const UCPDx)1194 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxHRSTSENT(UCPD_TypeDef const *const UCPDx)
1195 {
1196   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_HRSTSENTIE) == UCPD_IMR_HRSTSENTIE) ? 1UL : 0UL);
1197 }
1198 
1199 /**
1200   * @brief  Check if hard reset discard interrupt enabled
1201   * @rmtoll IMR          HRSTDISCIE         LL_UCPD_IsEnableIT_TxHRSTDISC
1202   * @param  UCPDx UCPD Instance
1203   * @retval State of bit (1 or 0).
1204   */
LL_UCPD_IsEnableIT_TxHRSTDISC(UCPD_TypeDef const * const UCPDx)1205 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxHRSTDISC(UCPD_TypeDef const *const UCPDx)
1206 {
1207   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_HRSTDISCIE) == UCPD_IMR_HRSTDISCIE) ? 1UL : 0UL);
1208 }
1209 
1210 /**
1211   * @brief  Check if Tx message abort interrupt enabled
1212   * @rmtoll IMR          TXMSGABTIE         LL_UCPD_IsEnableIT_TxMSGABT
1213   * @param  UCPDx UCPD Instance
1214   * @retval State of bit (1 or 0).
1215   */
LL_UCPD_IsEnableIT_TxMSGABT(UCPD_TypeDef const * const UCPDx)1216 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxMSGABT(UCPD_TypeDef const *const UCPDx)
1217 {
1218   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TXMSGABTIE) == UCPD_IMR_TXMSGABTIE) ? 1UL : 0UL);
1219 }
1220 
1221 /**
1222   * @brief  Check if Tx message sent interrupt enabled
1223   * @rmtoll IMR          TXMSGSENTIE         LL_UCPD_IsEnableIT_TxMSGSENT
1224   * @param  UCPDx UCPD Instance
1225   * @retval State of bit (1 or 0).
1226   */
LL_UCPD_IsEnableIT_TxMSGSENT(UCPD_TypeDef const * const UCPDx)1227 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxMSGSENT(UCPD_TypeDef const *const UCPDx)
1228 {
1229   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TXMSGSENTIE) == UCPD_IMR_TXMSGSENTIE) ? 1UL : 0UL);
1230 }
1231 
1232 /**
1233   * @brief  Check if Tx message discarded interrupt enabled
1234   * @rmtoll IMR          TXMSGDISCIE         LL_UCPD_IsEnableIT_TxMSGDISC
1235   * @param  UCPDx UCPD Instance
1236   * @retval State of bit (1 or 0).
1237   */
LL_UCPD_IsEnableIT_TxMSGDISC(UCPD_TypeDef const * const UCPDx)1238 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxMSGDISC(UCPD_TypeDef const *const UCPDx)
1239 {
1240   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TXMSGDISCIE) == UCPD_IMR_TXMSGDISCIE) ? 1UL : 0UL);
1241 }
1242 
1243 /**
1244   * @brief  Check if Tx data receive interrupt enabled
1245   * @rmtoll IMR          TXISIE         LL_UCPD_IsEnableIT_TxIS
1246   * @param  UCPDx UCPD Instance
1247   * @retval State of bit (1 or 0).
1248   */
LL_UCPD_IsEnableIT_TxIS(UCPD_TypeDef const * const UCPDx)1249 __STATIC_INLINE uint32_t LL_UCPD_IsEnableIT_TxIS(UCPD_TypeDef const *const UCPDx)
1250 {
1251   return ((READ_BIT(UCPDx->IMR, UCPD_IMR_TXISIE) == UCPD_IMR_TXISIE) ? 1UL : 0UL);
1252 }
1253 
1254 /**
1255   * @}
1256   */
1257 
1258 /** @defgroup UCPD_LL_EF_IT_Clear Interrupt Clear
1259   * @{
1260   */
1261 
1262 /**
1263   * @brief  Clear type c event on CC2
1264   * @rmtoll IIMR          TYPECEVT2IE        LL_UCPD_ClearFlag_TypeCEventCC2
1265   * @param  UCPDx UCPD Instance
1266   * @retval None
1267   */
LL_UCPD_ClearFlag_TypeCEventCC2(UCPD_TypeDef * UCPDx)1268 __STATIC_INLINE void LL_UCPD_ClearFlag_TypeCEventCC2(UCPD_TypeDef *UCPDx)
1269 {
1270   SET_BIT(UCPDx->ICR, UCPD_ICR_TYPECEVT2CF);
1271 }
1272 
1273 /**
1274   * @brief  Clear type c event on CC1
1275   * @rmtoll IIMR          TYPECEVT1IE        LL_UCPD_ClearFlag_TypeCEventCC1
1276   * @param  UCPDx UCPD Instance
1277   * @retval None
1278   */
LL_UCPD_ClearFlag_TypeCEventCC1(UCPD_TypeDef * UCPDx)1279 __STATIC_INLINE void LL_UCPD_ClearFlag_TypeCEventCC1(UCPD_TypeDef *UCPDx)
1280 {
1281   SET_BIT(UCPDx->ICR, UCPD_ICR_TYPECEVT1CF);
1282 }
1283 
1284 /**
1285   * @brief  Clear Rx message end interrupt
1286   * @rmtoll ICR          RXMSGENDIE         LL_UCPD_ClearFlag_RxMsgEnd
1287   * @param  UCPDx UCPD Instance
1288   * @retval None
1289   */
LL_UCPD_ClearFlag_RxMsgEnd(UCPD_TypeDef * UCPDx)1290 __STATIC_INLINE void LL_UCPD_ClearFlag_RxMsgEnd(UCPD_TypeDef *UCPDx)
1291 {
1292   SET_BIT(UCPDx->ICR, UCPD_ICR_RXMSGENDCF);
1293 }
1294 
1295 /**
1296   * @brief  Clear Rx overrun interrupt
1297   * @rmtoll ICR          RXOVRIE         LL_UCPD_ClearFlag_RxOvr
1298   * @param  UCPDx UCPD Instance
1299   * @retval None
1300   */
LL_UCPD_ClearFlag_RxOvr(UCPD_TypeDef * UCPDx)1301 __STATIC_INLINE void LL_UCPD_ClearFlag_RxOvr(UCPD_TypeDef *UCPDx)
1302 {
1303   SET_BIT(UCPDx->ICR, UCPD_ICR_RXOVRCF);
1304 }
1305 
1306 /**
1307   * @brief  Clear Rx hard reset interrupt
1308   * @rmtoll ICR          RXHRSTDETIE         LL_UCPD_ClearFlag_RxHRST
1309   * @param  UCPDx UCPD Instance
1310   * @retval None
1311   */
LL_UCPD_ClearFlag_RxHRST(UCPD_TypeDef * UCPDx)1312 __STATIC_INLINE void LL_UCPD_ClearFlag_RxHRST(UCPD_TypeDef *UCPDx)
1313 {
1314   SET_BIT(UCPDx->ICR, UCPD_ICR_RXHRSTDETCF);
1315 }
1316 
1317 /**
1318   * @brief  Clear Rx orderset interrupt
1319   * @rmtoll ICR          RXORDDETIE         LL_UCPD_ClearFlag_RxOrderSet
1320   * @param  UCPDx UCPD Instance
1321   * @retval None
1322   */
LL_UCPD_ClearFlag_RxOrderSet(UCPD_TypeDef * UCPDx)1323 __STATIC_INLINE void LL_UCPD_ClearFlag_RxOrderSet(UCPD_TypeDef *UCPDx)
1324 {
1325   SET_BIT(UCPDx->ICR, UCPD_ICR_RXORDDETCF);
1326 }
1327 
1328 /**
1329   * @brief  Clear TX underrun interrupt
1330   * @rmtoll ICR          TXUNDIE         LL_UCPD_ClearFlag_TxUND
1331   * @param  UCPDx UCPD Instance
1332   * @retval None
1333   */
LL_UCPD_ClearFlag_TxUND(UCPD_TypeDef * UCPDx)1334 __STATIC_INLINE void LL_UCPD_ClearFlag_TxUND(UCPD_TypeDef *UCPDx)
1335 {
1336   SET_BIT(UCPDx->ICR, UCPD_ICR_TXUNDCF);
1337 }
1338 
1339 /**
1340   * @brief  Clear hard reset sent interrupt
1341   * @rmtoll ICR          HRSTSENTIE         LL_UCPD_ClearFlag_TxHRSTSENT
1342   * @param  UCPDx UCPD Instance
1343   * @retval None
1344   */
LL_UCPD_ClearFlag_TxHRSTSENT(UCPD_TypeDef * UCPDx)1345 __STATIC_INLINE void LL_UCPD_ClearFlag_TxHRSTSENT(UCPD_TypeDef *UCPDx)
1346 {
1347   SET_BIT(UCPDx->ICR, UCPD_ICR_HRSTSENTCF);
1348 }
1349 
1350 /**
1351   * @brief  Clear hard reset discard interrupt
1352   * @rmtoll ICR          HRSTDISCIE         LL_UCPD_ClearFlag_TxHRSTDISC
1353   * @param  UCPDx UCPD Instance
1354   * @retval None
1355   */
LL_UCPD_ClearFlag_TxHRSTDISC(UCPD_TypeDef * UCPDx)1356 __STATIC_INLINE void LL_UCPD_ClearFlag_TxHRSTDISC(UCPD_TypeDef *UCPDx)
1357 {
1358   SET_BIT(UCPDx->ICR, UCPD_ICR_HRSTDISCCF);
1359 }
1360 
1361 /**
1362   * @brief  Clear Tx message abort interrupt
1363   * @rmtoll ICR          TXMSGABTIE         LL_UCPD_ClearFlag_TxMSGABT
1364   * @param  UCPDx UCPD Instance
1365   * @retval None
1366   */
LL_UCPD_ClearFlag_TxMSGABT(UCPD_TypeDef * UCPDx)1367 __STATIC_INLINE void LL_UCPD_ClearFlag_TxMSGABT(UCPD_TypeDef *UCPDx)
1368 {
1369   SET_BIT(UCPDx->ICR, UCPD_ICR_TXMSGABTCF);
1370 }
1371 
1372 /**
1373   * @brief  Clear Tx message sent interrupt
1374   * @rmtoll ICR          TXMSGSENTIE         LL_UCPD_ClearFlag_TxMSGSENT
1375   * @param  UCPDx UCPD Instance
1376   * @retval None
1377   */
LL_UCPD_ClearFlag_TxMSGSENT(UCPD_TypeDef * UCPDx)1378 __STATIC_INLINE void LL_UCPD_ClearFlag_TxMSGSENT(UCPD_TypeDef *UCPDx)
1379 {
1380   SET_BIT(UCPDx->ICR, UCPD_ICR_TXMSGSENTCF);
1381 }
1382 
1383 /**
1384   * @brief  Clear Tx message discarded interrupt
1385   * @rmtoll ICR          TXMSGDISCIE         LL_UCPD_ClearFlag_TxMSGDISC
1386   * @param  UCPDx UCPD Instance
1387   * @retval None
1388   */
LL_UCPD_ClearFlag_TxMSGDISC(UCPD_TypeDef * UCPDx)1389 __STATIC_INLINE void LL_UCPD_ClearFlag_TxMSGDISC(UCPD_TypeDef *UCPDx)
1390 {
1391   SET_BIT(UCPDx->ICR, UCPD_ICR_TXMSGDISCCF);
1392 }
1393 
1394 /**
1395   * @}
1396   */
1397 
1398 /** @defgroup UCPD_LL_EF_FLAG_Management FLAG Management
1399   * @{
1400   */
1401 
1402 /**
1403   * @brief  Check if type c event on CC2
1404   * @rmtoll SR          TYPECEVT2        LL_UCPD_IsActiveFlag_TypeCEventCC2
1405   * @param  UCPDx UCPD Instance
1406   * @retval State of bit (1 or 0).
1407   */
LL_UCPD_IsActiveFlag_TypeCEventCC2(UCPD_TypeDef const * const UCPDx)1408 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TypeCEventCC2(UCPD_TypeDef const *const UCPDx)
1409 {
1410   return ((READ_BIT(UCPDx->SR, UCPD_SR_TYPECEVT2) == UCPD_SR_TYPECEVT2) ? 1UL : 0UL);
1411 }
1412 
1413 /**
1414   * @brief  Check if type c event on CC1
1415   * @rmtoll SR          TYPECEVT1        LL_UCPD_IsActiveFlag_TypeCEventCC1
1416   * @param  UCPDx UCPD Instance
1417   * @retval State of bit (1 or 0).
1418   */
LL_UCPD_IsActiveFlag_TypeCEventCC1(UCPD_TypeDef const * const UCPDx)1419 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TypeCEventCC1(UCPD_TypeDef const *const UCPDx)
1420 {
1421   return ((READ_BIT(UCPDx->SR, UCPD_SR_TYPECEVT1) == UCPD_SR_TYPECEVT1) ? 1UL : 0UL);
1422 }
1423 
1424 /**
1425   * @brief  Check if Rx error flag is active
1426   * @rmtoll SR          RXERR         LL_UCPD_IsActiveFlag_RxErr
1427   * @param  UCPDx UCPD Instance
1428   * @retval State of bit (1 or 0).
1429   */
LL_UCPD_IsActiveFlag_RxErr(UCPD_TypeDef const * const UCPDx)1430 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxErr(UCPD_TypeDef const *const UCPDx)
1431 {
1432   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXERR) == UCPD_SR_RXERR) ? 1UL : 0UL);
1433 }
1434 
1435 /**
1436   * @brief  Check if Rx message end flag is active
1437   * @rmtoll SR          RXMSGEND         LL_UCPD_IsActiveFlag_RxMsgEnd
1438   * @param  UCPDx UCPD Instance
1439   * @retval State of bit (1 or 0).
1440   */
LL_UCPD_IsActiveFlag_RxMsgEnd(UCPD_TypeDef const * const UCPDx)1441 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxMsgEnd(UCPD_TypeDef const *const UCPDx)
1442 {
1443   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXMSGEND) == UCPD_SR_RXMSGEND) ? 1UL : 0UL);
1444 }
1445 
1446 /**
1447   * @brief  Check if Rx overrun flag is active
1448   * @rmtoll SR          RXOVR         LL_UCPD_IsActiveFlag_RxOvr
1449   * @param  UCPDx UCPD Instance
1450   * @retval State of bit (1 or 0).
1451   */
LL_UCPD_IsActiveFlag_RxOvr(UCPD_TypeDef const * const UCPDx)1452 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxOvr(UCPD_TypeDef const *const UCPDx)
1453 {
1454   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXOVR) == UCPD_SR_RXOVR) ? 1UL : 0UL);
1455 }
1456 
1457 /**
1458   * @brief  Check if Rx hard reset flag is active
1459   * @rmtoll SR          RXHRSTDET         LL_UCPD_IsActiveFlag_RxHRST
1460   * @param  UCPDx UCPD Instance
1461   * @retval State of bit (1 or 0).
1462   */
LL_UCPD_IsActiveFlag_RxHRST(UCPD_TypeDef const * const UCPDx)1463 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxHRST(UCPD_TypeDef const *const UCPDx)
1464 {
1465   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXHRSTDET) == UCPD_SR_RXHRSTDET) ? 1UL : 0UL);
1466 }
1467 
1468 /**
1469   * @brief  Check if Rx orderset flag is active
1470   * @rmtoll SR          RXORDDET         LL_UCPD_IsActiveFlag_RxOrderSet
1471   * @param  UCPDx UCPD Instance
1472   * @retval State of bit (1 or 0).
1473   */
LL_UCPD_IsActiveFlag_RxOrderSet(UCPD_TypeDef const * const UCPDx)1474 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxOrderSet(UCPD_TypeDef const *const UCPDx)
1475 {
1476   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXORDDET) == UCPD_SR_RXORDDET) ? 1UL : 0UL);
1477 }
1478 
1479 /**
1480   * @brief  Check if Rx non empty flag is active
1481   * @rmtoll SR          RXNE         LL_UCPD_IsActiveFlag_RxNE
1482   * @param  UCPDx UCPD Instance
1483   * @retval State of bit (1 or 0).
1484   */
LL_UCPD_IsActiveFlag_RxNE(UCPD_TypeDef const * const UCPDx)1485 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_RxNE(UCPD_TypeDef const *const UCPDx)
1486 {
1487   return ((READ_BIT(UCPDx->SR, UCPD_SR_RXNE) == UCPD_SR_RXNE) ? 1UL : 0UL);
1488 }
1489 
1490 /**
1491   * @brief  Check if TX underrun flag is active
1492   * @rmtoll SR          TXUND         LL_UCPD_IsActiveFlag_TxUND
1493   * @param  UCPDx UCPD Instance
1494   * @retval State of bit (1 or 0).
1495   */
LL_UCPD_IsActiveFlag_TxUND(UCPD_TypeDef const * const UCPDx)1496 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxUND(UCPD_TypeDef const *const UCPDx)
1497 {
1498   return ((READ_BIT(UCPDx->SR, UCPD_SR_TXUND) == UCPD_SR_TXUND) ? 1UL : 0UL);
1499 }
1500 
1501 /**
1502   * @brief  Check if hard reset sent flag is active
1503   * @rmtoll SR          HRSTSENT         LL_UCPD_IsActiveFlag_TxHRSTSENT
1504   * @param  UCPDx UCPD Instance
1505   * @retval State of bit (1 or 0).
1506   */
LL_UCPD_IsActiveFlag_TxHRSTSENT(UCPD_TypeDef const * const UCPDx)1507 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxHRSTSENT(UCPD_TypeDef const *const UCPDx)
1508 {
1509   return ((READ_BIT(UCPDx->SR, UCPD_SR_HRSTSENT) == UCPD_SR_HRSTSENT) ? 1UL : 0UL);
1510 }
1511 
1512 /**
1513   * @brief  Check if hard reset discard flag is active
1514   * @rmtoll SR          HRSTDISC         LL_UCPD_IsActiveFlag_TxHRSTDISC
1515   * @param  UCPDx UCPD Instance
1516   * @retval State of bit (1 or 0).
1517   */
LL_UCPD_IsActiveFlag_TxHRSTDISC(UCPD_TypeDef const * const UCPDx)1518 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxHRSTDISC(UCPD_TypeDef const *const UCPDx)
1519 {
1520   return ((READ_BIT(UCPDx->SR, UCPD_SR_HRSTDISC) == UCPD_SR_HRSTDISC) ? 1UL : 0UL);
1521 }
1522 
1523 /**
1524   * @brief  Check if Tx message abort flag is active
1525   * @rmtoll SR          TXMSGABT         LL_UCPD_IsActiveFlag_TxMSGABT
1526   * @param  UCPDx UCPD Instance
1527   * @retval State of bit (1 or 0).
1528   */
LL_UCPD_IsActiveFlag_TxMSGABT(UCPD_TypeDef const * const UCPDx)1529 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxMSGABT(UCPD_TypeDef const *const UCPDx)
1530 {
1531   return ((READ_BIT(UCPDx->SR, UCPD_SR_TXMSGABT) == UCPD_SR_TXMSGABT) ? 1UL : 0UL);
1532 }
1533 
1534 /**
1535   * @brief  Check if Tx message sent flag is active
1536   * @rmtoll SR          TXMSGSENT         LL_UCPD_IsActiveFlag_TxMSGSENT
1537   * @param  UCPDx UCPD Instance
1538   * @retval State of bit (1 or 0).
1539   */
LL_UCPD_IsActiveFlag_TxMSGSENT(UCPD_TypeDef const * const UCPDx)1540 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxMSGSENT(UCPD_TypeDef const *const UCPDx)
1541 {
1542   return ((READ_BIT(UCPDx->SR, UCPD_SR_TXMSGSENT) == UCPD_SR_TXMSGSENT) ? 1UL : 0UL);
1543 }
1544 
1545 /**
1546   * @brief  Check if Tx message discarded flag is active
1547   * @rmtoll SR         TXMSGDISC         LL_UCPD_IsActiveFlag_TxMSGDISC
1548   * @param  UCPDx UCPD Instance
1549   * @retval State of bit (1 or 0).
1550   */
LL_UCPD_IsActiveFlag_TxMSGDISC(UCPD_TypeDef const * const UCPDx)1551 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxMSGDISC(UCPD_TypeDef const *const UCPDx)
1552 {
1553   return ((READ_BIT(UCPDx->SR, UCPD_SR_TXMSGDISC) == UCPD_SR_TXMSGDISC) ? 1UL : 0UL);
1554 }
1555 
1556 /**
1557   * @brief  Check if Tx data interrupt flag is active
1558   * @rmtoll SR          TXIS         LL_UCPD_IsActiveFlag_TxIS
1559   * @param  UCPDx UCPD Instance
1560   * @retval State of bit (1 or 0).
1561   */
LL_UCPD_IsActiveFlag_TxIS(UCPD_TypeDef const * const UCPDx)1562 __STATIC_INLINE uint32_t LL_UCPD_IsActiveFlag_TxIS(UCPD_TypeDef const *const UCPDx)
1563 {
1564   return ((READ_BIT(UCPDx->SR, UCPD_SR_TXIS) == UCPD_SR_TXIS) ? 1UL : 0UL);
1565 }
1566 
1567 /**
1568   * @brief  return the vstate value for CC2
1569   * @rmtoll SR          TXIS         LL_UCPD_GetTypeCVstateCC2
1570   * @param  UCPDx UCPD Instance
1571   * @retval val
1572   */
LL_UCPD_GetTypeCVstateCC2(UCPD_TypeDef const * const UCPDx)1573 __STATIC_INLINE uint32_t LL_UCPD_GetTypeCVstateCC2(UCPD_TypeDef const *const UCPDx)
1574 {
1575   return UCPDx->SR & UCPD_SR_TYPEC_VSTATE_CC2;
1576 }
1577 
1578 /**
1579   * @brief  return the vstate value for CC1
1580   * @rmtoll SR          TXIS         LL_UCPD_GetTypeCVstateCC1
1581   * @param  UCPDx UCPD Instance
1582   * @retval val
1583   */
LL_UCPD_GetTypeCVstateCC1(UCPD_TypeDef const * const UCPDx)1584 __STATIC_INLINE uint32_t LL_UCPD_GetTypeCVstateCC1(UCPD_TypeDef const *const UCPDx)
1585 {
1586   return UCPDx->SR & UCPD_SR_TYPEC_VSTATE_CC1;
1587 }
1588 
1589 /**
1590   * @}
1591   */
1592 
1593 
1594 /** @defgroup UCPD_LL_EF_DMA_Management DMA Management
1595   * @{
1596   */
1597 
1598 /**
1599   * @brief  Rx DMA Enable
1600   * @rmtoll CFG1          RXDMAEN          LL_UCPD_RxDMAEnable
1601   * @param  UCPDx UCPD Instance
1602   * @retval None
1603   */
LL_UCPD_RxDMAEnable(UCPD_TypeDef * UCPDx)1604 __STATIC_INLINE void LL_UCPD_RxDMAEnable(UCPD_TypeDef *UCPDx)
1605 {
1606   SET_BIT(UCPDx->CFG1, UCPD_CFG1_RXDMAEN);
1607 }
1608 
1609 /**
1610   * @brief  Rx DMA Disable
1611   * @rmtoll CFG1          RXDMAEN          LL_UCPD_RxDMADisable
1612   * @param  UCPDx UCPD Instance
1613   * @retval None
1614   */
LL_UCPD_RxDMADisable(UCPD_TypeDef * UCPDx)1615 __STATIC_INLINE void LL_UCPD_RxDMADisable(UCPD_TypeDef *UCPDx)
1616 {
1617   CLEAR_BIT(UCPDx->CFG1, UCPD_CFG1_RXDMAEN);
1618 }
1619 
1620 /**
1621   * @brief  Tx DMA Enable
1622   * @rmtoll CFG1          TXDMAEN          LL_UCPD_TxDMAEnable
1623   * @param  UCPDx UCPD Instance
1624   * @retval None
1625   */
LL_UCPD_TxDMAEnable(UCPD_TypeDef * UCPDx)1626 __STATIC_INLINE void LL_UCPD_TxDMAEnable(UCPD_TypeDef *UCPDx)
1627 {
1628   SET_BIT(UCPDx->CFG1, UCPD_CFG1_TXDMAEN);
1629 }
1630 
1631 /**
1632   * @brief  Tx DMA Disable
1633   * @rmtoll CFG1          TXDMAEN          LL_UCPD_TxDMADisable
1634   * @param  UCPDx UCPD Instance
1635   * @retval None
1636   */
LL_UCPD_TxDMADisable(UCPD_TypeDef * UCPDx)1637 __STATIC_INLINE void LL_UCPD_TxDMADisable(UCPD_TypeDef *UCPDx)
1638 {
1639   CLEAR_BIT(UCPDx->CFG1, UCPD_CFG1_TXDMAEN);
1640 }
1641 
1642 /**
1643   * @brief  Check if DMA Tx is enabled
1644   * @rmtoll CR2          TXDMAEN       LL_UCPD_IsEnabledTxDMA
1645   * @param  UCPDx UCPD Instance
1646   * @retval State of bit (1 or 0).
1647   */
LL_UCPD_IsEnabledTxDMA(UCPD_TypeDef const * const UCPDx)1648 __STATIC_INLINE uint32_t LL_UCPD_IsEnabledTxDMA(UCPD_TypeDef const *const UCPDx)
1649 {
1650   return ((READ_BIT(UCPDx->CFG1, UCPD_CFG1_TXDMAEN) == (UCPD_CFG1_TXDMAEN)) ? 1UL : 0UL);
1651 }
1652 
1653 /**
1654   * @brief  Check if DMA Rx is enabled
1655   * @rmtoll CR2          RXDMAEN       LL_UCPD_IsEnabledRxDMA
1656   * @param  UCPDx UCPD Instance
1657   * @retval State of bit (1 or 0).
1658   */
LL_UCPD_IsEnabledRxDMA(UCPD_TypeDef const * const UCPDx)1659 __STATIC_INLINE uint32_t LL_UCPD_IsEnabledRxDMA(UCPD_TypeDef const *const UCPDx)
1660 {
1661   return ((READ_BIT(UCPDx->CFG1, UCPD_CFG1_RXDMAEN) == (UCPD_CFG1_RXDMAEN)) ? 1UL : 0UL);
1662 }
1663 
1664 /**
1665   * @}
1666   */
1667 
1668 /** @defgroup UCPD_LL_EF_DATA_Management DATA Management
1669   * @{
1670   */
1671 
1672 /**
1673   * @brief  write the orderset for Tx message
1674   * @rmtoll TX_ORDSET           TXORDSET            LL_UCPD_WriteTxOrderSet
1675   * @param  UCPDx UCPD Instance
1676   * @param  TxOrderSet one of the following value
1677   *         @arg @ref LL_UCPD_ORDERED_SET_SOP
1678   *         @arg @ref LL_UCPD_ORDERED_SET_SOP1
1679   *         @arg @ref LL_UCPD_ORDERED_SET_SOP2
1680   *         @arg @ref LL_UCPD_ORDERED_SET_HARD_RESET
1681   *         @arg @ref LL_UCPD_ORDERED_SET_CABLE_RESET
1682   *         @arg @ref LL_UCPD_ORDERED_SET_SOP1_DEBUG
1683   *         @arg @ref LL_UCPD_ORDERED_SET_SOP2_DEBUG
1684   * @retval None
1685   */
LL_UCPD_WriteTxOrderSet(UCPD_TypeDef * UCPDx,uint32_t TxOrderSet)1686 __STATIC_INLINE void LL_UCPD_WriteTxOrderSet(UCPD_TypeDef *UCPDx, uint32_t TxOrderSet)
1687 {
1688   WRITE_REG(UCPDx->TX_ORDSET, TxOrderSet);
1689 }
1690 
1691 /**
1692   * @brief  write the Tx paysize
1693   * @rmtoll TX_PAYSZ          TXPAYSZ            LL_UCPD_WriteTxPaySize
1694   * @param  UCPDx UCPD Instance
1695   * @param  TxPaySize
1696   * @retval None.
1697   */
LL_UCPD_WriteTxPaySize(UCPD_TypeDef * UCPDx,uint32_t TxPaySize)1698 __STATIC_INLINE void LL_UCPD_WriteTxPaySize(UCPD_TypeDef *UCPDx, uint32_t TxPaySize)
1699 {
1700   WRITE_REG(UCPDx->TX_PAYSZ, TxPaySize);
1701 }
1702 
1703 /**
1704   * @brief  Write data
1705   * @rmtoll TXDR           DR            LL_UCPD_WriteData
1706   * @param  UCPDx UCPD Instance
1707   * @param  Data Value between Min_Data=0x00 and Max_Data=0xFF
1708   * @retval None.
1709   */
LL_UCPD_WriteData(UCPD_TypeDef * UCPDx,uint8_t Data)1710 __STATIC_INLINE void LL_UCPD_WriteData(UCPD_TypeDef *UCPDx, uint8_t Data)
1711 {
1712   WRITE_REG(UCPDx->TXDR, Data);
1713 }
1714 
1715 /**
1716   * @brief  read RX the orderset
1717   * @rmtoll RX_ORDSET           RXORDSET            LL_UCPD_ReadRxOrderSet
1718   * @param  UCPDx UCPD Instance
1719   * @retval RxOrderSet one of the following value
1720   *         @arg @ref LL_UCPD_RXORDSET_SOP
1721   *         @arg @ref LL_UCPD_RXORDSET_SOP1
1722   *         @arg @ref LL_UCPD_RXORDSET_SOP2
1723   *         @arg @ref LL_UCPD_RXORDSET_SOP1_DEBUG
1724   *         @arg @ref LL_UCPD_RXORDSET_SOP2_DEBUG
1725   *         @arg @ref LL_UCPD_RXORDSET_CABLE_RESET
1726   *         @arg @ref LL_UCPD_RXORDSET_SOPEXT1
1727   *         @arg @ref LL_UCPD_RXORDSET_SOPEXT2
1728   */
LL_UCPD_ReadRxOrderSet(UCPD_TypeDef const * const UCPDx)1729 __STATIC_INLINE uint32_t LL_UCPD_ReadRxOrderSet(UCPD_TypeDef const *const UCPDx)
1730 {
1731   return READ_BIT(UCPDx->RX_ORDSET, UCPD_RX_ORDSET_RXORDSET);
1732 }
1733 
1734 /**
1735   * @brief  Read the Rx paysize
1736   * @rmtoll RX_PAYSZ          RXPAYSZ            LL_UCPD_ReadRxPaySize
1737   * @param  UCPDx UCPD Instance
1738   * @retval RXPaysize.
1739   */
LL_UCPD_ReadRxPaySize(UCPD_TypeDef const * const UCPDx)1740 __STATIC_INLINE uint32_t LL_UCPD_ReadRxPaySize(UCPD_TypeDef const *const UCPDx)
1741 {
1742   return READ_BIT(UCPDx->RX_PAYSZ, UCPD_RX_PAYSZ_RXPAYSZ);
1743 }
1744 
1745 /**
1746   * @brief  Read data
1747   * @rmtoll RXDR           RXDATA            LL_UCPD_ReadData
1748   * @param  UCPDx UCPD Instance
1749   * @retval RxData Value between Min_Data=0x00 and Max_Data=0xFF
1750   */
LL_UCPD_ReadData(UCPD_TypeDef const * const UCPDx)1751 __STATIC_INLINE uint32_t LL_UCPD_ReadData(UCPD_TypeDef const *const UCPDx)
1752 {
1753   return READ_REG(UCPDx->RXDR);
1754 }
1755 
1756 /**
1757   * @brief  Set Rx OrderSet Ext1
1758   * @rmtoll RX_ORDEXT1           RXSOPX1            LL_UCPD_SetRxOrdExt1
1759   * @param  UCPDx UCPD Instance
1760   * @param  SOPExt Value between Min_Data=0x00000 and Max_Data=0xFFFFF
1761   * @retval None
1762   */
LL_UCPD_SetRxOrdExt1(UCPD_TypeDef * UCPDx,uint32_t SOPExt)1763 __STATIC_INLINE void LL_UCPD_SetRxOrdExt1(UCPD_TypeDef *UCPDx, uint32_t SOPExt)
1764 {
1765   WRITE_REG(UCPDx->RX_ORDEXT1, SOPExt);
1766 }
1767 
1768 /**
1769   * @brief  Set Rx OrderSet Ext2
1770   * @rmtoll RX_ORDEXT2           RXSOPX2            LL_UCPD_SetRxOrdExt2
1771   * @param  UCPDx UCPD Instance
1772   * @param  SOPExt Value between Min_Data=0x00000 and Max_Data=0xFFFFF
1773   * @retval None
1774   */
LL_UCPD_SetRxOrdExt2(UCPD_TypeDef * UCPDx,uint32_t SOPExt)1775 __STATIC_INLINE void LL_UCPD_SetRxOrdExt2(UCPD_TypeDef *UCPDx, uint32_t SOPExt)
1776 {
1777   WRITE_REG(UCPDx->RX_ORDEXT2, SOPExt);
1778 }
1779 
1780 /**
1781   * @}
1782   */
1783 
1784 #if defined(USE_FULL_LL_DRIVER)
1785 /** @defgroup UCPD_LL_EF_Init Initialization and de-initialization functions
1786   * @{
1787   */
1788 
1789 ErrorStatus LL_UCPD_DeInit(UCPD_TypeDef *UCPDx);
1790 ErrorStatus LL_UCPD_Init(UCPD_TypeDef *UCPDx, const LL_UCPD_InitTypeDef *UCPD_InitStruct);
1791 void        LL_UCPD_StructInit(LL_UCPD_InitTypeDef *UCPD_InitStruct);
1792 
1793 /**
1794   * @}
1795   */
1796 #endif /* USE_FULL_LL_DRIVER */
1797 
1798 /**
1799   * @}
1800   */
1801 
1802 #endif /* defined (UCPD1) */
1803 
1804 /**
1805   * @}
1806   */
1807 
1808 /**
1809   * @}
1810   */
1811 
1812 #ifdef __cplusplus
1813 }
1814 #endif
1815 
1816 #endif /* STM32N6xx_LL_UCPD_H */
1817 
1818