EVE 1.0
gpio-ext.h File Reference

Abstract IO extender driver. More...

#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <lib/assert.h>
#include <dev/gpio.h>
#include <core/atomic.h>
#include <app_util_platform.h>
#include <dev/irq.h>
Include dependency graph for gpio-ext.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gpio_ext_state_t
 
struct  gpio_ext_init_pin_t
 
struct  gpio_ext_api_t
 
struct  gpio_ext_t
 

Typedefs

typedef void(* gpio_ext_init_t) (const struct gpio_ext_t *GpioExt)
 Virtual function initializes pins of an gpio expander to default values based on DRIVER_PORT_EXT_INIT_TABLE.
 
typedef uint16_t(* gpio_ext_inport_t) (const struct gpio_ext_t *GpioExt)
 Virtual function reads from gpio expander port.
 
typedef void(* gpio_ext_outport_t) (const struct gpio_ext_t *GpioExt, uint16_t Value)
 Virtual function writes to gpio expander port / pin direction register / pull select register / pull enable register / interrupt enable register / latch enable register.
 
typedef void(* gpio_ext_setdrive_t) (const struct gpio_ext_t *GpioExt, uint8_t Values[])
 Virtual function sets drive force to gpio expander pins.
 

Enumerations

Functions

Functions called from application programs
void GpioExtInit (const struct gpio_ext_t *GpioExt)
 Initialize IO expander driver and chip. More...
 
static void GpioExtPortWrite (const struct gpio_ext_t *GpioExt, uint16_t Value, uint16_t Mask)
 Write 16-bits data to the GPIO port. More...
 
static void GpioExtPortSet (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 Set bits by mask in the GPIO port. More...
 
static void GpioExtPortClear (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 Clear bits by mask in the GPIO port. More...
 
static void GpioExtPortToggle (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 Invert bits by mask in the GPIO port. More...
 
static void GpioExtPinWrite (const struct gpio_ext_t *GpioExt, uint16_t Pin, uint16_t Value)
 Set/clear 1 pin in the GPIO port. More...
 
static void GpioExtPinSet (const struct gpio_ext_t *GpioExt, uint16_t Pin)
 Set 1 pin in the GPIO port. More...
 
static void GpioExtPinClear (const struct gpio_ext_t *GpioExt, uint16_t Pin)
 Clear 1 pin in the GPIO port. More...
 
static void GpioExtPinToggle (const struct gpio_ext_t *GpioExt, uint16_t Pin)
 Invert 1 pin in the GPIO port. More...
 
static uint16_t GpioExtPortRead (const struct gpio_ext_t *GpioExt)
 Read all the pins from the GPIO port. More...
 
static uint8_t GpioExtPinRead (const struct gpio_ext_t *GpioExt, uint16_t Pin)
 Read a pin value from the GPIO port. More...
 
void GpioExtPortSetup (const struct gpio_ext_t *GpioExt, uint16_t Direction, uint16_t PullSelect, uint16_t PullEnable, uint16_t Mask)
 Set IO expander ports to input or output. More...
 
static uint16_t GpioExtInterruptsClear (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 
static uint16_t GpioExtInterruptsRead (const struct gpio_ext_t *GpioExt)
 
static void GpioExtInterruptsEnable (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 
static void GpioExtInterruptsDisable (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 
static void GpioExtSetDrive (const struct gpio_ext_t *GpioExt, uint8_t Values[])
 
static void GpioExtSetLatch (const struct gpio_ext_t *GpioExt, uint16_t Mask)
 
static uint8_t GpioExtCheckStatus (const struct gpio_ext_t *GpioExt)
 Check status of GpioExt operations and reset status to GPIO_EXT_STATUS_OK. More...
 

Detailed Description

Abstract IO extender driver.

Author
SE, Jetro AS

Definition in file gpio-ext.h.