source: trunk/firmware/Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_ll_ucpd.h

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