]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/hwmon/ina2xx.c
drm/msm: Take the mutex before calling msm_gem_new_impl
[mirror_ubuntu-artful-kernel.git] / drivers / hwmon / ina2xx.c
index b24f1d3045f04386f7dc3a1c5af4b7ee7724e891..62e38fa8cda23c790635664364ba90e6d8292414 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/hwmon.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/jiffies.h>
+#include <linux/of_device.h>
 #include <linux/of.h>
 #include <linux/delay.h>
 #include <linux/util_macros.h>
@@ -424,13 +425,19 @@ static int ina2xx_probe(struct i2c_client *client,
        struct device *hwmon_dev;
        u32 val;
        int ret, group = 0;
+       enum ina2xx_ids chip;
+
+       if (client->dev.of_node)
+               chip = (enum ina2xx_ids)of_device_get_match_data(&client->dev);
+       else
+               chip = id->driver_data;
 
        data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
 
        /* set the device type */
-       data->config = &ina2xx_config[id->driver_data];
+       data->config = &ina2xx_config[chip];
 
        if (of_property_read_u32(dev->of_node, "shunt-resistor", &val) < 0) {
                struct ina2xx_platform_data *pdata = dev_get_platdata(dev);
@@ -487,9 +494,35 @@ static const struct i2c_device_id ina2xx_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, ina2xx_id);
 
+static const struct of_device_id ina2xx_of_match[] = {
+       {
+               .compatible = "ti,ina219",
+               .data = (void *)ina219
+       },
+       {
+               .compatible = "ti,ina220",
+               .data = (void *)ina219
+       },
+       {
+               .compatible = "ti,ina226",
+               .data = (void *)ina226
+       },
+       {
+               .compatible = "ti,ina230",
+               .data = (void *)ina226
+       },
+       {
+               .compatible = "ti,ina231",
+               .data = (void *)ina226
+       },
+       { },
+};
+MODULE_DEVICE_TABLE(of, ina2xx_of_match);
+
 static struct i2c_driver ina2xx_driver = {
        .driver = {
                .name   = "ina2xx",
+               .of_match_table = of_match_ptr(ina2xx_of_match),
        },
        .probe          = ina2xx_probe,
        .id_table       = ina2xx_id,