GPIO HALY

group nrfy_gpio

Hardware access layer with cache and barrier support for managing the GPIO peripheral.

Functions

NRFY_STATIC_INLINE void nrfy_gpio_range_cfg_output(uint32_t pin_range_start, uint32_t pin_range_end)

See also

nrf_gpio_range_cfg_output 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).

Note

For configuring only one pin as output, use nrf_gpio_cfg_output. Sense capability on the pin is disabled and input is disconnected from the buffer as the pins are configured as output.

Parameters:
  • pin_range_start – Specifies the start number (inclusive) in the range of pin numbers to be configured.

  • pin_range_end – Specifies the end number (inclusive) in the range of pin numbers to be configured.

NRFY_STATIC_INLINE void nrfy_gpio_range_cfg_input(uint32_t pin_range_start, uint32_t pin_range_end, nrf_gpio_pin_pull_t pull_config)

See also

nrf_gpio_range_cfg_input 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.

Note

For configuring only one pin as input, use nrf_gpio_cfg_input. Sense capability on the pin is disabled and input is connected to buffer so that the GPIO->IN register is readable.

Parameters:
  • pin_range_start – Specifies the start number (inclusive) in the range of pin numbers to be configured.

  • pin_range_end – Specifies the end number (inclusive) in the range of pin numbers to be configured.

  • pull_config – State of the pin range pull resistor (no pull, pulled down, or pulled high).

NRFY_STATIC_INLINE void nrfy_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)

See also

nrf_gpio_cfg Pin configuration function.

The main pin configuration function. This function allows to set any aspect in PIN_CNF register.

Parameters:
  • 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.

NRFY_STATIC_INLINE void nrfy_gpio_reconfigure(uint32_t pin_number, const nrf_gpio_pin_dir_t *p_dir, const nrf_gpio_pin_input_t *p_input, const nrf_gpio_pin_pull_t *p_pull, const nrf_gpio_pin_drive_t *p_drive, const nrf_gpio_pin_sense_t *p_sense)

See also

nrf_gpio_reconfigure Function for reconfiguring pin.

Note

This function selectively updates fields in PIN_CNF register. Reconfiguration is performed in single register write. Fields for which new configuration is not provided remain unchanged.

Parameters:
  • pin_number – Specifies the pin number.

  • p_dir – Pin direction. If NULL, previous setting remains.

  • p_input – Connect or disconnect the input buffer. If NULL, previous setting remains.

  • p_pull – Pull configuration. If NULL, previous setting remains.

  • p_drive – Drive configuration. If NULL, previous setting remains.

  • p_sense – Pin sensing mechanism. If NULL, previous setting remains.

NRFY_STATIC_INLINE void nrfy_gpio_cfg_output(uint32_t pin_number)

See also

nrf_gpio_cfg_output 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).

Note

Sense capability on the pin is disabled and input is disconnected from the buffer as the pins are configured as output.

Parameters:
  • pin_number – Specifies the pin number.

NRFY_STATIC_INLINE void nrfy_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config)

See also

nrf_gpio_cfg_input 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.

Note

Sense capability on the pin is disabled and input is connected to buffer so that the GPIO->IN register is readable.

Parameters:
  • pin_number – Specifies the pin number.

  • pull_config – State of the pin range pull resistor (no pull, pulled down, or pulled high).

NRFY_STATIC_INLINE void nrfy_gpio_cfg_default(uint32_t pin_number)

See also

nrf_gpio_cfg_default Function for resetting pin configuration to its default state.

Parameters:
  • pin_number – Specifies the pin number.

NRFY_STATIC_INLINE void nrfy_gpio_cfg_watcher(uint32_t pin_number)

See also

nrf_gpio_cfg_watcher Function for configuring the given GPIO pin number as a watcher. Only input is connected.

Parameters:
  • pin_number – Specifies the pin number.

NRFY_STATIC_INLINE void nrfy_gpio_input_disconnect(uint32_t pin_number)

See also

nrf_gpio_input_disconnect Function for disconnecting input for the given GPIO.

Parameters:
  • pin_number – Specifies the pin number.

NRFY_STATIC_INLINE void nrfy_gpio_cfg_sense_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config, nrf_gpio_pin_sense_t sense_config)

See also

nrf_gpio_cfg_sense_input 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.

Parameters:
  • 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).

NRFY_STATIC_INLINE void nrfy_gpio_cfg_sense_set(uint32_t pin_number, nrf_gpio_pin_sense_t sense_config)

See also

nrf_gpio_cfg_sense_set Function for configuring sense level for the given GPIO.

Parameters:
  • pin_number – Specifies the pin number.

  • sense_config – Sense configuration.

NRFY_STATIC_INLINE void nrfy_gpio_pin_dir_set(uint32_t pin_number, nrf_gpio_pin_dir_t direction)

See also

nrf_gpio_pin_dir_set Function for setting the direction for a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number for which to set the direction.

  • direction – Specifies the direction.

NRFY_STATIC_INLINE void nrfy_gpio_pin_set(uint32_t pin_number)

See also

nrf_gpio_pin_set Function for setting a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to be set.

NRFY_STATIC_INLINE void nrfy_gpio_pin_clear(uint32_t pin_number)

See also

nrf_gpio_pin_clear Function for clearing a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to clear.

NRFY_STATIC_INLINE void nrfy_gpio_pin_toggle(uint32_t pin_number)

See also

nrf_gpio_pin_toggle Function for toggling a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to toggle.

NRFY_STATIC_INLINE void nrfy_gpio_pin_write(uint32_t pin_number, uint32_t value)

See also

nrf_gpio_pin_write Function for writing a value to a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to write.

  • value – Specifies the value to be written to the pin.

    • 0 Clears the pin.

    • >=1 Sets the pin.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_pin_read(uint32_t pin_number)

See also

nrf_gpio_pin_read Function for reading the input level of a GPIO pin.

If the value returned by this function is to be valid, the pin’s input buffer must be connected.

Parameters:
  • pin_number – Specifies the pin number to read.

Returns:

0 if the pin input level is low. Positive value if the pin is high.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_pin_out_read(uint32_t pin_number)

See also

nrf_gpio_pin_out_read Function for reading the output level of a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to read.

Returns:

0 if the pin output level is low. Positive value if pin output is high.

NRFY_STATIC_INLINE nrf_gpio_pin_sense_t nrfy_gpio_pin_sense_get(uint32_t pin_number)

See also

nrf_gpio_pin_sense_get Function for reading the sense configuration of a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to read.

Returns:

Sense configuration.

NRFY_STATIC_INLINE nrf_gpio_pin_dir_t nrfy_gpio_pin_dir_get(uint32_t pin_number)

See also

nrf_gpio_pin_dir_get Function for reading the direction configuration of a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to read.

Returns:

Direction configuration.

NRFY_STATIC_INLINE nrf_gpio_pin_input_t nrfy_gpio_pin_input_get(uint32_t pin_number)

See also

nrf_gpio_pin_input_get Function for reading the status of GPIO pin input buffer.

Parameters:
  • pin_number – Pin number to be read.

Return values:

Input – buffer configuration.

NRFY_STATIC_INLINE nrf_gpio_pin_pull_t nrfy_gpio_pin_pull_get(uint32_t pin_number)

See also

nrf_gpio_pin_pull_get Function for reading the pull configuration of a GPIO pin.

Parameters:
  • pin_number – Specifies the pin number to read.

Return values:

Pull – configuration.

NRFY_STATIC_INLINE void nrfy_gpio_port_dir_output_set(NRF_GPIO_Type *p_reg, uint32_t out_mask)

See also

nrf_gpio_port_dir_output_set Function for setting output direction on the selected pins on the given port.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • out_mask – Mask specifying the pins to set as output.

NRFY_STATIC_INLINE void nrfy_gpio_port_dir_input_set(NRF_GPIO_Type *p_reg, uint32_t in_mask)

See also

nrf_gpio_port_dir_input_set Function for setting input direction on selected pins on a given port.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • in_mask – Mask that specifies the pins to be set as input.

NRFY_STATIC_INLINE void nrfy_gpio_port_dir_write(NRF_GPIO_Type *p_reg, uint32_t dir_mask)

See also

nrf_gpio_port_dir_write Function for writing the direction configuration of the GPIO pins in the given port.

Warning

This register is retained when retention is enabled.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • dir_mask – Mask that specifies the direction of pins. Bit set means that the given pin is configured as output.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_port_dir_read(NRF_GPIO_Type const *p_reg)

See also

nrf_gpio_port_dir_read Function for reading the direction configuration of a GPIO port.

Warning

This register is retained when retention is enabled.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

Returns:

Pin configuration of the current direction settings. Bit set means that the given pin is configured as output.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_port_in_read(NRF_GPIO_Type const *p_reg)

See also

nrf_gpio_port_in_read Function for reading the input signals of the GPIO pins on the given port.

Parameters:
  • p_reg – Pointer to the peripheral registers structure.

Returns:

Port input values.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_port_out_read(NRF_GPIO_Type const *p_reg)

See also

nrf_gpio_port_out_read Function for reading the output signals of the GPIO pins on the given port.

Warning

This register is retained when retention is enabled.

Parameters:
  • p_reg – Pointer to the peripheral registers structure.

Returns:

Port output values.

NRFY_STATIC_INLINE void nrfy_gpio_port_out_write(NRF_GPIO_Type *p_reg, uint32_t value)

See also

nrf_gpio_port_out_write Function for writing the GPIO pins output on a given port.

Warning

This register is retained when retention is enabled.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • value – Output port mask.

NRFY_STATIC_INLINE void nrfy_gpio_port_out_set(NRF_GPIO_Type *p_reg, uint32_t set_mask)

See also

nrf_gpio_port_out_set Function for setting high level on selected the GPIO pins on the given port.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • set_mask – Mask with pins to be set as logical high level.

NRFY_STATIC_INLINE void nrfy_gpio_port_out_clear(NRF_GPIO_Type *p_reg, uint32_t clr_mask)

See also

nrf_gpio_port_out_clear Function for setting low level on selected the GPIO pins on the given port.

Parameters:
  • p_reg – Pointer to the structure of registers of the peripheral.

  • clr_mask – Mask with pins to be set as logical low level.

NRFY_STATIC_INLINE void nrfy_gpio_ports_read(uint32_t start_port, uint32_t length, uint32_t *p_masks)

See also

nrf_gpio_ports_read Function for reading pin state of multiple consecutive ports.

Parameters:
  • 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.

NRFY_STATIC_INLINE bool nrfy_gpio_pin_present_check(uint32_t pin_number)

See also

nrf_gpio_pin_present_check Function for checking if provided pin is present on the MCU.

Parameters:
  • pin_number[in] Number of the pin to be checked.

Return values:
  • true – Pin is present.

  • false – Pin is not present.

NRFY_STATIC_INLINE uint32_t nrfy_gpio_pin_port_number_extract(uint32_t *p_pin)

See also

nrf_gpio_pin_port_number_extract Function for extracting port number and the relative pin number from the absolute pin number.

Parameters:
  • p_pin[inout] Pointer to the absolute pin number overridden by the pin number that is relative to the port.

Returns:

Port number.