mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
iio: dac: ad5686: introduce sync operation
Add sync() to operation to ad5686_bus_ops, which can be used to flush multiple pending data transfers at once. This is going to be used when implementing triggered buffer support. Reviewed-by: David Lechner <dlechner@baylibre.com> Signed-off-by: Rodrigo Alencar <rodrigo.alencar@analog.com> Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
This commit is contained in:
parent
797d37e46c
commit
92b7963fb5
|
|
@ -70,10 +70,12 @@ struct ad5686_state;
|
|||
* struct ad5686_bus_ops - bus specific read/write operations
|
||||
* @read: read a register value at the given address
|
||||
* @write: write a command, address and value to the device
|
||||
* @sync: ensure the completion of the write operation (optional)
|
||||
*/
|
||||
struct ad5686_bus_ops {
|
||||
int (*read)(struct ad5686_state *st, u8 addr);
|
||||
int (*write)(struct ad5686_state *st, u8 cmd, u8 addr, u16 val);
|
||||
int (*sync)(struct ad5686_state *st);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -162,7 +164,13 @@ int ad5686_probe(struct device *dev,
|
|||
|
||||
static inline int ad5686_write(struct ad5686_state *st, u8 cmd, u8 addr, u16 val)
|
||||
{
|
||||
return st->ops->write(st, cmd, addr, val);
|
||||
int ret;
|
||||
|
||||
ret = st->ops->write(st, cmd, addr, val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return st->ops->sync ? st->ops->sync(st) : 0;
|
||||
}
|
||||
|
||||
static inline int ad5686_read(struct ad5686_state *st, u8 addr)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user