Commit e88162f9 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Peter Rosin

Revert "i2c: mux: pca954x: Add ACPI support for pca954x"

In ACPI world any ID should be carefully chosen and registered
officially. The commit bbf9d262 seems did a wrong assumption because
PCA is the registered PNP ID for "PHILIPS BU ADD ON CARD". I'm pretty
sure this prefix has nothing to do with the driver in question.

Moreover, newer ACPI specification has a support of _DSD method and
special device IDs to allow drivers be enumerated via compatible string.
The slight change to support this kind of enumeration will be added in
sequential patch against pca954x.c.

Revert the commit bbf9d262 for good.

Cc: Tin Huynh <tnhuynh@apm.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
parent 4495c08e
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
* warranty of any kind, whether express or implied. * warranty of any kind, whether express or implied.
*/ */
#include <linux/acpi.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <linux/i2c.h> #include <linux/i2c.h>
...@@ -141,21 +140,6 @@ static const struct i2c_device_id pca954x_id[] = { ...@@ -141,21 +140,6 @@ static const struct i2c_device_id pca954x_id[] = {
}; };
MODULE_DEVICE_TABLE(i2c, pca954x_id); MODULE_DEVICE_TABLE(i2c, pca954x_id);
#ifdef CONFIG_ACPI
static const struct acpi_device_id pca954x_acpi_ids[] = {
{ .id = "PCA9540", .driver_data = pca_9540 },
{ .id = "PCA9542", .driver_data = pca_9542 },
{ .id = "PCA9543", .driver_data = pca_9543 },
{ .id = "PCA9544", .driver_data = pca_9544 },
{ .id = "PCA9545", .driver_data = pca_9545 },
{ .id = "PCA9546", .driver_data = pca_9545 },
{ .id = "PCA9547", .driver_data = pca_9547 },
{ .id = "PCA9548", .driver_data = pca_9548 },
{ }
};
MODULE_DEVICE_TABLE(acpi, pca954x_acpi_ids);
#endif
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id pca954x_of_match[] = { static const struct of_device_id pca954x_of_match[] = {
{ .compatible = "nxp,pca9540", .data = &chips[pca_9540] }, { .compatible = "nxp,pca9540", .data = &chips[pca_9540] },
...@@ -393,17 +377,8 @@ static int pca954x_probe(struct i2c_client *client, ...@@ -393,17 +377,8 @@ static int pca954x_probe(struct i2c_client *client,
match = of_match_device(of_match_ptr(pca954x_of_match), &client->dev); match = of_match_device(of_match_ptr(pca954x_of_match), &client->dev);
if (match) if (match)
data->chip = of_device_get_match_data(&client->dev); data->chip = of_device_get_match_data(&client->dev);
else if (id) else
data->chip = &chips[id->driver_data]; data->chip = &chips[id->driver_data];
else {
const struct acpi_device_id *acpi_id;
acpi_id = acpi_match_device(ACPI_PTR(pca954x_acpi_ids),
&client->dev);
if (!acpi_id)
return -ENODEV;
data->chip = &chips[acpi_id->driver_data];
}
data->last_chan = 0; /* force the first selection */ data->last_chan = 0; /* force the first selection */
...@@ -492,7 +467,6 @@ static struct i2c_driver pca954x_driver = { ...@@ -492,7 +467,6 @@ static struct i2c_driver pca954x_driver = {
.name = "pca954x", .name = "pca954x",
.pm = &pca954x_pm, .pm = &pca954x_pm,
.of_match_table = of_match_ptr(pca954x_of_match), .of_match_table = of_match_ptr(pca954x_of_match),
.acpi_match_table = ACPI_PTR(pca954x_acpi_ids),
}, },
.probe = pca954x_probe, .probe = pca954x_probe,
.remove = pca954x_remove, .remove = pca954x_remove,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment