270 #ifndef ti_drivers_GPIO__include 271 #define ti_drivers_GPIO__include 284 #if defined(__IAR_SYSTEMS_ICC__) 285 #include <intrinsics.h> 286 #define GPIO_MASK_TO_PIN(pinmask) (31 - __CLZ(pinmask)) 287 #elif defined(__TI_COMPILER_VERSION__) 288 #include <arm_acle.h> 289 #define GPIO_MASK_TO_PIN(pinmask) (31 - __clz(pinmask)) 290 #elif defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__) 291 #include <arm_acle.h> 292 #define GPIO_MASK_TO_PIN(pinmask) (31 - __builtin_clz(pinmask)) 298 #define GPIO_PIN_TO_MASK(pin) (1 << (pin)) 324 #define GPIO_STATUS_RESERVED (-32) 333 #define GPIO_STATUS_SUCCESS (0) 341 #define GPIO_STATUS_ERROR (-1) 369 #define GPIO_INVALID_INDEX 0xFF 375 #define GPIO_CFG_IO_MASK (0x07ff0000) 376 #define GPIO_CFG_IO_LSB (16) 377 #define GPIO_CFG_OUT_TYPE_MASK (0x00060000) 378 #define GPIO_CFG_OUT_TYPE_LSB (17) 379 #define GPIO_CFG_IN_TYPE_MASK (0x00060000) 380 #define GPIO_CFG_IN_TYPE_LSB (17) 381 #define GPIO_CFG_OUT_BIT (19) 382 #define GPIO_CFG_OUT_STRENGTH_MASK (0x00300000) 383 #define GPIO_CFG_OUT_STRENGTH_LSB (20) 385 #define GPIO_CFG_INVERSION_BIT (22) 386 #define GPIO_CFG_INVERSION_MASK (0x00400000) 388 #define GPIO_CFG_HYSTERESIS_BIT (23) 389 #define GPIO_CFG_HYSTERESIS_MASK (0x00800000) 391 #define GPIO_CFG_HIZ_BIT (24) 392 #define GPIO_CFG_HIZ_MASK (0x01000000) 394 #define GPIO_CFG_WAKEUP_LSB (25) 395 #define GPIO_CFG_WAKEUP_MASK (0x06000000) 397 #define GPIO_CFG_INT_LSB (27) 398 #define GPIO_CFG_INT_MASK (0x38000000) 411 #define GPIO_CFG_OUTPUT (((uint32_t) 0) << GPIO_CFG_IO_LSB) 413 #define GPIO_CFG_OUT_STD (((uint32_t) 0) << GPIO_CFG_IO_LSB) 415 #define GPIO_CFG_OUT_OD_NOPULL (((uint32_t) 2) << GPIO_CFG_IO_LSB) 417 #define GPIO_CFG_OUT_OD_PU (((uint32_t) 4) << GPIO_CFG_IO_LSB) 419 #define GPIO_CFG_OUT_OD_PD (((uint32_t) 6) << GPIO_CFG_IO_LSB) 422 #define GPIO_CFG_OUT_STR_LOW (((uint32_t) 0) << GPIO_CFG_OUT_STRENGTH_LSB) 424 #define GPIO_CFG_OUT_STR_MED GPIO_CFG_DRVSTR_MED_INTERNAL 426 #define GPIO_CFG_OUT_STR_HIGH (((uint32_t) 2) << GPIO_CFG_OUT_STRENGTH_LSB) 429 #define GPIO_CFG_OUT_HIGH (((uint32_t) 1) << GPIO_CFG_OUT_BIT) 431 #define GPIO_CFG_OUT_LOW (((uint32_t) 0) << GPIO_CFG_OUT_BIT) 438 #define GPIO_CFG_INPUT (((uint32_t) 1) << GPIO_CFG_IO_LSB) 440 #define GPIO_CFG_IN_NOPULL (((uint32_t) 1) << GPIO_CFG_IO_LSB) 442 #define GPIO_CFG_IN_PU (((uint32_t) 3) << GPIO_CFG_IO_LSB) 444 #define GPIO_CFG_IN_PD (((uint32_t) 5) << GPIO_CFG_IO_LSB) 451 #define GPIO_CFG_INVERT_OFF (((uint32_t) 0) << GPIO_CFG_INVERSION_BIT) 453 #define GPIO_CFG_INVERT_ON (((uint32_t) 1) << GPIO_CFG_INVERSION_BIT) 460 #define GPIO_CFG_HYSTERESIS_OFF (((uint32_t) 0) << GPIO_CFG_HYSTERESIS_BIT) 462 #define GPIO_CFG_HYSTERESIS_ON (((uint32_t) 1) << GPIO_CFG_HYSTERESIS_BIT) 469 #define GPIO_CFG_HIZ_OFF (((uint32_t) 0) << GPIO_CFG_HIZ_BIT) 471 #define GPIO_CFG_HIZ_ON (((uint32_t) 1) << GPIO_CFG_HIZ_BIT) 478 #define GPIO_CFG_IN_INT_NONE (((uint32_t) 0) << GPIO_CFG_INT_LSB) 480 #define GPIO_CFG_IN_INT_RISING (((uint32_t) 1) << GPIO_CFG_INT_LSB) 482 #define GPIO_CFG_IN_INT_FALLING (((uint32_t) 2) << GPIO_CFG_INT_LSB) 484 #define GPIO_CFG_IN_INT_BOTH_EDGES (((uint32_t) 3) << GPIO_CFG_INT_LSB) 486 #define GPIO_CFG_IN_INT_LOW (GPIO_CFG_INT_LOW_INTERNAL) 488 #define GPIO_CFG_IN_INT_HIGH (GPIO_CFG_INT_HIGH_INTERNAL) 495 #define GPIO_CFG_WAKEUP_DISABLE (((uint32_t) 0) << GPIO_CFG_WAKEUP_LSB) 497 #define GPIO_CFG_WAKEUP_ON_0 (((uint32_t) 1) << GPIO_CFG_WAKEUP_LSB) 499 #define GPIO_CFG_WAKEUP_ON_1 (((uint32_t) 2) << GPIO_CFG_WAKEUP_LSB) 510 #define GPIO_DO_NOT_CONFIG (0x80000000) 519 #define GPIO_MUX_GPIO (0x00000001) 616 extern uint_fast8_t
GPIO_read(uint_least8_t index);
631 extern void GPIO_write(uint_least8_t index,
unsigned int value);
681 uint_least8_t index, GPIO_PinConfig pinConfig);
698 uint_least8_t index, GPIO_PinConfig config);
711 extern void GPIO_getConfig(uint_least8_t index, GPIO_PinConfig *pinConfig);
754 uint_least8_t index, GPIO_PinConfig pinConfig, uint32_t mux);
uint32_t intPriority
Definition: GPIO.h:553
GPIO_CallbackFxn * callbacks
Definition: GPIO.h:551
void GPIO_enableInt(uint_least8_t index)
Enable a GPIO pin interrupt.
void GPIO_setCallback(uint_least8_t index, GPIO_CallbackFxn callback)
Bind a callback function to a GPIO pin interrupt.
GPIO driver configuration structure.
Definition: GPIO.h:548
GPIO_CallbackFxn GPIO_getCallback(uint_least8_t index)
Gets the callback associated with a GPIO pin.
void * GPIO_getUserArg(uint_least8_t index)
Get the user argument for a gpio pin.
GPIO_PinConfig * configs
Definition: GPIO.h:549
void GPIO_toggle(uint_least8_t index)
Toggles the current state of a GPIO.
void(* GPIO_CallbackFxn)(uint_least8_t index)
GPIO callback function type.
Definition: GPIO.h:534
void GPIO_setInterruptConfig(uint_least8_t index, GPIO_PinConfig config)
Configure the gpio pin.
GPIO driver implementation for MSPM0 devices.
uint_fast8_t GPIO_read(uint_least8_t index)
Reads the value of a GPIO pin.
int_fast16_t GPIO_setConfigAndMux(uint_least8_t index, GPIO_PinConfig pinConfig, uint32_t mux)
Configure the gpio pin's config and mux in a single write.
int_fast16_t GPIO_setConfig(uint_least8_t index, GPIO_PinConfig pinConfig)
Configure the gpio pin.
uint32_t GPIO_getMux(uint_least8_t index)
Get the current mux for a gpio pin.
void GPIO_write(uint_least8_t index, unsigned int value)
Writes the value to a GPIO pin.
void ** userArgs
Definition: GPIO.h:552
void GPIO_resetConfig(uint_least8_t index)
Resets the configuration for a gpio pin to the default value.
void GPIO_setUserArg(uint_least8_t index, void *arg)
Set the user argument for a gpio pin.
void GPIO_clearInt(uint_least8_t index)
Clear a GPIO pin interrupt flag.
void GPIO_disableInt(uint_least8_t index)
Disable a GPIO pin interrupt.
void GPIO_getConfig(uint_least8_t index, GPIO_PinConfig *pinConfig)
Get the current configuration for a gpio pin.
uint32_t GPIO_PinConfig
GPIO pin configuration settings.
Definition: GPIO.h:359
void GPIO_init()
Initializes the GPIO module.