Merge tag 'iio-for-4.3b-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
[firefly-linux-kernel-4.4.55.git] / drivers / iio / magnetometer / mmc35240.c
index 706ebfd6297fa7c0a311a80bfcb431b533d2cc70..176e14a615580ac1485d765092ec68d87485e3a9 100644 (file)
@@ -316,31 +316,31 @@ static int mmc35240_read_measurement(struct mmc35240_data *data, __le16 buf[3])
 static int mmc35240_raw_to_mgauss(struct mmc35240_data *data, int index,
                                  __le16 buf[], int *val)
 {
-       int raw_x, raw_y, raw_z;
-       int sens_x, sens_y, sens_z;
+       int raw[3];
+       int sens[3];
        int nfo;
 
-       raw_x = le16_to_cpu(buf[AXIS_X]);
-       raw_y = le16_to_cpu(buf[AXIS_Y]);
-       raw_z = le16_to_cpu(buf[AXIS_Z]);
+       raw[AXIS_X] = le16_to_cpu(buf[AXIS_X]);
+       raw[AXIS_Y] = le16_to_cpu(buf[AXIS_Y]);
+       raw[AXIS_Z] = le16_to_cpu(buf[AXIS_Z]);
 
-       sens_x = mmc35240_props_table[data->res].sens[AXIS_X];
-       sens_y = mmc35240_props_table[data->res].sens[AXIS_Y];
-       sens_z = mmc35240_props_table[data->res].sens[AXIS_Z];
+       sens[AXIS_X] = mmc35240_props_table[data->res].sens[AXIS_X];
+       sens[AXIS_Y] = mmc35240_props_table[data->res].sens[AXIS_Y];
+       sens[AXIS_Z] = mmc35240_props_table[data->res].sens[AXIS_Z];
 
        nfo = mmc35240_props_table[data->res].nfo;
 
        switch (index) {
        case AXIS_X:
-               *val = (raw_x - nfo) * 1000 / sens_x;
+               *val = (raw[AXIS_X] - nfo) * 1000 / sens[AXIS_X];
                break;
        case AXIS_Y:
-               *val = (raw_y - nfo) * 1000 / sens_y -
-                       (raw_z - nfo)  * 1000 / sens_z;
+               *val = (raw[AXIS_Y] - nfo) * 1000 / sens[AXIS_Y] -
+                       (raw[AXIS_Z] - nfo)  * 1000 / sens[AXIS_Z];
                break;
        case AXIS_Z:
-               *val = (raw_y - nfo) * 1000 / sens_y +
-                       (raw_z - nfo) * 1000 / sens_z;
+               *val = (raw[AXIS_Y] - nfo) * 1000 / sens[AXIS_Y] +
+                       (raw[AXIS_Z] - nfo) * 1000 / sens[AXIS_Z];
                break;
        default:
                return -EINVAL;
@@ -559,6 +559,12 @@ static const struct dev_pm_ops mmc35240_pm_ops = {
        SET_SYSTEM_SLEEP_PM_OPS(mmc35240_suspend, mmc35240_resume)
 };
 
+static const struct of_device_id mmc35240_of_match[] = {
+       { .compatible = "memsic,mmc35240", },
+       { }
+};
+MODULE_DEVICE_TABLE(of, mmc35240_of_match);
+
 static const struct acpi_device_id mmc35240_acpi_match[] = {
        {"MMC35240", 0},
        { },
@@ -574,6 +580,7 @@ MODULE_DEVICE_TABLE(i2c, mmc35240_id);
 static struct i2c_driver mmc35240_driver = {
        .driver = {
                .name = MMC35240_DRV_NAME,
+               .of_match_table = mmc35240_of_match,
                .pm = &mmc35240_pm_ops,
                .acpi_match_table = ACPI_PTR(mmc35240_acpi_match),
        },