66#include "inc/hw_gpio.h"
67#include "inc/hw_memmap.h"
68#include "inc/hw_types.h"
69#include "inc/hw_xint.h"
70#include "inc/hw_asysctl.h"
81#define GPIO_CTRL_REGS_STEP ((GPIO_O_GPBCTRL - GPIO_O_GPACTRL) / 4U)
82#define GPIO_DATA_REGS_STEP ((GPIO_O_GPBDAT - GPIO_O_GPADAT) / 4U)
83#define GPIO_DATA_READ_REGS_STEP ((GPIO_O_GPBDAT_R - GPIO_O_GPADAT_R) / 4U)
85#define GPIO_GPxCTRL_INDEX (0U)
86#define GPIO_GPxQSEL_INDEX (1U)
87#define GPIO_GPxMUX_INDEX (3U)
88#define GPIO_GPxPUD_INDEX (6U)
89#define GPIO_GPxINV_INDEX (8U)
90#define GPIO_GPxODR_INDEX (9U)
91#define GPIO_GPxAMSEL_INDEX (10U)
92#define GPIO_GPxGMUX_INDEX (16U)
93#define GPIO_GPxCSEL_INDEX (20U)
94#define GPIO_GPxLOCK_INDEX (30U)
95#define GPIO_GPxCR_INDEX (31U)
97#define GPIO_GPxDAT_INDEX (0U)
98#define GPIO_GPxSET_INDEX (1U)
99#define GPIO_GPxCLEAR_INDEX (2U)
100#define GPIO_GPxTOGGLE_INDEX (3U)
101#define GPIO_GPxDIR_INDEX (4U)
103#define GPIO_GPxDAT_R_INDEX (0U)
105#define GPIO_MUX_TO_GMUX (GPIO_O_GPAGMUX1 - GPIO_O_GPAMUX1)
114#define GPIO_PIN_TYPE_STD 0x0000U
115#define GPIO_PIN_TYPE_PULLUP 0x0001U
116#define GPIO_PIN_TYPE_INVERT 0x0002U
117#define GPIO_PIN_TYPE_OD 0x0004U
238 (pin <= 105U) || (pin == 127U) ||
239 ((pin >= 219U) && (pin <= 223U)) ||
240 ((pin >= 160U) && (pin <= 213U)) ||
241 ((pin >= 224U) && (pin <= 249U))
282 HWREGH(XINT_BASE + (uint16_t)extIntNum) =
283 (uint16_t)((HWREGH(XINT_BASE + (uint16_t)extIntNum) & ~XINT_1CR_POLARITY_M) |
315 return((
GPIO_IntType)(HWREGH(XINT_BASE + (uint16_t)extIntNum) &
316 XINT_1CR_POLARITY_M));
347 HWREGH(XINT_BASE + (uint16_t)extIntNum) |= XINT_1CR_ENABLE;
378 HWREGH(XINT_BASE + (uint16_t)extIntNum) &= (uint16_t)~XINT_1CR_ENABLE;
399static inline uint16_t
407 return((HWREGH(XINT_BASE + XINT_O_1CTR + (uint16_t)extIntNum)));
425static inline uint32_t
428 volatile uint32_t *gpioDataReg;
435 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
458static inline uint32_t
461 volatile uint32_t *gpioDataReg;
468 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATAREAD_BASE) +
493 volatile uint32_t *gpioDataReg;
501 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
504 pinMask = (uint32_t)1U << (pin % 32U);
534 volatile uint32_t *gpioDataReg;
541 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
559static inline uint32_t
562 volatile uint32_t *gpioDataReg;
567 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
592static inline uint32_t
595 volatile uint32_t *gpioDataReg;
600 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATAREAD_BASE) +
628 volatile uint32_t *gpioDataReg;
633 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
661 volatile uint32_t *gpioDataReg;
666 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
694 volatile uint32_t *gpioDataReg;
699 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
727 volatile uint32_t *gpioDataReg;
732 gpioDataReg = (uint32_t *)((uintptr_t)GPIODATA_BASE) +
761__attribute__((section(
".text.link2.GPIO_lockPortConfig")))
765 volatile uint32_t *gpioDataReg;
770 gpioDataReg = (uint32_t *)((uintptr_t)GPIOCTRL_BASE) +
795__attribute__((section(
".text.link2.GPIO_unlockPortConfig")))
799 volatile uint32_t *gpioDataReg;
804 gpioDataReg = (uint32_t *)((uintptr_t)GPIOCTRL_BASE) +
833__attribute__((section(
".text.link2.GPIO_commitPortConfig")))
837 volatile uint32_t *gpioDataReg;
842 gpioDataReg = (uint32_t *)((uintptr_t)GPIOCTRL_BASE) +
919__attribute__((section(
".text.link2.GPIO_setInterruptPin")))
static void GPIO_commitPortConfig(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:835
GPIO_Direction
Definition gpio.h:126
void GPIO_setQualificationPeriod(uint32_t pin, uint32_t divider)
void GPIO_setQualificationMode(uint32_t pin, GPIO_QualificationMode qualification)
static void GPIO_disableInterrupt(GPIO_ExternalIntNum extIntNum)
Definition gpio.h:373
#define GPIO_DATA_READ_REGS_STEP
Definition gpio.h:83
static uint32_t GPIO_readPortData(GPIO_Port port)
Definition gpio.h:560
#define GPIO_GPxCR_INDEX
Definition gpio.h:95
static uint32_t GPIO_readPin(uint32_t pin)
Definition gpio.h:426
void GPIO_setAnalogMode(uint32_t pin, GPIO_AnalogMode mode)
GPIO_Direction GPIO_getDirectionMode(uint32_t pin)
static uint32_t GPIO_readPortDataRegister(GPIO_Port port)
Definition gpio.h:593
#define GPIO_CTRL_REGS_STEP
Definition gpio.h:81
static void GPIO_setInterruptType(GPIO_ExternalIntNum extIntNum, GPIO_IntType intType)
Definition gpio.h:277
GPIO_AnalogMode
Values that can be passed to GPIO_setAnalogMode() as the mode parameter.
Definition gpio.h:164
GPIO_CoreSelect
Definition gpio.h:176
void GPIO_setPinConfig(uint32_t pinConfig)
#define GPIO_GPxLOCK_INDEX
Definition gpio.h:94
void GPIO_setInterruptPin(uint32_t pin, GPIO_ExternalIntNum extIntNum)
#define GPIO_GPxCLEAR_INDEX
Definition gpio.h:99
GPIO_QualificationMode GPIO_getQualificationMode(uint32_t pin)
static GPIO_IntType GPIO_getInterruptType(GPIO_ExternalIntNum extIntNum)
Definition gpio.h:310
static bool GPIO_isPinValid(uint32_t pin)
Definition gpio.h:235
static void GPIO_togglePortPins(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:725
#define GPIO_GPxTOGGLE_INDEX
Definition gpio.h:100
uint32_t GPIO_getPadConfig(uint32_t pin)
static void GPIO_writePortData(GPIO_Port port, uint32_t outVal)
Definition gpio.h:626
static void GPIO_setPortPins(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:659
static uint32_t GPIO_readPinDataRegister(uint32_t pin)
Definition gpio.h:459
static void GPIO_writePin(uint32_t pin, uint32_t outVal)
Definition gpio.h:491
void GPIO_setDirectionMode(uint32_t pin, GPIO_Direction pinIO)
GPIO_IntType
Definition gpio.h:138
GPIO_QualificationMode
Definition gpio.h:151
#define GPIO_GPxDAT_R_INDEX
Definition gpio.h:103
#define GPIO_GPxDAT_INDEX
Definition gpio.h:97
#define GPIO_GPxSET_INDEX
Definition gpio.h:98
void GPIO_setPadConfig(uint32_t pin, uint32_t pinType)
void GPIO_setControllerCore(uint32_t pin, GPIO_CoreSelect core)
GPIO_ExternalIntNum
Definition gpio.h:208
#define GPIO_DATA_REGS_STEP
Definition gpio.h:82
static void GPIO_togglePin(uint32_t pin)
Definition gpio.h:532
static void GPIO_unlockPortConfig(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:797
static uint16_t GPIO_getInterruptCounter(GPIO_ExternalIntNum extIntNum)
Definition gpio.h:400
static void GPIO_lockPortConfig(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:763
GPIO_Port
Definition gpio.h:189
static void GPIO_clearPortPins(GPIO_Port port, uint32_t pinMask)
Definition gpio.h:692
static void GPIO_enableInterrupt(GPIO_ExternalIntNum extIntNum)
Definition gpio.h:342
@ GPIO_DIR_MODE_OUT
Pin is a GPIO output.
Definition gpio.h:128
@ GPIO_DIR_MODE_IN
Pin is a GPIO input.
Definition gpio.h:127
@ GPIO_ANALOG_ENABLED
Pin is in analog mode.
Definition gpio.h:166
@ GPIO_ANALOG_DISABLED
Pin is in digital mode.
Definition gpio.h:165
@ GPIO_CORE_CPU2
CPU2 selected as controller core.
Definition gpio.h:178
@ GPIO_CORE_CPU1
CPU1 selected as controller core.
Definition gpio.h:177
@ GPIO_CORE_CPU3
CPU3 selected as controller core.
Definition gpio.h:179
@ GPIO_INT_TYPE_RISING_EDGE
Interrupt on rising edge.
Definition gpio.h:140
@ GPIO_INT_TYPE_FALLING_EDGE
Interrupt on falling edge.
Definition gpio.h:139
@ GPIO_INT_TYPE_BOTH_EDGES
Interrupt on both edges.
Definition gpio.h:141
@ GPIO_QUAL_3SAMPLE
Qualified with 3 samples.
Definition gpio.h:153
@ GPIO_QUAL_6SAMPLE
Qualified with 6 samples.
Definition gpio.h:154
@ GPIO_QUAL_SYNC
Synchronization to SYSCLK.
Definition gpio.h:152
@ GPIO_QUAL_ASYNC
No synchronization.
Definition gpio.h:155
@ GPIO_INT_XINT1
External Interrupt 1.
Definition gpio.h:209
@ GPIO_INT_XINT4
External Interrupt 4.
Definition gpio.h:212
@ GPIO_INT_XINT2
External Interrupt 2.
Definition gpio.h:210
@ GPIO_INT_XINT5
External Interrupt 5.
Definition gpio.h:213
@ GPIO_INT_XINT3
External Interrupt 3.
Definition gpio.h:211
@ GPIO_PORT_H
GPIO port H.
Definition gpio.h:197
@ GPIO_PORT_D
GPIO port D.
Definition gpio.h:193
@ GPIO_PORT_F
GPIO port F.
Definition gpio.h:195
@ GPIO_PORT_A
GPIO port A.
Definition gpio.h:190
@ GPIO_PORT_G
GPIO port G.
Definition gpio.h:196
@ GPIO_PORT_E
GPIO port E.
Definition gpio.h:194
@ GPIO_PORT_C
GPIO port C.
Definition gpio.h:192
@ GPIO_PORT_B
GPIO port B.
Definition gpio.h:191