diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2017-03-08 14:09:04 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-09 11:51:28 +0100 |
commit | ef54fb4b1f14ed89f06b9e5158770ac6df9b64f8 (patch) | |
tree | 2bf25400d06100fffba88e6b6c7dd24beef1f0a6 /drivers/usb/host | |
parent | b52eb5a9a228e5f1c0d2fc485b71b7c4e67b143a (diff) | |
download | barebox-ef54fb4b1f14ed89f06b9e5158770ac6df9b64f8.tar.gz barebox-ef54fb4b1f14ed89f06b9e5158770ac6df9b64f8.tar.xz |
usb: echi-atmel: Convert global variables to private data
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/ehci-atmel.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c index fa9ca7d5b0..7a9d942a1a 100644 --- a/drivers/usb/host/ehci-atmel.c +++ b/drivers/usb/host/ehci-atmel.c @@ -29,29 +29,34 @@ #include "ehci.h" -/* interface and function clocks; sometimes also an AHB clock */ -static struct clk *iclk, *fclk; +struct atmel_ehci_priv { + struct device_d *dev; + struct clk *iclk; + struct clk *uclk; +}; -static int atmel_start_clock(void) +static int atmel_start_clock(struct atmel_ehci_priv *atehci) { int ret; - ret = clk_enable(iclk); + ret = clk_enable(atehci->iclk); if (ret < 0) { - pr_err("Error enabling interface clock\n"); + dev_err(atehci->dev, + "Error enabling interface clock\n"); return ret; } - ret = clk_enable(fclk); + ret = clk_enable(atehci->uclk); if (ret < 0) - pr_err("Error enabling function clock\n"); + dev_err(atehci->dev, + "Error enabling function clock\n"); return ret; } -static void atmel_stop_clock(void) +static void atmel_stop_clock(struct atmel_ehci_priv *atehci) { - clk_disable(fclk); - clk_disable(iclk); + clk_disable(atehci->iclk); + clk_disable(atehci->uclk); } static int atmel_ehci_probe(struct device_d *dev) @@ -59,15 +64,20 @@ static int atmel_ehci_probe(struct device_d *dev) int ret; struct resource *iores; struct ehci_data data; + struct atmel_ehci_priv *atehci; + + atehci = xzalloc(sizeof(*atehci)); + atehci->dev = dev; + dev->priv = atehci; - iclk = clk_get(dev, "ehci_clk"); - if (IS_ERR(iclk)) { + atehci->iclk = clk_get(dev, "ehci_clk"); + if (IS_ERR(atehci->iclk)) { dev_err(dev, "Error getting interface clock\n"); return -ENOENT; } - fclk = clk_get(dev, "uhpck"); - if (IS_ERR(fclk)) { + atehci->uclk = clk_get(dev, "uhpck"); + if (IS_ERR(atehci->iclk)) { dev_err(dev, "Error getting function clock\n"); return -ENOENT; } @@ -75,7 +85,7 @@ static int atmel_ehci_probe(struct device_d *dev) /* * Start the USB clocks. */ - ret = atmel_start_clock(); + ret = atmel_start_clock(atehci); if (ret < 0) return ret; @@ -96,7 +106,7 @@ static void atmel_ehci_remove(struct device_d *dev) /* * Stop the USB clocks. */ - atmel_stop_clock(); + atmel_stop_clock(dev->priv); } static struct driver_d atmel_ehci_driver = { |