26#ifndef _ULTIBO_PCF857X_H
27#define _ULTIBO_PCF857X_H
37#define PCF8574_GPIO_DESCRIPTION "NXP PCF8574 8-bit I/O Expander"
39#define PCF8574_GPIO_MIN_PIN GPIO_PIN_0
40#define PCF8574_GPIO_MAX_PIN GPIO_PIN_7
41#define PCF8574_GPIO_PIN_COUNT 8
43#define PCF857X_GPIO_MAX_LEVEL GPIO_LEVEL_HIGH
45#define PCF857X_GPIO_MAX_PULL GPIO_PULL_UP
47#define PCF857X_GPIO_MIN_FUNCTION GPIO_FUNCTION_IN
48#define PCF857X_GPIO_MAX_FUNCTION GPIO_FUNCTION_OUT
51#define PCF857X_CHIP_PCF8574 0
54#define PCF8574_I2C_RATE 100000
56#define PCF8574_I2C_SIZE 1
58#define PCF857X_I2C_MAX_SIZE 2
#define STDCALL
Definition globaltypes.h:45
struct _GPIO_DEVICE GPIO_DEVICE
Forward declared for GPIOPin.
Definition gpio.h:85
struct _I2C_DEVICE I2C_DEVICE
Definition i2c.h:81
uint32_t STDCALL pcf857xgpio_destroy(GPIO_DEVICE *gpio)
Stop, deregister and destroy a PCF857X GPIO device created by this driver.
#define PCF857X_I2C_MAX_SIZE
Maximum number of bytes to read/write all pin values.
Definition pcf857x.h:58
struct _PCF857XGPIO PCF857XGPIO
Definition pcf857x.h:63
GPIO_DEVICE *STDCALL pcf8574gpio_create(I2C_DEVICE *i2c, uint16_t address)
Create, register and start a new PCF8574 GPIO device connected to the specified I2C device.
GPIO_DEVICE gpio
Definition pcf857x.h:67
I2C_DEVICE * i2c
The I2C device this GPIO is connected to.
Definition pcf857x.h:69
uint8_t gpiovalues[PCF857X_I2C_MAX_SIZE]
Buffer for GPIO port values (Output only).
Definition pcf857x.h:74
uint16_t address
The I2C address of the device.
Definition pcf857x.h:70
uint8_t gppuvalues[PCF857X_I2C_MAX_SIZE]
Buffer for GPPU pull up values.
Definition pcf857x.h:75
uint32_t rate
Clock rate for this device.
Definition pcf857x.h:73
uint8_t iodirvalues[PCF857X_I2C_MAX_SIZE]
Buffer for IODIR I/O direction values.
Definition pcf857x.h:76
uint32_t size
Size of an I2C read/write for the device.
Definition pcf857x.h:72
uint32_t chip
The chip type (eg PCF857X_CHIP_PCF8574).
Definition pcf857x.h:71