Merge 3.4-rc5 into staging-next
[deliverable/linux.git] / drivers / staging / iio / magnetometer / hmc5843.c
index 91dd3da70cb4961a9751c107bb9eb7565d48e3db..3ec65180b815fbb096052dc02bc4d522866a3c22 100644 (file)
@@ -22,8 +22,8 @@
 #include <linux/i2c.h>
 #include <linux/slab.h>
 #include <linux/types.h>
-#include "../iio.h"
-#include "../sysfs.h"
+#include <linux/iio/iio.h>
+#include <linux/iio/sysfs.h>
 
 #define HMC5843_I2C_ADDRESS                    0x1E
 
@@ -459,7 +459,7 @@ static int hmc5843_read_raw(struct iio_dev *indio_dev,
        struct hmc5843_data *data = iio_priv(indio_dev);
 
        switch (mask) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                return hmc5843_read_measurement(indio_dev,
                                                chan->address,
                                                val);
@@ -476,7 +476,8 @@ static int hmc5843_read_raw(struct iio_dev *indio_dev,
                .type = IIO_MAGN,                                       \
                .modified = 1,                                          \
                .channel2 = IIO_MOD_##axis,                             \
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,            \
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |           \
+                            IIO_CHAN_INFO_SCALE_SHARED_BIT,            \
                .address = add                                          \
        }
 
@@ -521,7 +522,9 @@ static int hmc5843_detect(struct i2c_client *client,
 /* Called when we have found a new HMC5843. */
 static void hmc5843_init_client(struct i2c_client *client)
 {
-       struct hmc5843_data *data = i2c_get_clientdata(client);
+       struct iio_dev *indio_dev = i2c_get_clientdata(client);
+       struct hmc5843_data *data = iio_priv(indio_dev);
+
        hmc5843_set_meas_conf(client, data->meas_conf);
        hmc5843_set_rate(client, data->rate);
        hmc5843_configure(client, data->operating_mode);
@@ -543,7 +546,7 @@ static int hmc5843_probe(struct i2c_client *client,
        struct iio_dev *indio_dev;
        int err = 0;
 
-       indio_dev = iio_allocate_device(sizeof(*data));
+       indio_dev = iio_device_alloc(sizeof(*data));
        if (indio_dev == NULL) {
                err = -ENOMEM;
                goto exit;
@@ -571,7 +574,7 @@ static int hmc5843_probe(struct i2c_client *client,
                goto exit_free2;
        return 0;
 exit_free2:
-       iio_free_device(indio_dev);
+       iio_device_free(indio_dev);
 exit:
        return err;
 }
@@ -583,7 +586,7 @@ static int hmc5843_remove(struct i2c_client *client)
        iio_device_unregister(indio_dev);
         /*  sleep mode to save power */
        hmc5843_configure(client, MODE_SLEEP);
-       iio_free_device(indio_dev);
+       iio_device_free(indio_dev);
 
        return 0;
 }
This page took 0.025069 seconds and 5 git commands to generate.