diff options
author | Wolfram Sang <wsa@the-dreams.de> | 2013-07-11 12:56:15 +0100 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2013-08-23 10:22:20 +0200 |
commit | 687b81d083c082bc1e853032e3a2a54f8c251d27 (patch) | |
tree | 60ce91a6ecc84a8bfd1968772cd081c0afdce0f8 /include/linux/i2c.h | |
parent | c1d15b68aab86f1f3b602fa65e7618c0065d46e6 (diff) | |
download | op-kernel-dev-687b81d083c082bc1e853032e3a2a54f8c251d27.zip op-kernel-dev-687b81d083c082bc1e853032e3a2a54f8c251d27.tar.gz |
i2c: move OF helpers into the core
I2C of helpers used to live in of_i2c.c but experience (from SPI) shows
that it is much cleaner to have this in the core. This also removes a
circular dependency between the helpers and the core, and so we can
finally register child nodes in the core instead of doing this manually
in each driver. So, fix the drivers and documentation, too.
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'include/linux/i2c.h')
-rw-r--r-- | include/linux/i2c.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b3c4b8d..ed53696 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -544,6 +544,26 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap) #endif /* I2C */ +#if IS_ENABLED(CONFIG_OF) +/* must call put_device() when done with returned i2c_client device */ +extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); + +/* must call put_device() when done with returned i2c_adapter device */ +extern struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node); + +#else + +static inline struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) +{ + return NULL; +} + +static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node) +{ + return NULL; +} +#endif /* CONFIG_OF */ + #if IS_ENABLED(CONFIG_ACPI_I2C) extern void acpi_i2c_register_devices(struct i2c_adapter *adap); #else |