Merge pull request #4631 from rtthread-bot/rtt_bot
[update] RT-Thread Robot automatic submission
This commit is contained in:
commit
75e13c6866
|
@ -6,6 +6,7 @@
|
||||||
* Change Logs:
|
* Change Logs:
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2012-04-25 weety first version
|
* 2012-04-25 weety first version
|
||||||
|
* 2021-04-20 RiceChen added support for bus control api
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <rtdevice.h>
|
#include <rtdevice.h>
|
||||||
|
@ -81,6 +82,26 @@ rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus,
|
||||||
|
rt_uint32_t cmd,
|
||||||
|
rt_uint32_t arg)
|
||||||
|
{
|
||||||
|
rt_err_t ret;
|
||||||
|
|
||||||
|
if(bus->ops->i2c_bus_control)
|
||||||
|
{
|
||||||
|
ret = bus->ops->i2c_bus_control(bus, cmd, arg);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG_E("I2C bus operation not supported");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
|
rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
|
||||||
rt_uint16_t addr,
|
rt_uint16_t addr,
|
||||||
rt_uint16_t flags,
|
rt_uint16_t flags,
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2012-04-25 weety first version
|
* 2012-04-25 weety first version
|
||||||
* 2014-08-03 bernard fix some compiling warning
|
* 2014-08-03 bernard fix some compiling warning
|
||||||
|
* 2021-04-20 RiceChen added support for bus clock control
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <rtdevice.h>
|
#include <rtdevice.h>
|
||||||
|
@ -66,6 +67,7 @@ static rt_err_t i2c_bus_device_control(rt_device_t dev,
|
||||||
rt_err_t ret;
|
rt_err_t ret;
|
||||||
struct rt_i2c_priv_data *priv_data;
|
struct rt_i2c_priv_data *priv_data;
|
||||||
struct rt_i2c_bus_device *bus = (struct rt_i2c_bus_device *)dev->user_data;
|
struct rt_i2c_bus_device *bus = (struct rt_i2c_bus_device *)dev->user_data;
|
||||||
|
rt_uint32_t bus_clock;
|
||||||
|
|
||||||
RT_ASSERT(bus != RT_NULL);
|
RT_ASSERT(bus != RT_NULL);
|
||||||
|
|
||||||
|
@ -89,6 +91,14 @@ static rt_err_t i2c_bus_device_control(rt_device_t dev,
|
||||||
return -RT_EIO;
|
return -RT_EIO;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case RT_I2C_DEV_CTRL_CLK:
|
||||||
|
bus_clock = *(rt_uint32_t *)args;
|
||||||
|
ret = rt_i2c_control(bus, cmd, bus_clock);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
return -RT_EIO;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* Change Logs:
|
* Change Logs:
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2012-04-25 weety first version
|
* 2012-04-25 weety first version
|
||||||
|
* 2021-04-20 RiceChen added support for bus control api
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __I2C_H__
|
#ifndef __I2C_H__
|
||||||
|
@ -74,6 +75,9 @@ 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_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
|
||||||
struct rt_i2c_msg msgs[],
|
struct rt_i2c_msg msgs[],
|
||||||
rt_uint32_t num);
|
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_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
|
||||||
rt_uint16_t addr,
|
rt_uint16_t addr,
|
||||||
rt_uint16_t flags,
|
rt_uint16_t flags,
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* Change Logs:
|
* Change Logs:
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2012-04-25 weety first version
|
* 2012-04-25 weety first version
|
||||||
|
* 2021-04-20 RiceChen added bus clock command
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __I2C_DEV_H__
|
#ifndef __I2C_DEV_H__
|
||||||
|
@ -21,6 +22,7 @@ extern "C" {
|
||||||
#define RT_I2C_DEV_CTRL_ADDR 0x21
|
#define RT_I2C_DEV_CTRL_ADDR 0x21
|
||||||
#define RT_I2C_DEV_CTRL_TIMEOUT 0x22
|
#define RT_I2C_DEV_CTRL_TIMEOUT 0x22
|
||||||
#define RT_I2C_DEV_CTRL_RW 0x23
|
#define RT_I2C_DEV_CTRL_RW 0x23
|
||||||
|
#define RT_I2C_DEV_CTRL_CLK 0x24
|
||||||
|
|
||||||
struct rt_i2c_priv_data
|
struct rt_i2c_priv_data
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue