i2c: mux: inform the i2c mux core about how it is used
authorPeter Rosin <peda@axentia.se>
Thu, 11 Aug 2016 14:49:54 +0000 (16:49 +0200)
committerPeter Rosin <peda@axentia.se>
Thu, 25 Aug 2016 20:11:03 +0000 (22:11 +0200)
The i2c mux core can then take appropriate action depending on if it is
used for an actual i2c mux, for a gate or for an arbitrator (the last
is the case for these drivers). This adds support for the new clearer
and more compact devicetree bindings that was added recently.

Reviewed-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Peter Rosin <peda@axentia.se>
drivers/i2c/muxes/i2c-arb-gpio-challenge.c
drivers/i2c/muxes/i2c-mux-pca9541.c

index a90bbc4037dde3295a288c3a7d2b87197b92ba7e..86fc2d4c081b2eb4f265d7d69cd485d9ca9ec120 100644 (file)
@@ -130,7 +130,7 @@ static int i2c_arbitrator_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       muxc = i2c_mux_alloc(NULL, dev, 1, sizeof(*arb), 0,
+       muxc = i2c_mux_alloc(NULL, dev, 1, sizeof(*arb), I2C_MUX_ARBITRATOR,
                             i2c_arbitrator_select, i2c_arbitrator_deselect);
        if (!muxc)
                return -ENOMEM;
index 3cb8af635db5f8a2a812e12a9afc9be8655b1104..f052c30677910118d0de1e2ebdc924c457c291fb 100644 (file)
@@ -349,7 +349,8 @@ static int pca9541_probe(struct i2c_client *client,
        force = 0;
        if (pdata)
                force = pdata->modes[0].adap_id;
-       muxc = i2c_mux_alloc(adap, &client->dev, 1, sizeof(*data), 0,
+       muxc = i2c_mux_alloc(adap, &client->dev, 1, sizeof(*data),
+                            I2C_MUX_ARBITRATOR,
                             pca9541_select_chan, pca9541_release_chan);
        if (!muxc)
                return -ENOMEM;