Device driver interface for Microchip MCP23x17 I/O expanders. More...
Device driver interface for Microchip MCP23x17 I/O expanders.
Definition in file mcp23x17.h.
#include "periph/gpio.h"#include "periph/i2c.h"#include "periph/spi.h"#include "saul/periph.h"#include "event.h"
Include dependency graph for mcp23x17.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | mcp23x17_i2c_params_t |
| MCP23017 I2C parameters. More... | |
| struct | mcp23x17_spi_params_t |
| MCP23S17 SPI parameters. More... | |
| struct | mcp23x17_if_params_t |
| MCP23x17 Hardware interface parameters union. More... | |
| struct | mcp23x17_params_t |
| Struct containing the peripheral configuration. More... | |
| struct | mcp23x17_irq_event_t |
| IRQ event type. More... | |
| struct | mcp23x17_t |
| Device descriptor for MCP23x17 I/O expanders. More... | |
| struct | mcp23x17_saul_gpio_params_t |
| MCP23x17 configuration structure for mapping expander pins to SAUL. More... | |
Macros | |
| #define | MCP23X17_BASE_ADDR (0x20) |
| MCP23x17 device base address. More... | |
| #define | MCP23X17_GPIO_PIN_NUM (16) |
| MCP23x17 has 16 I/O pins. | |
| #define | MCP23X17_GPIO_PIN(port, pin) ((gpio_t)((port << 3) | pin)) |
| Conversion of (port x : pin y) to a pin number. More... | |
Enumerations | |
| enum | mcp23x17_error_codes_t { MCP23X17_OK , MCP23X17_ERROR_I2C , MCP23X17_ERROR_SPI , MCP23X17_ERROR_NO_DEV , MCP23X17_ERROR_INV_MODE , MCP23X17_ERROR_INV_FLANK , MCP23X17_ERROR_GPIO , MCP23X17_ERROR_INT_PIN , MCP23X17_ERROR_RESET_PIN } |
| Named MCP23x17 driver error codes. More... | |
| enum | mcp23x17_if_t { MCP23X17_I2C , MCP23X17_SPI } |
| MCP23x17 interface types. More... | |
Functions | |
| int | mcp23x17_init (mcp23x17_t *dev, const mcp23x17_params_t *params) |
| Initialize the MCP23x17 I/O expander. More... | |
| int | mcp23x17_gpio_init (mcp23x17_t *dev, gpio_t pin, gpio_mode_t mode) |
| Initialize a MCP23x17 pin. More... | |
| 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. More... | |
| int | mcp23x17_gpio_read (mcp23x17_t *dev, gpio_t pin) |
| Get the value from MCP23x17 input pin. More... | |
| void | mcp23x17_gpio_write (mcp23x17_t *dev, gpio_t pin, int value) |
| Write the value to MCP23x17 input pin. More... | |
| void | mcp23x17_gpio_clear (mcp23x17_t *dev, gpio_t pin) |
| Clear the MCP23x17 output pin. More... | |
| void | mcp23x17_gpio_set (mcp23x17_t *dev, gpio_t pin) |
| Set the MCP23x17 output pin. More... | |
| void | mcp23x17_gpio_toggle (mcp23x17_t *dev, gpio_t pin) |
| Toggle the value of the MCP23x17 output pin. More... | |
| void | mcp23x17_gpio_irq_enable (mcp23x17_t *dev, gpio_t pin) |
| Enable pin interrupt. More... | |
| void | mcp23x17_gpio_irq_disable (mcp23x17_t *dev, gpio_t pin) |
| Disable pin interrupt. More... | |