mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-16 11:32:41 +00:00
i2c: mux: add support for 'i2c-mux', 'i2c-arb' and 'i2c-gate' DT subnodes
Backwards compatibility is preserved; the subnodes are in practice optional. However, the mux core needs to know what subnode it should examine, so add a couple of new flags for i2c_mux_alloc for this purpose. The rule is that if the mux core finds a 'reg' property in the appropriate subnode, e.g. if 'reg' exists in the 'i2c-mux' subnode, then the mux core will assume that this is an old style entry and not an i2c-mux subnode (correspondingly for arbitrators and gates with 'i2c-arb' and 'i2c-gate'). Reviewed-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Peter Rosin <peda@axentia.se>
This commit is contained in:
parent
8f7720b950
commit
b2d57b5604
2 changed files with 42 additions and 10 deletions
|
@ -32,7 +32,9 @@
|
|||
struct i2c_mux_core {
|
||||
struct i2c_adapter *parent;
|
||||
struct device *dev;
|
||||
bool mux_locked;
|
||||
unsigned int mux_locked:1;
|
||||
unsigned int arbitrator:1;
|
||||
unsigned int gate:1;
|
||||
|
||||
void *priv;
|
||||
|
||||
|
@ -51,7 +53,9 @@ struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent,
|
|||
int (*deselect)(struct i2c_mux_core *, u32));
|
||||
|
||||
/* flags for i2c_mux_alloc */
|
||||
#define I2C_MUX_LOCKED BIT(0)
|
||||
#define I2C_MUX_LOCKED BIT(0)
|
||||
#define I2C_MUX_ARBITRATOR BIT(1)
|
||||
#define I2C_MUX_GATE BIT(2)
|
||||
|
||||
static inline void *i2c_mux_priv(struct i2c_mux_core *muxc)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue