#include <linux/delay.h>
 
 #include <linux/gpio.h>
+#include <linux/input/ak8975.h>
 
 #include "../iio.h"
 #include "magnet.h"
                        const struct i2c_device_id *id)
 {
        struct ak8975_data *data;
+       struct ak8975_platform_data *pdata;
        int err;
 
        /* Allocate our device context. */
 
        /* 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");
 
--- /dev/null
+/*
+ * ak8975 platform support
+ *
+ * Copyright (C) 2010 Renesas Solutions Corp.
+ *
+ * Author: Tony SIM <chinyeow.sim.xt@renesas.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef _AK8975_H
+#define _AK8975_H
+
+struct ak8975_platform_data {
+       int gpio;
+};
+
+#endif