diff options
author | Peter Chen <peter.chen@freescale.com> | 2013-11-06 16:38:18 +0800 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2015-09-17 09:21:03 -0500 |
commit | dab3b704b0805d1cee40888fa2c58fb5d18aaf4d (patch) | |
tree | 0ff64485c9c2f67c5bac85f0ff4fbfd4fa7804ca | |
parent | b0c11df3952753a1ae72723b7d9b7e6a401ee8dd (diff) |
ENGR00286459 usb: chipidea: imx: add request{release}_bus_freq
When the usb in idle, it calls release_bus_req.
When the usb is going to use, it calls request_bus_req.
Signed-off-by: Peter Chen <peter.chen@freescale.com>
-rw-r--r-- | drivers/usb/chipidea/ci_hdrc_imx.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c index 7fd02f9ea3fa..0582f12ad051 100644 --- a/drivers/usb/chipidea/ci_hdrc_imx.c +++ b/drivers/usb/chipidea/ci_hdrc_imx.c @@ -23,6 +23,7 @@ #include <linux/regmap.h> #include <linux/mfd/syscon.h> #include <linux/power/imx6_usb_charger.h> +#include <linux/busfreq-imx6.h> #include "ci.h" #include "ci_hdrc_imx.h" @@ -179,6 +180,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) if (IS_ERR(data->usbmisc_data)) return PTR_ERR(data->usbmisc_data); + request_bus_freq(BUS_FREQ_HIGH); data->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(data->clk)) { dev_err(&pdev->dev, @@ -289,6 +291,7 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev) } ci_hdrc_remove_device(data->ci_pdev); clk_disable_unprepare(data->clk); + release_bus_freq(BUS_FREQ_HIGH); if (data->imx6_usb_charger_detection) imx6_usb_remove_charger(&data->charger); @@ -303,6 +306,7 @@ static int imx_controller_suspend(struct device *dev) dev_dbg(dev, "at %s\n", __func__); clk_disable_unprepare(data->clk); + release_bus_freq(BUS_FREQ_HIGH); data->in_lpm = true; return 0; @@ -320,6 +324,7 @@ static int imx_controller_resume(struct device *dev) return 0; } + request_bus_freq(BUS_FREQ_HIGH); ret = clk_prepare_enable(data->clk); if (ret) return ret; |