Lines Matching refs:bus
22 rt_err_t rt_i2c_bus_device_register(struct rt_i2c_bus_device *bus, in rt_i2c_bus_device_register() argument
27 rt_mutex_init(&bus->lock, "i2c_bus_lock", RT_IPC_FLAG_PRIO); in rt_i2c_bus_device_register()
29 if (bus->timeout == 0) bus->timeout = RT_TICK_PER_SECOND; in rt_i2c_bus_device_register()
31 res = rt_i2c_bus_device_device_init(bus, bus_name); in rt_i2c_bus_device_register()
38 i2c_bus_scan_clients(bus); in rt_i2c_bus_device_register()
47 struct rt_i2c_bus_device *bus; in rt_i2c_bus_device_find() local
56 bus = (struct rt_i2c_bus_device *)dev->user_data; in rt_i2c_bus_device_find()
58 return bus; in rt_i2c_bus_device_find()
61 rt_ssize_t rt_i2c_transfer(struct rt_i2c_bus_device *bus, in rt_i2c_transfer() argument
68 if (bus->ops->master_xfer) in rt_i2c_transfer()
78 err = rt_mutex_take(&bus->lock, RT_WAITING_FOREVER); in rt_i2c_transfer()
83 ret = bus->ops->master_xfer(bus, msgs, num); in rt_i2c_transfer()
84 err = rt_mutex_release(&bus->lock); in rt_i2c_transfer()
98 rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus, in rt_i2c_control() argument
104 if(bus->ops->i2c_bus_control) in rt_i2c_control()
106 ret = bus->ops->i2c_bus_control(bus, cmd, args); in rt_i2c_control()
116 rt_ssize_t rt_i2c_master_send(struct rt_i2c_bus_device *bus, in rt_i2c_master_send() argument
130 ret = rt_i2c_transfer(bus, &msg, 1); in rt_i2c_master_send()
135 rt_ssize_t rt_i2c_master_recv(struct rt_i2c_bus_device *bus, in rt_i2c_master_recv() argument
143 RT_ASSERT(bus != RT_NULL); in rt_i2c_master_recv()
150 ret = rt_i2c_transfer(bus, &msg, 1); in rt_i2c_master_recv()