diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 12:31:03 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 12:31:03 -0400 |
| commit | 00341b5301009ba6f36ee3298e69b649ac5540ff (patch) | |
| tree | 0f0cdcabd20b2834f30b67b50795c49989ced65a /include/linux | |
| parent | 45d9a2220f6004b47c362cc7fc7cf9a73cb6353a (diff) | |
| parent | b720423a2627f045133bec39a31fe2bc0dab86f3 (diff) | |
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang:
"Highlights:
- OF and ACPI helpers are now included in the core, and not in
external files anymore. This removes dependency problems for
modules and is cleaner, in general.
- mv64xxx-driver gains fifo usage to support mv78230
- imx-driver overhaul to support VF610
- various cleanups, most notably related to devm_* and CONFIG_PM
usage
- driver bugfixes and smaller feature additions"
* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (51 commits)
i2c: rcar: add rcar-H2 support
i2c: sirf: retry 3 times as sometimes we get random noack and timeout
i2c: sirf: support reverse direction of address
i2c: sirf: fix the typo for setting bitrate to less than 100k
i2c: sirf: we need to wait I2C_RESET status in resume
i2c: sirf: reset i2c controller early after we get a noack
i2c: designware: get SDA hold time, HCNT and LCNT configuration from ACPI
i2c: designware: make HCNT/LCNT values configurable
i2c: mpc: cleanup clock API use
i2c: pnx: fix error return code in i2c_pnx_probe()
i2c: ismt: add error return code in probe()
i2c: mv64xxx: fix typo in binding documentation
i2c: imx: use exact SoC revision to document binding
i2c: move ACPI helpers into the core
i2c: move OF helpers into the core
i2c: mv64xxx: Fix timing issue on Armada XP (errata FE-8471889)
i2c: mv64xxx: Add I2C Transaction Generator support
i2c: powermac: fix return path on error
Documentation: i2c: Fix example in instantiating-devices
i2c: tiny-usb: do not use stack as URB transfer_buffer
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/i2c.h | 24 | ||||
| -rw-r--r-- | include/linux/i2c/pxa-i2c.h | 3 | ||||
| -rw-r--r-- | include/linux/of_i2c.h | 46 |
3 files changed, 23 insertions, 50 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index e988fa935b3c..2ab11dc38077 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -447,11 +447,13 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) | |||
| 447 | static inline struct i2c_adapter * | 447 | static inline struct i2c_adapter * |
| 448 | i2c_parent_is_i2c_adapter(const struct i2c_adapter *adapter) | 448 | i2c_parent_is_i2c_adapter(const struct i2c_adapter *adapter) |
| 449 | { | 449 | { |
| 450 | #if IS_ENABLED(I2C_MUX) | ||
| 450 | struct device *parent = adapter->dev.parent; | 451 | struct device *parent = adapter->dev.parent; |
| 451 | 452 | ||
| 452 | if (parent != NULL && parent->type == &i2c_adapter_type) | 453 | if (parent != NULL && parent->type == &i2c_adapter_type) |
| 453 | return to_i2c_adapter(parent); | 454 | return to_i2c_adapter(parent); |
| 454 | else | 455 | else |
| 456 | #endif | ||
| 455 | return NULL; | 457 | return NULL; |
| 456 | } | 458 | } |
| 457 | 459 | ||
| @@ -542,10 +544,24 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap) | |||
| 542 | 544 | ||
| 543 | #endif /* I2C */ | 545 | #endif /* I2C */ |
| 544 | 546 | ||
| 545 | #if IS_ENABLED(CONFIG_ACPI_I2C) | 547 | #if IS_ENABLED(CONFIG_OF) |
| 546 | extern void acpi_i2c_register_devices(struct i2c_adapter *adap); | 548 | /* must call put_device() when done with returned i2c_client device */ |
| 549 | extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); | ||
| 550 | |||
| 551 | /* must call put_device() when done with returned i2c_adapter device */ | ||
| 552 | extern struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node); | ||
| 553 | |||
| 547 | #else | 554 | #else |
| 548 | static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {} | 555 | |
| 549 | #endif | 556 | static inline struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) |
| 557 | { | ||
| 558 | return NULL; | ||
| 559 | } | ||
| 560 | |||
| 561 | static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node) | ||
| 562 | { | ||
| 563 | return NULL; | ||
| 564 | } | ||
| 565 | #endif /* CONFIG_OF */ | ||
| 550 | 566 | ||
| 551 | #endif /* _LINUX_I2C_H */ | 567 | #endif /* _LINUX_I2C_H */ |
diff --git a/include/linux/i2c/pxa-i2c.h b/include/linux/i2c/pxa-i2c.h index 1a9f65e6ec0f..53aab243cbd8 100644 --- a/include/linux/i2c/pxa-i2c.h +++ b/include/linux/i2c/pxa-i2c.h | |||
| @@ -67,6 +67,9 @@ struct i2c_pxa_platform_data { | |||
| 67 | unsigned int class; | 67 | unsigned int class; |
| 68 | unsigned int use_pio :1; | 68 | unsigned int use_pio :1; |
| 69 | unsigned int fast_mode :1; | 69 | unsigned int fast_mode :1; |
| 70 | unsigned int high_mode:1; | ||
| 71 | unsigned char master_code; | ||
| 72 | unsigned long rate; | ||
| 70 | }; | 73 | }; |
| 71 | 74 | ||
| 72 | extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info); | 75 | extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info); |
diff --git a/include/linux/of_i2c.h b/include/linux/of_i2c.h deleted file mode 100644 index cfb545cd86b5..000000000000 --- a/include/linux/of_i2c.h +++ /dev/null | |||
| @@ -1,46 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Generic I2C API implementation for PowerPC. | ||
| 3 | * | ||
| 4 | * Copyright (c) 2008 Jochen Friedrich <jochen@scram.de> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef __LINUX_OF_I2C_H | ||
| 13 | #define __LINUX_OF_I2C_H | ||
| 14 | |||
| 15 | #if defined(CONFIG_OF_I2C) || defined(CONFIG_OF_I2C_MODULE) | ||
| 16 | #include <linux/i2c.h> | ||
| 17 | |||
| 18 | extern void of_i2c_register_devices(struct i2c_adapter *adap); | ||
| 19 | |||
| 20 | /* must call put_device() when done with returned i2c_client device */ | ||
| 21 | extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); | ||
| 22 | |||
| 23 | /* must call put_device() when done with returned i2c_adapter device */ | ||
| 24 | extern struct i2c_adapter *of_find_i2c_adapter_by_node( | ||
| 25 | struct device_node *node); | ||
| 26 | |||
| 27 | #else | ||
| 28 | static inline void of_i2c_register_devices(struct i2c_adapter *adap) | ||
| 29 | { | ||
| 30 | return; | ||
| 31 | } | ||
| 32 | |||
| 33 | static inline struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) | ||
| 34 | { | ||
| 35 | return NULL; | ||
| 36 | } | ||
| 37 | |||
| 38 | /* must call put_device() when done with returned i2c_adapter device */ | ||
| 39 | static inline struct i2c_adapter *of_find_i2c_adapter_by_node( | ||
| 40 | struct device_node *node) | ||
| 41 | { | ||
| 42 | return NULL; | ||
| 43 | } | ||
| 44 | #endif /* CONFIG_OF_I2C */ | ||
| 45 | |||
| 46 | #endif /* __LINUX_OF_I2C_H */ | ||
