aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpio-mxs.c32
1 files changed, 9 insertions, 23 deletions
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
index f8e6af20dfbf..532bcb336eff 100644
--- a/drivers/gpio/gpio-mxs.c
+++ b/drivers/gpio/gpio-mxs.c
@@ -254,7 +254,6 @@ static int mxs_gpio_probe(struct platform_device *pdev)
254 struct device_node *parent; 254 struct device_node *parent;
255 static void __iomem *base; 255 static void __iomem *base;
256 struct mxs_gpio_port *port; 256 struct mxs_gpio_port *port;
257 struct resource *iores = NULL;
258 int irq_base; 257 int irq_base;
259 int err; 258 int err;
260 259
@@ -262,16 +261,10 @@ static int mxs_gpio_probe(struct platform_device *pdev)
262 if (!port) 261 if (!port)
263 return -ENOMEM; 262 return -ENOMEM;
264 263
265 if (np) { 264 port->id = of_alias_get_id(np, "gpio");
266 port->id = of_alias_get_id(np, "gpio"); 265 if (port->id < 0)
267 if (port->id < 0) 266 return port->id;
268 return port->id; 267 port->devid = (enum mxs_gpio_id) of_id->data;
269 port->devid = (enum mxs_gpio_id) of_id->data;
270 } else {
271 port->id = pdev->id;
272 port->devid = pdev->id_entry->driver_data;
273 }
274
275 port->irq = platform_get_irq(pdev, 0); 268 port->irq = platform_get_irq(pdev, 0);
276 if (port->irq < 0) 269 if (port->irq < 0)
277 return port->irq; 270 return port->irq;
@@ -281,18 +274,11 @@ static int mxs_gpio_probe(struct platform_device *pdev)
281 * share the same one 274 * share the same one
282 */ 275 */
283 if (!base) { 276 if (!base) {
284 if (np) { 277 parent = of_get_parent(np);
285 parent = of_get_parent(np); 278 base = of_iomap(parent, 0);
286 base = of_iomap(parent, 0); 279 of_node_put(parent);
287 of_node_put(parent); 280 if (!base)
288 if (!base) 281 return -EADDRNOTAVAIL;
289 return -EADDRNOTAVAIL;
290 } else {
291 iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
292 base = devm_ioremap_resource(&pdev->dev, iores);
293 if (IS_ERR(base))
294 return PTR_ERR(base);
295 }
296 } 282 }
297 port->base = base; 283 port->base = base;
298 284