#include <linux/regmap.h>
#include <linux/mfd/syscon.h>
#include <linux/regulator/consumer.h>
+#include <linux/busfreq-imx.h>
#include "ci.h"
#include "ci_hdrc_imx.h"
if (ret)
return ret;
+ request_bus_freq(BUS_FREQ_HIGH);
ret = imx_prepare_enable_clks(&pdev->dev);
if (ret)
- return ret;
+ goto err_bus_freq;
data->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "fsl,usbphy", 0);
if (IS_ERR(data->phy)) {
ret = regulator_disable(data->hsic_pad_regulator);
err_clk:
imx_disable_unprepare_clks(&pdev->dev);
+err_bus_freq:
+ release_bus_freq(BUS_FREQ_HIGH);
return ret;
}
}
ci_hdrc_remove_device(data->ci_pdev);
imx_disable_unprepare_clks(&pdev->dev);
+ release_bus_freq(BUS_FREQ_HIGH);
if (data->hsic_pad_regulator)
regulator_disable(data->hsic_pad_regulator);
}
imx_disable_unprepare_clks(dev);
+ release_bus_freq(BUS_FREQ_HIGH);
data->in_lpm = true;
return 0;
return 0;
}
+ request_bus_freq(BUS_FREQ_HIGH);
ret = imx_prepare_enable_clks(dev);
if (ret)
return ret;