diff options
author | Leed Aguilar <leed.aguilar@ti.com> | 2012-06-06 16:14:56 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-06-07 01:32:59 -0400 |
commit | 040f3e5833b9426aaeead6da8957a9b87f3ca9e8 (patch) | |
tree | 57d17d19923c011385645b5e3cf0ec70f7c7599f | |
parent | 74dcd439bf8c16b01f9f5a9dffb2b171ed94e2e5 (diff) |
staging:iio:magnetometer:ak8975: set power-down mode after reading fuse ROM data
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>
-rw-r--r-- | drivers/staging/iio/magnetometer/ak8975.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c index 7562cafb26b..001b3bff476 100644 --- a/drivers/staging/iio/magnetometer/ak8975.c +++ b/drivers/staging/iio/magnetometer/ak8975.c | |||
@@ -194,6 +194,17 @@ static int ak8975_setup(struct i2c_client *client) | |||
194 | return ret; | 194 | return ret; |
195 | } | 195 | } |
196 | 196 | ||
197 | /* After reading fuse ROM data set power-down mode */ | ||
198 | ret = ak8975_write_data(client, | ||
199 | AK8975_REG_CNTL, | ||
200 | AK8975_REG_CNTL_MODE_POWER_DOWN, | ||
201 | AK8975_REG_CNTL_MODE_MASK, | ||
202 | AK8975_REG_CNTL_MODE_SHIFT); | ||
203 | if (ret < 0) { | ||
204 | dev_err(&client->dev, "Error in setting power-down mode\n"); | ||
205 | return ret; | ||
206 | } | ||
207 | |||
197 | /* | 208 | /* |
198 | * Precalculate scale factor (in Gauss units) for each axis and | 209 | * Precalculate scale factor (in Gauss units) for each axis and |
199 | * store in the device data. | 210 | * store in the device data. |