GPIO HAL

group nrf_gpio_hal

Hardware access layer for managing the GPIO peripheral.

Defines

NRF_GPIO_LATCH_PRESENT

Symbol indicating whether the functionality of latching GPIO state change is present.

NRF_GPIO_HAS_SEL

Presence of MCU/Subsystem control selection.

NRF_GPIO_HAS_MULTIPERIPH_SEL

Presence of MCU/Subsystem control selection for multiple peripherals.

NRF_GPIO_HAS_CLOCKPIN

Presence of clock pin enable.

NRF_GPIO_HAS_PORT_IMPEDANCE

Presence of drive control for impedance.

NRF_GPIO_HAS_RETENTION

Presence of register retention.

NRF_GPIO_HAS_DETECT_MODE

Presence of detect mode.

NRF_GPIO_PIN_MAP(port, pin)

Macro for mapping port and pin numbers to values understandable for nrf_gpio functions.

NRF_GPIO_PORT_IMPEDANCE_ALL_MASK

Mask of all impedances.

Enums

enum nrf_gpio_pin_dir_t

Pin direction definitions.

Values:

enumerator NRF_GPIO_PIN_DIR_INPUT

Input.

enumerator NRF_GPIO_PIN_DIR_OUTPUT

Output.

enum nrf_gpio_pin_input_t

Connection of input buffer.

Values:

enumerator NRF_GPIO_PIN_INPUT_CONNECT

Connect input buffer.

enumerator NRF_GPIO_PIN_INPUT_DISCONNECT

Disconnect input buffer.

enum nrf_gpio_pin_pull_t

Enumerator used for selecting the pin to be pulled down or up at the time of pin configuration.

Values:

enumerator NRF_GPIO_PIN_NOPULL

Pin pull-up resistor disabled.

enumerator NRF_GPIO_PIN_PULLDOWN

Pin pull-down resistor enabled.

enumerator NRF_GPIO_PIN_PULLUP

Pin pull-up resistor enabled.

enum nrf_gpio_pin_drive_t

Enumerator used for selecting output drive mode.

Values:

enumerator NRF_GPIO_PIN_S0S1

Standard ‘0’, standard ‘1’.

enumerator NRF_GPIO_PIN_H0S1

High drive ‘0’, standard ‘1’.

enumerator NRF_GPIO_PIN_S0H1

Standard ‘0’, high drive ‘1’.

enumerator NRF_GPIO_PIN_H0H1

High drive ‘0’, high drive ‘1’.

enumerator NRF_GPIO_PIN_D0S1

Disconnect ‘0’ standard ‘1’.

enumerator NRF_GPIO_PIN_D0H1

Disconnect ‘0’, high drive ‘1’.

enumerator NRF_GPIO_PIN_S0D1

Standard ‘0’, disconnect ‘1’.

enumerator NRF_GPIO_PIN_H0D1

High drive ‘0’, disconnect ‘1’.

enumerator NRF_GPIO_PIN_E0S1

Extra high drive ‘0’, standard ‘1’.

enumerator NRF_GPIO_PIN_S0E1

Standard ‘0’, extra high drive ‘1’.

enumerator NRF_GPIO_PIN_E0E1

Extra high drive ‘0’, extra high drive ‘1’.

enumerator NRF_GPIO_PIN_E0H1

Extra high drive ‘0’, high drive ‘1’.

enumerator NRF_GPIO_PIN_H0E1

High drive ‘0’, extra high drive ‘1’.

enumerator NRF_GPIO_PIN_D0E1

Disconnect ‘0’, extra high drive ‘1’.

enumerator NRF_GPIO_PIN_E0D1

Extra high drive ‘0’, disconnect ‘1’.

enum nrf_gpio_pin_sense_t

Enumerator used for selecting the pin to sense high or low level on the pin input.

Values:

enumerator NRF_GPIO_PIN_NOSENSE

Pin sense level disabled.

enumerator NRF_GPIO_PIN_SENSE_LOW

Pin sense low level.

enumerator NRF_GPIO_PIN_SENSE_HIGH

Pin sense high level.

enum nrf_gpio_pin_sel_t

Enumerator used for selecting the MCU/Subsystem to control the specified pin.

Values:

enumerator NRF_GPIO_PIN_SEL_APP

Pin controlled by Application MCU.

enumerator NRF_GPIO_PIN_SEL_NETWORK

Pin controlled by Network MCU.

enumerator NRF_GPIO_PIN_SEL_PERIPHERAL

Pin controlled by dedicated peripheral.

enumerator NRF_GPIO_PIN_SEL_TND

Pin controlled by Trace and Debug Subsystem.

enumerator NRF_GPIO_PIN_SEL_GPIO

Pin controlled by GPIO or peripherals with configurable pins.

enumerator NRF_GPIO_PIN_SEL_VPR

Pin controlled by VPR.

enumerator NRF_GPIO_PIN_SEL_GRTC

Pin controlled by GRTC peripheral.

enum nrf_gpio_port_impedance_mask_t

Port impedance enable mask.

Values:

enumerator NRF_GPIO_PORT_IMPEDANCE_50_MASK

Enable 50 Ohm impedance.

enumerator NRF_GPIO_PORT_IMPEDANCE_100_MASK

Enable 100 Ohm impedance.

enumerator NRF_GPIO_PORT_IMPEDANCE_200_MASK

Enable 200 Ohm impedance.

enumerator NRF_GPIO_PORT_IMPEDANCE_400_MASK

Enable 400 Ohm impedance.

enumerator NRF_GPIO_PORT_IMPEDANCE_800_MASK

Enable 800 Ohm impedance.

enumerator NRF_GPIO_PORT_IMPEDANCE_1600_MASK

Enable 1600 Ohm impedance.

enum nrf_gpio_retain_mask_t

Retention enable mask.

Values:

enumerator NRF_GPIO_RETAIN_APPLICATION_MASK

Enable retention for GPIO registers for Application domain.

enumerator NRF_GPIO_RETAIN_NETWORK_MASK

Enable retention for GPIO registers for Radio core.

enumerator NRF_GPIO_RETAIN_PIN0_MASK

Enable retention for pin 0.

enumerator NRF_GPIO_RETAIN_PIN1_MASK

Enable retention for pin 1.

enumerator NRF_GPIO_RETAIN_PIN2_MASK

Enable retention for pin 2.

enumerator NRF_GPIO_RETAIN_PIN3_MASK

Enable retention for pin 3.

enumerator NRF_GPIO_RETAIN_PIN4_MASK

Enable retention for pin 4.

enumerator NRF_GPIO_RETAIN_PIN5_MASK

Enable retention for pin 5.

enumerator NRF_GPIO_RETAIN_PIN6_MASK

Enable retention for pin 6.

enumerator NRF_GPIO_RETAIN_PIN7_MASK

Enable retention for pin 7.

enumerator NRF_GPIO_RETAIN_PIN8_MASK

Enable retention for pin 8.

enumerator NRF_GPIO_RETAIN_PIN9_MASK

Enable retention for pin 9.

enumerator NRF_GPIO_RETAIN_PIN10_MASK

Enable retention for pin 10.

enumerator NRF_GPIO_RETAIN_PIN11_MASK

Enable retention for pin 11.

enumerator NRF_GPIO_RETAIN_PIN12_MASK

Enable retention for pin 12.

enumerator NRF_GPIO_RETAIN_PIN13_MASK

Enable retention for pin 13.

enumerator NRF_GPIO_RETAIN_PIN14_MASK

Enable retention for pin 14.

enumerator NRF_GPIO_RETAIN_PIN15_MASK

Enable retention for pin 15.

enumerator NRF_GPIO_RETAIN_PIN16_MASK

Enable retention for pin 16.

enumerator NRF_GPIO_RETAIN_PIN17_MASK

Enable retention for pin 17.

enumerator NRF_GPIO_RETAIN_PIN18_MASK

Enable retention for pin 18.

enumerator NRF_GPIO_RETAIN_PIN19_MASK

Enable retention for pin 19.

enumerator NRF_GPIO_RETAIN_PIN20_MASK

Enable retention for pin 20.

enumerator NRF_GPIO_RETAIN_PIN21_MASK

Enable retention for pin 21.

enumerator NRF_GPIO_RETAIN_PIN22_MASK

Enable retention for pin 22.

enumerator NRF_GPIO_RETAIN_PIN23_MASK

Enable retention for pin 23.

enumerator NRF_GPIO_RETAIN_PIN24_MASK

Enable retention for pin 24.

enumerator NRF_GPIO_RETAIN_PIN25_MASK

Enable retention for pin 25.

enumerator NRF_GPIO_RETAIN_PIN26_MASK

Enable retention for pin 26.

enumerator NRF_GPIO_RETAIN_PIN27_MASK

Enable retention for pin 27.

enumerator NRF_GPIO_RETAIN_PIN28_MASK

Enable retention for pin 28.

enumerator NRF_GPIO_RETAIN_PIN29_MASK

Enable retention for pin 29.

enumerator NRF_GPIO_RETAIN_PIN30_MASK

Enable retention for pin 30.

enumerator NRF_GPIO_RETAIN_PIN31_MASK

Enable retention for pin 31.

Functions

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

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.

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

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

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

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.

NRF_STATIC_INLINE void nrf_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)

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.

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

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.

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

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

NRF_STATIC_INLINE void nrf_gpio_cfg_default(uint32_t pin_number)

Function for resetting pin configuration to its default state.

Parameters:
  • pin_number – Specifies the pin number.

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

Parameters:
  • pin_number – Specifies the pin number.

NRF_STATIC_INLINE void nrf_gpio_input_disconnect(uint32_t pin_number)

Function for disconnecting input for the given GPIO.

Parameters:
  • pin_number – Specifies the pin number.

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

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

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

Parameters:
  • pin_number – Specifies the pin number.

  • sense_config – Sense configuration.

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

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

  • direction – Specifies the direction.

NRF_STATIC_INLINE void nrf_gpio_pin_set(uint32_t pin_number)

Function for setting a GPIO pin.

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

NRF_STATIC_INLINE void nrf_gpio_pin_clear(uint32_t pin_number)

Function for clearing a GPIO pin.

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

NRF_STATIC_INLINE void nrf_gpio_pin_toggle(uint32_t pin_number)

Function for toggling a GPIO pin.

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

NRF_STATIC_INLINE void nrf_gpio_pin_write(uint32_t pin_number, uint32_t value)

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.

NRF_STATIC_INLINE uint32_t nrf_gpio_pin_read(uint32_t pin_number)

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.

NRF_STATIC_INLINE uint32_t nrf_gpio_pin_out_read(uint32_t pin_number)

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.

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

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

Returns:

Sense configuration.

NRF_STATIC_INLINE nrf_gpio_pin_dir_t nrf_gpio_pin_dir_get(uint32_t pin_number)

Function for reading the direction configuration of a GPIO pin.

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

Returns:

Direction configuration.

NRF_STATIC_INLINE nrf_gpio_pin_input_t nrf_gpio_pin_input_get(uint32_t pin_number)

Function for reading the status of GPIO pin input buffer.

Parameters:
  • pin_number – Pin number to be read.

Return values:

Input – buffer configuration.

NRF_STATIC_INLINE nrf_gpio_pin_pull_t nrf_gpio_pin_pull_get(uint32_t pin_number)

Function for reading the pull configuration of a GPIO pin.

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

Return values:

Pull – configuration.

NRF_STATIC_INLINE void nrf_gpio_port_dir_output_set(NRF_GPIO_Type *p_reg, uint32_t out_mask)

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.

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

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

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

NRF_STATIC_INLINE void nrf_gpio_port_dir_write(NRF_GPIO_Type *p_reg, uint32_t dir_mask)

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.

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

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.

NRF_STATIC_INLINE uint32_t nrf_gpio_port_in_read(NRF_GPIO_Type const *p_reg)

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.

NRF_STATIC_INLINE uint32_t nrf_gpio_port_out_read(NRF_GPIO_Type const *p_reg)

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.

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

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.

NRF_STATIC_INLINE void nrf_gpio_port_out_set(NRF_GPIO_Type *p_reg, uint32_t set_mask)

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.

NRF_STATIC_INLINE void nrf_gpio_port_out_clear(NRF_GPIO_Type *p_reg, uint32_t clr_mask)

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.

NRF_STATIC_INLINE void nrf_gpio_ports_read(uint32_t start_port, uint32_t length, uint32_t *p_masks)

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.

NRF_STATIC_INLINE void nrf_gpio_port_impedance_set(NRF_GPIO_Type *p_reg, uint32_t mask)

Function for setting the impedance matching of the pins on the given port.

Note

Each bit sets certain impedance and have them in parallel when more than one bit is set. High impedance is set for the pin when all bits are disabled. When all bits are enabled, the resulting impedance is about 25 Ohm.

Warning

This register is retained when retention is enabled.

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

  • mask – Mask of impedances to be set, created using nrf_gpio_port_impedance_mask_t.

NRF_STATIC_INLINE uint32_t nrf_gpio_port_impedance_get(NRF_GPIO_Type const *p_reg)

Function for geting the impedance matching of the pins on the given port.

Warning

This register is retained when retention is enabled.

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

Returns:

Mask of impedances set, created using nrf_gpio_port_impedance_mask_t.

NRF_STATIC_INLINE void nrf_gpio_port_retain_set(NRF_GPIO_Type *p_reg, uint32_t mask)

Function for setting the retention of the registers.

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

  • mask – Mask of retention domains to be enabled, created using nrf_gpio_retain_mask_t.

NRF_STATIC_INLINE uint32_t nrf_gpio_port_retain_get(NRF_GPIO_Type const *p_reg)

Function for geting the retention setting of the registers.

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

Returns:

Mask of retention domains set, created using nrf_gpio_retain_mask_t.

NRF_STATIC_INLINE void nrf_gpio_port_detect_latch_set(NRF_GPIO_Type *p_reg, bool enable)

Function for setting the latched detect behaviour.

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

  • enable – True if the latched LDETECT behaviour is to be used, false if DETECT is to be directly connected to PIN DETECT signals.

NRF_STATIC_INLINE bool nrf_gpio_port_detect_latch_check(NRF_GPIO_Type const *p_reg)

Function for checking the latched detect behaviour.

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

Return values:
  • true – Latched LDETECT behaviour is used.

  • false – DETECT is directly connected to PIN DETECT signals.

NRF_STATIC_INLINE void nrf_gpio_latches_read(uint32_t start_port, uint32_t length, uint32_t *p_masks)

Function for reading latch state of multiple consecutive ports.

Warning

This register is retained when retention is enabled.

Parameters:
  • start_port – Index of the first port to read.

  • length – Number of ports to read.

  • p_masks – Pointer to output array where latch states will be stored.

NRF_STATIC_INLINE void nrf_gpio_latches_read_and_clear(uint32_t start_port, uint32_t length, uint32_t *p_masks)

Function for reading and immediate clearing latch state of multiple consecutive ports.

Warning

This register is retained when retention is enabled.

Parameters:
  • start_port – Index of the first port to read and clear.

  • length – Number of ports to read and clear.

  • p_masks – Pointer to output array where latch states will be stored.

NRF_STATIC_INLINE uint32_t nrf_gpio_pin_latch_get(uint32_t pin_number)

Function for reading latch state of single pin.

Warning

This register is retained when retention is enabled.

Parameters:
  • pin_number – Pin number.

Returns:

0 if latch is not set. Positive value otherwise.

NRF_STATIC_INLINE void nrf_gpio_pin_latch_clear(uint32_t pin_number)

Function for clearing latch state of a single pin.

Warning

This register is retained when retention is enabled.

Parameters:
  • pin_number – Pin number.

NRF_STATIC_INLINE void nrf_gpio_pin_control_select(uint32_t pin_number, nrf_gpio_pin_sel_t ctrl)

Function for selecting the MCU or Subsystem to control a GPIO pin.

Warning

This register is retained when retention is enabled.

Parameters:
  • pin_number – Pin_number.

  • ctrl – MCU/Subsystem to control the pin.

NRF_STATIC_INLINE void nrf_gpio_pin_clock_set(uint32_t pin_number, bool enable)

Function for setting whether the clock should be enabled for the specified GPIO pin.

Warning

This register is retained when retention is enabled.

Parameters:
  • pin_number[in] Pin number.

  • enable[in] True if clock is to be enabled, false otherwise.

NRF_STATIC_INLINE bool nrf_gpio_pin_clock_check(uint32_t pin_number)

Function for getting the clock enable setting for the specified GPIO pin.

Warning

This register is retained when retention is enabled.

Parameters:
  • pin_number[in] Pin number.

Return values:
  • true – Clock is enabled.

  • false – Clock is disabled.

NRF_STATIC_INLINE bool nrf_gpio_pin_present_check(uint32_t pin_number)

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.

NRF_STATIC_INLINE uint32_t nrf_gpio_pin_port_number_extract(uint32_t *p_pin)

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.

NRF_STATIC_INLINE NRF_GPIO_Type *nrf_gpio_pin_port_decode(uint32_t *p_pin)

Function for extracting port 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:

Pointer to port register set.