Commit 73e6ce09 authored by Sebastian Reichel's avatar Sebastian Reichel

HSI: omap_ssi_port: switch to gpiod API

Simplify driver by switching to new gpio descriptor based API.
Acked-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarSebastian Reichel <sre@kernel.org>
parent c3b46c73
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/gpio.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/hsi/hsi.h> #include <linux/hsi/hsi.h>
#include <linux/gpio.h> #include <linux/gpio/consumer.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/io.h> #include <linux/io.h>
...@@ -97,7 +97,7 @@ struct omap_ssi_port { ...@@ -97,7 +97,7 @@ struct omap_ssi_port {
struct list_head brkqueue; struct list_head brkqueue;
unsigned int irq; unsigned int irq;
int wake_irq; int wake_irq;
int wake_gpio; struct gpio_desc *wake_gpio;
struct tasklet_struct pio_tasklet; struct tasklet_struct pio_tasklet;
struct tasklet_struct wake_tasklet; struct tasklet_struct wake_tasklet;
bool wktest:1; /* FIXME: HACK to be removed */ bool wktest:1; /* FIXME: HACK to be removed */
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/of_gpio.h> #include <linux/gpio/consumer.h>
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include "omap_ssi_regs.h" #include "omap_ssi_regs.h"
...@@ -43,7 +43,7 @@ static inline int hsi_dummy_cl(struct hsi_client *cl __maybe_unused) ...@@ -43,7 +43,7 @@ static inline int hsi_dummy_cl(struct hsi_client *cl __maybe_unused)
static inline unsigned int ssi_wakein(struct hsi_port *port) static inline unsigned int ssi_wakein(struct hsi_port *port)
{ {
struct omap_ssi_port *omap_port = hsi_port_drvdata(port); struct omap_ssi_port *omap_port = hsi_port_drvdata(port);
return gpio_get_value(omap_port->wake_gpio); return gpiod_get_value(omap_port->wake_gpio);
} }
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
...@@ -1036,12 +1036,12 @@ static int __init ssi_wake_irq(struct hsi_port *port, ...@@ -1036,12 +1036,12 @@ static int __init ssi_wake_irq(struct hsi_port *port,
int cawake_irq; int cawake_irq;
int err; int err;
if (omap_port->wake_gpio == -1) { if (!omap_port->wake_gpio) {
omap_port->wake_irq = -1; omap_port->wake_irq = -1;
return 0; return 0;
} }
cawake_irq = gpio_to_irq(omap_port->wake_gpio); cawake_irq = gpiod_to_irq(omap_port->wake_gpio);
omap_port->wake_irq = cawake_irq; omap_port->wake_irq = cawake_irq;
tasklet_init(&omap_port->wake_tasklet, ssi_wake_tasklet, tasklet_init(&omap_port->wake_tasklet, ssi_wake_tasklet,
...@@ -1111,7 +1111,7 @@ static int __init ssi_port_probe(struct platform_device *pd) ...@@ -1111,7 +1111,7 @@ static int __init ssi_port_probe(struct platform_device *pd)
struct omap_ssi_port *omap_port; struct omap_ssi_port *omap_port;
struct hsi_controller *ssi = dev_get_drvdata(pd->dev.parent); struct hsi_controller *ssi = dev_get_drvdata(pd->dev.parent);
struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi);
int cawake_gpio = 0; struct gpio_desc *cawake_gpio = NULL;
u32 port_id; u32 port_id;
int err; int err;
...@@ -1147,20 +1147,10 @@ static int __init ssi_port_probe(struct platform_device *pd) ...@@ -1147,20 +1147,10 @@ static int __init ssi_port_probe(struct platform_device *pd)
goto error; goto error;
} }
err = of_get_named_gpio(np, "ti,ssi-cawake-gpio", 0); cawake_gpio = devm_gpiod_get(&pd->dev, "ti,ssi-cawake", GPIOD_IN);
if (err < 0) { if (IS_ERR(cawake_gpio)) {
dev_err(&pd->dev, "DT data is missing cawake gpio (err=%d)\n", err = PTR_ERR(cawake_gpio);
err); dev_err(&pd->dev, "couldn't get cawake gpio (err=%d)!\n", err);
goto error;
}
cawake_gpio = err;
err = devm_gpio_request_one(&port->device, cawake_gpio, GPIOF_DIR_IN,
"cawake");
if (err) {
dev_err(&pd->dev, "could not request cawake gpio (err=%d)!\n",
err);
err = -ENXIO;
goto error; goto error;
} }
...@@ -1219,8 +1209,7 @@ static int __init ssi_port_probe(struct platform_device *pd) ...@@ -1219,8 +1209,7 @@ static int __init ssi_port_probe(struct platform_device *pd)
hsi_add_clients_from_dt(port, np); hsi_add_clients_from_dt(port, np);
dev_info(&pd->dev, "ssi port %u successfully initialized (cawake=%d)\n", dev_info(&pd->dev, "ssi port %u successfully initialized\n", port_id);
port_id, cawake_gpio);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment