aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/muxes
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-11-18 18:50:07 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-18 18:50:07 -0500
commit13509c3a9d20a9df93dc9b944e8bd20fe1b454a7 (patch)
treed7a97d1d10e88bcb93852cb0143a000710e9e246 /drivers/i2c/muxes
parent1ea406c0e08c717241275064046d29b5bac1b1db (diff)
parentcfff1f4a9367bfe0d88413e8807f8369e9564729 (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.c2
-rw-r--r--drivers/i2c/muxes/i2c-mux-gpio.c10
-rw-r--r--drivers/i2c/muxes/i2c-mux-pinctrl.c1
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
37static int i2c_mux_gpio_select(struct i2c_adapter *adap, void *data, u32 chan) 37static 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
28struct i2c_mux_pinctrl { 29struct i2c_mux_pinctrl {
29 struct device *dev; 30 struct device *dev;