libeasymcp2221 2.0.3
mcp2221_i2c_slave.h
Go to the documentation of this file.
1
6#ifndef MCP2221_I2C_SLAVE_H
7#define MCP2221_I2C_SLAVE_H
8
9#include <stddef.h>
10#include <stdint.h>
11
12#include "mcp2221.h"
13
15
19typedef enum {
28
31
35
48 uint8_t addr;
51};
52
77MCP2221_API mcp2221_error_code_t mcp2221_i2c_slave_init(mcp2221_i2c_slave_t *slave, mcp2221_t *mcp, uint8_t addr, int force, uint32_t i2c_speed_hz,
78 int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder);
79
98
111
137MCP2221_API mcp2221_error_code_t mcp2221_i2c_slave_read_register(mcp2221_i2c_slave_t *slave, uint32_t reg, uint8_t *buffer, size_t length,
138 int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder);
139
153
179MCP2221_API mcp2221_error_code_t mcp2221_i2c_slave_write_register(mcp2221_i2c_slave_t *slave, uint32_t reg, const uint8_t *data, size_t length,
180 int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder);
181
195
197#endif // MCP2221_I2C_SLAVE_H
Core MCP2221 device and I2C master API.
struct mcp2221_device mcp2221_t
Opaque MCP2221 device handle.
Definition: mcp2221.h:28
mcp2221_error_code_t
Error codes used by libeasymcp2221.
#define MCP2221_API
Export or import a public libeasymcp2221 API symbol.
#define MCP2221_END_DECLS
End a block started by MCP2221_BEGIN_DECLS.
#define MCP2221_BEGIN_DECLS
Begin a block of declarations using C linkage.
mcp2221_error_code_t mcp2221_i2c_slave_read_register(mcp2221_i2c_slave_t *slave, uint32_t reg, uint8_t *buffer, size_t length, int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder)
Read bytes starting at a target register.
mcp2221_error_code_t mcp2221_i2c_slave_write_register(mcp2221_i2c_slave_t *slave, uint32_t reg, const uint8_t *data, size_t length, int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder)
Write a register address followed by optional data.
mcp2221_error_code_t mcp2221_i2c_slave_check_present(mcp2221_i2c_slave_t *slave, int *is_present)
Check whether the configured I2C target acknowledges its address.
mcp2221_i2c_byte_order_t
Register-address byte order used by I2C slave register helpers.
@ MCP2221_I2C_BYTE_ORDER_DEFAULT
@ MCP2221_I2C_BYTE_ORDER_LITTLE
@ MCP2221_I2C_BYTE_ORDER_BIG
mcp2221_error_code_t mcp2221_i2c_slave_read(mcp2221_i2c_slave_t *slave, uint8_t *buffer, size_t length)
Read bytes directly from the configured I2C target.
mcp2221_error_code_t mcp2221_i2c_slave_write(mcp2221_i2c_slave_t *slave, const uint8_t *data, size_t length)
Write bytes directly to the configured I2C target.
mcp2221_error_code_t mcp2221_i2c_slave_init(mcp2221_i2c_slave_t *slave, mcp2221_t *mcp, uint8_t addr, int force, uint32_t i2c_speed_hz, int reg_bytes, mcp2221_i2c_byte_order_t reg_byteorder)
Initialize a caller-owned I2C target context.
int mcp2221_i2c_slave_is_present(mcp2221_i2c_slave_t *slave)
Boolean-style convenience presence check.
Caller-owned I2C target context.
mcp2221_i2c_byte_order_t reg_byteorder