![]() |
Nordic Thingy:52 v2.2.0
|
GPIO extender API. More...
Modules | |
| GPIO extender LED driver | |
| GPIO extender LED driver API. | |
| SX1509 GPIO extender driver | |
| SX1509 GPIO extender API. | |
Data Structures | |
| struct | drv_ext_gpio_init_t |
| GPIO extender driver configuration. More... | |
Macros | |
| #define | DRV_EXT_GPIO_NUM_PINS_TOTAL (DRV_EXT_GPIO_PIN_HIGHEST_ID + 1) |
| Number of pins total. | |
| #define | DRV_EXT_GPIO_PIN_HIGHEST_ID DRV_SX1509_DATA_PIN15_Pos |
| Highest pin ID. | |
Enumerations | |
| enum | { DRV_EXT_GPIO_STATUS_CODE_SUCCESS = NRF_SUCCESS, DRV_EXT_GPIO_STATUS_CODE_INVALID_PARAM, DRV_EXT_GPIO_STATUS_CODE_INVALID_PIN } |
| GPIO extender status codes. More... | |
| enum | drv_ext_gpio_pin_dir_t { DRV_EXT_GPIO_PIN_DIR_OUTPUT, DRV_EXT_GPIO_PIN_DIR_INPUT } |
| Pin direction definitions. More... | |
| enum | drv_ext_gpio_pin_drive_type_t { DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, DRV_EXT_GPIO_PIN_DRIVE_OPENDRAIN } |
| Push-pull or open drain operation. More... | |
| enum | drv_ext_gpio_pin_input_buf_t { DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, DRV_EXT_GPIO_PIN_INPUT_BUF_DISABLED } |
| Connection of input buffer. More... | |
| enum | drv_ext_gpio_pin_pull_t { DRV_EXT_GPIO_PIN_NOPULL, DRV_EXT_GPIO_PIN_PULLDOWN, DRV_EXT_GPIO_PIN_PULLUP } |
| Pin to be pulled down, up, or no-pull. More... | |
| enum | drv_ext_gpio_pin_slew_rate_t { DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_ENABLED } |
| Regular or increased slew rate. More... | |
Functions | |
| uint32_t | drv_ext_gpio_cfg (uint32_t pin_number, drv_ext_gpio_pin_dir_t dir, drv_ext_gpio_pin_input_buf_t input_buf, drv_ext_gpio_pin_pull_t pull_config, drv_ext_gpio_pin_drive_type_t drive_type, drv_ext_gpio_pin_slew_rate_t slew_rate) |
| Pin configuration function. More... | |
| uint32_t | drv_ext_gpio_cfg_input (uint32_t pin_number, drv_ext_gpio_pin_pull_t pull_config) |
| Function for configuring the given GPIO pin number as input with given initial value set, hiding inner details. More... | |
| uint32_t | drv_ext_gpio_cfg_output (uint32_t pin_number) |
| Function for configuring the given GPIO pin_number as output with given initial value set, hiding inner details. More... | |
| uint32_t | drv_ext_gpio_init (drv_ext_gpio_init_t const *const p_init, bool on_init_reset) |
| Function for initializing the GPIO extender. More... | |
| uint32_t | drv_ext_gpio_pin_clear (uint32_t pin_number) |
| Function for clearing a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_dir_modify (uint32_t pin_number, drv_ext_gpio_pin_dir_t direction) |
| Function for setting the direction of a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_drive_type_modify (uint32_t pin_number, drv_ext_gpio_pin_drive_type_t drive_type) |
| Function for setting the drive type a given GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_input_buffer_modify (uint32_t pin_number, drv_ext_gpio_pin_input_buf_t input_buf) |
| Function for enabling and disabling the input buffer. More... | |
| uint32_t | drv_ext_gpio_pin_read (uint32_t pin_number, uint32_t *const p_pin) |
| Function for reading the input level of a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_set (uint32_t pin_number) |
| Function for setting a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_slew_rate_modify (uint32_t pin_number, drv_ext_gpio_pin_slew_rate_t slew_rate) |
| Function for enabling or disabling increased slew rate for a given GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_toggle (uint32_t pin_number) |
| Function for toggling a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pin_write (uint32_t pin_number, uint32_t value) |
| Function for writing a value to a GPIO pin. More... | |
| uint32_t | drv_ext_gpio_pins_clear (uint32_t pin_mask) |
| Function for clearing GPIO pins. More... | |
| uint32_t | drv_ext_gpio_pins_read (uint32_t *const p_pins) |
| Function for reading the input level of all GPIO pins. More... | |
| uint32_t | drv_ext_gpio_pins_set (uint32_t pin_mask) |
| Function for setting GPIO pins. More... | |
| uint32_t | drv_ext_gpio_pins_toggle (uint32_t pin_mask) |
| Function for toggling GPIO pins. More... | |
| uint32_t | drv_ext_gpio_reg_data_init (uint32_t data) |
| Function for setting all the RegData registers at the same time. More... | |
| uint32_t | drv_ext_gpio_reset (void) |
| Function for resetting all the registers of the GPIO extender to their default values. More... | |
GPIO extender API.
| anonymous enum |
| uint32_t drv_ext_gpio_cfg | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_dir_t | dir, | ||
| drv_ext_gpio_pin_input_buf_t | input_buf, | ||
| drv_ext_gpio_pin_pull_t | pull_config, | ||
| drv_ext_gpio_pin_drive_type_t | drive_type, | ||
| drv_ext_gpio_pin_slew_rate_t | slew_rate | ||
| ) |
Pin configuration function.
| [in] | pin_number | Specifies the pin number (Allowed values: 0 to DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | dir | Pin direction. |
| [in] | input_buf | Connect or disconnect input buffer. |
| [in] | pull_config | Pull configuration. |
| [in] | drive_type | Push-pull or open drain. |
| [in] | slew_rate | Normal or increased slew rate. |
| uint32_t drv_ext_gpio_cfg_input | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_pull_t | pull_config | ||
| ) |
Function for configuring the given GPIO pin number as input with given initial value set, hiding inner details.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | pull_config | State of the pin range pull resistor (no pull, pulled down, or pulled high). |
| uint32_t drv_ext_gpio_cfg_output | ( | uint32_t | pin_number | ) |
Function for configuring the given GPIO pin_number as output with given initial value set, hiding inner details.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| uint32_t drv_ext_gpio_init | ( | drv_ext_gpio_init_t const *const | p_init, |
| bool | on_init_reset | ||
| ) |
Function for initializing the GPIO extender.
| [in] | p_init | Configuration struct. |
| [in] | on_init_reset | If true, the IO extender will be reset on init. This will put the IO extender in a known state, but will delete any previous configurations, even from other drivers. |
| uint32_t drv_ext_gpio_pin_clear | ( | uint32_t | pin_number | ) |
Function for clearing a GPIO pin.
| [in] | pin_number | The pin number (0-DRV_EXT_GPIO_PIN_HIGHEST_ID) to clear. |
| uint32_t drv_ext_gpio_pin_dir_modify | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_dir_t | direction | ||
| ) |
Function for setting the direction of a GPIO pin.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | direction | The direction. |
| uint32_t drv_ext_gpio_pin_drive_type_modify | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_drive_type_t | drive_type | ||
| ) |
Function for setting the drive type a given GPIO pin.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | drive_type | Pin drive: push-pull or open drain. |
| uint32_t drv_ext_gpio_pin_input_buffer_modify | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_input_buf_t | input_buf | ||
| ) |
Function for enabling and disabling the input buffer.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | input_buf | Disabled or enabled. |
| uint32_t drv_ext_gpio_pin_read | ( | uint32_t | pin_number, |
| uint32_t *const | p_pin | ||
| ) |
Function for reading the input level of a GPIO pin.
| [in] | pin_number | The pin number (0-DRV_EXT_GPIO_PIN_HIGHEST_ID) to read. |
| [out] | p_pin | Pin value. |
| 0 | if the pin input level is low. |
| 1 | if the pin input level is high. |
| > | 1 should never occur. |
| uint32_t drv_ext_gpio_pin_set | ( | uint32_t | pin_number | ) |
Function for setting a GPIO pin.
| [in] | pin_number | The pin number (0-DRV_EXT_GPIO_PIN_HIGHEST_ID) to set. |
| uint32_t drv_ext_gpio_pin_slew_rate_modify | ( | uint32_t | pin_number, |
| drv_ext_gpio_pin_slew_rate_t | slew_rate | ||
| ) |
Function for enabling or disabling increased slew rate for a given GPIO pin.
| [in] | pin_number | The pin number (allowed values 0-DRV_EXT_GPIO_PIN_HIGHEST_ID). |
| [in] | slew_rate | Enabled or disabled. |
| uint32_t drv_ext_gpio_pin_toggle | ( | uint32_t | pin_number | ) |
Function for toggling a GPIO pin.
| [in] | pin_number | Pin number (0-DRV_EXT_GPIO_PIN_HIGHEST_ID) to toggle. |
| uint32_t drv_ext_gpio_pin_write | ( | uint32_t | pin_number, |
| uint32_t | value | ||
| ) |
Function for writing a value to a GPIO pin.
| [in] | pin_number | The pin number (0-DRV_EXT_GPIO_PIN_HIGHEST_ID) to write. |
| [in] | value | Specifies the value to be written to the pin.
|
| uint32_t drv_ext_gpio_pins_clear | ( | uint32_t | pin_mask | ) |
Function for clearing GPIO pins.
| [in] | pin_mask | Pins to clear. |
| uint32_t drv_ext_gpio_pins_read | ( | uint32_t *const | p_pins | ) |
Function for reading the input level of all GPIO pins.
| [out] | p_pins | State of all pins. |
| uint32_t drv_ext_gpio_pins_set | ( | uint32_t | pin_mask | ) |
Function for setting GPIO pins.
| [in] | pin_mask | Specifies the pins to set. |
| uint32_t drv_ext_gpio_pins_toggle | ( | uint32_t | pin_mask | ) |
Function for toggling GPIO pins.
| [in] | pin_mask | Pins to toggle. |
| uint32_t drv_ext_gpio_reg_data_init | ( | uint32_t | data | ) |
Function for setting all the RegData registers at the same time.
| [in] | data | The value to be written to the RegData regsiters. (Max 2^DRV_EXT_GPIO_NUM_PINS_TOTAL) - 1 |
| uint32_t drv_ext_gpio_reset | ( | void | ) |
Function for resetting all the registers of the GPIO extender to their default values.