summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorZxy <[email protected]>2023-03-10 12:42:58 +0800
committerGitHub <[email protected]>2023-03-09 23:42:58 -0500
commitc8b30bf31a2fa75297a791b731a26273eb2f6c3b (patch)
tree40557c82a3fd9858929c753e6bede2751c88b842 /components
parentf6847af0cdd345c5903349dc7e7b04992ecef44f (diff)
[device]修改i2c读写函数返回类型为rt_ssize_t (#7029)
Diffstat (limited to 'components')
-rw-r--r--components/drivers/i2c/i2c_core.c26
-rw-r--r--components/drivers/include/drivers/i2c.h6
2 files changed, 13 insertions, 19 deletions
diff --git a/components/drivers/i2c/i2c_core.c b/components/drivers/i2c/i2c_core.c
index 39147be605..7e90ac30ec 100644
--- a/components/drivers/i2c/i2c_core.c
+++ b/components/drivers/i2c/i2c_core.c
@@ -51,11 +51,11 @@ struct rt_i2c_bus_device *rt_i2c_bus_device_find(const char *bus_name)
return bus;
}
-rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
struct rt_i2c_msg msgs[],
rt_uint32_t num)
{
- rt_size_t ret;
+ rt_ssize_t ret;
if (bus->ops->master_xfer)
{
@@ -78,7 +78,7 @@ rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
{
LOG_E("I2C bus operation not supported");
- return 0;
+ return -RT_ERROR;
}
}
@@ -98,17 +98,17 @@ rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus,
{
LOG_E("I2C bus operation not supported");
- return 0;
+ return -RT_ERROR;
}
}
-rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
const rt_uint8_t *buf,
rt_uint32_t count)
{
- rt_size_t ret;
+ rt_ssize_t ret;
struct rt_i2c_msg msg;
msg.addr = addr;
@@ -118,16 +118,16 @@ rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
ret = rt_i2c_transfer(bus, &msg, 1);
- return (ret > 0) ? count : ret;
+ return ret;
}
-rt_size_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
rt_uint8_t *buf,
rt_uint32_t count)
{
- rt_size_t ret;
+ rt_ssize_t ret;
struct rt_i2c_msg msg;
RT_ASSERT(bus != RT_NULL);
@@ -138,11 +138,5 @@ rt_size_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus,
ret = rt_i2c_transfer(bus, &msg, 1);
- return (ret > 0) ? count : ret;
+ return ret;
}
-
-int rt_i2c_core_init(void)
-{
- return 0;
-}
-INIT_COMPONENT_EXPORT(rt_i2c_core_init);
diff --git a/components/drivers/include/drivers/i2c.h b/components/drivers/include/drivers/i2c.h
index 3186f13414..e7f9faa16a 100644
--- a/components/drivers/include/drivers/i2c.h
+++ b/components/drivers/include/drivers/i2c.h
@@ -70,18 +70,18 @@ struct rt_i2c_client
rt_err_t rt_i2c_bus_device_register(struct rt_i2c_bus_device *bus,
const char *bus_name);
struct rt_i2c_bus_device *rt_i2c_bus_device_find(const char *bus_name);
-rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
struct rt_i2c_msg msgs[],
rt_uint32_t num);
rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus,
rt_uint32_t cmd,
rt_uint32_t arg);
-rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
const rt_uint8_t *buf,
rt_uint32_t count);
-rt_size_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus,
+rt_ssize_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
rt_uint8_t *buf,