37 #if defined(GPIO_COUNT) && (GPIO_COUNT > 0)
57 #define GPIO_DRIVEMODE_VALID(mode) ((mode) <= 3)
58 #define GPIO_STRENGHT_VALID(strenght) (!((strenght) & \
59 ~(_GPIO_P_CTRL_DRIVESTRENGTH_MASK \
60 | _GPIO_P_CTRL_DRIVESTRENGTHALT_MASK)))
80 #if defined ( _GPIO_ROUTE_SWLOCATION_MASK )
81 EFM_ASSERT(location < AFCHANLOC_MAX);
90 #if defined (_GPIO_P_CTRL_DRIVEMODE_MASK)
103 EFM_ASSERT(GPIO_PORT_VALID(port) && GPIO_DRIVEMODE_VALID(mode));
111 #if defined (_GPIO_P_CTRL_DRIVESTRENGTH_MASK)
123 GPIO_DriveStrength_TypeDef strength)
125 EFM_ASSERT(GPIO_PORT_VALID(port) && GPIO_STRENGHT_VALID(strength));
127 _GPIO_P_CTRL_DRIVESTRENGTH_MASK | _GPIO_P_CTRL_DRIVESTRENGTHALT_MASK,
176 EFM_ASSERT(GPIO_PORT_PIN_VALID(port, pin));
202 GPIO->IFC = 1 << pin;
231 EFM_ASSERT(GPIO_PORT_PIN_VALID(port, pin));
258 0xF << ((pin - 8) * 4),
259 mode << ((pin - 8) * 4));
275 #if defined( _GPIO_EM4WUEN_MASK )
292 void GPIO_EM4EnablePinWakeup(uint32_t pinmask, uint32_t polaritymask)
294 EFM_ASSERT((pinmask & ~_GPIO_EM4WUEN_MASK) == 0);
296 #if defined( _GPIO_EM4WUPOL_MASK )
297 EFM_ASSERT((polaritymask & ~_GPIO_EM4WUPOL_MASK) == 0);
298 GPIO->EM4WUPOL &= ~pinmask;
299 GPIO->EM4WUPOL |= pinmask & polaritymask;
300 #elif defined( _GPIO_EXTILEVEL_MASK )
301 EFM_ASSERT((polaritymask & ~_GPIO_EXTILEVEL_MASK) == 0);
302 GPIO->EXTILEVEL &= ~pinmask;
303 GPIO->EXTILEVEL |= pinmask & polaritymask;
305 GPIO->EM4WUEN |= pinmask;
307 GPIO_EM4SetPinRetention(
true);
309 #if defined( _GPIO_CMD_EM4WUCLR_MASK )
310 GPIO->CMD = GPIO_CMD_EM4WUCLR;
311 #elif defined( _GPIO_IFC_EM4WU_MASK )
#define _GPIO_P_CTRL_DRIVEMODE_MASK
__STATIC_INLINE void GPIO_IntClear(uint32_t flags)
Clear one or more pending GPIO interrupts.
void GPIO_DbgLocationSet(unsigned int location)
Sets the pin location of the debug pins (Serial Wire interface).
#define _GPIO_ROUTE_SWLOCATION_MASK
#define _GPIO_P_CTRL_DRIVEMODE_SHIFT
#define _GPIO_ROUTE_SWLOCATION_SHIFT
void GPIO_DriveModeSet(GPIO_Port_TypeDef port, GPIO_DriveMode_TypeDef mode)
Sets the drive mode for a GPIO port.
void GPIO_PinModeSet(GPIO_Port_TypeDef port, unsigned int pin, GPIO_Mode_TypeDef mode, unsigned int out)
Set the mode for a GPIO pin.
General Purpose IO (GPIO) peripheral API.
__STATIC_INLINE void GPIO_PinOutSet(GPIO_Port_TypeDef port, unsigned int pin)
Set a single pin in GPIO data out register to 1.
__STATIC_INLINE void BUS_RegMaskedWrite(volatile uint32_t *addr, uint32_t mask, uint32_t val)
Perform peripheral register masked clear and value write.
__STATIC_INLINE void GPIO_PinOutClear(GPIO_Port_TypeDef port, unsigned int pin)
Set a single pin in GPIO data out port register to 0.
__STATIC_INLINE void BUS_RegBitWrite(volatile uint32_t *addr, unsigned int bit, unsigned int val)
Perform a single-bit write operation on a peripheral register.
void GPIO_IntConfig(GPIO_Port_TypeDef port, unsigned int pin, bool risingEdge, bool fallingEdge, bool enable)
Configure GPIO interrupt.