aboutsummaryrefslogtreecommitdiff
path: root/include/i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/i2c.h')
-rw-r--r--include/i2c.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/i2c.h b/include/i2c.h
index dea0644..83c6ec5 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -26,6 +26,8 @@ struct i2c_bus {
int (*queue_req)(struct i2c_request *req);
struct i2c_request *(*alloc_req)(struct i2c_bus *bus);
void (*free_req)(struct i2c_request *req);
+ void (*set_req_timeout)(struct i2c_request *req,
+ uint64_t duration);
};
/*
@@ -80,6 +82,13 @@ static inline int i2c_queue_req(struct i2c_request *req)
return req->bus->queue_req(req);
}
+static inline void i2c_set_req_timeout(struct i2c_request *req,
+ uint64_t duration)
+{
+ if (req->bus->set_req_timeout)
+ req->bus->set_req_timeout(req, duration);
+}
+
/* P8 implementation details */
extern void p8_i2c_init(void);
extern void p8_i2c_interrupt(uint32_t chip_id);