Message ID | 1394014430-26485-11-git-send-email-iivanov@mm-sol.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Hello. On 05-03-2014 14:13, Ivan T. Ivanov wrote: > From: "Ivan T. Ivanov" <iivanov@mm-sol.com> > Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com> > --- > drivers/usb/phy/phy-msm-usb.c | 30 ++++++++++++++++++++++-------- > include/linux/usb/msm_hsusb.h | 3 +++ > 2 files changed, 25 insertions(+), 8 deletions(-) > diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c > index 298820f..7e5c4ab 100644 > --- a/drivers/usb/phy/phy-msm-usb.c > +++ b/drivers/usb/phy/phy-msm-usb.c [...] > @@ -235,12 +236,16 @@ static void ulpi_init(struct msm_otg *motg) > > static int msm_otg_link_clk_reset(struct msm_otg *motg, bool assert) > { > - int ret = 0; > + int ret; > > - if (!motg->pdata->link_clk_reset) > - return ret; > + if (motg->pdata->link_clk_reset) > + ret = motg->pdata->link_clk_reset(motg->clk, assert); > + else > + if (assert) Kernel style assumes: else if (assert) > + ret = reset_control_assert(motg->link_rst); > + else > + ret = reset_control_deassert(motg->link_rst); > [...] WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/05/14 14:34, Sergei Shtylyov wrote: > Hello. > >> --- a/drivers/usb/phy/phy-msm-usb.c >> +++ b/drivers/usb/phy/phy-msm-usb.c > [...] >> @@ -235,12 +236,16 @@ static void ulpi_init(struct msm_otg *motg) >> >> static int msm_otg_link_clk_reset(struct msm_otg *motg, bool assert) >> { >> - int ret = 0; >> + int ret; >> >> - if (!motg->pdata->link_clk_reset) >> - return ret; >> + if (motg->pdata->link_clk_reset) >> + ret = motg->pdata->link_clk_reset(motg->clk, assert); >> + else >> + if (assert) > > Kernel style assumes: > > else if (assert) Thanks. will fix it. Regards, Ivan > >> + ret = reset_control_assert(motg->link_rst); >> + else >> + ret = reset_control_deassert(motg->link_rst); >> > [...] > > WBR, Sergei > > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index 298820f..7e5c4ab 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c @@ -32,6 +32,7 @@ #include <linux/pm_runtime.h> #include <linux/of.h> #include <linux/of_device.h> +#include <linux/reset.h> #include <linux/usb.h> #include <linux/usb/otg.h> @@ -235,12 +236,16 @@ static void ulpi_init(struct msm_otg *motg) static int msm_otg_link_clk_reset(struct msm_otg *motg, bool assert) { - int ret = 0; + int ret; - if (!motg->pdata->link_clk_reset) - return ret; + if (motg->pdata->link_clk_reset) + ret = motg->pdata->link_clk_reset(motg->clk, assert); + else + if (assert) + ret = reset_control_assert(motg->link_rst); + else + ret = reset_control_deassert(motg->link_rst); - ret = motg->pdata->link_clk_reset(motg->clk, assert); if (ret) dev_err(motg->phy.dev, "usb link clk reset %s failed\n", assert ? "assert" : "deassert"); @@ -250,12 +255,13 @@ static int msm_otg_link_clk_reset(struct msm_otg *motg, bool assert) static int msm_otg_phy_clk_reset(struct msm_otg *motg) { - int ret = 0; + int ret; - if (!motg->pdata->phy_clk_reset) - return ret; + if (motg->pdata->phy_clk_reset) + ret = motg->pdata->phy_clk_reset(motg->phy_reset_clk); + else + ret = reset_control_reset(motg->phy_rst); - ret = motg->pdata->phy_clk_reset(motg->phy_reset_clk); if (ret) dev_err(motg->phy.dev, "usb phy clk reset failed\n"); @@ -1374,6 +1380,14 @@ static int msm_otg_read_dt(struct platform_device *pdev, struct msm_otg *motg) id = of_match_device(msm_otg_dt_match, &pdev->dev); pdata->phy_type = (int) id->data; + motg->link_rst = devm_reset_control_get(&pdev->dev, "link"); + if (IS_ERR(motg->link_rst)) + return PTR_ERR(motg->link_rst); + + motg->phy_rst = devm_reset_control_get(&pdev->dev, "phy"); + if (IS_ERR(motg->phy_rst)) + return PTR_ERR(motg->phy_rst); + pdata->mode = of_usb_get_dr_mode(node); if (pdata->mode == USB_DR_MODE_UNKNOWN) pdata->mode = USB_DR_MODE_OTG; diff --git a/include/linux/usb/msm_hsusb.h b/include/linux/usb/msm_hsusb.h index bd68299..4e5d916 100644 --- a/include/linux/usb/msm_hsusb.h +++ b/include/linux/usb/msm_hsusb.h @@ -165,6 +165,9 @@ struct msm_otg { struct regulator *v3p3; struct regulator *v1p8; struct regulator *vddcx; + + struct reset_control *phy_rst; + struct reset_control *link_rst; }; #endif