Replace allLVGL driver I2C code with I2C Manager
For discussion see #70
This commit is contained in:
parent
8f1370d1c4
commit
e52112376f
24 changed files with 896 additions and 679 deletions
76
i2c_manager/i2c_manager.h
Normal file
76
i2c_manager/i2c_manager.h
Normal file
|
@ -0,0 +1,76 @@
|
|||
#ifndef _I2C_MANAGER_H
|
||||
#define _I2C_MANAGER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
||||
If you copy the i2c_manager files to your own component instead of
|
||||
depending on i2c_manager, you MUST uncomment the define below
|
||||
and put in some short string that identifies your component (such
|
||||
as 'xyz'). This will cause i2c_manager to create functions named
|
||||
xyz_i2c_* instead of i2c_manager_*. See README.md for details.
|
||||
|
||||
*/
|
||||
|
||||
#define I2C_OEM lvgl
|
||||
|
||||
|
||||
// Only here to get the I2C_NUM_0 and I2C_NUM_1 defines.
|
||||
#include <driver/i2c.h>
|
||||
|
||||
#define CONCATX(A, B) A ## B
|
||||
#define CONCAT(A, B) CONCATX(A, B)
|
||||
#define STR_LITERAL(s) # s
|
||||
#define STR_EXPAND(s) STR_LITERAL(s)
|
||||
#define STR_QUOTE(s) STR_EXPAND(STR_EXPAND(s))
|
||||
|
||||
#ifdef I2C_OEM
|
||||
#define I2C_NAME_PREFIX CONCAT(I2C_OEM, _i2c)
|
||||
#else
|
||||
#define I2C_NAME_PREFIX i2c_manager
|
||||
#endif
|
||||
#define I2C_TAG STR_EXPAND(I2C_NAME_PREFIX)
|
||||
|
||||
#define I2C_FN(s) CONCAT(I2C_NAME_PREFIX, s)
|
||||
|
||||
|
||||
#define I2C_ADDR_10 ( 1 << 15 )
|
||||
#define I2C_REG_16 ( 1 << 31 )
|
||||
#define I2C_NO_REG ( 1 << 30 )
|
||||
|
||||
esp_err_t I2C_FN(_init)(i2c_port_t port);
|
||||
esp_err_t I2C_FN(_read)(i2c_port_t port, uint16_t addr, uint32_t reg, uint8_t *buffer, uint16_t size);
|
||||
esp_err_t I2C_FN(_write)(i2c_port_t port, uint16_t addr, uint32_t reg, const uint8_t *buffer, uint16_t size);
|
||||
esp_err_t I2C_FN(_close)(i2c_port_t port);
|
||||
esp_err_t I2C_FN(_lock)(i2c_port_t port);
|
||||
esp_err_t I2C_FN(_unlock)(i2c_port_t port);
|
||||
esp_err_t I2C_FN(_force_unlock)(i2c_port_t port);
|
||||
|
||||
|
||||
#ifdef I2C_OEM
|
||||
|
||||
void I2C_FN(_locking)(void* leader);
|
||||
|
||||
#else
|
||||
|
||||
void* i2c_manager_locking();
|
||||
|
||||
typedef struct {
|
||||
int32_t (* read)(void *handle, uint8_t address, uint8_t reg, uint8_t *buffer, uint16_t size);
|
||||
int32_t (* write)(void *handle, uint8_t address, uint8_t reg, const uint8_t *buffer, uint16_t size);
|
||||
void *handle;
|
||||
} i2c_hal_t;
|
||||
|
||||
void* i2c_hal(i2c_port_t port);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue