353 #if IS_USED(MODULE_SAUL_GPIO) || DOXYGEN 
  357 #if !IS_USED(MODULE_MCP23X17_I2C) && !IS_USED(MODULE_MCP23X17_SPI) 
  358 #error "Please provide the MCP23x17 variants used by the application." 
  359 #error "At least one variant has to be specified (mcp23017 and/or mcp23s17)." 
  362 #if IS_USED(MODULE_MCP23X17_IRQ) || DOXYGEN 
  379 #define MCP23X17_BASE_ADDR          (0x20) 
  384 #define MCP23X17_GPIO_PIN_NUM       (16) 
  397 #define MCP23X17_GPIO_PIN(port, pin) ((gpio_t)((port << 3) | pin)) 
  418 #if IS_USED(MODULE_MCP23X17_I2C) || DOXYGEN 
  421 #if IS_USED(MODULE_MCP23X17_SPI) || DOXYGEN 
  429 #if IS_USED(MODULE_MCP23X17_I2C) || DOXYGEN 
  438 #if IS_USED(MODULE_MCP23X17_SPI) || DOXYGEN 
  452 #if IS_USED(MODULE_MCP23X17_I2C) || DOXYGEN 
  455 #if IS_USED(MODULE_MCP23X17_SPI) || DOXYGEN 
  487 #if IS_USED(MODULE_MCP23X17_IRQ) || DOXYGEN 
  519 #if IS_USED(MODULE_MCP23X17_IRQ) || DOXYGEN 
  528 #if IS_USED(MODULE_SAUL_GPIO) || DOXYGEN 
  572 #if IS_USED(MODULE_MCP23X17_IRQ) || DOXYGEN 
  652 #if IS_USED(MODULE_MCP23X17_IRQ) || DOXYGEN 
Low-level GPIO peripheral driver interface definitions.
 
gpio_mode_t
Available pin modes.
 
int mcp23x17_gpio_init_int(mcp23x17_t *dev, gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, gpio_cb_t isr, void *arg)
Initialize a MCP23x17 pin for external interrupt usage.
 
void mcp23x17_gpio_toggle(mcp23x17_t *dev, gpio_t pin)
Toggle the value of the MCP23x17 output pin.
 
#define MCP23X17_GPIO_PIN_NUM
MCP23x17 has 16 I/O pins.
 
void mcp23x17_gpio_set(mcp23x17_t *dev, gpio_t pin)
Set the MCP23x17 output pin.
 
void mcp23x17_gpio_irq_disable(mcp23x17_t *dev, gpio_t pin)
Disable pin interrupt.
 
void mcp23x17_gpio_irq_enable(mcp23x17_t *dev, gpio_t pin)
Enable pin interrupt.
 
mcp23x17_if_t
MCP23x17 interface types.
 
int mcp23x17_init(mcp23x17_t *dev, const mcp23x17_params_t *params)
Initialize the MCP23x17 I/O expander.
 
int mcp23x17_gpio_init(mcp23x17_t *dev, gpio_t pin, gpio_mode_t mode)
Initialize a MCP23x17 pin.
 
void mcp23x17_gpio_clear(mcp23x17_t *dev, gpio_t pin)
Clear the MCP23x17 output pin.
 
mcp23x17_error_codes_t
Named MCP23x17 driver error codes.
 
void mcp23x17_gpio_write(mcp23x17_t *dev, gpio_t pin, int value)
Write the value to MCP23x17 input pin.
 
int mcp23x17_gpio_read(mcp23x17_t *dev, gpio_t pin)
Get the value from MCP23x17 input pin.
 
@ MCP23X17_SPI
SPI interface used.
 
@ MCP23X17_I2C
I2C interface used.
 
@ MCP23X17_ERROR_RESET_PIN
RESET pin error
 
@ MCP23X17_ERROR_INV_FLANK
invalid interrupt flank
 
@ MCP23X17_ERROR_SPI
SPI communication error.
 
@ MCP23X17_ERROR_NO_DEV
no MCP23x17 I/O expander device
 
@ MCP23X17_ERROR_I2C
I2C communication error.
 
@ MCP23X17_ERROR_INV_MODE
invalid pin mode
 
@ MCP23X17_ERROR_GPIO
GPIO pin error.
 
@ MCP23X17_ERROR_INT_PIN
INTA/INTB pin error
 
void(* gpio_cb_t)(void *arg)
Signature of event callback functions triggered from interrupts.
 
uint_fast8_t i2c_t
Default i2c_t type definition.
 
Low-level I2C peripheral driver interface definition.
 
Parameter definitions for mapping peripherals directly to SAUL.
 
Low-level SPI peripheral driver interface definition.
 
Default interrupt context for GPIO pins.
 
i2c_t dev
I2C device used.
 
MCP23x17 Hardware interface parameters union.
 
mcp23x17_if_t type
I2C/SPI interface type selector.
 
mcp23x17_spi_params_t spi
SPI specific interface parameters.
 
mcp23x17_i2c_params_t i2c
I2C specific interface parameters.
 
void * dev
MCP23x17 device reference.
 
event_t event
Super event data structure.
 
Struct containing the peripheral configuration.
 
uint8_t addr
MCP2317 device address.
 
mcp23x17_if_params_t if_params
specific I2C/SPI interface parameters
 
gpio_t reset_pin
GPIO pin used for RESET signal.
 
gpio_t int_pin
GPIO pin used for combined INTA/INTB signal.
 
MCP23x17 configuration structure for mapping expander pins to SAUL.
 
uint8_t dev
MCP23x17 device index.
 
saul_gpio_params_t gpio
GPIO configuration for mapping to SAUL.
 
spi_t dev
SPI device used.
 
spi_clk_t clk
SPI clock speed.
 
gpio_t cs
SPI chip Select pin.
 
Device descriptor for MCP23x17 I/O expanders.
 
mcp23x17_irq_event_t irq_event
IRQ event object used for the device.
 
uint16_t od_pins
Pins defined as GPIO_OD or GPIO_OD_PU.
 
mcp23x17_params_t params
Device initialization parameters.
 
Direct mapped GPIO configuration values.