Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.16
"A couple of patches this time. Just some more compatibles for the pca954x driver and an error handling tweak for the reg driver."
This commit is contained in:
@@ -1617,6 +1617,9 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
/* Default timeout in interrupt mode: 200 ms */
|
||||
priv->adapter.timeout = HZ / 5;
|
||||
|
||||
if (dev->irq == IRQ_NOTCONNECTED)
|
||||
priv->features &= ~FEATURE_IRQ;
|
||||
|
||||
if (priv->features & FEATURE_IRQ) {
|
||||
u16 pcictl, pcists;
|
||||
|
||||
|
@@ -86,6 +86,7 @@ int i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsig
|
||||
property_entries_dup(info->properties);
|
||||
if (IS_ERR(devinfo->board_info.properties)) {
|
||||
status = PTR_ERR(devinfo->board_info.properties);
|
||||
kfree(devinfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -98,6 +99,7 @@ int i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsig
|
||||
GFP_KERNEL);
|
||||
if (!devinfo->board_info.resources) {
|
||||
status = -ENOMEM;
|
||||
kfree(devinfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -64,11 +64,11 @@ config I2C_MUX_PCA9541
|
||||
will be called i2c-mux-pca9541.
|
||||
|
||||
config I2C_MUX_PCA954x
|
||||
tristate "Philips PCA954x I2C Mux/switches"
|
||||
tristate "NXP PCA954x and PCA984x I2C Mux/switches"
|
||||
depends on GPIOLIB || COMPILE_TEST
|
||||
help
|
||||
If you say yes here you get support for the Philips PCA954x
|
||||
I2C mux/switch devices.
|
||||
If you say yes here you get support for the NXP PCA954x
|
||||
and PCA984x I2C mux/switch devices.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called i2c-mux-pca954x.
|
||||
|
@@ -4,11 +4,11 @@
|
||||
* Copyright (c) 2008-2009 Rodolfo Giometti <giometti@linux.it>
|
||||
* Copyright (c) 2008-2009 Eurotech S.p.A. <info@eurotech.it>
|
||||
*
|
||||
* This module supports the PCA954x series of I2C multiplexer/switch chips
|
||||
* made by Philips Semiconductors.
|
||||
* This module supports the PCA954x and PCA954x series of I2C multiplexer/switch
|
||||
* chips made by NXP Semiconductors.
|
||||
* This includes the:
|
||||
* PCA9540, PCA9542, PCA9543, PCA9544, PCA9545, PCA9546, PCA9547
|
||||
* and PCA9548.
|
||||
* PCA9540, PCA9542, PCA9543, PCA9544, PCA9545, PCA9546, PCA9547,
|
||||
* PCA9548, PCA9846, PCA9847, PCA9848 and PCA9849.
|
||||
*
|
||||
* These chips are all controlled via the I2C bus itself, and all have a
|
||||
* single 8-bit register. The upstream "parent" bus fans out to two,
|
||||
@@ -63,6 +63,10 @@ enum pca_type {
|
||||
pca_9546,
|
||||
pca_9547,
|
||||
pca_9548,
|
||||
pca_9846,
|
||||
pca_9847,
|
||||
pca_9848,
|
||||
pca_9849,
|
||||
};
|
||||
|
||||
struct chip_desc {
|
||||
@@ -129,6 +133,24 @@ static const struct chip_desc chips[] = {
|
||||
.nchans = 8,
|
||||
.muxtype = pca954x_isswi,
|
||||
},
|
||||
[pca_9846] = {
|
||||
.nchans = 4,
|
||||
.muxtype = pca954x_isswi,
|
||||
},
|
||||
[pca_9847] = {
|
||||
.nchans = 8,
|
||||
.enable = 0x8,
|
||||
.muxtype = pca954x_ismux,
|
||||
},
|
||||
[pca_9848] = {
|
||||
.nchans = 8,
|
||||
.muxtype = pca954x_isswi,
|
||||
},
|
||||
[pca_9849] = {
|
||||
.nchans = 4,
|
||||
.enable = 0x4,
|
||||
.muxtype = pca954x_ismux,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct i2c_device_id pca954x_id[] = {
|
||||
@@ -140,6 +162,10 @@ static const struct i2c_device_id pca954x_id[] = {
|
||||
{ "pca9546", pca_9546 },
|
||||
{ "pca9547", pca_9547 },
|
||||
{ "pca9548", pca_9548 },
|
||||
{ "pca9846", pca_9846 },
|
||||
{ "pca9847", pca_9847 },
|
||||
{ "pca9848", pca_9848 },
|
||||
{ "pca9849", pca_9849 },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, pca954x_id);
|
||||
@@ -154,6 +180,10 @@ static const struct of_device_id pca954x_of_match[] = {
|
||||
{ .compatible = "nxp,pca9546", .data = &chips[pca_9546] },
|
||||
{ .compatible = "nxp,pca9547", .data = &chips[pca_9547] },
|
||||
{ .compatible = "nxp,pca9548", .data = &chips[pca_9548] },
|
||||
{ .compatible = "nxp,pca9846", .data = &chips[pca_9846] },
|
||||
{ .compatible = "nxp,pca9847", .data = &chips[pca_9847] },
|
||||
{ .compatible = "nxp,pca9848", .data = &chips[pca_9848] },
|
||||
{ .compatible = "nxp,pca9849", .data = &chips[pca_9849] },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, pca954x_of_match);
|
||||
|
@@ -177,6 +177,9 @@ static int i2c_mux_reg_probe(struct platform_device *pdev)
|
||||
sizeof(mux->data));
|
||||
} else {
|
||||
ret = i2c_mux_reg_probe_dt(mux, pdev);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
return ret;
|
||||
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "Error parsing device tree");
|
||||
return ret;
|
||||
|
مرجع در شماره جدید
Block a user