33 #include "fsl_common.h" 45 #define FSL_PORT_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) 62 #if defined(FSL_FEATURE_PORT_HAS_OPEN_DRAIN) && FSL_FEATURE_PORT_HAS_OPEN_DRAIN 85 #if defined(FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK) && FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK 95 typedef enum _port_mux
108 typedef enum _port_interrupt
111 #if defined(FSL_FEATURE_PORT_HAS_DMA_REQUEST) && FSL_FEATURE_PORT_HAS_DMA_REQUEST 125 #if defined(FSL_FEATURE_PORT_HAS_DIGITAL_FILTER) && FSL_FEATURE_PORT_HAS_DIGITAL_FILTER 127 typedef enum _port_digital_filter_clock_source
134 typedef struct _port_digital_filter_config
142 typedef struct _port_pin_config
144 uint16_t pullSelect : 2;
145 uint16_t slewRate : 1;
147 uint16_t passiveFilterEnable : 1;
148 #if defined(FSL_FEATURE_PORT_HAS_OPEN_DRAIN) && FSL_FEATURE_PORT_HAS_OPEN_DRAIN 149 uint16_t openDrainEnable : 1;
153 uint16_t driveStrength : 1;
157 #if defined(FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK) && FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK 158 uint16_t lockRegister : 1;
168 #if defined(__cplusplus) 199 uint32_t addr = (uint32_t)&base->PCR[pin];
200 *(
volatile uint16_t *)(addr) = *((
const uint16_t *)config);
232 uint16_t PCRL = *((
const uint16_t *)config);
236 base->GPCLR = (mask & 0xffffU) | PCRL;
240 base->GPCHR = (mask >> 16) | PCRL;
261 base->PCR[pin] = (base->PCR[pin] & ~PORT_PCR_MUX_MASK) | PORT_PCR_MUX(mux);
264 #if defined(FSL_FEATURE_PORT_HAS_DIGITAL_FILTER) && FSL_FEATURE_PORT_HAS_DIGITAL_FILTER 326 base->PCR[pin] = (base->PCR[pin] & ~PORT_PCR_IRQC_MASK) | PORT_PCR_IRQC(config);
358 #if defined(__cplusplus) static void PORT_EnablePinsDigitalFilter(PORT_Type *base, uint32_t mask, bool enable)
Enables the digital filter in one port. Each bit of the 32-bit register represents one pin...
Definition: fsl_port.h:272
Definition: fsl_port.h:59
Definition: fsl_port.h:130
Definition: fsl_port.h:99
Definition: fsl_port.h:74
Definition: fsl_port.h:67
static void PORT_SetPinConfig(PORT_Type *base, uint32_t pin, const port_pin_config_t *config)
Sets the port PCR register.
Definition: fsl_port.h:196
Definition: fsl_port.h:101
Definition: fsl_port.h:89
port_digital_filter_clock_source_t
Digital filter clock source selection.
Definition: fsl_port.h:127
_port_open_drain_enable
Internal resistor pull feature enable/disable.
Definition: fsl_port.h:64
Definition: fsl_port.h:66
static void PORT_SetMultiplePinsConfig(PORT_Type *base, uint32_t mask, const port_pin_config_t *config)
Sets the port PCR register.
Definition: fsl_port.h:228
Definition: fsl_port.h:75
static uint32_t PORT_GetPinsInterruptFlags(PORT_Type *base)
Reads the whole port status flag.
Definition: fsl_port.h:342
Definition: fsl_port.h:110
Definition: fsl_port.h:129
Definition: fsl_port.h:112
Definition: fsl_port.h:118
Definition: fsl_port.h:82
Definition: fsl_port.h:113
static void PORT_SetPinMux(PORT_Type *base, uint32_t pin, port_mux_t mux)
Configures the pin muxing.
Definition: fsl_port.h:259
Definition: fsl_port.h:58
_port_passive_filter_enable
Passive filter feature enable/disable.
Definition: fsl_port.h:72
Definition: fsl_port.h:81
port_digital_filter_clock_source_t clockSource
Definition: fsl_port.h:137
static void PORT_SetDigitalFilterConfig(PORT_Type *base, const port_digital_filter_config_t *config)
set the digital filter in one port. Each bit of the 32-bit register represents one pin...
Definition: fsl_port.h:291
Definition: fsl_port.h:121
Definition: fsl_port.h:120
uint32_t digitalFilterWidth
Definition: fsl_port.h:136
static void PORT_ClearPinsInterruptFlags(PORT_Type *base, uint32_t mask)
Clears the multiple pins' interrupt status flag.
Definition: fsl_port.h:352
_port_pull
Internal resistor pull feature selection.
Definition: fsl_port.h:48
Definition: fsl_port.h:52
Definition: fsl_port.h:114
PORT digital filter feature configuration definition.
Definition: fsl_port.h:134
Definition: fsl_port.h:102
static void PORT_SetPinInterruptConfig(PORT_Type *base, uint32_t pin, const port_interrupt_t config)
Configures the port pin interrupt/DMA request.
Definition: fsl_port.h:324
Definition: fsl_port.h:103
Definition: fsl_port.h:119
Definition: fsl_port.h:100
Definition: fsl_port.h:50
PORT pin config structure.
Definition: fsl_port.h:142
port_mux_t
Pin mux selection.
Definition: fsl_port.h:95
Definition: fsl_port.h:90
Definition: fsl_port.h:98
Definition: fsl_port.h:97
port_interrupt_t
Configures the interrupt generation condition.
Definition: fsl_port.h:108
Definition: fsl_port.h:122
Definition: fsl_port.h:116
Definition: fsl_port.h:117
Definition: fsl_port.h:104
_port_drive_strength
Configures the drive strength.
Definition: fsl_port.h:79
_port_slew_rate
Slew rate selection.
Definition: fsl_port.h:56
Definition: fsl_port.h:51
_port_lock_register
unlock/lock the pin control register field[15:0]
Definition: fsl_port.h:87