GPIO pin abstraction and port abstraction for reading and writing byte-wise to GPIO ports. More...
Macros | |
#define | NRF_GPIO_PIN_MAP(port, pin) ((port << 5) | (pin & 0x1F)) |
Macro for mapping port and pin numbers to values understandable for nrf_gpio functions. | |
Enumerations | |
enum | nrf_gpio_pin_dir_t { NRF_GPIO_PIN_DIR_INPUT = GPIO_PIN_CNF_DIR_Input, NRF_GPIO_PIN_DIR_OUTPUT = GPIO_PIN_CNF_DIR_Output } |
Pin direction definitions. More... | |
enum | nrf_gpio_pin_input_t { NRF_GPIO_PIN_INPUT_CONNECT = GPIO_PIN_CNF_INPUT_Connect, NRF_GPIO_PIN_INPUT_DISCONNECT = GPIO_PIN_CNF_INPUT_Disconnect } |
Connection of input buffer. More... | |
enum | nrf_gpio_pin_pull_t { NRF_GPIO_PIN_NOPULL = GPIO_PIN_CNF_PULL_Disabled, NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown, NRF_GPIO_PIN_PULLUP = GPIO_PIN_CNF_PULL_Pullup } |
Enumerator used for selecting the pin to be pulled down or up at the time of pin configuration. More... | |
enum | nrf_gpio_pin_drive_t { NRF_GPIO_PIN_S0S1 = GPIO_PIN_CNF_DRIVE_S0S1, NRF_GPIO_PIN_H0S1 = GPIO_PIN_CNF_DRIVE_H0S1, NRF_GPIO_PIN_S0H1 = GPIO_PIN_CNF_DRIVE_S0H1, NRF_GPIO_PIN_H0H1 = GPIO_PIN_CNF_DRIVE_H0H1, NRF_GPIO_PIN_D0S1 = GPIO_PIN_CNF_DRIVE_D0S1, NRF_GPIO_PIN_D0H1 = GPIO_PIN_CNF_DRIVE_D0H1, NRF_GPIO_PIN_S0D1 = GPIO_PIN_CNF_DRIVE_S0D1, NRF_GPIO_PIN_H0D1 = GPIO_PIN_CNF_DRIVE_H0D1 } |
Enumerator used for selecting output drive mode. More... | |
enum | nrf_gpio_pin_sense_t { NRF_GPIO_PIN_NOSENSE = GPIO_PIN_CNF_SENSE_Disabled, NRF_GPIO_PIN_SENSE_LOW = GPIO_PIN_CNF_SENSE_Low, NRF_GPIO_PIN_SENSE_HIGH = GPIO_PIN_CNF_SENSE_High } |
Enumerator used for selecting the pin to sense high or low level on the pin input. More... | |
Functions | |
__STATIC_INLINE void | nrf_gpio_range_cfg_output (uint32_t pin_range_start, uint32_t pin_range_end) |
Function for configuring the GPIO pin range as output pins with normal drive strength. This function can be used to configure pin range as simple output with gate driving GPIO_PIN_CNF_DRIVE_S0S1 (normal cases). More... | |
__STATIC_INLINE void | nrf_gpio_range_cfg_input (uint32_t pin_range_start, uint32_t pin_range_end, nrf_gpio_pin_pull_t pull_config) |
Function for configuring the GPIO pin range as input pins with given initial value set, hiding inner details. This function can be used to configure pin range as simple input. More... | |
__STATIC_INLINE void | nrf_gpio_cfg (uint32_t pin_number, nrf_gpio_pin_dir_t dir, nrf_gpio_pin_input_t input, nrf_gpio_pin_pull_t pull, nrf_gpio_pin_drive_t drive, nrf_gpio_pin_sense_t sense) |
Pin configuration function. More... | |
__STATIC_INLINE void | nrf_gpio_cfg_output (uint32_t pin_number) |
Function for configuring the given GPIO pin number as output, hiding inner details. This function can be used to configure a pin as simple output with gate driving GPIO_PIN_CNF_DRIVE_S0S1 (normal cases). More... | |
__STATIC_INLINE void | nrf_gpio_cfg_input (uint32_t pin_number, nrf_gpio_pin_pull_t pull_config) |
Function for configuring the given GPIO pin number as input, hiding inner details. This function can be used to configure a pin as simple input. More... | |
__STATIC_INLINE void | nrf_gpio_cfg_default (uint32_t pin_number) |
Function for resetting pin configuration to its default state. More... | |
__STATIC_INLINE void | nrf_gpio_cfg_watcher (uint32_t pin_number) |
Function for configuring the given GPIO pin number as a watcher. Only input is connected. More... | |
__STATIC_INLINE void | nrf_gpio_input_disconnect (uint32_t pin_number) |
Function for disconnecting input for the given GPIO. More... | |
__STATIC_INLINE void | nrf_gpio_cfg_sense_input (uint32_t pin_number, nrf_gpio_pin_pull_t pull_config, nrf_gpio_pin_sense_t sense_config) |
Function for configuring the given GPIO pin number as input, hiding inner details. This function can be used to configure pin range as simple input. Sense capability on the pin is configurable and input is connected to buffer so that the GPIO->IN register is readable. More... | |
__STATIC_INLINE void | nrf_gpio_cfg_sense_set (uint32_t pin_number, nrf_gpio_pin_sense_t sense_config) |
Function for configuring sense level for the given GPIO. More... | |
__STATIC_INLINE void | nrf_gpio_pin_dir_set (uint32_t pin_number, nrf_gpio_pin_dir_t direction) |
Function for setting the direction for a GPIO pin. More... | |
__STATIC_INLINE void | nrf_gpio_pin_set (uint32_t pin_number) |
Function for setting a GPIO pin. More... | |
__STATIC_INLINE void | nrf_gpio_pin_clear (uint32_t pin_number) |
Function for clearing a GPIO pin. More... | |
__STATIC_INLINE void | nrf_gpio_pin_toggle (uint32_t pin_number) |
Function for toggling a GPIO pin. More... | |
__STATIC_INLINE void | nrf_gpio_pin_write (uint32_t pin_number, uint32_t value) |
Function for writing a value to a GPIO pin. More... | |
__STATIC_INLINE uint32_t | nrf_gpio_pin_read (uint32_t pin_number) |
Function for reading the input level of a GPIO pin. More... | |
__STATIC_INLINE uint32_t | nrf_gpio_pin_out_read (uint32_t pin_number) |
Function for reading the output level of a GPIO pin. More... | |
__STATIC_INLINE nrf_gpio_pin_sense_t | nrf_gpio_pin_sense_get (uint32_t pin_number) |
Function for reading the sense configuration of a GPIO pin. More... | |
__STATIC_INLINE void | nrf_gpio_port_dir_output_set (NRF_GPIO_Type *p_reg, uint32_t out_mask) |
Function for setting output direction on selected pins on a given port. More... | |
__STATIC_INLINE void | nrf_gpio_port_dir_input_set (NRF_GPIO_Type *p_reg, uint32_t in_mask) |
Function for setting input direction on selected pins on a given port. More... | |
__STATIC_INLINE void | nrf_gpio_port_dir_write (NRF_GPIO_Type *p_reg, uint32_t dir_mask) |
Function for writing the direction configuration of GPIO pins in a given port. More... | |
__STATIC_INLINE uint32_t | nrf_gpio_port_dir_read (NRF_GPIO_Type const *p_reg) |
Function for reading the direction configuration of a GPIO port. More... | |
__STATIC_INLINE uint32_t | nrf_gpio_port_in_read (NRF_GPIO_Type const *p_reg) |
Function for reading the input signals of GPIO pins on a given port. More... | |
__STATIC_INLINE uint32_t | nrf_gpio_port_out_read (NRF_GPIO_Type const *p_reg) |
Function for reading the output signals of GPIO pins of a given port. More... | |
__STATIC_INLINE void | nrf_gpio_port_out_write (NRF_GPIO_Type *p_reg, uint32_t value) |
Function for writing the GPIO pins output on a given port. More... | |
__STATIC_INLINE void | nrf_gpio_port_out_set (NRF_GPIO_Type *p_reg, uint32_t set_mask) |
Function for setting high level on selected GPIO pins of a given port. More... | |
__STATIC_INLINE void | nrf_gpio_port_out_clear (NRF_GPIO_Type *p_reg, uint32_t clr_mask) |
Function for setting low level on selected GPIO pins of a given port. More... | |
__STATIC_INLINE void | nrf_gpio_ports_read (uint32_t start_port, uint32_t length, uint32_t *p_masks) |
Function for reading pins state of multiple consecutive ports. More... | |
GPIO pin abstraction and port abstraction for reading and writing byte-wise to GPIO ports.
enum nrf_gpio_pin_dir_t |
enum nrf_gpio_pin_drive_t |
Enumerator used for selecting output drive mode.
enum nrf_gpio_pin_input_t |
enum nrf_gpio_pin_pull_t |
enum nrf_gpio_pin_sense_t |
__STATIC_INLINE void nrf_gpio_cfg | ( | uint32_t | pin_number, |
nrf_gpio_pin_dir_t | dir, | ||
nrf_gpio_pin_input_t | input, | ||
nrf_gpio_pin_pull_t | pull, | ||
nrf_gpio_pin_drive_t | drive, | ||
nrf_gpio_pin_sense_t | sense | ||
) |
Pin configuration function.
The main pin configuration function. This function allows to set any aspect in PIN_CNF register.
pin_number | Specifies the pin number. |
dir | Pin direction. |
input | Connect or disconnect the input buffer. |
pull | Pull configuration. |
drive | Drive configuration. |
sense | Pin sensing mechanism. |
__STATIC_INLINE void nrf_gpio_cfg_default | ( | uint32_t | pin_number | ) |
Function for resetting pin configuration to its default state.
pin_number | Specifies the pin number. |
__STATIC_INLINE void nrf_gpio_cfg_input | ( | uint32_t | pin_number, |
nrf_gpio_pin_pull_t | pull_config | ||
) |
Function for configuring the given GPIO pin number as input, hiding inner details. This function can be used to configure a pin as simple input.
pin_number | Specifies the pin number. |
pull_config | State of the pin range pull resistor (no pull, pulled down, or pulled high). |
__STATIC_INLINE void nrf_gpio_cfg_output | ( | uint32_t | pin_number | ) |
Function for configuring the given GPIO pin number as output, hiding inner details. This function can be used to configure a pin as simple output with gate driving GPIO_PIN_CNF_DRIVE_S0S1 (normal cases).
pin_number | Specifies the pin number. |
__STATIC_INLINE void nrf_gpio_cfg_sense_input | ( | uint32_t | pin_number, |
nrf_gpio_pin_pull_t | pull_config, | ||
nrf_gpio_pin_sense_t | sense_config | ||
) |
Function for configuring the given GPIO pin number as input, hiding inner details. This function can be used to configure pin range as simple input. Sense capability on the pin is configurable and input is connected to buffer so that the GPIO->IN register is readable.
pin_number | Specifies the pin number. |
pull_config | State of the pin pull resistor (no pull, pulled down, or pulled high). |
sense_config | Sense level of the pin (no sense, sense low, or sense high). |
__STATIC_INLINE void nrf_gpio_cfg_sense_set | ( | uint32_t | pin_number, |
nrf_gpio_pin_sense_t | sense_config | ||
) |
Function for configuring sense level for the given GPIO.
pin_number | Specifies the pin number. |
sense_config | Sense configuration. |
__STATIC_INLINE void nrf_gpio_cfg_watcher | ( | uint32_t | pin_number | ) |
Function for configuring the given GPIO pin number as a watcher. Only input is connected.
pin_number | Specifies the pin number. |
__STATIC_INLINE void nrf_gpio_input_disconnect | ( | uint32_t | pin_number | ) |
Function for disconnecting input for the given GPIO.
pin_number | Specifies the pin number. |
__STATIC_INLINE void nrf_gpio_pin_clear | ( | uint32_t | pin_number | ) |
Function for clearing a GPIO pin.
Note that the pin must be configured as an output for this function to have any effect.
pin_number | Specifies the pin number to clear. |
__STATIC_INLINE void nrf_gpio_pin_dir_set | ( | uint32_t | pin_number, |
nrf_gpio_pin_dir_t | direction | ||
) |
Function for setting the direction for a GPIO pin.
pin_number | Specifies the pin number for which to set the direction. |
direction | Specifies the direction. |
__STATIC_INLINE uint32_t nrf_gpio_pin_out_read | ( | uint32_t | pin_number | ) |
Function for reading the output level of a GPIO pin.
pin_number | Specifies the pin number to read. |
__STATIC_INLINE uint32_t nrf_gpio_pin_read | ( | uint32_t | pin_number | ) |
Function for reading the input level of a GPIO pin.
Note that the pin must have input connected for the value returned from this function to be valid.
pin_number | Specifies the pin number to read. |
__STATIC_INLINE nrf_gpio_pin_sense_t nrf_gpio_pin_sense_get | ( | uint32_t | pin_number | ) |
Function for reading the sense configuration of a GPIO pin.
pin_number | Specifies the pin number to read. |
Sense | configuration. |
__STATIC_INLINE void nrf_gpio_pin_set | ( | uint32_t | pin_number | ) |
Function for setting a GPIO pin.
Note that the pin must be configured as an output for this function to have any effect.
pin_number | Specifies the pin number to set. |
__STATIC_INLINE void nrf_gpio_pin_toggle | ( | uint32_t | pin_number | ) |
Function for toggling a GPIO pin.
Note that the pin must be configured as an output for this function to have any effect.
pin_number | Specifies the pin number to toggle. |
__STATIC_INLINE void nrf_gpio_pin_write | ( | uint32_t | pin_number, |
uint32_t | value | ||
) |
Function for writing a value to a GPIO pin.
Note that the pin must be configured as an output for this function to have any effect.
pin_number | Specifies the pin number to write. |
value | Specifies the value to be written to the pin.
|
__STATIC_INLINE void nrf_gpio_port_dir_input_set | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | in_mask | ||
) |
Function for setting input direction on selected pins on a given port.
p_reg | Pointer to the peripheral registers structure. |
in_mask | Mask specifying the pins to set as input. |
__STATIC_INLINE void nrf_gpio_port_dir_output_set | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | out_mask | ||
) |
Function for setting output direction on selected pins on a given port.
p_reg | Pointer to the peripheral registers structure. |
out_mask | Mask specifying the pins to set as output. |
__STATIC_INLINE uint32_t nrf_gpio_port_dir_read | ( | NRF_GPIO_Type const * | p_reg | ) |
Function for reading the direction configuration of a GPIO port.
p_reg | Pointer to the peripheral registers structure. |
Pin | configuration of the current direction settings. Bit set means that the given pin is configured as output. |
__STATIC_INLINE void nrf_gpio_port_dir_write | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | dir_mask | ||
) |
Function for writing the direction configuration of GPIO pins in a given port.
p_reg | Pointer to the peripheral registers structure. |
dir_mask | Mask specifying the direction of pins. Bit set means that the given pin is configured as output. |
__STATIC_INLINE uint32_t nrf_gpio_port_in_read | ( | NRF_GPIO_Type const * | p_reg | ) |
Function for reading the input signals of GPIO pins on a given port.
p_reg | Pointer to the peripheral registers structure. |
Port | input values. |
__STATIC_INLINE void nrf_gpio_port_out_clear | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | clr_mask | ||
) |
Function for setting low level on selected GPIO pins of a given port.
p_reg | Pointer to the peripheral registers structure. |
clr_mask | Mask with pins to set as logical low level. |
__STATIC_INLINE uint32_t nrf_gpio_port_out_read | ( | NRF_GPIO_Type const * | p_reg | ) |
Function for reading the output signals of GPIO pins of a given port.
p_reg | Pointer to the peripheral registers structure. |
Port | output values. |
__STATIC_INLINE void nrf_gpio_port_out_set | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | set_mask | ||
) |
Function for setting high level on selected GPIO pins of a given port.
p_reg | Pointer to the peripheral registers structure. |
set_mask | Mask with pins to set as logical high level. |
__STATIC_INLINE void nrf_gpio_port_out_write | ( | NRF_GPIO_Type * | p_reg, |
uint32_t | value | ||
) |
Function for writing the GPIO pins output on a given port.
p_reg | Pointer to the peripheral registers structure. |
value | Output port mask. |
__STATIC_INLINE void nrf_gpio_ports_read | ( | uint32_t | start_port, |
uint32_t | length, | ||
uint32_t * | p_masks | ||
) |
Function for reading pins state of multiple consecutive ports.
start_port | Index of the first port to read. |
length | Number of ports to read. |
p_masks | Pointer to output array where port states will be stored. |
__STATIC_INLINE void nrf_gpio_range_cfg_input | ( | uint32_t | pin_range_start, |
uint32_t | pin_range_end, | ||
nrf_gpio_pin_pull_t | pull_config | ||
) |
Function for configuring the GPIO pin range as input pins with given initial value set, hiding inner details. This function can be used to configure pin range as simple input.
pin_range_start | Specifies the start number (inclusive) in the range of pin numbers to be configured (allowed values 0-30). |
pin_range_end | Specifies the end number (inclusive) in the range of pin numbers to be configured (allowed values 0-30). |
pull_config | State of the pin range pull resistor (no pull, pulled down, or pulled high). |
__STATIC_INLINE void nrf_gpio_range_cfg_output | ( | uint32_t | pin_range_start, |
uint32_t | pin_range_end | ||
) |
Function for configuring the GPIO pin range as output pins with normal drive strength. This function can be used to configure pin range as simple output with gate driving GPIO_PIN_CNF_DRIVE_S0S1 (normal cases).
pin_range_start | Specifies the start number (inclusive) in the range of pin numbers to be configured (allowed values 0-30). |
pin_range_end | Specifies the end number (inclusive) in the range of pin numbers to be configured (allowed values 0-30). |