52 #ifndef __GR55XX_LL_AON_GPIO_H__
53 #define __GR55XX_LL_AON_GPIO_H__
118 #define LL_AON_GPIO_PIN_0 ((uint32_t)0x01U)
119 #define LL_AON_GPIO_PIN_1 ((uint32_t)0x02U)
120 #define LL_AON_GPIO_PIN_2 ((uint32_t)0x04U)
121 #define LL_AON_GPIO_PIN_3 ((uint32_t)0x08U)
122 #define LL_AON_GPIO_PIN_4 ((uint32_t)0x10U)
123 #define LL_AON_GPIO_PIN_5 ((uint32_t)0x20U)
124 #define LL_AON_GPIO_PIN_6 ((uint32_t)0x40U)
125 #define LL_AON_GPIO_PIN_7 ((uint32_t)0x80U)
126 #define LL_AON_GPIO_PIN_ALL ((uint32_t)0xFFU)
132 #define LL_AON_GPIO_MODE_INPUT ((uint32_t)0x0U)
133 #define LL_AON_GPIO_MODE_OUTPUT ((uint32_t)0x1U)
134 #define LL_AON_GPIO_MODE_MUX ((uint32_t)0x2U)
140 #define LL_AON_GPIO_PULL_NO LL_AON_GPIO_RE_N
141 #define LL_AON_GPIO_PULL_UP LL_AON_GPIO_RTYP
142 #define LL_AON_GPIO_PULL_DOWN ((uint32_t)0x0U)
148 #define LL_AON_GPIO_MUX_0 ((uint32_t)0x0U)
149 #define LL_AON_GPIO_MUX_1 ((uint32_t)0x1U)
150 #define LL_AON_GPIO_MUX_2 ((uint32_t)0x2U)
151 #define LL_AON_GPIO_MUX_3 ((uint32_t)0x3U)
152 #define LL_AON_GPIO_MUX_4 ((uint32_t)0x4U)
153 #define LL_AON_GPIO_MUX_5 ((uint32_t)0x5U)
154 #define LL_AON_GPIO_MUX_6 ((uint32_t)0x6U)
155 #define LL_AON_GPIO_MUX_7 ((uint32_t)0x7U)
156 #define LL_AON_GPIO_MUX_8 ((uint32_t)0x8U)
163 #define LL_AON_GPIO_TRIGGER_NONE ((uint32_t)0x00U)
164 #define LL_AON_GPIO_TRIGGER_RISING ((uint32_t)0x01U)
165 #define LL_AON_GPIO_TRIGGER_FALLING ((uint32_t)0x02U)
166 #define LL_AON_GPIO_TRIGGER_HIGH ((uint32_t)0x03U)
167 #define LL_AON_GPIO_TRIGGER_LOW ((uint32_t)0x04U)
188 #define LL_AON_GPIO_WriteReg(__instance__, __REG__, __VALUE__) WRITE_REG(__instance__->__REG__, (__VALUE__))
196 #define LL_AON_GPIO_ReadReg(__instance__, __REG__) READ_REG(__instance__->__REG__)
213 #define LL_AON_GPIO_RE_N_Pos AON_PAD_CTL0_GPO_RE_N_Pos
214 #define LL_AON_GPIO_RE_N_Msk (0x1U << LL_AON_GPIO_RE_N_Pos)
215 #define LL_AON_GPIO_RE_N LL_AON_GPIO_RE_N_Msk
221 #define LL_AON_GPIO_RTYP_Pos AON_PAD_CTL0_GPO_RTYPE_Pos
222 #define LL_AON_GPIO_RTYP_Msk (0x1U << LL_AON_GPIO_RTYP_Pos)
223 #define LL_AON_GPIO_RTYP LL_AON_GPIO_RTYP_Msk
233 #define LL_AON_GPIO_DEFAULT_CONFIG \
235 .pin = LL_AON_GPIO_PIN_ALL, \
236 .mode = LL_AON_GPIO_MODE_INPUT, \
237 .pull = LL_AON_GPIO_PULL_DOWN, \
238 .mux = LL_AON_GPIO_MUX_7, \
239 .trigger = LL_AON_GPIO_TRIGGER_NONE, \
280 pin_mask = (pin_mask << AON_PAD_CTL1_AON_GPO_OE_N_Pos) & AON_PAD_CTL1_AON_GPO_OE_N;
281 GLOBAL_EXCEPTION_DISABLE();
283 GLOBAL_EXCEPTION_ENABLE();
310 pin = (pin << AON_PAD_CTL1_AON_GPO_OE_N_Pos) & AON_PAD_CTL1_AON_GPO_OE_N;
342 uint32_t RTypeMask = (pin_mask << AON_PAD_CTL0_GPO_RTYPE_Pos) & AON_PAD_CTL0_GPO_RTYPE;
343 uint32_t REnMask = (pin_mask << AON_PAD_CTL0_GPO_RE_N_Pos) & AON_PAD_CTL0_GPO_RE_N;
346 MODIFY_REG(AON->AON_PAD_CTL0, REnMask | RTypeMask, REn | RType);
374 uint32_t RTypeMask = (pin << AON_PAD_CTL0_GPO_RTYPE_Pos) & AON_PAD_CTL0_GPO_RTYPE;
375 uint32_t REnMask = (pin << AON_PAD_CTL0_GPO_RE_N_Pos) & AON_PAD_CTL0_GPO_RE_N;
414 uint32_t pos = POSITION_VAL(pin) << 2;
417 CLEAR_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos);
421 MODIFY_REG(MCU_SUB->AON_PAD_MUX_CTL, 0xF << pos, mux << pos);
422 SET_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos);
456 if(READ_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos))
458 uint32_t pos = POSITION_VAL(pin) << 2;
459 return (READ_BITS(MCU_SUB->AON_PAD_MUX_CTL, 0xF << pos) >> pos);
478 SET_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA);
492 CLEAR_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA);
506 return (uint32_t)(READ_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA) == AON_PWR_REG01_XO_2MHZ_ENA);
526 return (uint32_t)(READ_BITS(GPIO2->DATA, GPIO_DATA));
550 return (uint32_t)(READ_BITS(GPIO2->DATA, pin_mask) == pin_mask);
565 GLOBAL_EXCEPTION_DISABLE();
566 MODIFY_REG(AON->AON_PAD_CTL1, AON_PAD_CTL1_AON_GPO, (port_value << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
567 GLOBAL_EXCEPTION_ENABLE();
581 return (uint32_t)(READ_BITS(AON->AON_PAD_CTL1, AON_PAD_CTL1_AON_GPO) >> AON_PAD_CTL1_AON_GPO_Pos);
605 pin_mask = (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO;
606 return (uint32_t)(READ_BITS(AON->AON_PAD_CTL1, pin_mask) == pin_mask);
630 GLOBAL_EXCEPTION_DISABLE();
631 SET_BITS(AON->AON_PAD_CTL1, (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
632 GLOBAL_EXCEPTION_ENABLE();
656 GLOBAL_EXCEPTION_DISABLE();
657 CLEAR_BITS(AON->AON_PAD_CTL1, (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
658 GLOBAL_EXCEPTION_ENABLE();
682 GLOBAL_EXCEPTION_DISABLE();
683 WRITE_REG(AON->AON_PAD_CTL1, (READ_REG(AON->AON_PAD_CTL1) ^ ((pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO)));
684 GLOBAL_EXCEPTION_ENABLE();
715 WRITE_REG(GPIO2->INTPOLCLR, pin_mask);
716 WRITE_REG(GPIO2->INTTYPESET, pin_mask);
741 return ((READ_BITS(GPIO2->INTPOLCLR, pin_mask) == (pin_mask)) &
742 (READ_BITS(GPIO2->INTTYPESET, pin_mask) == (pin_mask)));
767 WRITE_REG(GPIO2->INTPOLSET, pin_mask);
768 WRITE_REG(GPIO2->INTTYPESET, pin_mask);
794 return ((READ_BITS(GPIO2->INTPOLSET, pin_mask) == (pin_mask)) &
795 (READ_BITS(GPIO2->INTTYPESET, pin_mask) == (pin_mask)));
820 WRITE_REG(GPIO2->INTPOLSET, pin_mask);
821 WRITE_REG(GPIO2->INTTYPECLR, pin_mask);
846 return ((READ_BITS(GPIO2->INTPOLSET, pin_mask) == (pin_mask)) &
847 (READ_BITS(GPIO2->INTTYPECLR, pin_mask) == (pin_mask)));
872 WRITE_REG(GPIO2->INTPOLCLR, pin_mask);
873 WRITE_REG(GPIO2->INTTYPECLR, pin_mask);
898 return ((READ_BITS(GPIO2->INTPOLCLR, pin_mask) == (pin_mask)) &
899 (READ_BITS(GPIO2->INTTYPECLR, pin_mask) == (pin_mask)));
924 WRITE_REG(GPIO2->INTENSET, pin_mask);
949 WRITE_REG(GPIO2->INTENCLR, pin_mask);
973 return (READ_BITS(GPIO2->INTENSET, pin_mask) == (pin_mask));
1005 uint32_t ext2 = READ_BITS(GPIO2->INTSTAT, pin_mask);
1006 uint32_t wkup = (READ_BITS(AON->SLP_EVENT, AON_SLP_EVENT_EXT_WKUP_STATUS) >> AON_SLP_EVENT_EXT_WKUP_STATUS_Pos) & \
1008 return (uint32_t)(ext2 | wkup);
1034 return (READ_BITS(GPIO2->INTSTAT, pin_mask) == pin_mask);
1060 WRITE_REG(GPIO2->INTSTAT, pin_mask);