Merge tag 'tegra-for-4.8-i2c' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra...
[cascardo/linux.git] / drivers / i2c / muxes / i2c-mux-pca9541.c
index 3cb8af6..4ea7e69 100644 (file)
@@ -85,6 +85,13 @@ static const struct i2c_device_id pca9541_id[] = {
 
 MODULE_DEVICE_TABLE(i2c, pca9541_id);
 
+#ifdef CONFIG_OF
+static const struct of_device_id pca9541_of_match[] = {
+       { .compatible = "nxp,pca9541" },
+       {}
+};
+#endif
+
 /*
  * Write to chip register. Don't use i2c_transfer()/i2c_smbus_xfer()
  * as they will try to lock the adapter a second time.
@@ -349,7 +356,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;
@@ -382,6 +390,7 @@ static int pca9541_remove(struct i2c_client *client)
 static struct i2c_driver pca9541_driver = {
        .driver = {
                   .name = "pca9541",
+                  .of_match_table = of_match_ptr(pca9541_of_match),
                   },
        .probe = pca9541_probe,
        .remove = pca9541_remove,