summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorTony SIM <chinyeow.sim.xt@renesas.com>2011-02-15 19:10:27 +0900
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-18 13:21:57 -0800
commitf2f1794835f1d8900d2b15d114c54e70c849809b (patch)
tree294c834c91571774ca7a819314b77d2e89effa9c /drivers/staging
parentea801950cf54d5d3e219bd51e298193d56cd53e7 (diff)
staging: iio: ak8975: add platform data.
As some of the platform not support irq_to_gpio, we pass gpio port by platform data. Signed-off-by: Tony SIM <chinyeow.sim.xt@renesas.com> Signed-off-by: Andrew Chew <achew@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/iio/magnetometer/ak8975.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
index 420f206cf51..80c0f413707 100644
--- a/drivers/staging/iio/magnetometer/ak8975.c
+++ b/drivers/staging/iio/magnetometer/ak8975.c
@@ -29,6 +29,7 @@
#include <linux/delay.h>
#include <linux/gpio.h>
+#include <linux/input/ak8975.h>
#include "../iio.h"
#include "magnet.h"
@@ -435,6 +436,7 @@ static int ak8975_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct ak8975_data *data;
+ struct ak8975_platform_data *pdata;
int err;
/* Allocate our device context. */
@@ -452,7 +454,11 @@ static int ak8975_probe(struct i2c_client *client,
/* Grab and set up the supplied GPIO. */
data->eoc_irq = client->irq;
- data->eoc_gpio = irq_to_gpio(client->irq);
+ pdata = client->dev.platform_data;
+ if (pdata)
+ data->eoc_gpio = pdata->gpio;
+ else
+ data->eoc_gpio = irq_to_gpio(client->irq);
if (!data->eoc_gpio) {
dev_err(&client->dev, "failed, no valid GPIO\n");