23#define MCP2221_I2C_SMBUS_BLOCK_MAX 255
95 const char *usbserial, uint32_t i2c_speed_hz);
268 size_t length, uint8_t *response,
size_t *resp_len);
Core MCP2221 device and I2C master API.
struct mcp2221_device mcp2221_t
Opaque MCP2221 device handle.
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_smbus_read_word_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, int16_t *value)
Read a 16-bit word from an SMBus command/register.
mcp2221_error_code_t mcp2221_smbus_write_block_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, const uint8_t *data, size_t length)
Write an SMBus length-prefixed block.
mcp2221_error_code_t mcp2221_smbus_write_byte_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, uint8_t value)
Write one byte to an SMBus command/register.
void mcp2221_smbus_close(mcp2221_smbus_t *bus)
Close an SMBus context.
mcp2221_error_code_t mcp2221_smbus_block_process_call(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, const uint8_t *data, size_t length, uint8_t *response, size_t *resp_len)
Perform an SMBus block process call.
mcp2221_error_code_t mcp2221_smbus_read_block_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, uint8_t *buffer, size_t *length)
Read an SMBus length-prefixed block.
mcp2221_error_code_t mcp2221_smbus_write_i2c_block_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, const uint8_t *data, size_t length)
Write a fixed-length I2C block to an SMBus command/register.
mcp2221_error_code_t mcp2221_smbus_write_byte(mcp2221_smbus_t *bus, uint8_t addr, uint8_t value)
Write one byte directly to an SMBus target.
mcp2221_error_code_t mcp2221_smbus_process_call(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, int16_t value, int16_t *response)
Perform an SMBus process call.
mcp2221_error_code_t mcp2221_smbus_read_byte_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, uint8_t *value)
Read one byte from an SMBus command/register.
struct mcp2221_smbus mcp2221_smbus_t
Caller-owned SMBus helper context.
mcp2221_error_code_t mcp2221_smbus_write_word_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, int16_t value)
Write a 16-bit word to an SMBus command/register.
mcp2221_error_code_t mcp2221_smbus_read_byte(mcp2221_smbus_t *bus, uint8_t addr, uint8_t *value)
Read one byte directly from an SMBus target.
mcp2221_error_code_t mcp2221_smbus_init(mcp2221_smbus_t *bus, mcp2221_t *existing_mcp, int device_index, uint16_t vid, uint16_t pid, const char *usbserial, uint32_t i2c_speed_hz)
Initialize a caller-owned SMBus context.
mcp2221_error_code_t mcp2221_smbus_read_i2c_block_data(mcp2221_smbus_t *bus, uint8_t addr, uint8_t reg, uint8_t *buffer, size_t length)
Read a fixed-length I2C block from an SMBus command/register.
Caller-owned SMBus helper context.
mcp2221_t * mcp
MCP2221 device handle used for SMBus transfers.
int owns_mcp
Ownership flag for mcp.