no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
no_os_i2c.h
Go to the documentation of this file.
1/***************************************************************************/
33
34#ifndef _NO_OS_I2C_H_
35#define _NO_OS_I2C_H_
36
37#include <stdint.h>
38
39#define I2C_MAX_BUS_NUMBER 4
40
47
64
71 void* mutex;
73 uint8_t slave_number;
75 uint32_t device_id;
77 uint32_t max_speed_hz;
81 void *extra;
82};
83
84
103
111 int32_t (*i2c_ops_init)(struct no_os_i2c_desc **,
112 const struct no_os_i2c_init_param *);
114 int32_t (*i2c_ops_write)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t);
116 int32_t (*i2c_ops_read)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t);
118 int32_t (*i2c_ops_remove)(struct no_os_i2c_desc *);
119};
120
121/* Initialize the I2C communication peripheral. */
122int32_t no_os_i2c_init(struct no_os_i2c_desc **desc,
123 const struct no_os_i2c_init_param *param);
124
125/* Free the resources allocated by no_os_i2c_init(). */
126int32_t no_os_i2c_remove(struct no_os_i2c_desc *desc);
127
128/* Write data to a slave device. */
129int32_t no_os_i2c_write(struct no_os_i2c_desc *desc,
130 uint8_t *data,
131 uint8_t bytes_number,
132 uint8_t stop_bit);
133
134/* Read data from a slave device. */
135int32_t no_os_i2c_read(struct no_os_i2c_desc *desc,
136 uint8_t *data,
137 uint8_t bytes_number,
138 uint8_t stop_bit);
139
140/* Initialize I2C bus descriptor*/
141int32_t no_os_i2cbus_init(const struct no_os_i2c_init_param *param);
142
143/* Free the resources allocated for I2C bus desc*/
144void no_os_i2cbus_remove(uint32_t bus_number);
145
146#endif // _NO_OS_I2C_H_
int32_t no_os_i2cbus_init(const struct no_os_i2c_init_param *param)
Initialize the i2c bus communication peripheral.
Definition no_os_i2c.c:86
int32_t no_os_i2c_read(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Read data from slave device.
Definition no_os_i2c.c:190
int32_t no_os_i2c_remove(struct no_os_i2c_desc *desc)
Free the resources allocated by no_os_i2c_init().
Definition no_os_i2c.c:113
void no_os_i2cbus_remove(uint32_t bus_number)
Removes i2c bus instance.
Definition no_os_i2c.c:131
int32_t no_os_i2c_write(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Write data to slave device.
Definition no_os_i2c.c:159
int32_t no_os_i2c_init(struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
Initialize the I2C communication peripheral.
Definition no_os_i2c.c:52
Structure holding I2C address descriptor.
Definition no_os_i2c.h:89
uint32_t device_id
Definition no_os_i2c.h:93
const struct no_os_i2c_platform_ops * platform_ops
Definition no_os_i2c.h:99
void * extra
Definition no_os_i2c.h:101
uint8_t slave_address
Definition no_os_i2c.h:97
uint32_t max_speed_hz
Definition no_os_i2c.h:95
struct no_os_i2cbus_desc * bus
Definition no_os_i2c.h:91
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52
uint32_t max_speed_hz
Definition no_os_i2c.h:56
const struct no_os_i2c_platform_ops * platform_ops
Definition no_os_i2c.h:60
void * extra
Definition no_os_i2c.h:62
uint8_t slave_address
Definition no_os_i2c.h:58
uint32_t device_id
Definition no_os_i2c.h:54
Structure holding I2C function pointers that point to the platform specific function.
Definition no_os_i2c.h:109
int32_t(* i2c_ops_init)(struct no_os_i2c_desc **, const struct no_os_i2c_init_param *)
Definition no_os_i2c.h:111
int32_t(* i2c_ops_read)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t)
Definition no_os_i2c.h:116
int32_t(* i2c_ops_remove)(struct no_os_i2c_desc *)
Definition no_os_i2c.h:118
int32_t(* i2c_ops_write)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t)
Definition no_os_i2c.h:114
Structure holding I2C bus descriptor.
Definition no_os_i2c.h:69
uint8_t slave_number
Definition no_os_i2c.h:73
uint32_t device_id
Definition no_os_i2c.h:75
void * mutex
Definition no_os_i2c.h:71
void * extra
Definition no_os_i2c.h:81
const struct no_os_i2c_platform_ops * platform_ops
Definition no_os_i2c.h:79
uint32_t max_speed_hz
Definition no_os_i2c.h:77