30 #include "pins_gpio_hw_access.h"
31 #if defined(FEATURE_PINS_DRIVER_USING_SIUL2)
32 #include "pins_siul2_hw_access.h"
33 #elif defined(FEATURE_PINS_DRIVER_USING_PORT)
34 #include "pins_port_hw_access.h"
59 for (i = 0U; i < pinCount; i++)
61 pinInitStatus = PINS_Init(&config[i]);
64 result = pinInitStatus;
71 #if defined(FEATURE_PINS_DRIVER_USING_PORT)
72 #if FEATURE_PINS_HAS_PULL_SELECTION
84 PINS_SetPullSel(base, pin, pullConfig);
100 PINS_SetMuxModeSel(base, pin, mux);
114 PINS_SetPinIntSel(base, pin, intConfig);
127 return PINS_GetPinIntSel(base, pin);
140 PINS_ClearPinIntFlagCmd(base, pin);
153 PINS_EnableDigitalFilter(base, pin);
167 PINS_DisableDigitalFilter(base, pin);
181 PINS_ConfigDigitalFilter(base, config);
193 return PINS_GetPortIntFlag(base);
205 PINS_ClearPortIntFlagCmd(base);
219 return PINS_GPIO_GetPinsDirection(base);
235 PINS_GPIO_SetPinDirection(base, pin, direction);
251 PINS_GPIO_SetPinsDirection(base, pins);
254 #if FEATURE_PORT_HAS_INPUT_DISABLE
265 void PINS_DRV_SetPortInputDisable(
GPIO_Type *
const base,
268 PINS_GPIO_SetPortInputDisable(base, pins);
282 return PINS_GPIO_GetPortInputDisable(base);
300 PINS_SetGlobalPinControl(base, pins, value, halfPort);
317 PINS_SetGlobalIntControl(base, pins, value, halfPort);
320 #if FEATURE_PINS_HAS_OVER_CURRENT
328 uint32_t PINS_DRV_GetOverCurPortIntFlag(
const PORT_Type *
const base)
330 return PINS_GetOverCurPortIntFlag(base);
340 void PINS_DRV_ClearOverCurPortIntFlag(
PORT_Type *
const base)
342 PINS_ClearOverCurPortIntFlag(base);
346 #elif defined(FEATURE_PINS_DRIVER_USING_SIUL2)
347 #if FEATURE_PINS_HAS_PULL_SELECTION
359 PINS_SetPullSel(base, pin, pullConfig);
371 void PINS_DRV_SetOutputBuffer(
PORT_Type *
const base,
376 PINS_SetOutputBuffer(base, pin, enable, mux);
386 void PINS_DRV_SetInputBuffer(
PORT_Type *
const base,
389 uint32_t inputMuxReg,
390 port_input_mux_t inputMux)
392 PINS_SetInputBuffer(base, pin, enable, inputMuxReg, inputMux);
402 void PINS_DRV_ConfigIntFilterClock(uint8_t prescaler)
404 PINS_ConfigIntFilterClock(prescaler);
414 void PINS_DRV_SetExInt(siul2_interrupt_config_t
intConfig)
416 PINS_SetExInt(intConfig);
426 void PINS_DRV_ClearPinExIntFlag(uint32_t eirqPinIdx)
428 PINS_ClearPinExIntFlag(eirqPinIdx);
438 bool PINS_DRV_GetPinExIntFlag(uint32_t eirqPinIdx)
440 return PINS_GetPinExIntFlag(eirqPinIdx);
450 void PINS_DRV_ClearExIntFlag(
void)
452 PINS_ClearExIntFlag();
462 uint32_t PINS_DRV_GetExIntFlag(
void)
464 return PINS_GetExIntFlag();
481 PINS_GPIO_WritePin(base, pin, value);
495 PINS_GPIO_WritePins(base, pins);
508 return PINS_GPIO_GetPinsOutput(base);
523 PINS_GPIO_SetPins(base, pins);
538 PINS_GPIO_ClearPins(base, pins);
552 PINS_GPIO_TogglePins(base, pins);
565 return PINS_GPIO_ReadPins(base);
rtc_interrupt_config_t * intConfig
status_t PINS_DRV_Init(uint32_t pinCount, const pin_settings_config_t config[])
Initializes the pins with the given configuration structure.
The digital filter configuration Implements : port_digital_filter_config_t_Class. ...
void PINS_DRV_SetGlobalIntControl(PORT_Type *const base, uint16_t pins, uint16_t value, port_global_control_pins_t halfPort)
Quickly configures multiple pins with the same interrupt configuration.
port_global_control_pins_t
The port global pin/interuppt control registers Implements : port_global_control_pins_t_Class.
uint32_t PINS_DRV_GetPortIntFlag(const PORT_Type *const base)
Reads the entire port interrupt status flag.
uint32_t pins_channel_type_t
Type of a GPIO channel representation Implements : pins_channel_type_t_Class.
void PINS_DRV_DisableDigitalFilter(PORT_Type *const base, uint32_t pin)
Disables digital filter for digital pin muxing.
void PINS_DRV_ClearPinIntFlagCmd(PORT_Type *const base, uint32_t pin)
Clears the individual pin-interrupt status flag.
pins_channel_type_t PINS_DRV_GetPinsOutput(const GPIO_Type *const base)
Get the current output from a port.
port_interrupt_config_t
Configures the interrupt generation condition. Implements : port_interrupt_config_t_Class.
void PINS_DRV_SetPullSel(PORT_Type *const base, uint32_t pin, port_pull_config_t pullConfig)
Configures the internal resistor.
void PINS_DRV_WritePin(GPIO_Type *const base, pins_channel_type_t pin, pins_level_type_t value)
Write a pin of a port with a given value.
void PINS_DRV_TogglePins(GPIO_Type *const base, pins_channel_type_t pins)
Toggle pins value.
void PINS_DRV_SetPinDirection(GPIO_Type *const base, pins_channel_type_t pin, pins_level_type_t direction)
Configure the direction for a certain pin from a port.
void PINS_DRV_WritePins(GPIO_Type *const base, pins_channel_type_t pins)
Write all pins of a port.
void PINS_DRV_SetPinsDirection(GPIO_Type *const base, pins_channel_type_t pins)
Set the pins directions configuration for a port.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
port_pull_config_t
Internal resistor pull feature selection Implements : port_pull_config_t_Class.
void PINS_DRV_EnableDigitalFilter(PORT_Type *const base, uint32_t pin)
Enables digital filter for digital pin muxing.
Defines the converter configuration.
void PINS_DRV_SetPins(GPIO_Type *const base, pins_channel_type_t pins)
Write pins with 'Set' value.
void PINS_DRV_ConfigDigitalFilter(PORT_Type *const base, const port_digital_filter_config_t *const config)
Configures digital filter for port with given configuration.
port_mux_t
Configures the Pin mux selection Implements : port_mux_t_Class.
void PINS_DRV_SetGlobalPinControl(PORT_Type *const base, uint16_t pins, uint16_t value, port_global_control_pins_t halfPort)
Quickly configures multiple pins with the same pin configuration.
pins_channel_type_t PINS_DRV_ReadPins(const GPIO_Type *const base)
Read input pins.
pins_channel_type_t PINS_DRV_GetPinsDirection(const GPIO_Type *const base)
Get the pins directions configuration for a port.
uint8_t pins_level_type_t
Type of a port levels representation. Implements : pins_level_type_t_Class.
port_interrupt_config_t PINS_DRV_GetPinIntSel(const PORT_Type *const base, uint32_t pin)
Gets the current port pin interrupt/DMA request configuration.
void PINS_DRV_SetMuxModeSel(PORT_Type *const base, uint32_t pin, port_mux_t mux)
Configures the pin muxing.
void PINS_DRV_ClearPortIntFlagCmd(PORT_Type *const base)
Clears the entire port interrupt status flag.
void PINS_DRV_SetPinIntSel(PORT_Type *const base, uint32_t pin, port_interrupt_config_t intConfig)
Configures the port pin interrupt/DMA request.
void PINS_DRV_ClearPins(GPIO_Type *const base, pins_channel_type_t pins)
Write pins to 'Clear' value.