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, \
284 pin_mask = (pin_mask << AON_PAD_CTL1_AON_GPO_OE_N_Pos) & AON_PAD_CTL1_AON_GPO_OE_N;
285 GLOBAL_EXCEPTION_DISABLE();
287 GLOBAL_EXCEPTION_ENABLE();
318 pin = (pin << AON_PAD_CTL1_AON_GPO_OE_N_Pos) & AON_PAD_CTL1_AON_GPO_OE_N;
354 uint32_t RTypeMask = (pin_mask << AON_PAD_CTL0_GPO_RTYPE_Pos) & AON_PAD_CTL0_GPO_RTYPE;
355 uint32_t REnMask = (pin_mask << AON_PAD_CTL0_GPO_RE_N_Pos) & AON_PAD_CTL0_GPO_RE_N;
358 MODIFY_REG(AON->AON_PAD_CTL0, REnMask | RTypeMask, REn | RType);
390 uint32_t RTypeMask = (pin << AON_PAD_CTL0_GPO_RTYPE_Pos) & AON_PAD_CTL0_GPO_RTYPE;
391 uint32_t REnMask = (pin << AON_PAD_CTL0_GPO_RE_N_Pos) & AON_PAD_CTL0_GPO_RE_N;
434 uint32_t pos = POSITION_VAL(pin) << 2;
437 CLEAR_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos);
441 MODIFY_REG(MCU_SUB->AON_PAD_MUX_CTL, 0xF << pos, mux << pos);
442 SET_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos);
480 if(READ_BITS(AON->AON_PAD_CTL0, pin << AON_PAD_CTL0_MCU_OVR_Pos))
482 uint32_t pos = POSITION_VAL(pin) << 2;
483 return (READ_BITS(MCU_SUB->AON_PAD_MUX_CTL, 0xF << pos) >> pos);
506 SET_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA);
524 CLEAR_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA);
542 return (uint32_t)(READ_BITS(AON->PWR_RET01, AON_PWR_REG01_XO_2MHZ_ENA) == AON_PWR_REG01_XO_2MHZ_ENA);
566 return (uint32_t)(READ_BITS(GPIO2->DATA, GPIO_DATA));
594 return (uint32_t)(READ_BITS(GPIO2->DATA, pin_mask) == pin_mask);
613 GLOBAL_EXCEPTION_DISABLE();
614 MODIFY_REG(AON->AON_PAD_CTL1, AON_PAD_CTL1_AON_GPO, (port_value << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
615 GLOBAL_EXCEPTION_ENABLE();
633 return (uint32_t)(READ_BITS(AON->AON_PAD_CTL1, AON_PAD_CTL1_AON_GPO) >> AON_PAD_CTL1_AON_GPO_Pos);
661 pin_mask = (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO;
662 return (uint32_t)(READ_BITS(AON->AON_PAD_CTL1, pin_mask) == pin_mask);
690 GLOBAL_EXCEPTION_DISABLE();
691 SET_BITS(AON->AON_PAD_CTL1, (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
692 GLOBAL_EXCEPTION_ENABLE();
720 GLOBAL_EXCEPTION_DISABLE();
721 CLEAR_BITS(AON->AON_PAD_CTL1, (pin_mask << AON_PAD_CTL1_AON_GPO_Pos) & AON_PAD_CTL1_AON_GPO);
722 GLOBAL_EXCEPTION_ENABLE();
750 GLOBAL_EXCEPTION_DISABLE();
751 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)));
752 GLOBAL_EXCEPTION_ENABLE();
787 WRITE_REG(GPIO2->INTPOLCLR, pin_mask);
788 WRITE_REG(GPIO2->INTTYPESET, pin_mask);
817 return ((READ_BITS(GPIO2->INTPOLCLR, pin_mask) == (pin_mask)) &
818 (READ_BITS(GPIO2->INTTYPESET, pin_mask) == (pin_mask)));
847 WRITE_REG(GPIO2->INTPOLSET, pin_mask);
848 WRITE_REG(GPIO2->INTTYPESET, pin_mask);
878 return ((READ_BITS(GPIO2->INTPOLSET, pin_mask) == (pin_mask)) &
879 (READ_BITS(GPIO2->INTTYPESET, pin_mask) == (pin_mask)));
908 WRITE_REG(GPIO2->INTPOLSET, pin_mask);
909 WRITE_REG(GPIO2->INTTYPECLR, pin_mask);
938 return ((READ_BITS(GPIO2->INTPOLSET, pin_mask) == (pin_mask)) &
939 (READ_BITS(GPIO2->INTTYPECLR, pin_mask) == (pin_mask)));
968 WRITE_REG(GPIO2->INTPOLCLR, pin_mask);
969 WRITE_REG(GPIO2->INTTYPECLR, pin_mask);
998 return ((READ_BITS(GPIO2->INTPOLCLR, pin_mask) == (pin_mask)) &
999 (READ_BITS(GPIO2->INTTYPECLR, pin_mask) == (pin_mask)));
1028 WRITE_REG(GPIO2->INTENSET, pin_mask);
1057 WRITE_REG(GPIO2->INTENCLR, pin_mask);
1085 return (READ_BITS(GPIO2->INTENSET, pin_mask) == (pin_mask));
1121 uint32_t ext2 = READ_BITS(GPIO2->INTSTAT, pin_mask);
1122 uint32_t wkup = (READ_BITS(AON->SLP_EVENT, AON_SLP_EVENT_EXT_WKUP_STATUS) >> AON_SLP_EVENT_EXT_WKUP_STATUS_Pos) & \
1124 return (uint32_t)(ext2 | wkup);
1154 return (READ_BITS(GPIO2->INTSTAT, pin_mask) == pin_mask);
1184 WRITE_REG(GPIO2->INTSTAT, pin_mask);