diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-18 18:50:07 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-18 18:50:07 -0500 |
| commit | 13509c3a9d20a9df93dc9b944e8bd20fe1b454a7 (patch) | |
| tree | d7a97d1d10e88bcb93852cb0143a000710e9e246 /drivers/i2c/muxes | |
| parent | 1ea406c0e08c717241275064046d29b5bac1b1db (diff) | |
| parent | cfff1f4a9367bfe0d88413e8807f8369e9564729 (diff) | |
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c changes from Wolfram Sang:
- new drivers for exynos5, bcm kona, and st micro
- bigger overhauls for drivers mxs and rcar
- typical driver bugfixes, cleanups, improvements
- got rid of the superfluous 'driver' member in i2c_client struct This
touches a few drivers in other subsystems. All acked.
* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (38 commits)
i2c: bcm-kona: fix error return code in bcm_kona_i2c_probe()
i2c: i2c-eg20t: do not print error message in syslog if no ACK received
i2c: bcm-kona: Introduce Broadcom I2C Driver
i2c: cbus-gpio: Fix device tree binding
i2c: wmt: add missing clk_disable_unprepare() on error
i2c: designware: add new ACPI IDs
i2c: i801: Add Device IDs for Intel Wildcat Point-LP PCH
i2c: exynos5: Remove incorrect clk_disable_unprepare
i2c: i2c-st: Add ST I2C controller
i2c: exynos5: add High Speed I2C controller driver
i2c: rcar: fixup rcar type naming
i2c: scmi: remove some bogus NULL checks
i2c: sh_mobile & rcar: Enable the driver on all ARM platforms
i2c: sh_mobile: Convert to clk_prepare/unprepare
i2c: mux: gpio: use reg value for i2c_add_mux_adapter
i2c: mux: gpio: use gpio_set_value_cansleep()
i2c: Include linux/of.h header
i2c: mxs: Fix PIO mode on i.MX23
i2c: mxs: Rework the PIO mode operation
i2c: mxs: distinguish i.MX23 and i.MX28 based I2C controller
...
Diffstat (limited to 'drivers/i2c/muxes')
| -rw-r--r-- | drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 2 | ||||
| -rw-r--r-- | drivers/i2c/muxes/i2c-mux-gpio.c | 10 | ||||
| -rw-r--r-- | drivers/i2c/muxes/i2c-mux-pinctrl.c | 1 |
3 files changed, 7 insertions, 6 deletions
diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c index 928656e241dd..c58e093b6032 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c | |||
| @@ -238,7 +238,7 @@ static struct platform_driver i2c_arbitrator_driver = { | |||
| 238 | .driver = { | 238 | .driver = { |
| 239 | .owner = THIS_MODULE, | 239 | .owner = THIS_MODULE, |
| 240 | .name = "i2c-arb-gpio-challenge", | 240 | .name = "i2c-arb-gpio-challenge", |
| 241 | .of_match_table = of_match_ptr(i2c_arbitrator_of_match), | 241 | .of_match_table = i2c_arbitrator_of_match, |
| 242 | }, | 242 | }, |
| 243 | }; | 243 | }; |
| 244 | 244 | ||
diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index a764da777f08..8a8c56f4b026 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c | |||
| @@ -30,15 +30,15 @@ static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val) | |||
| 30 | int i; | 30 | int i; |
| 31 | 31 | ||
| 32 | for (i = 0; i < mux->data.n_gpios; i++) | 32 | for (i = 0; i < mux->data.n_gpios; i++) |
| 33 | gpio_set_value(mux->gpio_base + mux->data.gpios[i], | 33 | gpio_set_value_cansleep(mux->gpio_base + mux->data.gpios[i], |
| 34 | val & (1 << i)); | 34 | val & (1 << i)); |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | static int i2c_mux_gpio_select(struct i2c_adapter *adap, void *data, u32 chan) | 37 | static int i2c_mux_gpio_select(struct i2c_adapter *adap, void *data, u32 chan) |
| 38 | { | 38 | { |
| 39 | struct gpiomux *mux = data; | 39 | struct gpiomux *mux = data; |
| 40 | 40 | ||
| 41 | i2c_mux_gpio_set(mux, mux->data.values[chan]); | 41 | i2c_mux_gpio_set(mux, chan); |
| 42 | 42 | ||
| 43 | return 0; | 43 | return 0; |
| 44 | } | 44 | } |
| @@ -228,7 +228,7 @@ static int i2c_mux_gpio_probe(struct platform_device *pdev) | |||
| 228 | unsigned int class = mux->data.classes ? mux->data.classes[i] : 0; | 228 | unsigned int class = mux->data.classes ? mux->data.classes[i] : 0; |
| 229 | 229 | ||
| 230 | mux->adap[i] = i2c_add_mux_adapter(parent, &pdev->dev, mux, nr, | 230 | mux->adap[i] = i2c_add_mux_adapter(parent, &pdev->dev, mux, nr, |
| 231 | i, class, | 231 | mux->data.values[i], class, |
| 232 | i2c_mux_gpio_select, deselect); | 232 | i2c_mux_gpio_select, deselect); |
| 233 | if (!mux->adap[i]) { | 233 | if (!mux->adap[i]) { |
| 234 | ret = -ENODEV; | 234 | ret = -ENODEV; |
| @@ -283,7 +283,7 @@ static struct platform_driver i2c_mux_gpio_driver = { | |||
| 283 | .driver = { | 283 | .driver = { |
| 284 | .owner = THIS_MODULE, | 284 | .owner = THIS_MODULE, |
| 285 | .name = "i2c-mux-gpio", | 285 | .name = "i2c-mux-gpio", |
| 286 | .of_match_table = of_match_ptr(i2c_mux_gpio_of_match), | 286 | .of_match_table = i2c_mux_gpio_of_match, |
| 287 | }, | 287 | }, |
| 288 | }; | 288 | }; |
| 289 | 289 | ||
diff --git a/drivers/i2c/muxes/i2c-mux-pinctrl.c b/drivers/i2c/muxes/i2c-mux-pinctrl.c index 68a37157377d..d7978dc4ad0b 100644 --- a/drivers/i2c/muxes/i2c-mux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-mux-pinctrl.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/i2c-mux-pinctrl.h> | 24 | #include <linux/i2c-mux-pinctrl.h> |
| 25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
| 26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
| 27 | #include <linux/of.h> | ||
| 27 | 28 | ||
| 28 | struct i2c_mux_pinctrl { | 29 | struct i2c_mux_pinctrl { |
| 29 | struct device *dev; | 30 | struct device *dev; |
