i2c: mux: pca954x: Make use of device properties
Device property API allows to gather device resources from different sources, such as ACPI. Convert the drivers to unleash the power of device property API. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Peter Rosin <peda@axentia.se> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
Родитель
19bb22273c
Коммит
753aa36943
|
@ -43,10 +43,8 @@
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
|
||||||
#include <linux/of_device.h>
|
|
||||||
#include <linux/of_irq.h>
|
|
||||||
#include <linux/pm.h>
|
#include <linux/pm.h>
|
||||||
|
#include <linux/property.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <dt-bindings/mux/mux.h>
|
#include <dt-bindings/mux/mux.h>
|
||||||
|
@ -198,7 +196,6 @@ static const struct i2c_device_id pca954x_id[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, pca954x_id);
|
MODULE_DEVICE_TABLE(i2c, pca954x_id);
|
||||||
|
|
||||||
#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] },
|
||||||
{ .compatible = "nxp,pca9542", .data = &chips[pca_9542] },
|
{ .compatible = "nxp,pca9542", .data = &chips[pca_9542] },
|
||||||
|
@ -215,7 +212,6 @@ static const struct of_device_id pca954x_of_match[] = {
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, pca954x_of_match);
|
MODULE_DEVICE_TABLE(of, pca954x_of_match);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Write to mux register. Don't use i2c_transfer()/i2c_smbus_xfer()
|
/* Write to mux register. Don't use i2c_transfer()/i2c_smbus_xfer()
|
||||||
for this as they will try to lock adapter a second time */
|
for this as they will try to lock adapter a second time */
|
||||||
|
@ -426,7 +422,6 @@ static int pca954x_probe(struct i2c_client *client,
|
||||||
{
|
{
|
||||||
struct i2c_adapter *adap = client->adapter;
|
struct i2c_adapter *adap = client->adapter;
|
||||||
struct device *dev = &client->dev;
|
struct device *dev = &client->dev;
|
||||||
struct device_node *np = dev->of_node;
|
|
||||||
struct gpio_desc *gpio;
|
struct gpio_desc *gpio;
|
||||||
struct i2c_mux_core *muxc;
|
struct i2c_mux_core *muxc;
|
||||||
struct pca954x *data;
|
struct pca954x *data;
|
||||||
|
@ -456,7 +451,7 @@ static int pca954x_probe(struct i2c_client *client,
|
||||||
udelay(1);
|
udelay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
data->chip = of_device_get_match_data(dev);
|
data->chip = device_get_match_data(dev);
|
||||||
if (!data->chip)
|
if (!data->chip)
|
||||||
data->chip = &chips[id->driver_data];
|
data->chip = &chips[id->driver_data];
|
||||||
|
|
||||||
|
@ -478,8 +473,8 @@ static int pca954x_probe(struct i2c_client *client,
|
||||||
}
|
}
|
||||||
|
|
||||||
data->idle_state = MUX_IDLE_AS_IS;
|
data->idle_state = MUX_IDLE_AS_IS;
|
||||||
if (of_property_read_u32(np, "idle-state", &data->idle_state)) {
|
if (device_property_read_u32(dev, "idle-state", &data->idle_state)) {
|
||||||
if (np && of_property_read_bool(np, "i2c-mux-idle-disconnect"))
|
if (device_property_read_bool(dev, "i2c-mux-idle-disconnect"))
|
||||||
data->idle_state = MUX_IDLE_DISCONNECT;
|
data->idle_state = MUX_IDLE_DISCONNECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -562,7 +557,7 @@ static struct i2c_driver pca954x_driver = {
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "pca954x",
|
.name = "pca954x",
|
||||||
.pm = &pca954x_pm,
|
.pm = &pca954x_pm,
|
||||||
.of_match_table = of_match_ptr(pca954x_of_match),
|
.of_match_table = pca954x_of_match,
|
||||||
},
|
},
|
||||||
.probe = pca954x_probe,
|
.probe = pca954x_probe,
|
||||||
.remove = pca954x_remove,
|
.remove = pca954x_remove,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче