Merge "USB: dwc3-msm: Add support for setting specific frequency for core clock"

This commit is contained in:
Linux Build Service Account 2016-08-13 04:51:51 -07:00 committed by Gerrit - the friendly Code Review server
commit 8cd4d6c413
2 changed files with 15 additions and 5 deletions

View file

@ -50,6 +50,7 @@ Optional properties :
- qcom,disable-dev-mode-pm: If present, it disables PM runtime functionality for device mode. - qcom,disable-dev-mode-pm: If present, it disables PM runtime functionality for device mode.
- qcom,disable-host-mode-pm: If present, it disables XHCI PM runtime functionality when USB - qcom,disable-host-mode-pm: If present, it disables XHCI PM runtime functionality when USB
host mode is used. host mode is used.
- qcom,core-clk-rate: If present, indicates clock frequency to be set for USB master clock.
- extcon: phandles to external connector devices. First phandle should point to - extcon: phandles to external connector devices. First phandle should point to
external connector, which provide "USB" cable events, the second external connector, which provide "USB" cable events, the second
should point to external connector device, which provide "USB-HOST" should point to external connector device, which provide "USB-HOST"

View file

@ -2338,14 +2338,23 @@ static int dwc3_msm_get_clk_gdsc(struct dwc3_msm *mdwc)
return ret; return ret;
} }
if (!of_property_read_u32(mdwc->dev->of_node, "qcom,core-clk-rate",
(u32 *)&mdwc->core_clk_rate)) {
mdwc->core_clk_rate = clk_round_rate(mdwc->core_clk,
mdwc->core_clk_rate);
} else {
/* /*
* Get Max supported clk frequency for USB Core CLK and request * Get Max supported clk frequency for USB Core CLK and request
* to set the same. * to set the same.
*/ */
mdwc->core_clk_rate = clk_round_rate(mdwc->core_clk, LONG_MAX); mdwc->core_clk_rate = clk_round_rate(mdwc->core_clk, LONG_MAX);
}
if (IS_ERR_VALUE(mdwc->core_clk_rate)) { if (IS_ERR_VALUE(mdwc->core_clk_rate)) {
dev_err(mdwc->dev, "fail to get core clk max freq.\n"); dev_err(mdwc->dev, "fail to get core clk max freq.\n");
} else { } else {
dev_dbg(mdwc->dev, "USB core frequency = %ld\n",
mdwc->core_clk_rate);
ret = clk_set_rate(mdwc->core_clk, mdwc->core_clk_rate); ret = clk_set_rate(mdwc->core_clk, mdwc->core_clk_rate);
if (ret) if (ret)
dev_err(mdwc->dev, "fail to set core_clk freq:%d\n", dev_err(mdwc->dev, "fail to set core_clk freq:%d\n",