1d4afb5ceSopenharmony_ci/* 2d4afb5ceSopenharmony_ci * lws-minimal-esp32 3d4afb5ceSopenharmony_ci * 4d4afb5ceSopenharmony_ci * Written in 2010-2020 by Andy Green <andy@warmcat.com> 5d4afb5ceSopenharmony_ci * 6d4afb5ceSopenharmony_ci * This file is made available under the Creative Commons CC0 1.0 7d4afb5ceSopenharmony_ci * Universal Public Domain Dedication. 8d4afb5ceSopenharmony_ci */ 9d4afb5ceSopenharmony_ci 10d4afb5ceSopenharmony_ci#include <stdint.h> 11d4afb5ceSopenharmony_ci#include <stddef.h> 12d4afb5ceSopenharmony_ci#include "i2c.h" 13d4afb5ceSopenharmony_ci#include "gpio-esp32.h" 14d4afb5ceSopenharmony_ci 15d4afb5ceSopenharmony_citypedef struct lws_bb_i2c { 16d4afb5ceSopenharmony_ci lws_i2c_ops_t bb_ops; /* init to lws_bb_i2c_ops */ 17d4afb5ceSopenharmony_ci 18d4afb5ceSopenharmony_ci /* implementation-specific members */ 19d4afb5ceSopenharmony_ci 20d4afb5ceSopenharmony_ci _lws_plat_gpio_t scl; 21d4afb5ceSopenharmony_ci _lws_plat_gpio_t sda; 22d4afb5ceSopenharmony_ci 23d4afb5ceSopenharmony_ci const lws_gpio_ops_t *gpio; 24d4afb5ceSopenharmony_ci void (*delay)(void); 25d4afb5ceSopenharmony_ci} lws_bb_i2c_t; 26d4afb5ceSopenharmony_ci 27d4afb5ceSopenharmony_ci#define lws_bb_i2c_ops \ 28d4afb5ceSopenharmony_ci { \ 29d4afb5ceSopenharmony_ci .start = lws_bb_i2c_start, \ 30d4afb5ceSopenharmony_ci .stop = lws_bb_i2c_stop, \ 31d4afb5ceSopenharmony_ci .write = lws_bb_i2c_write, \ 32d4afb5ceSopenharmony_ci .read = lws_bb_i2c_read, \ 33d4afb5ceSopenharmony_ci .set_ack = lws_bb_i2c_set_ack, \ 34d4afb5ceSopenharmony_ci } 35d4afb5ceSopenharmony_ci 36d4afb5ceSopenharmony_ciint 37d4afb5ceSopenharmony_cilws_bb_i2c_start(lws_i2c_ops_t *octx); 38d4afb5ceSopenharmony_ci 39d4afb5ceSopenharmony_civoid 40d4afb5ceSopenharmony_cilws_bb_i2c_stop(lws_i2c_ops_t *octx); 41d4afb5ceSopenharmony_ci 42d4afb5ceSopenharmony_ciint 43d4afb5ceSopenharmony_cilws_bb_i2c_write(lws_i2c_ops_t *octx, uint8_t data); 44d4afb5ceSopenharmony_ci 45d4afb5ceSopenharmony_ciint 46d4afb5ceSopenharmony_cilws_bb_i2c_read(lws_i2c_ops_t *octx); 47d4afb5ceSopenharmony_ci 48d4afb5ceSopenharmony_civoid 49d4afb5ceSopenharmony_cilws_bb_i2c_set_ack(lws_i2c_ops_t *octx, int ack); 50d4afb5ceSopenharmony_ci 51d4afb5ceSopenharmony_ci 52