ll_aon_gpio.h
Go to the documentation of this file.
1 /**
2  ****************************************************************************************
3  *
4  * @file ll_aon_gpio.h
5  * @author BLE Driver Team
6  * @brief Header file containing functions prototypes of AON GPIO LL library.
7  *
8  ****************************************************************************************
9  * @attention
10  #####Copyright (c) 2019 GOODIX
11  All rights reserved.
12 
13  Redistribution and use in source and binary forms, with or without
14  modification, are permitted provided that the following conditions are met:
15  * Redistributions of source code must retain the above copyright
16  notice, this list of conditions and the following disclaimer.
17  * Redistributions in binary form must reproduce the above copyright
18  notice, this list of conditions and the following disclaimer in the
19  documentation and/or other materials provided with the distribution.
20  * Neither the name of GOODIX nor the names of its contributors may be used
21  to endorse or promote products derived from this software without
22  specific prior written permission.
23 
24  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  POSSIBILITY OF SUCH DAMAGE.
35  ****************************************************************************************
36  */
37 
38 /** @addtogroup PERIPHERAL Peripheral Driver
39  * @{
40  */
41 
42 /** @addtogroup LL_DRIVER LL Driver
43  * @{
44  */
45 
46 /** @defgroup LL_AON_GPIO AON_GPIO
47  * @brief AON_GPIO LL module driver.
48  * @{
49  */
50 
51 /* Define to prevent recursive inclusion -------------------------------------*/
52 #ifndef LL_AON_GPIO_H
53 #define LL_AON_GPIO_H
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
59 /* Includes ------------------------------------------------------------------*/
60 #include "gr5405.h"
61 
62 #if defined(AON_IO)
63 
64 /** @defgroup AON_GPIO_LL_STRUCTURES Structures
65  * @{
66  */
67 
68 /* Exported types ------------------------------------------------------------*/
69 /** @defgroup AON_GPIO_LL_ES_INIT AON_GPIO Exported init structures
70  * @{
71  */
72 
73 /**
74  * @brief LL AON_GPIO init Structure definition
75  */
76 typedef struct _ll_aon_gpio_init
77 {
78  uint32_t pin; /**< Specifies the AON_GPIO pins to be AON_GPIO_InitStructured.
79  This parameter can be any value of @ref AON_GPIO_LL_EC_PIN */
80 
81  uint32_t mode; /**< Specifies the operating mode for the selected pins.
82  This parameter can be a value of @ref AON_GPIO_LL_EC_MODE.
83 
84  AON_GPIO HW AON_GPIO_InitStructuration can be modified afterwards using unitary function @ref ll_aon_gpio_set_pin_mode(). */
85 
86  uint32_t pull; /**< Specifies the operating Pull-up/Pull down for the selected pins.
87  This parameter can be a value of @ref AON_GPIO_LL_EC_PULL.
88 
89  AON_GPIO HW configuration can be modified afterwards using unitary function @ref ll_aon_gpio_set_pin_pull().*/
90 
91  uint32_t mux; /*!< Specifies the Peripheral to be connected to the selected pins.
92  This parameter can be a value of AON_GPIO_LL_EC_MUX.
93 
94  GPIO HW AON_GPIO_InitStructuration can be modified afterwards using unitary function
95  @ref ll_aon_gpio_set_pin_mux(). */
96 
97  uint32_t speed; /**< Specifies the Speed for the selected pins.
98  This parameter can be a value of @ref AON_GPIO_LL_EC_SPEED.
99 
100  AON_GPIO HW configuration can be modified afterwards using unitary function @ref ll_aon_gpio_set_pin_speed().*/
101 
102  uint32_t strength; /**< Specifies the Speed for the selected pins.
103  This parameter can be a value of @ref AON_GPIO_LL_EC_STRENGTH.
104 
105  AON_GPIO HW configuration can be modified afterwards using unitary function @ref ll_aon_gpio_set_pin_strength().*/
106 
107  uint32_t input_type; /**< Specifies the input type for the selected pins.
108  This parameter can be a value of @ref AON_GPIO_LL_EC_INPUT_TYPE.
109 
110  AON_GPIO HW configuration can be modified afterwards using unitary function @ref ll_aon_gpio_set_pin_input_type().*/
111 
112  uint32_t trigger; /**< Specifies the trigger signal active edge.
113  This parameter can be a value of @ref AON_GPIO_LL_EC_TRIGGER. */
115 
116 /** @} */
117 
118 /** @} */
119 
120 /**
121  * @defgroup AON_GPIO_LL_MACRO Defines
122  * @{
123  */
124 
125 /* Exported constants --------------------------------------------------------*/
126 /** @defgroup AON_GPIO_LL_Exported_Constants AON_GPIO Exported Constants
127  * @{
128  */
129 /** @defgroup AON_GPIO_LL_PRIVATE_MACRO Private Macro
130  * @{
131  */
132 #define LL_AON_GPIO_MODE_INPUT_POS ((uint32_t)0x0U) /*!< Input mode bit position AON_GPIO_LL_EC_MODE */
133 #define LL_AON_GPIO_MODE_OUTPUT_POS ((uint32_t)0x1U) /*!< Output mode bit position AON_GPIO_LL_EC_MODE */
134 #define LL_AON_GPIO_STRENGTH_DS0_MASK ((uint32_t)0x10U) /*!< DS0 mask in AON_GPIO_LL_EC_STRENGTH */
135 #define LL_AON_GPIO_STRENGTH_DS1_MASK ((uint32_t)0x01U) /*!< DS1 mask in AON_GPIO_LL_EC_STRENGTH */
136 #define LL_AON_GPIO_STRENGTH_DS0_POS ((uint32_t)0x04U) /*!< DS0 bit position in AON_GPIO_LL_EC_STRENGTH */
137 #define LL_AON_GPIO_STRENGTH_DS1_POS ((uint32_t)0x00U) /*!< DS1 bit position in AON_GPIO_LL_EC_STRENGTH */
138 /** @} */
139 
140 /** @defgroup AON_GPIO_LL_EC_PIN PIN
141  * @{
142  */
143 #define LL_AON_GPIO_PIN_0 ((uint32_t)0x01U) /**< Select pin 0 */
144 #define LL_AON_GPIO_PIN_1 ((uint32_t)0x02U) /**< Select pin 1 */
145 #define LL_AON_GPIO_PIN_2 ((uint32_t)0x04U) /**< Select pin 2 */
146 #define LL_AON_GPIO_PIN_3 ((uint32_t)0x08U) /**< Select pin 3 */
147 #define LL_AON_GPIO_PIN_4 ((uint32_t)0x10U) /**< Select pin 4 */
148 #define LL_AON_GPIO_PIN_5 ((uint32_t)0x20U) /**< Select pin 5 */
149 #define LL_AON_GPIO_PIN_6 ((uint32_t)0x40U) /**< Select pin 6 */
150 #define LL_AON_GPIO_PIN_7 ((uint32_t)0x80U) /**< Select pin 7 */
151 #define LL_AON_GPIO_PIN_ALL ((uint32_t)0xFFU) /**< Select all pins */
152 /** @} */
153 
154 /** @defgroup AON_GPIO_LL_EC_MODE Mode
155  * @{
156  */
157 #define LL_AON_GPIO_MODE_NONE ((uint32_t)0x0U) /**< No input or output */
158 #define LL_AON_GPIO_MODE_INPUT ((uint32_t)0x1U) /**< Select input mode */
159 #define LL_AON_GPIO_MODE_OUTPUT ((uint32_t)0x2U) /**< Select output mode */
160 #define LL_AON_GPIO_MODE_INOUT ((uint32_t)0x3U) /**< Select input and output mode */
161 
162 /** @} */
163 
164 /** @defgroup AON_GPIO_LL_EC_PULL Pull Up Pull Down
165  * @{
166  */
167 #define LL_AON_GPIO_PULL_NO ((uint32_t)0x0U) /**< Select I/O no pull */
168 #define LL_AON_GPIO_PULL_UP ((uint32_t)0x1U) /**< Select I/O pull up */
169 #define LL_AON_GPIO_PULL_DOWN ((uint32_t)0x2U) /**< Select I/O pull down */
170 /** @} */
171 
172 
173 /** @defgroup AON_GPIO_LL_EC_SPEED IO speed
174  * @{
175  */
176 #define LL_AON_GPIO_SPEED_MEDIUM ((uint32_t)0x1U) /*!< Select medium speed */
177 #define LL_AON_GPIO_SPEED_HIGH ((uint32_t)0x0U) /*!< Select high speed */
178 /** @} */
179 
180 /** @defgroup AON_GPIO_LL_EC_STRENGTH IO strength
181  * @{
182  */
183 #define LL_AON_GPIO_STRENGTH_LOW ((uint32_t)0x00U) /*!< Select low output driver strength */
184 #define LL_AON_GPIO_STRENGTH_MEDIUM ((uint32_t)0x01U) /*!< Select medium output driver strength */
185 #define LL_AON_GPIO_STRENGTH_HIGH ((uint32_t)0x10U) /*!< Select high output driver strength */
186 #define LL_AON_GPIO_STRENGTH_ULTRA ((uint32_t)0x11U) /*!< Select high output driver strength */
187 /** @} */
188 
189 /** @defgroup AON_GPIO_LL_EC_INPUT_TYPE Input type
190  * @{
191  */
192 #define LL_AON_GPIO_INPUT_TYPE_CMOS ((uint32_t)0x00U) /**< CMOS input */
193 #define LL_AON_GPIO_INPUT_TYPE_SCHMITT ((uint32_t)0x01U) /**< Schmitt input */
194 /** @} */
195 
196 /** @defgroup AON_GPIO_LL_EC_TRIGGER Interrupt Trigger
197  * @{
198  */
199 #define LL_AON_GPIO_TRIGGER_NONE ((uint32_t)0x00U) /**< No Trigger Mode */
200 #define LL_AON_GPIO_TRIGGER_RISING ((uint32_t)0x01U) /**< Trigger Rising Mode */
201 #define LL_AON_GPIO_TRIGGER_FALLING ((uint32_t)0x02U) /**< Trigger Falling Mode */
202 #define LL_AON_GPIO_TRIGGER_HIGH ((uint32_t)0x03U) /**< Trigger High Mode */
203 #define LL_AON_GPIO_TRIGGER_LOW ((uint32_t)0x04U) /**< Trigger Low Mode */
204 #define LL_AON_GPIO_TRIGGER_BOTH_EDGE ((uint32_t)0x05U) /**< Trigger both edge */
205 /** @} */
206 
207 /** @defgroup AON_GPIO_LL_CLOCK_OUT Clock Out
208  * @{
209  */
210 #define LL_CLK_RNG_OSC_32K ((uint32_t)0x00U) /**< RNG osc 32k */
211 #define LL_CLK_RNG_OSC_250K ((uint32_t)0x01U) /**< RNG osc 250k */
212 #define LL_CLK_RC_OSC_CLK ((uint32_t)0x02U) /**< RC osc clk */
213 #define LL_CLK_RTC_CLK ((uint32_t)0x03U) /**< RTC clk */
214 /** @} */
215 
216 /** @} */
217 
218 /* Exported macro ------------------------------------------------------------*/
219 /** @defgroup AON_GPIO_LL_Exported_Macros AON_GPIO Exported Macros
220  * @{
221  */
222 
223 /** @defgroup AON_GPIO_LL_EM_WRITE_READ Common Write and read registers Macros
224  * @{
225  */
226 
227 /**
228  * @brief Write a value in AON_GPIO register
229  * @param __instance__ AON_GPIO instance
230  * @param __REG__ Register to be written
231  * @param __VALUE__ Value to be written in the register
232  * @retval None
233  */
234 #define LL_AON_GPIO_WriteReg(__instance__, __REG__, __VALUE__) WRITE_REG(__instance__->__REG__, (__VALUE__))
235 
236 /**
237  * @brief Read a value in AON_GPIO register
238  * @param __instance__ AON_GPIO instance
239  * @param __REG__ Register to be read
240  * @retval Register value
241  */
242 #define LL_AON_GPIO_ReadReg(__instance__, __REG__) READ_REG(__instance__->__REG__)
243 
244 /** @} */
245 
246 /** @} */
247 
248 /* Private types -------------------------------------------------------------*/
249 /* Private variables ---------------------------------------------------------*/
250 /* Private constants ---------------------------------------------------------*/
251 /* Private macros ------------------------------------------------------------*/
252 /** @defgroup AON_GPIO_LL_Private_Macros AON_GPIO Private Macros
253  * @{
254  */
255 /** @defgroup AON_GPIO_LL_EC_DEFAULT_CONFIG InitStruct default configuartion
256  * @{
257  */
258 
259 /**
260  * @brief LL AON_GPIO InitStrcut default configuartion
261  */
262 #define LL_AON_GPIO_DEFAULT_CONFIG \
263 { \
264  .pin = LL_AON_GPIO_PIN_ALL, \
265  .mode = LL_AON_GPIO_MODE_INPUT, \
266  .pull = LL_AON_GPIO_PULL_DOWN, \
267  .mux = IO_MUX_GPIO, \
268  .speed = LL_AON_GPIO_SPEED_MEDIUM, \
269  .strength = LL_AON_GPIO_STRENGTH_MEDIUM, \
270  .input_type = LL_AON_GPIO_INPUT_TYPE_CMOS, \
271  .trigger = LL_AON_GPIO_TRIGGER_NONE, \
272 }
273 /** @} */
274 
275 /** @} */
276 
277 /** @} */
278 
279 /* Exported functions --------------------------------------------------------*/
280 /** @defgroup AON_GPIO_LL_DRIVER_FUNCTIONS Functions
281  * @{
282  */
283 
284 /** @defgroup AON_GPIO_LL_EF_Port_Configuration Port Configuration
285  * @{
286  */
287 
288 /**
289  * @brief Set several AON_GPIO pins to input/output mode.
290  *
291  * Register|BitsName
292  * --------|--------
293  * AON_PAD_CTL1 | AON_GPO_OE_N
294  *
295  * @param pin_mask This parameter can be a combination of the following values:
296  * @arg @ref LL_AON_GPIO_PIN_0
297  * @arg @ref LL_AON_GPIO_PIN_1
298  * @arg @ref LL_AON_GPIO_PIN_2
299  * @arg @ref LL_AON_GPIO_PIN_3
300  * @arg @ref LL_AON_GPIO_PIN_4
301  * @arg @ref LL_AON_GPIO_PIN_5
302  * @arg @ref LL_AON_GPIO_PIN_6
303  * @arg @ref LL_AON_GPIO_PIN_7
304  * @arg @ref LL_AON_GPIO_PIN_ALL
305  * @param mode This parameter can be one of the following values:
306  * @arg @ref LL_AON_GPIO_MODE_NONE
307  * @arg @ref LL_AON_GPIO_MODE_INPUT
308  * @arg @ref LL_AON_GPIO_MODE_OUTPUT
309  * @arg @ref LL_AON_GPIO_MODE_INOUT
310  * @retval None
311  */
312 __STATIC_INLINE void ll_aon_gpio_set_pin_mode(uint32_t pin_mask, uint32_t mode)
313 {
314  uint32_t ie_mask = (pin_mask << AON_IO_AON_PAD_CTRL0_IE_POS) & AON_IO_AON_PAD_CTRL0_IE;
315  uint32_t oe_mask = (pin_mask << AON_IO_AON_PAD_CTRL1_OE_POS) & AON_IO_AON_PAD_CTRL1_OE;
316  uint32_t ie = ((mode == LL_AON_GPIO_MODE_INPUT) || (mode == LL_AON_GPIO_MODE_INOUT)) ? ie_mask : 0x0000U;
317  uint32_t oe = ((mode == LL_AON_GPIO_MODE_OUTPUT) || (mode == LL_AON_GPIO_MODE_INOUT)) ? oe_mask : 0x0000U;
318  MODIFY_REG(AON_IO->AON_PAD_CTRL0, ie_mask, ie);
319  MODIFY_REG(AON_IO->AON_PAD_CTRL1, oe_mask, oe);
320 }
321 
322 /**
323  * @brief Return gpio mode for a AON_GPIO pin.
324  * @note I/O mode can be Input mode. General purpose output.
325  * @note Warning: only one pin can be passed as parameter.
326  *
327  * Register|BitsName
328  * --------|--------
329  * AON_PAD_CTL0 | IE
330  * AON_PAD_CTL1 | OE
331  *
332  * @param pin This parameter can be one of the following values:
333  * @arg @ref LL_AON_GPIO_PIN_0
334  * @arg @ref LL_AON_GPIO_PIN_1
335  * @arg @ref LL_AON_GPIO_PIN_2
336  * @arg @ref LL_AON_GPIO_PIN_3
337  * @arg @ref LL_AON_GPIO_PIN_4
338  * @arg @ref LL_AON_GPIO_PIN_5
339  * @arg @ref LL_AON_GPIO_PIN_6
340  * @arg @ref LL_AON_GPIO_PIN_7
341  * @retval Returned value can be one of the following values:
342  * @arg @ref LL_AON_GPIO_MODE_NONE
343  * @arg @ref LL_AON_GPIO_MODE_INPUT
344  * @arg @ref LL_AON_GPIO_MODE_OUTPUT
345  * @arg @ref LL_AON_GPIO_MODE_INOUT
346  */
347 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_mode(uint32_t pin)
348 {
349  uint32_t ie_mask = (pin << AON_IO_AON_PAD_CTRL0_IE_POS) & AON_IO_AON_PAD_CTRL0_IE;
350  uint32_t oe_mask = (pin << AON_IO_AON_PAD_CTRL1_OE_POS) & AON_IO_AON_PAD_CTRL1_OE;
351  uint32_t ie = READ_BITS(AON_IO->AON_PAD_CTRL0, ie_mask) >> (POSITION_VAL(pin));
352  uint32_t oe = READ_BITS(AON_IO->AON_PAD_CTRL1, oe_mask) >> (POSITION_VAL(pin));
353  return (((ie >> AON_IO_AON_PAD_CTRL0_IE_POS) << LL_AON_GPIO_MODE_INPUT_POS)
354  | ((oe >> AON_IO_AON_PAD_CTRL1_OE_POS) << LL_AON_GPIO_MODE_OUTPUT_POS));
355 }
356 
357 /**
358  * @brief Set several AON_GPIO pins to input type.
359  *
360  * Register|BitsName
361  * --------|--------
362  * AON_PAD_CTL2 | IS
363  *
364  * @param pin_mask This parameter can be a combination of the following values:
365  * @arg @ref LL_AON_GPIO_PIN_0
366  * @arg @ref LL_AON_GPIO_PIN_1
367  * @arg @ref LL_AON_GPIO_PIN_2
368  * @arg @ref LL_AON_GPIO_PIN_3
369  * @arg @ref LL_AON_GPIO_PIN_4
370  * @arg @ref LL_AON_GPIO_PIN_5
371  * @arg @ref LL_AON_GPIO_PIN_6
372  * @arg @ref LL_AON_GPIO_PIN_7
373  * @arg @ref LL_AON_GPIO_PIN_ALL
374  * @param type This parameter can be one of the following values:
375  * @arg @ref LL_AON_GPIO_INPUT_TYPE_CMOS
376  * @arg @ref LL_AON_GPIO_INPUT_TYPE_SCHMITT
377  * @retval None
378  */
379 __STATIC_INLINE void ll_aon_gpio_set_pin_input_type(uint32_t pin_mask, uint32_t type)
380 {
381  pin_mask = (pin_mask << AON_IO_AON_PAD_CTRL2_IS_POS) & AON_IO_AON_PAD_CTRL2_IS;
382  MODIFY_REG(AON_IO->AON_PAD_CTRL2, pin_mask, (type == LL_AON_GPIO_INPUT_TYPE_SCHMITT) ? pin_mask : 0);
383 }
384 
385 /**
386  * @brief Return input type for a AON_GPIO pin.
387  * @note I/O mode can be Input mode. General purpose output.
388  * @note Warning: only one pin can be passed as parameter.
389  *
390  * Register|BitsName
391  * --------|--------
392  * AON_PAD_CTL2 | IS
393  *
394  * @param pin This parameter can be one of the following values:
395  * @arg @ref LL_AON_GPIO_PIN_0
396  * @arg @ref LL_AON_GPIO_PIN_1
397  * @arg @ref LL_AON_GPIO_PIN_2
398  * @arg @ref LL_AON_GPIO_PIN_3
399  * @arg @ref LL_AON_GPIO_PIN_4
400  * @arg @ref LL_AON_GPIO_PIN_5
401  * @arg @ref LL_AON_GPIO_PIN_6
402  * @arg @ref LL_AON_GPIO_PIN_7
403  * @retval Returned value can be one of the following values:
404  * @arg @ref LL_AON_GPIO_INPUT_TYPE_CMOS
405  * @arg @ref LL_AON_GPIO_INPUT_TYPE_SCHMITT
406  */
407 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_input_type(uint32_t pin)
408 {
409  pin = (pin << AON_IO_AON_PAD_CTRL2_IS_POS) & AON_IO_AON_PAD_CTRL2_IS;
410  return ((uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL2, pin) == pin) ?
412 }
413 
414 /**
415  * @brief Configure gpio pull-up or pull-down for a dedicated AON_GPIO pin.
416  * @note Warning: only one pin can be passed as parameter.
417  *
418  * Register|BitsName
419  * --------|--------
420  * AON_PAD_CTL0 | PE
421  * AON_PAD_CTL0 | PS
422  *
423  * @param pin_mask This parameter can be a combination of the following values:
424  * @arg @ref LL_AON_GPIO_PIN_0
425  * @arg @ref LL_AON_GPIO_PIN_1
426  * @arg @ref LL_AON_GPIO_PIN_2
427  * @arg @ref LL_AON_GPIO_PIN_3
428  * @arg @ref LL_AON_GPIO_PIN_4
429  * @arg @ref LL_AON_GPIO_PIN_5
430  * @arg @ref LL_AON_GPIO_PIN_6
431  * @arg @ref LL_AON_GPIO_PIN_7
432  * @arg @ref LL_AON_GPIO_PIN_ALL
433  * @param pull This parameter can be one of the following values:
434  * @arg @ref LL_AON_GPIO_PULL_NO
435  * @arg @ref LL_AON_GPIO_PULL_UP
436  * @arg @ref LL_AON_GPIO_PULL_DOWN
437  * @retval None
438  */
439 __STATIC_INLINE void ll_aon_gpio_set_pin_pull(uint32_t pin_mask, uint32_t pull)
440 {
441  uint32_t ps_mask = (pin_mask << AON_IO_AON_PAD_CTRL0_PS_POS) & AON_IO_AON_PAD_CTRL0_PS;
442  uint32_t pe_mask = (pin_mask << AON_IO_AON_PAD_CTRL0_PE_POS) & AON_IO_AON_PAD_CTRL0_PE;
443  uint32_t ps = (pull == LL_AON_GPIO_PULL_UP) ? ps_mask : 0x0000U;
444  uint32_t pe = (pull == LL_AON_GPIO_PULL_NO) ? 0x0000U : pe_mask;
445  MODIFY_REG(AON_IO->AON_PAD_CTRL0, pe_mask | ps_mask, pe | ps);
446 }
447 
448 /**
449  * @brief Return gpio pull-up or pull-down for a dedicated AON_GPIO pin.
450  * @note Warning: only one pin can be passed as parameter.
451  *
452  * Register|BitsName
453  * --------|--------
454  * AON_PAD_CTL0 | PE
455  * AON_PAD_CTL0 | PS
456  *
457  * @param pin This parameter can be one of the following values:
458  * @arg @ref LL_AON_GPIO_PIN_0
459  * @arg @ref LL_AON_GPIO_PIN_1
460  * @arg @ref LL_AON_GPIO_PIN_2
461  * @arg @ref LL_AON_GPIO_PIN_3
462  * @arg @ref LL_AON_GPIO_PIN_4
463  * @arg @ref LL_AON_GPIO_PIN_5
464  * @arg @ref LL_AON_GPIO_PIN_6
465  * @arg @ref LL_AON_GPIO_PIN_7
466  * @retval Returned value can be one of the following values:
467  * @arg @ref LL_AON_GPIO_PULL_NO
468  * @arg @ref LL_AON_GPIO_PULL_UP
469  * @arg @ref LL_AON_GPIO_PULL_DOWN
470  */
471 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_pull(uint32_t pin)
472 {
473  uint32_t ps_mask = (pin << AON_IO_AON_PAD_CTRL0_PS_POS) & AON_IO_AON_PAD_CTRL0_PS;
474  uint32_t pe_mask = (pin << AON_IO_AON_PAD_CTRL0_PE_POS) & AON_IO_AON_PAD_CTRL0_PE;
475  return ((READ_BITS(AON_IO->AON_PAD_CTRL0, pe_mask) == RESET) ? LL_AON_GPIO_PULL_NO :
476  ((READ_BITS(AON_IO->AON_PAD_CTRL0, ps_mask) == RESET) ? LL_AON_GPIO_PULL_DOWN : LL_AON_GPIO_PULL_UP));
477 }
478 
479 /**
480  * @brief Configure gpio pinmux number of a dedicated pin from 0 to 7 for a dedicated port.
481  * @note Possible values are from AF0 to AF15 depending on target.
482  * @note Warning: only one pin can be passed as parameter.
483  *
484  * Register|BitsName
485  * --------|--------
486  * AON_PAD_MUX | AON_PAD_MUX
487  * AON_MCU_OVR | AON_MCU_OVR
488  *
489  * @param pin This parameter can be one of the following values:
490  * @arg @ref LL_AON_GPIO_PIN_0
491  * @arg @ref LL_AON_GPIO_PIN_1
492  * @arg @ref LL_AON_GPIO_PIN_2
493  * @arg @ref LL_AON_GPIO_PIN_3
494  * @arg @ref LL_AON_GPIO_PIN_4
495  * @arg @ref LL_AON_GPIO_PIN_5
496  * @arg @ref LL_AON_GPIO_PIN_6
497  * @arg @ref LL_AON_GPIO_PIN_7
498  * @param mux This parameter can be one of the following values:
499  * IO_MUX_GPIO define
500  * @retval None
501  */
502 __STATIC_INLINE void ll_aon_gpio_set_pin_mux(uint32_t pin, uint32_t mux)
503 {
504  uint8_t id;
505  uint32_t pos;
506 
507  if(IO_MUX_GPIO == mux)
508  {
509  CLEAR_BITS(AON_IO->AON_MCU_OVR, pin << AON_IO_AON_MCU_OVR_OVR_POS);
510  }
511  else
512  {
513  SET_BITS(AON_IO->AON_MCU_OVR, pin << AON_IO_AON_MCU_OVR_OVR_POS);
514  }
515 
516  pin = POSITION_VAL(pin);
517 
518  id = pin >> 2;
519  pos = (pin & 3) << 3; /* pos = (pin % 4) * 8 */
520 
521  MODIFY_REG(MCU_PAD->AON_PAD_MUX[id], IO_MUX_BIT_MASK << pos, mux << pos);
522 }
523 
524 /**
525  * @brief Return gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port.
526  *
527  * Register|BitsName
528  * --------|--------
529  * AON_PAD_MUX | AON_PAD_MUX
530  * AON_MCU_OVR | AON_MCU_OVR
531  *
532  * @param pin This parameter can be one of the following values:
533  * @arg @ref LL_AON_GPIO_PIN_0
534  * @arg @ref LL_AON_GPIO_PIN_1
535  * @arg @ref LL_AON_GPIO_PIN_2
536  * @arg @ref LL_AON_GPIO_PIN_3
537  * @arg @ref LL_AON_GPIO_PIN_4
538  * @arg @ref LL_AON_GPIO_PIN_5
539  * @arg @ref LL_AON_GPIO_PIN_6
540  * @arg @ref LL_AON_GPIO_PIN_7
541  * @retval Returned value can be one of the following values:
542  * IO_MUX_GPIO define
543  */
544 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_mux(uint32_t pin)
545 {
546  if (READ_BITS(AON_IO->AON_MCU_OVR, pin << AON_IO_AON_MCU_OVR_OVR_POS))
547  {
548  uint8_t id;
549  uint32_t pos;
550 
551  pin = POSITION_VAL(pin);
552 
553  id = pin >> 2;
554  pos = (pin & 3) << 3; /* pos = (pin % 4) * 8 */
555 
556  return (READ_BITS(MCU_PAD->AON_PAD_MUX[id], IO_MUX_BIT_MASK << pos) >> pos);
557  }
558  else
559  {
560  return IO_MUX_GPIO;
561  }
562 }
563 
564 /**
565  * @brief Configure slew rate for a dedicated AON_GPIO pin.
566  * @note Warning: only one pin can be passed as parameter.
567  *
568  * Register|BitsName
569  * --------|--------
570  * AON_PAD_CTRL2 | SR
571  *
572  * @param pin_mask This parameter can be a combination of the following values:
573  * @arg @ref LL_AON_GPIO_PIN_0
574  * @arg @ref LL_AON_GPIO_PIN_1
575  * @arg @ref LL_AON_GPIO_PIN_2
576  * @arg @ref LL_AON_GPIO_PIN_3
577  * @arg @ref LL_AON_GPIO_PIN_4
578  * @arg @ref LL_AON_GPIO_PIN_5
579  * @arg @ref LL_AON_GPIO_PIN_6
580  * @arg @ref LL_AON_GPIO_PIN_7
581  * @arg @ref LL_AON_GPIO_PIN_ALL
582  * @param speed This parameter can be one of the following values:
583  * @arg @ref LL_AON_GPIO_SPEED_MEDIUM
584  * @arg @ref LL_AON_GPIO_SPEED_HIGH
585  * @retval None
586  */
587 __STATIC_INLINE void ll_aon_gpio_set_pin_speed(uint32_t pin_mask, uint32_t speed)
588 {
589  if(speed)
590  {
591  MODIFY_REG(AON_IO->AON_PAD_CTRL2, pin_mask << AON_IO_AON_PAD_CTRL2_SR_POS, pin_mask << AON_IO_AON_PAD_CTRL2_SR_POS);
592  }
593  else
594  {
595  MODIFY_REG(AON_IO->AON_PAD_CTRL2, pin_mask << AON_IO_AON_PAD_CTRL2_SR_POS, 0);
596  }
597 }
598 
599 /**
600  * @brief Return slew rate for a dedicated AON_GPIO pin.
601  * @note Warning: only one pin can be passed as parameter.
602  *
603  * Register|BitsName
604  * --------|--------
605  * AON_PAD_CTRL2 | SR
606  *
607  * @param pin This parameter can be one of the following values:
608  * @arg @ref LL_AON_GPIO_PIN_0
609  * @arg @ref LL_AON_GPIO_PIN_1
610  * @arg @ref LL_AON_GPIO_PIN_2
611  * @arg @ref LL_AON_GPIO_PIN_3
612  * @arg @ref LL_AON_GPIO_PIN_4
613  * @arg @ref LL_AON_GPIO_PIN_5
614  * @arg @ref LL_AON_GPIO_PIN_6
615  * @arg @ref LL_AON_GPIO_PIN_7
616  * @retval Returned value can be one of the following values:
617  * @arg @ref LL_AON_GPIO_SPEED_MEDIUM
618  * @arg @ref LL_AON_GPIO_SPEED_HIGH
619  */
620 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_speed(uint32_t pin)
621 {
622  uint32_t pos;
623  pos = POSITION_VAL(pin);
624  return (READ_BITS(AON_IO->AON_PAD_CTRL2, pin << AON_IO_AON_PAD_CTRL2_SR_POS) >> AON_IO_AON_PAD_CTRL2_SR_POS >> pos);
625 }
626 
627 /**
628  * @brief Configure output drive strength for a dedicated AON_GPIO pin.
629  * @note Warning: only one pin can be passed as parameter.
630  *
631  * Register|BitsName
632  * --------|--------
633  * AON_PAD_CTL3 | DS0
634  * AON_PAD_CTL3 | DS1
635  *
636  * @param pin_mask This parameter can be a combination of the following values:
637  * @arg @ref LL_AON_GPIO_PIN_0
638  * @arg @ref LL_AON_GPIO_PIN_1
639  * @arg @ref LL_AON_GPIO_PIN_2
640  * @arg @ref LL_AON_GPIO_PIN_3
641  * @arg @ref LL_AON_GPIO_PIN_4
642  * @arg @ref LL_AON_GPIO_PIN_5
643  * @arg @ref LL_AON_GPIO_PIN_6
644  * @arg @ref LL_AON_GPIO_PIN_7
645  * @arg @ref LL_AON_GPIO_PIN_ALL
646  * @param strength This parameter can be one of the following values:
647  * @arg @ref LL_AON_GPIO_STRENGTH_LOW
648  * @arg @ref LL_AON_GPIO_STRENGTH_MEDIUM
649  * @arg @ref LL_AON_GPIO_STRENGTH_HIGH
650  * @arg @ref LL_AON_GPIO_STRENGTH_ULTRA
651  * @retval None
652  */
653 __STATIC_INLINE void ll_aon_gpio_set_pin_strength(uint32_t pin_mask, uint32_t strength)
654 {
655  uint8_t ds0 = (strength & LL_AON_GPIO_STRENGTH_DS0_MASK) >> LL_AON_GPIO_STRENGTH_DS0_POS;
656  uint8_t ds1 = (strength & LL_AON_GPIO_STRENGTH_DS1_MASK) >> LL_AON_GPIO_STRENGTH_DS1_POS;
657  if(ds0)
658  {
659  MODIFY_REG(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS0_POS , pin_mask << AON_IO_AON_PAD_CTRL3_DS0_POS);
660  }
661  else
662  {
663  MODIFY_REG(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS0_POS , 0);
664  }
665  if(ds1)
666  {
667  MODIFY_REG(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS1_POS , pin_mask << AON_IO_AON_PAD_CTRL3_DS1_POS);
668  }
669  else
670  {
671  MODIFY_REG(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS1_POS , 0);
672  }
673 }
674 
675 /**
676  * @brief Return output strength for a dedicated AON_GPIO pin.
677  * @note Warning: only one pin can be passed as parameter.
678  *
679  * Register|BitsName
680  * --------|--------
681  * AON_PAD_CTL3 | DS0
682  * AON_PAD_CTL3 | DS1
683  *
684  * @param pin_mask This parameter can be one of the following values:
685  * @arg @ref LL_AON_GPIO_PIN_0
686  * @arg @ref LL_AON_GPIO_PIN_1
687  * @arg @ref LL_AON_GPIO_PIN_2
688  * @arg @ref LL_AON_GPIO_PIN_3
689  * @arg @ref LL_AON_GPIO_PIN_4
690  * @arg @ref LL_AON_GPIO_PIN_5
691  * @arg @ref LL_AON_GPIO_PIN_6
692  * @arg @ref LL_AON_GPIO_PIN_7
693  * @retval Returned value can be one of the following values:
694  * @arg @ref LL_AON_GPIO_STRENGTH_LOW
695  * @arg @ref LL_AON_GPIO_STRENGTH_MEDIUM
696  * @arg @ref LL_AON_GPIO_STRENGTH_HIGH
697  * @arg @ref LL_AON_GPIO_STRENGTH_ULTRA
698  */
699 __STATIC_INLINE uint32_t ll_aon_gpio_get_pin_strength(uint32_t pin_mask)
700 {
701  uint32_t pos;
702  pos = POSITION_VAL(pin_mask);
703  uint8_t ds0 = READ_BITS(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS0_POS ) >> AON_IO_AON_PAD_CTRL3_DS0_POS >> pos;
704  uint8_t ds1 = READ_BITS(AON_IO->AON_PAD_CTRL3, pin_mask << AON_IO_AON_PAD_CTRL3_DS1_POS ) >> AON_IO_AON_PAD_CTRL3_DS1_POS >> pos;
705  return ((ds0 << LL_AON_GPIO_STRENGTH_DS0_POS) | (ds1 << LL_AON_GPIO_STRENGTH_DS1_POS));
706 }
707 
708 /**
709  * @brief Enable clock output on AON_GPIO_PIN4.
710  *
711  * Register|BitsName
712  * --------|--------
713  * AON_PAD_CLK | AON_PAD_CLK
714  *
715  * @param clk_sel This parameter can be the following values:
716  * @arg @ref LL_CLK_RNG_OSC_32K
717  * @arg @ref LL_CLK_RNG_OSC_250K
718  * @arg @ref LL_CLK_RC_OSC_CLK
719  * @arg @ref LL_CLK_RTC_CLK
720  * @retval None
721  */
722 __STATIC_INLINE void ll_aon_gpio4_enable_clk_output(uint32_t clk_sel)
723 {
724  MODIFY_REG(AON_IO->AON_PAD_CLK, AON_IO_AON_PAD_CLK_AON_GPIO4_CLK_SEL,
725  AON_IO_AON_PAD_CLK_AON_GPIO4_OUT_EN | (clk_sel<<AON_IO_AON_PAD_CLK_AON_GPIO4_CLK_SEL_Pos));
726 }
727 
728 /**
729  * @brief Disable clock output on AON_GPIO_PIN4.
730  *
731  * Register|BitsName
732  * --------|--------
733  * AON_PAD_CLK | AON_PAD_CLK
734  *
735  * @retval None
736  */
737 __STATIC_INLINE void ll_aon_gpio4_disable_clk_output(void)
738 {
739  CLEAR_BITS(AON_IO->AON_PAD_CLK, AON_IO_AON_PAD_CLK_AON_GPIO4_OUT_EN);
740 }
741 
742 /**
743  * @brief Check if clock output on AON_GPIO_PIN4 is enabled or disabled.
744  *
745  * Register|BitsName
746  * --------|--------
747  * AON_PAD_CLK | AON_PAD_CLK
748  *
749  * @retval State of bit (1 or 0).
750  */
751 __STATIC_INLINE uint32_t ll_aon_gpio4_is_enabled_clk_output(void)
752 {
753  return (READ_BITS(AON_IO->AON_PAD_CLK, AON_IO_AON_PAD_CLK_AON_GPIO4_OUT_EN) == AON_IO_AON_PAD_CLK_AON_GPIO4_OUT_EN);
754 }
755 
756 /**
757  * @brief Enable Xo_2MHz output on AON_GPIO_PIN5.
758  *
759  * Register|BitsName
760  * --------|--------
761  * PWR_RET01 | XO_2MHZ_ENA
762  *
763  * @retval None
764  */
765 __STATIC_INLINE void ll_aon_gpio_enable_xo_2mhz_output(void)
766 {
767  SET_BITS(AON_CTL->XO_CTRL, AON_CTL_XO_CTRL_2MHZ_OUT);
768 }
769 
770 /**
771  * @brief Disable Xo_2MHz output on AON_GPIO_PIN5.
772  *
773  * Register|BitsName
774  * --------|--------
775  * PWR_RET01 | XO_2MHZ_ENA
776  *
777  * @retval None
778  */
779 __STATIC_INLINE void ll_aon_gpio_disable_xo_2mhz_output(void)
780 {
781  CLEAR_BITS(AON_CTL->XO_CTRL, AON_CTL_XO_CTRL_2MHZ_OUT);
782 }
783 
784 /**
785  * @brief Check if Xo_2MHz output on AON_GPIO_PIN5 is enabled or disabled.
786  *
787  * Register|BitsName
788  * --------|--------
789  * PWR_RET01 | XO_2MHZ_ENA
790  *
791  * @retval None
792  */
793 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_xo_2mhz_output(void)
794 {
795  return (uint32_t)(READ_BITS(AON_CTL->XO_CTRL, AON_CTL_XO_CTRL_2MHZ_OUT) == AON_CTL_XO_CTRL_2MHZ_OUT);
796 }
797 
798 /** @} */
799 
800 /** @defgroup AON_GPIO_LL_EF_Data_Access Data Access
801  * @{
802  */
803 
804 /**
805  * @brief Return full input data register value of AON_GPIO.
806  *
807  * Register|BitsName
808  * --------|--------
809  * AON_PAD_CTL1 | IN_VAL
810  *
811  * @retval Input data register value of port
812  */
813 __STATIC_INLINE uint32_t ll_aon_gpio_read_input_port(void)
814 {
815  uint32_t pin_mask = (LL_AON_GPIO_PIN_ALL << AON_IO_AON_PAD_CTRL1_IN_VAL_POS) & AON_IO_AON_PAD_CTRL1_IN_VAL;
816  return (uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL1, pin_mask) >> AON_IO_AON_PAD_CTRL1_IN_VAL_POS);
817 }
818 
819 /**
820  * @brief Return if input data level of several AON_GPIO pins is high or low.
821  *
822  * Register|BitsName
823  * --------|--------
824  * AON_PAD_CTL1 | IN_VAL
825  *
826  * @param pin_mask This parameter can be a combination of the following values:
827  * @arg @ref LL_AON_GPIO_PIN_0
828  * @arg @ref LL_AON_GPIO_PIN_1
829  * @arg @ref LL_AON_GPIO_PIN_2
830  * @arg @ref LL_AON_GPIO_PIN_3
831  * @arg @ref LL_AON_GPIO_PIN_4
832  * @arg @ref LL_AON_GPIO_PIN_5
833  * @arg @ref LL_AON_GPIO_PIN_6
834  * @arg @ref LL_AON_GPIO_PIN_7
835  * @arg @ref LL_AON_GPIO_PIN_ALL
836  * @retval State of bit (1 or 0).
837  */
838 __STATIC_INLINE uint32_t ll_aon_gpio_read_input_pin(uint32_t pin_mask)
839 {
840  pin_mask = (pin_mask << AON_IO_AON_PAD_CTRL1_IN_VAL_POS) & AON_IO_AON_PAD_CTRL1_IN_VAL;
841  return (uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL1, pin_mask) == pin_mask);
842 }
843 
844 /**
845  * @brief Return if output data level of several AON_GPIO pins is high or low.
846  *
847  * Register|BitsName
848  * --------|--------
849  * AON_PAD_CTL1 | AON_GPIO
850  *
851  * @param pin_mask This parameter can be a combination of the following values:
852  * @arg @ref LL_AON_GPIO_PIN_0
853  * @arg @ref LL_AON_GPIO_PIN_1
854  * @arg @ref LL_AON_GPIO_PIN_2
855  * @arg @ref LL_AON_GPIO_PIN_3
856  * @arg @ref LL_AON_GPIO_PIN_4
857  * @arg @ref LL_AON_GPIO_PIN_5
858  * @arg @ref LL_AON_GPIO_PIN_6
859  * @arg @ref LL_AON_GPIO_PIN_7
860  * @arg @ref LL_AON_GPIO_PIN_ALL
861  * @retval State of bit (1 or 0).
862  */
863 __STATIC_INLINE uint32_t ll_aon_gpio_read_output_pin(uint32_t pin_mask)
864 {
865  pin_mask = (pin_mask << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL;
866  return (uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL1, pin_mask) == pin_mask);
867 }
868 
869 /**
870  * @brief Write output data register of AON_GPIO.
871  *
872  * Register|BitsName
873  * --------|--------
874  * AON_PAD_CTL1 | AON_GPO
875  *
876  * @param port_value Level value for each pin of the port
877  * @retval None
878  */
879 __STATIC_INLINE void ll_aon_gpio_write_output_port(uint32_t port_value)
880 {
881  MODIFY_REG(AON_IO->AON_PAD_CTRL1, AON_IO_AON_PAD_CTRL1_OUT_VAL, (port_value << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL);
882 }
883 
884 /**
885  * @brief Return full output data register value of AON_GPIO.
886  *
887  * Register|BitsName
888  * --------|--------
889  * AON_PAD_CTL1 | AON_GPO
890  *
891  * @retval Output data register value of port
892  */
893 __STATIC_INLINE uint32_t ll_aon_gpio_read_output_port(void)
894 {
895  return (uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL1, AON_IO_AON_PAD_CTRL1_OUT_VAL) >> AON_IO_AON_PAD_CTRL1_OUT_VAL_POS);
896 }
897 
898 /**
899  * @brief Return if input data level of several AON_GPIO pins is high or low.
900  *
901  * Register|BitsName
902  * --------|--------
903  * AON_PAD_CTL1 | AON_GPO
904  *
905  * @param pin_mask This parameter can be a combination of the following values:
906  * @arg @ref LL_AON_GPIO_PIN_0
907  * @arg @ref LL_AON_GPIO_PIN_1
908  * @arg @ref LL_AON_GPIO_PIN_2
909  * @arg @ref LL_AON_GPIO_PIN_3
910  * @arg @ref LL_AON_GPIO_PIN_4
911  * @arg @ref LL_AON_GPIO_PIN_5
912  * @arg @ref LL_AON_GPIO_PIN_6
913  * @arg @ref LL_AON_GPIO_PIN_7
914  * @arg @ref LL_AON_GPIO_PIN_ALL
915  * @retval State of bit (1 or 0).
916  */
917 __STATIC_INLINE uint32_t ll_aon_gpio_is_output_pin_set(uint32_t pin_mask)
918 {
919  pin_mask = (pin_mask << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL;
920  return (uint32_t)(READ_BITS(AON_IO->AON_PAD_CTRL1, pin_mask) == pin_mask);
921 }
922 
923 /**
924  * @brief Set specified AON_GPIO pins to high level
925  *
926  * Register|BitsName
927  * --------|--------
928  * AON_PAD_CTL1 | AON_GPO
929  *
930  * @param pin_mask This parameter can be a combination of the following values:
931  * @arg @ref LL_AON_GPIO_PIN_0
932  * @arg @ref LL_AON_GPIO_PIN_1
933  * @arg @ref LL_AON_GPIO_PIN_2
934  * @arg @ref LL_AON_GPIO_PIN_3
935  * @arg @ref LL_AON_GPIO_PIN_4
936  * @arg @ref LL_AON_GPIO_PIN_5
937  * @arg @ref LL_AON_GPIO_PIN_6
938  * @arg @ref LL_AON_GPIO_PIN_7
939  * @arg @ref LL_AON_GPIO_PIN_ALL
940  * @retval None
941  */
942 __STATIC_INLINE void ll_aon_gpio_set_output_pin(uint32_t pin_mask)
943 {
944  SET_BITS(AON_IO->AON_PAD_CTRL1, (pin_mask << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL);
945 }
946 
947 /**
948  * @brief Set specified AON_GPIO pins to low level.
949  *
950  * Register|BitsName
951  * --------|--------
952  * AON_PAD_CTL1 | AON_GPO
953  *
954  * @param pin_mask This parameter can be a combination of the following values:
955  * @arg @ref LL_AON_GPIO_PIN_0
956  * @arg @ref LL_AON_GPIO_PIN_1
957  * @arg @ref LL_AON_GPIO_PIN_2
958  * @arg @ref LL_AON_GPIO_PIN_3
959  * @arg @ref LL_AON_GPIO_PIN_4
960  * @arg @ref LL_AON_GPIO_PIN_5
961  * @arg @ref LL_AON_GPIO_PIN_6
962  * @arg @ref LL_AON_GPIO_PIN_7
963  * @arg @ref LL_AON_GPIO_PIN_ALL
964  * @retval None
965  */
966 __STATIC_INLINE void ll_aon_gpio_reset_output_pin(uint32_t pin_mask)
967 {
968  CLEAR_BITS(AON_IO->AON_PAD_CTRL1, (pin_mask << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL);
969 }
970 
971 /**
972  * @brief Toggle data value of specified AON_GPIO pins.
973  *
974  * Register|BitsName
975  * --------|--------
976  * AON_PAD_CTL1 | AON_GPO
977  *
978  * @param pin_mask This parameter can be a combination of the following values:
979  * @arg @ref LL_AON_GPIO_PIN_0
980  * @arg @ref LL_AON_GPIO_PIN_1
981  * @arg @ref LL_AON_GPIO_PIN_2
982  * @arg @ref LL_AON_GPIO_PIN_3
983  * @arg @ref LL_AON_GPIO_PIN_4
984  * @arg @ref LL_AON_GPIO_PIN_5
985  * @arg @ref LL_AON_GPIO_PIN_6
986  * @arg @ref LL_AON_GPIO_PIN_7
987  * @arg @ref LL_AON_GPIO_PIN_ALL
988  * @retval None
989  */
990 __STATIC_INLINE void ll_aon_gpio_toggle_pin(uint32_t pin_mask)
991 {
992  WRITE_REG(AON_IO->AON_PAD_CTRL1, (READ_REG(AON_IO->AON_PAD_CTRL1)
993  ^ ((pin_mask << AON_IO_AON_PAD_CTRL1_OUT_VAL_POS) & AON_IO_AON_PAD_CTRL1_OUT_VAL)));
994 }
995 
996 /** @} */
997 
998 /** @defgroup AON_GPIO_LL_EF_IT_Management IT_Management
999  * @{
1000  */
1001 
1002 /**
1003  * @brief Enable AON_GPIO Falling Edge Trigger of specified AON_GPIO pins.
1004  *
1005  * Register|BitsName
1006  * --------|--------
1007  * INTPOLCLR | INTPOLCLR
1008  * INTTYPESET | INTTYPESET
1009  *
1010  * @param pin_mask This parameter can be a combination of the following values:
1011  * @arg @ref LL_AON_GPIO_PIN_0
1012  * @arg @ref LL_AON_GPIO_PIN_1
1013  * @arg @ref LL_AON_GPIO_PIN_2
1014  * @arg @ref LL_AON_GPIO_PIN_3
1015  * @arg @ref LL_AON_GPIO_PIN_4
1016  * @arg @ref LL_AON_GPIO_PIN_5
1017  * @arg @ref LL_AON_GPIO_PIN_6
1018  * @arg @ref LL_AON_GPIO_PIN_7
1019  * @arg @ref LL_AON_GPIO_PIN_ALL
1020  * @retval None
1021  */
1022 __STATIC_INLINE void ll_aon_gpio_enable_falling_trigger(uint32_t pin_mask)
1023 {
1024  uint32_t invert = (pin_mask << AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & AON_IO_EXT_WAKEUP_CTRL0_INVERT;
1025  uint32_t edge_en = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN;
1026  uint32_t edge_type = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE;
1027  uint32_t both = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH;
1028  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL0, invert);
1029  MODIFY_REG(AON_CTL->EXT_WAKEUP_CTRL1, both, edge_en | edge_type);
1030 }
1031 
1032 /**
1033  * @brief Check if falling edge trigger is enabled of specified AON_GPIO pins.
1034  *
1035  * Register|BitsName
1036  * --------|--------
1037  * INTPOLCLR | INTPOLCLR
1038  * INTTYPESET | INTTYPESET
1039  *
1040  * @param pin_mask This parameter can be a combination of the following values:
1041  * @arg @ref LL_AON_GPIO_PIN_0
1042  * @arg @ref LL_AON_GPIO_PIN_1
1043  * @arg @ref LL_AON_GPIO_PIN_2
1044  * @arg @ref LL_AON_GPIO_PIN_3
1045  * @arg @ref LL_AON_GPIO_PIN_4
1046  * @arg @ref LL_AON_GPIO_PIN_5
1047  * @arg @ref LL_AON_GPIO_PIN_6
1048  * @arg @ref LL_AON_GPIO_PIN_7
1049  * @arg @ref LL_AON_GPIO_PIN_ALL
1050  * @retval State of bit (1 or 0)
1051  */
1052 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_falling_trigger(uint32_t pin_mask)
1053 {
1054  uint32_t invert = ((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_INVERT) >> AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & (pin_mask)) == (pin_mask);
1055  uint32_t edge_en = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & (pin_mask)) == (pin_mask);
1056  uint32_t edge_type = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE_POS) & (pin_mask)) == (pin_mask);
1057  return (invert && edge_en && edge_type);
1058 }
1059 
1060 /**
1061  * @brief Enable AON_GPIO Rising Edge Trigger of specified AON_GPIO pins.
1062  *
1063  * Register|BitsName
1064  * --------|--------
1065  * INTPOLSET | INTPOLSET
1066  * INTTYPESET | INTTYPESET
1067  *
1068  * @param pin_mask This parameter can be a combination of the following values:
1069  * @arg @ref LL_AON_GPIO_PIN_0
1070  * @arg @ref LL_AON_GPIO_PIN_1
1071  * @arg @ref LL_AON_GPIO_PIN_2
1072  * @arg @ref LL_AON_GPIO_PIN_3
1073  * @arg @ref LL_AON_GPIO_PIN_4
1074  * @arg @ref LL_AON_GPIO_PIN_5
1075  * @arg @ref LL_AON_GPIO_PIN_6
1076  * @arg @ref LL_AON_GPIO_PIN_7
1077  * @arg @ref LL_AON_GPIO_PIN_ALL
1078  * @retval None
1079  */
1080 __STATIC_INLINE void ll_aon_gpio_enable_rising_trigger(uint32_t pin_mask)
1081 {
1082  uint32_t invert = (pin_mask << AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & AON_IO_EXT_WAKEUP_CTRL0_INVERT;
1083  uint32_t edge_en = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN;
1084  uint32_t edge_type = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE;
1085  uint32_t both = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH;
1086  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL0, invert);
1087  MODIFY_REG(AON_CTL->EXT_WAKEUP_CTRL1, edge_type | both, edge_en);
1088 }
1089 
1090 /**
1091  * @brief Check if rising edge trigger is enabled of specified AON_GPIO pins.
1092  * @note Please check each device line mapping for AON_GPIO Line availability
1093  *
1094  * Register|BitsName
1095  * --------|--------
1096  * INTPOLSET | INTPOLSET
1097  * INTTYPESET | INTTYPESET
1098  *
1099  * @param pin_mask This parameter can be a combination of the following values:
1100  * @arg @ref LL_AON_GPIO_PIN_0
1101  * @arg @ref LL_AON_GPIO_PIN_1
1102  * @arg @ref LL_AON_GPIO_PIN_2
1103  * @arg @ref LL_AON_GPIO_PIN_3
1104  * @arg @ref LL_AON_GPIO_PIN_4
1105  * @arg @ref LL_AON_GPIO_PIN_5
1106  * @arg @ref LL_AON_GPIO_PIN_6
1107  * @arg @ref LL_AON_GPIO_PIN_7
1108  * @arg @ref LL_AON_GPIO_PIN_ALL
1109  * @retval State of bit (1 or 0).
1110  */
1111 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_rising_trigger(uint32_t pin_mask)
1112 {
1113  uint32_t invert = (((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_INVERT)) >> AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & (pin_mask)) == (pin_mask);
1114  uint32_t edge_en = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & (pin_mask)) == (pin_mask);
1115  uint32_t edge_type = (((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE)) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE_POS) & (pin_mask)) == (pin_mask);
1116  return (invert && edge_en && edge_type);
1117 }
1118 
1119 /**
1120  * @brief Enable AON_GPIO High Level Trigger of specified AON_GPIO pins.
1121  *
1122  * Register|BitsName
1123  * --------|--------
1124  * INTPOLSET | INTPOLSET
1125  * INTTYPECLR | INTTYPECLR
1126  *
1127  * @param pin_mask This parameter can be a combination of the following values:
1128  * @arg @ref LL_AON_GPIO_PIN_0
1129  * @arg @ref LL_AON_GPIO_PIN_1
1130  * @arg @ref LL_AON_GPIO_PIN_2
1131  * @arg @ref LL_AON_GPIO_PIN_3
1132  * @arg @ref LL_AON_GPIO_PIN_4
1133  * @arg @ref LL_AON_GPIO_PIN_5
1134  * @arg @ref LL_AON_GPIO_PIN_6
1135  * @arg @ref LL_AON_GPIO_PIN_7
1136  * @arg @ref LL_AON_GPIO_PIN_ALL
1137  * @retval None
1138  */
1139 __STATIC_INLINE void ll_aon_gpio_enable_high_trigger(uint32_t pin_mask)
1140 {
1141  uint32_t invert = (pin_mask << AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & AON_IO_EXT_WAKEUP_CTRL0_INVERT;
1142  uint32_t edge_en = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN;
1143  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL0, invert);
1144  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL1, edge_en);
1145 }
1146 
1147 /**
1148  * @brief Check if high level trigger is enabled of specified AON_GPIO pins.
1149  *
1150  * Register|BitsName
1151  * --------|--------
1152  * INTPOLSET | INTPOLSET
1153  * INTTYPECLR | INTTYPECLR
1154  *
1155  * @param pin_mask This parameter can be a combination of the following values:
1156  * @arg @ref LL_AON_GPIO_PIN_0
1157  * @arg @ref LL_AON_GPIO_PIN_1
1158  * @arg @ref LL_AON_GPIO_PIN_2
1159  * @arg @ref LL_AON_GPIO_PIN_3
1160  * @arg @ref LL_AON_GPIO_PIN_4
1161  * @arg @ref LL_AON_GPIO_PIN_5
1162  * @arg @ref LL_AON_GPIO_PIN_6
1163  * @arg @ref LL_AON_GPIO_PIN_7
1164  * @arg @ref LL_AON_GPIO_PIN_ALL
1165  * @retval State of bit (1 or 0).
1166  */
1167 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_high_trigger(uint32_t pin_mask)
1168 {
1169  uint32_t invert = (((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_INVERT)) >> AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & (pin_mask)) == (pin_mask);
1170  uint32_t edge_en = (((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN)) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & (pin_mask)) == (pin_mask);
1171  return (invert && edge_en );
1172 }
1173 
1174 /**
1175  * @brief Enable AON_GPIO Low Level Trigger of specified AON_GPIO pins.
1176  *
1177  * Register|BitsName
1178  * --------|--------
1179  * INTPOLCLR | INTPOLCLR
1180  * INTTYPECLR | INTTYPECLR
1181  *
1182  * @param pin_mask This parameter can be a combination of the following values:
1183  * @arg @ref LL_AON_GPIO_PIN_0
1184  * @arg @ref LL_AON_GPIO_PIN_1
1185  * @arg @ref LL_AON_GPIO_PIN_2
1186  * @arg @ref LL_AON_GPIO_PIN_3
1187  * @arg @ref LL_AON_GPIO_PIN_4
1188  * @arg @ref LL_AON_GPIO_PIN_5
1189  * @arg @ref LL_AON_GPIO_PIN_6
1190  * @arg @ref LL_AON_GPIO_PIN_7
1191  * @arg @ref LL_AON_GPIO_PIN_ALL
1192  * @retval None
1193  */
1194 __STATIC_INLINE void ll_aon_gpio_enable_low_trigger(uint32_t pin_mask)
1195 {
1196  uint32_t invert = (pin_mask << AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & AON_IO_EXT_WAKEUP_CTRL0_INVERT;
1197  uint32_t edge_en = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN;
1198  SET_BITS(AON_CTL->EXT_WAKEUP_CTRL0, invert);
1199  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL1, edge_en);
1200 }
1201 
1202 /**
1203  * @brief Check if low level trigger is enabled of specified AON_GPIO pins.
1204  *
1205  * Register|BitsName
1206  * --------|--------
1207  * INTPOLCLR | INTPOLCLR
1208  * INTTYPECLR | INTTYPECLR
1209  *
1210  * @param pin_mask This parameter can be a combination of the following values:
1211  * @arg @ref LL_AON_GPIO_PIN_0
1212  * @arg @ref LL_AON_GPIO_PIN_1
1213  * @arg @ref LL_AON_GPIO_PIN_2
1214  * @arg @ref LL_AON_GPIO_PIN_3
1215  * @arg @ref LL_AON_GPIO_PIN_4
1216  * @arg @ref LL_AON_GPIO_PIN_5
1217  * @arg @ref LL_AON_GPIO_PIN_6
1218  * @arg @ref LL_AON_GPIO_PIN_7
1219  * @arg @ref LL_AON_GPIO_PIN_ALL
1220  * @retval State of bit (1 or 0).
1221  */
1222 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_low_trigger(uint32_t pin_mask)
1223 {
1224  uint32_t invert = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_INVERT) >> AON_IO_EXT_WAKEUP_CTRL0_INVERT_POS) & (pin_mask)) == (pin_mask);
1225  uint32_t edge_en = (((~READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN)) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & (pin_mask)) == (pin_mask);
1226  return (invert && edge_en);
1227 }
1228 
1229 /**
1230  * @brief Enable AON_GPIO Low Level Trigger of specified AON_GPIO pins.
1231  *
1232  * Register|BitsName
1233  * --------|--------
1234  * INTPOLCLR | INTPOLCLR
1235  * INTTYPECLR | INTTYPECLR
1236  *
1237  * @param pin_mask This parameter can be a combination of the following values:
1238  * @arg @ref LL_AON_GPIO_PIN_0
1239  * @arg @ref LL_AON_GPIO_PIN_1
1240  * @arg @ref LL_AON_GPIO_PIN_2
1241  * @arg @ref LL_AON_GPIO_PIN_3
1242  * @arg @ref LL_AON_GPIO_PIN_4
1243  * @arg @ref LL_AON_GPIO_PIN_5
1244  * @arg @ref LL_AON_GPIO_PIN_6
1245  * @arg @ref LL_AON_GPIO_PIN_7
1246  * @arg @ref LL_AON_GPIO_PIN_ALL
1247  * @retval None
1248  */
1249 __STATIC_INLINE void ll_aon_gpio_enable_both_trigger(uint32_t pin_mask)
1250 {
1251  uint32_t edge_en = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN;
1252  uint32_t both = (pin_mask << AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH_POS) & AON_IO_EXT_WAKEUP_CTRL1_EDGE_BOTH;
1253  SET_BITS(AON_CTL->EXT_WAKEUP_CTRL1, edge_en | both);
1254 }
1255 
1256 /**
1257  * @brief Check if low level trigger is enabled of specified AON_GPIO pins.
1258  *
1259  * Register|BitsName
1260  * --------|--------
1261  * INTPOLCLR | INTPOLCLR
1262  * INTTYPECLR | INTTYPECLR
1263  *
1264  * @param pin_mask This parameter can be a combination of the following values:
1265  * @arg @ref LL_AON_GPIO_PIN_0
1266  * @arg @ref LL_AON_GPIO_PIN_1
1267  * @arg @ref LL_AON_GPIO_PIN_2
1268  * @arg @ref LL_AON_GPIO_PIN_3
1269  * @arg @ref LL_AON_GPIO_PIN_4
1270  * @arg @ref LL_AON_GPIO_PIN_5
1271  * @arg @ref LL_AON_GPIO_PIN_6
1272  * @arg @ref LL_AON_GPIO_PIN_7
1273  * @arg @ref LL_AON_GPIO_PIN_ALL
1274  * @retval State of bit (1 or 0)
1275  */
1276 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_both_trigger(uint32_t pin_mask)
1277 {
1278  uint32_t edge_en = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_EN_POS) & (pin_mask)) == (pin_mask);
1279  uint32_t edge_both = ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL1, AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE) >> AON_IO_EXT_WAKEUP_CTRL1_EDGE_TYPE_POS) & (pin_mask)) == (pin_mask);
1280  return ( edge_en && edge_both);
1281 }
1282 
1283 /**
1284  * @brief Enable AON_GPIO interrupts of specified AON_GPIO pins.
1285  * @note @ref AON_GPIO_LL_EC_TRIGGER can be used to specify the interrupt trigger type
1286  *
1287  * Register|BitsName
1288  * --------|--------
1289  * INTENSET | INTENSET
1290  *
1291  * @param pin_mask This parameter can be a combination of the following values:
1292  * @arg @ref LL_AON_GPIO_PIN_0
1293  * @arg @ref LL_AON_GPIO_PIN_1
1294  * @arg @ref LL_AON_GPIO_PIN_2
1295  * @arg @ref LL_AON_GPIO_PIN_3
1296  * @arg @ref LL_AON_GPIO_PIN_4
1297  * @arg @ref LL_AON_GPIO_PIN_5
1298  * @arg @ref LL_AON_GPIO_PIN_6
1299  * @arg @ref LL_AON_GPIO_PIN_7
1300  * @arg @ref LL_AON_GPIO_PIN_ALL
1301  * @retval None
1302  */
1303 __STATIC_INLINE void ll_aon_gpio_enable_it(uint32_t pin_mask)
1304 {
1305  SET_BITS(AON_CTL->EXT_WAKEUP_CTRL0, pin_mask);
1306 }
1307 
1308 /**
1309  * @brief Disable AON_GPIO interrupts of specified AON_GPIO pins.
1310  * @note @ref AON_GPIO_LL_EC_TRIGGER can be used to specify the interrupt trigger type
1311  *
1312  * Register|BitsName
1313  * --------|--------
1314  * INTENCLR | INTENCLR
1315  *
1316  * @param pin_mask This parameter can be a combination of the following values:
1317  * @arg @ref LL_AON_GPIO_PIN_0
1318  * @arg @ref LL_AON_GPIO_PIN_1
1319  * @arg @ref LL_AON_GPIO_PIN_2
1320  * @arg @ref LL_AON_GPIO_PIN_3
1321  * @arg @ref LL_AON_GPIO_PIN_4
1322  * @arg @ref LL_AON_GPIO_PIN_5
1323  * @arg @ref LL_AON_GPIO_PIN_6
1324  * @arg @ref LL_AON_GPIO_PIN_7
1325  * @arg @ref LL_AON_GPIO_PIN_ALL
1326  * @retval None
1327  */
1328 __STATIC_INLINE void ll_aon_gpio_disable_it(uint32_t pin_mask)
1329 {
1330  CLEAR_BITS(AON_CTL->EXT_WAKEUP_CTRL0, pin_mask);
1331 }
1332 
1333 /**
1334  * @brief Check if the Interrupt of specified GPIO pins is enabled or disabled.
1335  *
1336  * Register|BitsName
1337  * --------|--------
1338  * INTENSET | INTENSET
1339  *
1340  * @param pin_mask This parameter can be a combination of the following values:
1341  * @arg @ref LL_AON_GPIO_PIN_0
1342  * @arg @ref LL_AON_GPIO_PIN_1
1343  * @arg @ref LL_AON_GPIO_PIN_2
1344  * @arg @ref LL_AON_GPIO_PIN_3
1345  * @arg @ref LL_AON_GPIO_PIN_4
1346  * @arg @ref LL_AON_GPIO_PIN_5
1347  * @arg @ref LL_AON_GPIO_PIN_6
1348  * @arg @ref LL_AON_GPIO_PIN_7
1349  * @arg @ref LL_AON_GPIO_PIN_ALL
1350  * @retval State of bit (1 or 0).
1351  */
1352 __STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_it(uint32_t pin_mask)
1353 {
1354  return ((READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_SRC_EN) & (pin_mask)) == (pin_mask));
1355 }
1356 
1357 /**
1358  * @brief Get aon gpio enable pins.
1359  *
1360  * Register|BitsName
1361  * --------|--------
1362  * INTENSET | INTENSET
1363  * @retval Returned value can be one of the following values:
1364  * @arg @ref LL_AON_GPIO_PIN_0
1365  * @arg @ref LL_AON_GPIO_PIN_1
1366  * @arg @ref LL_AON_GPIO_PIN_2
1367  * @arg @ref LL_AON_GPIO_PIN_3
1368  * @arg @ref LL_AON_GPIO_PIN_4
1369  * @arg @ref LL_AON_GPIO_PIN_5
1370  * @arg @ref LL_AON_GPIO_PIN_6
1371  * @arg @ref LL_AON_GPIO_PIN_7
1372  * @arg @ref LL_AON_GPIO_PIN_ALL
1373  */
1374 __STATIC_INLINE uint32_t ll_aon_gpio_get_enabled_pin(void)
1375 {
1376  return (READ_BITS(AON_CTL->EXT_WAKEUP_CTRL0, AON_IO_EXT_WAKEUP_CTRL0_SRC_EN));
1377 }
1378 
1379 /**
1380  * @brief Check if the AON_GPIO master interrupt is enabled or disabled.
1381  *
1382  * Register|BitsName
1383  * --------|--------
1384  * AON_MISC | MCU_WAKEUP_CTRL
1385  * @retval State of bit (1 or 0).
1386  */
1387 __STATIC_INLINE uint32_t ll_aon_gpio_is_enable_wakeup_it(void)
1388 {
1389  return (READ_BITS(AON_CTL->MCU_WAKEUP_CTRL, AON_CTL_MCU_WAKEUP_CTRL_EXT) == (AON_CTL_MCU_WAKEUP_CTRL_EXT));
1390 }
1391 
1392 /** @} */
1393 
1394 /** @defgroup AON_GPIO_LL_EF_Flag_Management Flag_Management
1395  * @{
1396  */
1397 
1398 /**
1399  * @brief Read AON_GPIO Interrupt Combination Flag of specified AON_GPIO pins.
1400  * @note After an interrupt is triggered, the corresponding bit in the INTSTATUS Register is set.
1401  * The interrupt status can cleared by writing 1 to corresponding bit in INTCLEAR Register.
1402  *
1403  * Register|BitsName
1404  * --------|--------
1405  * INTSTATUS | INTSTATUS
1406  *
1407  * @param pin_mask This parameter can be a combination of the following values:
1408  * @arg @ref LL_AON_GPIO_PIN_0
1409  * @arg @ref LL_AON_GPIO_PIN_1
1410  * @arg @ref LL_AON_GPIO_PIN_2
1411  * @arg @ref LL_AON_GPIO_PIN_3
1412  * @arg @ref LL_AON_GPIO_PIN_4
1413  * @arg @ref LL_AON_GPIO_PIN_5
1414  * @arg @ref LL_AON_GPIO_PIN_6
1415  * @arg @ref LL_AON_GPIO_PIN_7
1416  * @arg @ref LL_AON_GPIO_PIN_ALL
1417  * @retval Interrupt flag whose bits were set when the selected trigger event arrives on the interrupt
1418  */
1419 __STATIC_INLINE uint16_t ll_aon_gpio_read_flag_it(uint32_t pin_mask)
1420 {
1421  return (READ_BITS(AON_CTL->EXT_WAKEUP_STAT, AON_IO_EXT_WAKEUP_STAT_STAT) & (pin_mask));
1422 }
1423 
1424 /**
1425  * @brief Indicate if the AON_GPIO Interrupt Flag is set or not of specified AON_GPIO pins.
1426  * @note After an interrupt is triggered, the corresponding bit in the INTSTATUS Register is set.
1427  * The interrupt status can cleared by writing 1 to corresponding bit in INTCLEAR Register.
1428  *
1429  * Register|BitsName
1430  * --------|--------
1431  * INTSTATUS | INTSTATUS
1432  *
1433  * @param pin_mask This parameter can be a combination of the following values:
1434  * @arg @ref LL_AON_GPIO_PIN_0
1435  * @arg @ref LL_AON_GPIO_PIN_1
1436  * @arg @ref LL_AON_GPIO_PIN_2
1437  * @arg @ref LL_AON_GPIO_PIN_3
1438  * @arg @ref LL_AON_GPIO_PIN_4
1439  * @arg @ref LL_AON_GPIO_PIN_5
1440  * @arg @ref LL_AON_GPIO_PIN_6
1441  * @arg @ref LL_AON_GPIO_PIN_7
1442  * @arg @ref LL_AON_GPIO_PIN_ALL
1443  * @retval State of bit (1 or 0).
1444  */
1445 __STATIC_INLINE uint32_t ll_aon_gpio_is_active_flag_it(uint32_t pin_mask)
1446 {
1447  return ((READ_BITS(AON_CTL->EXT_WAKEUP_STAT, AON_IO_EXT_WAKEUP_STAT_STAT) & (pin_mask)) == (pin_mask));
1448 }
1449 
1450 /**
1451  * @brief Clear Interrupt Status flag of specified AON_GPIO pins.
1452  * @note After an interrupt is triggered, the corresponding bit in the INTSTATUS Register is set.
1453  * The interrupt status can be cleared by writing 1 to corresponding bit in INTCLEAR Register.
1454  *
1455  * Register|BitsName
1456  * --------|--------
1457  * INTSTATUS | INTSTATUS
1458  *
1459  * @param pin_mask This parameter can be a combination of the following values:
1460  * @arg @ref LL_AON_GPIO_PIN_0
1461  * @arg @ref LL_AON_GPIO_PIN_1
1462  * @arg @ref LL_AON_GPIO_PIN_2
1463  * @arg @ref LL_AON_GPIO_PIN_3
1464  * @arg @ref LL_AON_GPIO_PIN_4
1465  * @arg @ref LL_AON_GPIO_PIN_5
1466  * @arg @ref LL_AON_GPIO_PIN_6
1467  * @arg @ref LL_AON_GPIO_PIN_7
1468  * @arg @ref LL_AON_GPIO_PIN_ALL
1469  * @retval None
1470  */
1471 __STATIC_INLINE void ll_aon_gpio_clear_flag_it(uint32_t pin_mask)
1472 {
1473  CLEAR_BITS(AON_CTL->EXT_WAKEUP_STAT, pin_mask);
1474 }
1475 
1476 /**
1477  * @brief Indicate if the AON GPIO event flag is set or not.
1478  * @note This bit is set by hardware when system wakeup by AON GPIO.
1479  * It can be cleared by writing 0 to this bit.
1480  *
1481  * Register|BitsName
1482  * --------|--------
1483  * SLP_EVENT | AON GPIO
1484  *
1485  * @retval State of bit (1 or 0).
1486  */
1487 __STATIC_INLINE uint16_t ll_aon_gpio_read_event_flag_it(void)
1488 {
1489  return (uint16_t)(READ_BITS(AON_CTL->AON_SLP_EVENT, AON_CTL_SLP_EVENT_EXT) == AON_CTL_SLP_EVENT_EXT);
1490 }
1491 
1492 /**
1493  * @brief Clear AON GPIO event interrupt flag.
1494  *
1495  * Register|BitsName
1496  * --------|--------
1497  * SLP_EVENT| AON GPIO
1498  *
1499  * @retval None
1500  */
1501 __STATIC_INLINE void ll_aon_gpio_clear_event_flag_it(void)
1502 {
1503  WRITE_REG(AON_CTL->AON_SLP_EVENT, ~AON_CTL_SLP_EVENT_EXT);
1504 }
1505 
1506 /** @} */
1507 
1508 /** @defgroup AON_GPIO_LL_EF_Init Initialization and de-initialization functions
1509  * @{
1510  */
1511 /**
1512  * @brief Initialize AON_GPIO registers according to the specified.
1513  * parameters in p_aon_gpio_init.
1514  * @param p_aon_gpio_init Pointer to a ll_aon_gpio_init_t structure that contains the configuration
1515  * information for the specified AON_GPIO peripheral.
1516  * @retval None
1517  */
1518 void ll_aon_gpio_init(ll_aon_gpio_init_t const p_aon_gpio_init);
1519 
1520 /** @} */
1521 
1522 /** @} */
1523 
1524 #endif /* AON */
1525 
1526 #ifdef __cplusplus
1527 }
1528 #endif
1529 
1530 #endif /* LL_AON_GPIO_H */
1531 
1532 /** @} */
1533 
1534 /** @} */
1535 
1536 /** @} */
LL_AON_GPIO_PULL_UP
#define LL_AON_GPIO_PULL_UP
Definition: ll_aon_gpio.h:168
LL_AON_GPIO_PIN_ALL
#define LL_AON_GPIO_PIN_ALL
Definition: ll_aon_gpio.h:151
LL_AON_GPIO_INPUT_TYPE_SCHMITT
#define LL_AON_GPIO_INPUT_TYPE_SCHMITT
Definition: ll_aon_gpio.h:193
_ll_aon_gpio_init::pull
uint32_t pull
Definition: ll_aon_gpio.h:86
ll_aon_gpio_disable_it
__STATIC_INLINE void ll_aon_gpio_disable_it(uint32_t pin_mask)
Disable AON_GPIO interrupts of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1328
gr5405.h
ll_aon_gpio_is_enabled_both_trigger
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_both_trigger(uint32_t pin_mask)
Check if low level trigger is enabled of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1276
LL_AON_GPIO_MODE_OUTPUT_POS
#define LL_AON_GPIO_MODE_OUTPUT_POS
Definition: ll_aon_gpio.h:133
LL_AON_GPIO_STRENGTH_DS0_POS
#define LL_AON_GPIO_STRENGTH_DS0_POS
Definition: ll_aon_gpio.h:136
ll_aon_gpio_set_pin_pull
__STATIC_INLINE void ll_aon_gpio_set_pin_pull(uint32_t pin_mask, uint32_t pull)
Configure gpio pull-up or pull-down for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:439
ll_aon_gpio_is_enable_wakeup_it
__STATIC_INLINE uint32_t ll_aon_gpio_is_enable_wakeup_it(void)
Check if the AON_GPIO master interrupt is enabled or disabled.
Definition: ll_aon_gpio.h:1387
ll_aon_gpio_clear_flag_it
__STATIC_INLINE void ll_aon_gpio_clear_flag_it(uint32_t pin_mask)
Clear Interrupt Status flag of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1471
AON_IO
#define AON_IO
Definition: gr5405.h:1
ll_aon_gpio_is_enabled_it
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_it(uint32_t pin_mask)
Check if the Interrupt of specified GPIO pins is enabled or disabled.
Definition: ll_aon_gpio.h:1352
IO_MUX_GPIO
#define IO_MUX_GPIO
Definition: hal_gpio.h:179
AON_CTL
#define AON_CTL
Definition: gr5405.h:3
ll_aon_gpio_enable_both_trigger
__STATIC_INLINE void ll_aon_gpio_enable_both_trigger(uint32_t pin_mask)
Enable AON_GPIO Low Level Trigger of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1249
ll_aon_gpio_is_output_pin_set
__STATIC_INLINE uint32_t ll_aon_gpio_is_output_pin_set(uint32_t pin_mask)
Return if input data level of several AON_GPIO pins is high or low.
Definition: ll_aon_gpio.h:917
LL_AON_GPIO_STRENGTH_DS1_MASK
#define LL_AON_GPIO_STRENGTH_DS1_MASK
Definition: ll_aon_gpio.h:135
ll_aon_gpio_reset_output_pin
__STATIC_INLINE void ll_aon_gpio_reset_output_pin(uint32_t pin_mask)
Set specified AON_GPIO pins to low level.
Definition: ll_aon_gpio.h:966
ll_aon_gpio_get_pin_mux
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_mux(uint32_t pin)
Return gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port.
Definition: ll_aon_gpio.h:544
ll_aon_gpio_is_active_flag_it
__STATIC_INLINE uint32_t ll_aon_gpio_is_active_flag_it(uint32_t pin_mask)
Indicate if the AON_GPIO Interrupt Flag is set or not of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1445
ll_aon_gpio_get_pin_input_type
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_input_type(uint32_t pin)
Return input type for a AON_GPIO pin.
Definition: ll_aon_gpio.h:407
ll_aon_gpio_get_pin_pull
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_pull(uint32_t pin)
Return gpio pull-up or pull-down for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:471
ll_aon_gpio_read_flag_it
__STATIC_INLINE uint16_t ll_aon_gpio_read_flag_it(uint32_t pin_mask)
Read AON_GPIO Interrupt Combination Flag of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1419
ll_aon_gpio_write_output_port
__STATIC_INLINE void ll_aon_gpio_write_output_port(uint32_t port_value)
Write output data register of AON_GPIO.
Definition: ll_aon_gpio.h:879
LL_AON_GPIO_MODE_OUTPUT
#define LL_AON_GPIO_MODE_OUTPUT
Definition: ll_aon_gpio.h:159
LL_AON_GPIO_INPUT_TYPE_CMOS
#define LL_AON_GPIO_INPUT_TYPE_CMOS
Definition: ll_aon_gpio.h:192
ll_aon_gpio_get_enabled_pin
__STATIC_INLINE uint32_t ll_aon_gpio_get_enabled_pin(void)
Get aon gpio enable pins.
Definition: ll_aon_gpio.h:1374
ll_aon_gpio_read_input_pin
__STATIC_INLINE uint32_t ll_aon_gpio_read_input_pin(uint32_t pin_mask)
Return if input data level of several AON_GPIO pins is high or low.
Definition: ll_aon_gpio.h:838
ll_aon_gpio_init
void ll_aon_gpio_init(ll_aon_gpio_init_t const p_aon_gpio_init)
Initialize AON_GPIO registers according to the specified. parameters in p_aon_gpio_init.
ll_aon_gpio_set_pin_mux
__STATIC_INLINE void ll_aon_gpio_set_pin_mux(uint32_t pin, uint32_t mux)
Configure gpio pinmux number of a dedicated pin from 0 to 7 for a dedicated port.
Definition: ll_aon_gpio.h:502
ll_aon_gpio_enable_low_trigger
__STATIC_INLINE void ll_aon_gpio_enable_low_trigger(uint32_t pin_mask)
Enable AON_GPIO Low Level Trigger of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1194
LL_AON_GPIO_PULL_DOWN
#define LL_AON_GPIO_PULL_DOWN
Definition: ll_aon_gpio.h:169
ll_aon_gpio_get_pin_mode
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_mode(uint32_t pin)
Return gpio mode for a AON_GPIO pin.
Definition: ll_aon_gpio.h:347
ll_aon_gpio_enable_xo_2mhz_output
__STATIC_INLINE void ll_aon_gpio_enable_xo_2mhz_output(void)
Enable Xo_2MHz output on AON_GPIO_PIN5.
Definition: ll_aon_gpio.h:765
ll_aon_gpio_is_enabled_xo_2mhz_output
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_xo_2mhz_output(void)
Check if Xo_2MHz output on AON_GPIO_PIN5 is enabled or disabled.
Definition: ll_aon_gpio.h:793
LL_AON_GPIO_MODE_INPUT
#define LL_AON_GPIO_MODE_INPUT
Definition: ll_aon_gpio.h:158
ll_aon_gpio_get_pin_strength
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_strength(uint32_t pin_mask)
Return output strength for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:699
_ll_aon_gpio_init::mode
uint32_t mode
Definition: ll_aon_gpio.h:81
ll_aon_gpio_disable_xo_2mhz_output
__STATIC_INLINE void ll_aon_gpio_disable_xo_2mhz_output(void)
Disable Xo_2MHz output on AON_GPIO_PIN5.
Definition: ll_aon_gpio.h:779
ll_aon_gpio_toggle_pin
__STATIC_INLINE void ll_aon_gpio_toggle_pin(uint32_t pin_mask)
Toggle data value of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:990
ll_aon_gpio_enable_falling_trigger
__STATIC_INLINE void ll_aon_gpio_enable_falling_trigger(uint32_t pin_mask)
Enable AON_GPIO Falling Edge Trigger of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1022
_ll_aon_gpio_init::trigger
uint32_t trigger
Definition: ll_aon_gpio.h:112
_ll_aon_gpio_init::mux
uint32_t mux
Definition: ll_aon_gpio.h:91
ll_aon_gpio_set_output_pin
__STATIC_INLINE void ll_aon_gpio_set_output_pin(uint32_t pin_mask)
Set specified AON_GPIO pins to high level.
Definition: ll_aon_gpio.h:942
ll_aon_gpio4_is_enabled_clk_output
__STATIC_INLINE uint32_t ll_aon_gpio4_is_enabled_clk_output(void)
Check if clock output on AON_GPIO_PIN4 is enabled or disabled.
Definition: ll_aon_gpio.h:751
_ll_aon_gpio_init
LL AON_GPIO init Structure definition.
Definition: ll_aon_gpio.h:77
LL_AON_GPIO_MODE_INOUT
#define LL_AON_GPIO_MODE_INOUT
Definition: ll_aon_gpio.h:160
ll_aon_gpio_set_pin_speed
__STATIC_INLINE void ll_aon_gpio_set_pin_speed(uint32_t pin_mask, uint32_t speed)
Configure slew rate for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:587
ll_aon_gpio_clear_event_flag_it
__STATIC_INLINE void ll_aon_gpio_clear_event_flag_it(void)
Clear AON GPIO event interrupt flag.
Definition: ll_aon_gpio.h:1501
ll_aon_gpio_get_pin_speed
__STATIC_INLINE uint32_t ll_aon_gpio_get_pin_speed(uint32_t pin)
Return slew rate for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:620
_ll_aon_gpio_init::speed
uint32_t speed
Definition: ll_aon_gpio.h:97
_ll_aon_gpio_init::strength
uint32_t strength
Definition: ll_aon_gpio.h:102
ll_aon_gpio_enable_high_trigger
__STATIC_INLINE void ll_aon_gpio_enable_high_trigger(uint32_t pin_mask)
Enable AON_GPIO High Level Trigger of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1139
_ll_aon_gpio_init::pin
uint32_t pin
Definition: ll_aon_gpio.h:78
LL_AON_GPIO_MODE_INPUT_POS
#define LL_AON_GPIO_MODE_INPUT_POS
Definition: ll_aon_gpio.h:132
ll_aon_gpio_read_input_port
__STATIC_INLINE uint32_t ll_aon_gpio_read_input_port(void)
Return full input data register value of AON_GPIO.
Definition: ll_aon_gpio.h:813
LL_AON_GPIO_STRENGTH_DS0_MASK
#define LL_AON_GPIO_STRENGTH_DS0_MASK
Definition: ll_aon_gpio.h:134
ll_aon_gpio4_enable_clk_output
__STATIC_INLINE void ll_aon_gpio4_enable_clk_output(uint32_t clk_sel)
Enable clock output on AON_GPIO_PIN4.
Definition: ll_aon_gpio.h:722
ll_aon_gpio_set_pin_input_type
__STATIC_INLINE void ll_aon_gpio_set_pin_input_type(uint32_t pin_mask, uint32_t type)
Set several AON_GPIO pins to input type.
Definition: ll_aon_gpio.h:379
LL_AON_GPIO_PULL_NO
#define LL_AON_GPIO_PULL_NO
Definition: ll_aon_gpio.h:167
ll_aon_gpio_read_output_port
__STATIC_INLINE uint32_t ll_aon_gpio_read_output_port(void)
Return full output data register value of AON_GPIO.
Definition: ll_aon_gpio.h:893
ll_aon_gpio_read_output_pin
__STATIC_INLINE uint32_t ll_aon_gpio_read_output_pin(uint32_t pin_mask)
Return if output data level of several AON_GPIO pins is high or low.
Definition: ll_aon_gpio.h:863
ll_aon_gpio_is_enabled_high_trigger
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_high_trigger(uint32_t pin_mask)
Check if high level trigger is enabled of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1167
ll_aon_gpio_set_pin_strength
__STATIC_INLINE void ll_aon_gpio_set_pin_strength(uint32_t pin_mask, uint32_t strength)
Configure output drive strength for a dedicated AON_GPIO pin.
Definition: ll_aon_gpio.h:653
ll_aon_gpio_read_event_flag_it
__STATIC_INLINE uint16_t ll_aon_gpio_read_event_flag_it(void)
Indicate if the AON GPIO event flag is set or not.
Definition: ll_aon_gpio.h:1487
ll_aon_gpio_set_pin_mode
__STATIC_INLINE void ll_aon_gpio_set_pin_mode(uint32_t pin_mask, uint32_t mode)
Set several AON_GPIO pins to input/output mode.
Definition: ll_aon_gpio.h:312
ll_aon_gpio_is_enabled_falling_trigger
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_falling_trigger(uint32_t pin_mask)
Check if falling edge trigger is enabled of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1052
ll_aon_gpio4_disable_clk_output
__STATIC_INLINE void ll_aon_gpio4_disable_clk_output(void)
Disable clock output on AON_GPIO_PIN4.
Definition: ll_aon_gpio.h:737
ll_aon_gpio_init_t
struct _ll_aon_gpio_init ll_aon_gpio_init_t
LL AON_GPIO init Structure definition.
ll_aon_gpio_enable_it
__STATIC_INLINE void ll_aon_gpio_enable_it(uint32_t pin_mask)
Enable AON_GPIO interrupts of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1303
ll_aon_gpio_is_enabled_low_trigger
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_low_trigger(uint32_t pin_mask)
Check if low level trigger is enabled of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1222
ll_aon_gpio_enable_rising_trigger
__STATIC_INLINE void ll_aon_gpio_enable_rising_trigger(uint32_t pin_mask)
Enable AON_GPIO Rising Edge Trigger of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1080
LL_AON_GPIO_STRENGTH_DS1_POS
#define LL_AON_GPIO_STRENGTH_DS1_POS
Definition: ll_aon_gpio.h:137
_ll_aon_gpio_init::input_type
uint32_t input_type
Definition: ll_aon_gpio.h:107
ll_aon_gpio_is_enabled_rising_trigger
__STATIC_INLINE uint32_t ll_aon_gpio_is_enabled_rising_trigger(uint32_t pin_mask)
Check if rising edge trigger is enabled of specified AON_GPIO pins.
Definition: ll_aon_gpio.h:1111