/* * Generic i2c ops * * These ops always appear first in an implementation-specific * object, so the generic ops can be cast to the implementation- * specific object in the handlers. * * Written in 2010-2020 by Andy Green * * This file is made available under the Creative Commons CC0 1.0 * Universal Public Domain Dedication. */ #if !defined(__LWS_I2C_H__) #define __LWS_I2C_H__ #include #include typedef struct lws_i2c_ops { int (*start)(struct lws_i2c_ops *ctx); void (*stop)(struct lws_i2c_ops *ctx); int (*write)(struct lws_i2c_ops *ctx, uint8_t data); int (*read)(struct lws_i2c_ops *ctx); void (*set_ack)(struct lws_i2c_ops *octx, int ack); } lws_i2c_ops_t; int lws_i2c_command(lws_i2c_ops_t *ctx, uint8_t ads, uint8_t c); int lws_i2c_command_list(lws_i2c_ops_t *ctx, uint8_t ads, const uint8_t *buf, size_t len); #endif