staging:iio:magnetometer:ak8975: set power-down mode after reading fuse ROM data
authorLeed Aguilar <leed.aguilar@ti.com>
Wed, 6 Jun 2012 20:14:56 +0000 (16:14 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Jun 2012 05:32:59 +0000 (14:32 +0900)
Fuse ROM data access mode is the only mode which does not
transition to power-down mode automatically.

As per the AK8975 data sheet, it is recomended to set the
power-down mode first before attempting to change into
another mode.

Signed-off-by: Leed Aguilar <leed.aguilar@ti.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/iio/magnetometer/ak8975.c

index 7562cafb26bb53d3457d9ec3e140811827ad555d..001b3bff4765f70aed62d57ffbd5b2b8d5a7dcb2 100644 (file)
@@ -194,6 +194,17 @@ static int ak8975_setup(struct i2c_client *client)
                return ret;
        }
 
+       /* After reading fuse ROM data set power-down mode */
+       ret = ak8975_write_data(client,
+                               AK8975_REG_CNTL,
+                               AK8975_REG_CNTL_MODE_POWER_DOWN,
+                               AK8975_REG_CNTL_MODE_MASK,
+                               AK8975_REG_CNTL_MODE_SHIFT);
+       if (ret < 0) {
+               dev_err(&client->dev, "Error in setting power-down mode\n");
+               return ret;
+       }
+
 /*
  * Precalculate scale factor (in Gauss units) for each axis and
  * store in the device data.