pins_driver.h File Reference
#include <stddef.h>
#include "device_registers.h"
#include "status.h"

Go to the source code of this file.

Data Structures

struct  port_digital_filter_config_t
 The digital filter configuration Implements : port_digital_filter_config_t_Class. More...
 
struct  pin_settings_config_t
 Defines the converter configuration. More...
 

Typedefs

typedef uint32_t pins_channel_type_t
 Type of a GPIO channel representation Implements : pins_channel_type_t_Class. More...
 
typedef uint8_t pins_level_type_t
 Type of a port levels representation. Implements : pins_level_type_t_Class. More...
 

Enumerations

enum  port_data_direction_t { GPIO_INPUT_DIRECTION = 0x0U, GPIO_OUTPUT_DIRECTION = 0x1U, GPIO_UNSPECIFIED_DIRECTION = 0x2U }
 Configures the port data direction Implements : port_data_direction_t_Class. More...
 
enum  port_pull_config_t { PORT_INTERNAL_PULL_NOT_ENABLED = 0U, PORT_INTERNAL_PULL_DOWN_ENABLED = 1U, PORT_INTERNAL_PULL_UP_ENABLED = 2U }
 Internal resistor pull feature selection Implements : port_pull_config_t_Class. More...
 
enum  port_drive_strength_t { PORT_LOW_DRIVE_STRENGTH = 0U, PORT_HIGH_DRIVE_STRENGTH = 1U }
 Configures the drive strength. Implements : port_drive_strength_t_Class. More...
 
enum  port_mux_t {
  PORT_PIN_DISABLED = 0U, PORT_MUX_AS_GPIO = 1U, PORT_MUX_ALT2 = 2U, PORT_MUX_ALT3 = 3U,
  PORT_MUX_ALT4 = 4U, PORT_MUX_ALT5 = 5U, PORT_MUX_ALT6 = 6U, PORT_MUX_ALT7 = 7U
}
 Configures the Pin mux selection Implements : port_mux_t_Class. More...
 
enum  port_interrupt_config_t {
  PORT_DMA_INT_DISABLED = 0x0U, PORT_DMA_RISING_EDGE = 0x1U, PORT_DMA_FALLING_EDGE = 0x2U, PORT_DMA_EITHER_EDGE = 0x3U,
  PORT_INT_LOGIC_ZERO = 0x8U, PORT_INT_RISING_EDGE = 0x9U, PORT_INT_FALLING_EDGE = 0xAU, PORT_INT_EITHER_EDGE = 0xBU,
  PORT_INT_LOGIC_ONE = 0xCU
}
 Configures the interrupt generation condition. Implements : port_interrupt_config_t_Class. More...
 
enum  port_digital_filter_clock_t { PORT_DIGITAL_FILTER_BUS_CLOCK = 0U, PORT_DIGITAL_FILTER_LPO_CLOCK = 1U }
 Clock source for the digital input filters Implements : port_digital_filter_clock_t_Class. More...
 
enum  port_global_control_pins_t { PORT_GLOBAL_CONTROL_LOWER_HALF_PINS = 0U, PORT_GLOBAL_CONTROL_UPPER_HALF_PINS = 1U }
 The port global pin/interuppt control registers Implements : port_global_control_pins_t_Class. More...
 

Functions

PINS DRIVER API.
status_t PINS_DRV_Init (uint32_t pinCount, const pin_settings_config_t config[])
 Initializes the pins with the given configuration structure. More...
 
void PINS_DRV_SetPullSel (PORT_Type *const base, uint32_t pin, port_pull_config_t pullConfig)
 Configures the internal resistor. More...
 
void PINS_DRV_SetMuxModeSel (PORT_Type *const base, uint32_t pin, port_mux_t mux)
 Configures the pin muxing. More...
 
void PINS_DRV_SetPinIntSel (PORT_Type *const base, uint32_t pin, port_interrupt_config_t intConfig)
 Configures the port pin interrupt/DMA request. More...
 
port_interrupt_config_t PINS_DRV_GetPinIntSel (const PORT_Type *const base, uint32_t pin)
 Gets the current port pin interrupt/DMA request configuration. More...
 
void PINS_DRV_ClearPinIntFlagCmd (PORT_Type *const base, uint32_t pin)
 Clears the individual pin-interrupt status flag. More...
 
void PINS_DRV_EnableDigitalFilter (PORT_Type *const base, uint32_t pin)
 Enables digital filter for digital pin muxing. More...
 
void PINS_DRV_DisableDigitalFilter (PORT_Type *const base, uint32_t pin)
 Disables digital filter for digital pin muxing. More...
 
void PINS_DRV_ConfigDigitalFilter (PORT_Type *const base, const port_digital_filter_config_t *const config)
 Configures digital filter for port with given configuration. More...
 
uint32_t PINS_DRV_GetPortIntFlag (const PORT_Type *const base)
 Reads the entire port interrupt status flag. More...
 
void PINS_DRV_ClearPortIntFlagCmd (PORT_Type *const base)
 Clears the entire port interrupt status flag. More...
 
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. More...
 
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. More...
 
pins_channel_type_t PINS_DRV_GetPinsDirection (const GPIO_Type *const base)
 Get the pins directions configuration for a port. More...
 
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. More...
 
void PINS_DRV_SetPinsDirection (GPIO_Type *const base, pins_channel_type_t pins)
 Set the pins directions configuration for a port. More...
 
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. More...
 
void PINS_DRV_WritePins (GPIO_Type *const base, pins_channel_type_t pins)
 Write all pins of a port. More...
 
pins_channel_type_t PINS_DRV_GetPinsOutput (const GPIO_Type *const base)
 Get the current output from a port. More...
 
void PINS_DRV_SetPins (GPIO_Type *const base, pins_channel_type_t pins)
 Write pins with 'Set' value. More...
 
void PINS_DRV_ClearPins (GPIO_Type *const base, pins_channel_type_t pins)
 Write pins to 'Clear' value. More...
 
void PINS_DRV_TogglePins (GPIO_Type *const base, pins_channel_type_t pins)
 Toggle pins value. More...
 
pins_channel_type_t PINS_DRV_ReadPins (const GPIO_Type *const base)
 Read input pins. More...