From: Peter Chen <peter.chen@nxp.com>
To: Jun Li <jun.li@nxp.com>
Cc: "balbi@kernel.org" <balbi@kernel.org>,
"mathias.nyman@intel.com" <mathias.nyman@intel.com>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
dl-linux-imx <linux-imx@nxp.com>,
"pawell@cadence.com" <pawell@cadence.com>,
"rogerq@ti.com" <rogerq@ti.com>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v2 3/9] usb: cdns3: imx: add glue layer runtime pm implementation
Date: Mon, 25 May 2020 02:59:21 +0000 [thread overview]
Message-ID: <20200525025946.GB16948@b29397-desktop> (raw)
In-Reply-To: <VE1PR04MB6528DBBB500AC2796B97881D89B20@VE1PR04MB6528.eurprd04.prod.outlook.com>
On 20-05-24 06:55:02, Jun Li wrote:
> >
> > #define USB3_CORE_CTRL1 0x00
> > #define USB3_CORE_CTRL2 0x04
> > @@ -66,11 +68,30 @@
> > #define CLK_VALID_COMPARE_BITS (0xf << 28)
>
> GENMASK(31, 28)
>
> > #define PHY_REFCLK_REQ (1 << 0)
>
> BIT(0), also for others
Will change for all.
>
> >
> > +/* OTG registers definition */
> > +#define OTGSTS 0x4
> > +/* OTGSTS */
> > +#define OTG_NRDY (1 << 11)
> > +
> > +/* xHCI registers definition */
> > +#define XECP_PM_PMCSR 0x8018
> > +#define XECP_AUX_CTRL_REG1 0x8120
> > +
> > +/* Register bits definition */
> > +/* XECP_AUX_CTRL_REG1 */
> > +#define CFG_RXDET_P3_EN (1 << 15)
> > +
> > +/* XECP_PM_PMCSR */
> > +#define PS_MASK (3 << 0)
> > +#define PS_D0 0
> > +#define PS_D1 (1 << 0)
> > +
> > + /* wait for mdctrl_clk_status is cleared */
> > + value = cdns_imx_readl(data, USB3_CORE_STATUS);
> > + ret = readl_poll_timeout_atomic(data->noncore + USB3_CORE_STATUS, value,
> > + (value & MDCTRL_CLK_STATUS) != MDCTRL_CLK_STATUS,
> > + 10, 100000);
> > + if (ret)
> > + dev_warn(parent, "wait mdctrl_clk_status cleared timeout\n");
> > +
> > + /* Wait until OTG_NRDY is 0 */
> > + value = readl(otg_regs + OTGSTS);
> > + ret = readl_poll_timeout_atomic(otg_regs + OTGSTS, value,
> > + (value & OTG_NRDY) != OTG_NRDY,
> > + 10, 100000);
> > + if (ret)
> > + dev_warn(parent, "wait OTG ready timeout\n");
>
> Make sense to move forward if any of above timeout happens?
I will return -ETIMEOUT for all timeout case, thanks.
Peter
>
> Li Jun
>
> > + }
> > +
> > + return ret;
> > +
> > +}
> > +
> > +static int cdns_imx_resume(struct device *dev) {
> > + struct cdns_imx *data = dev_get_drvdata(dev);
> > +
> > + return clk_bulk_prepare_enable(data->num_clks, data->clks); }
> > +
> > +static int cdns_imx_suspend(struct device *dev) {
> > + struct cdns_imx *data = dev_get_drvdata(dev);
> > +
> > + clk_bulk_disable_unprepare(data->num_clks, data->clks);
> > +
> > + return 0;
> > +}
> > +
> > +#endif /* CONFIG_PM */
> > +
> > +static const struct dev_pm_ops cdns_imx_pm_ops = {
> > + SET_RUNTIME_PM_OPS(cdns_imx_suspend, cdns_imx_resume, NULL) };
> > +
> > static const struct of_device_id cdns_imx_of_match[] = {
> > { .compatible = "fsl,imx8qm-usb3", },
> > {},
> > @@ -206,6 +380,7 @@ static struct platform_driver cdns_imx_driver = {
> > .driver = {
> > .name = "cdns3-imx",
> > .of_match_table = cdns_imx_of_match,
> > + .pm = &cdns_imx_pm_ops,
> > },
> > };
> > module_platform_driver(cdns_imx_driver);
> > --
> > 2.17.1
>
--
Thanks,
Peter Chen
next prev parent reply other threads:[~2020-05-25 2:59 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-23 23:22 [PATCH v2 0/9] usb: some PM changes for cdns3 and xhci-plat Peter Chen
2020-05-23 23:22 ` [PATCH v2 1/9] usb: cdns3: introduce cdns3_set_phy_power API Peter Chen
2020-05-24 5:56 ` Jun Li
2020-05-23 23:22 ` [PATCH v2 2/9] usb: cdns3: add runtime PM support Peter Chen
2020-05-24 5:57 ` Jun Li
2020-05-24 6:43 ` Jun Li
2020-05-25 2:57 ` Peter Chen
2020-05-25 12:23 ` Jun Li
2020-05-26 2:03 ` Peter Chen
2020-06-03 8:51 ` Chunfeng Yun
2020-06-03 9:27 ` Peter Chen
2020-05-23 23:22 ` [PATCH v2 3/9] usb: cdns3: imx: add glue layer runtime pm implementation Peter Chen
2020-05-24 6:55 ` Jun Li
2020-05-25 2:59 ` Peter Chen [this message]
2020-05-25 4:53 ` kbuild test robot
2020-05-25 4:53 ` kbuild test robot
2020-05-25 6:31 ` Peter Chen
2020-05-25 6:31 ` Peter Chen
2020-05-25 8:25 ` kbuild test robot
2020-05-25 8:25 ` kbuild test robot
2020-05-23 23:22 ` [PATCH v2 4/9] usb: host: xhci-plat: add platform data support Peter Chen
2020-05-29 10:21 ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 5/9] usb: host: xhci-plat: add .suspend_quirk for struct xhci_plat_priv Peter Chen
2020-05-29 10:22 ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 6/9] usb: host: xhci-plat: delete the unnecessary code Peter Chen
2020-05-24 7:40 ` Jun Li
2020-05-29 10:23 ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 7/9] usb: host: xhci-plat: add priv flag for skip_phy_initialization Peter Chen
2020-05-24 7:40 ` Jun Li
2020-05-25 3:03 ` Peter Chen
2020-05-25 12:30 ` Jun Li
2020-05-26 0:26 ` Peter Chen
2020-05-29 13:10 ` Mathias Nyman
2020-05-29 13:15 ` Peter Chen
2020-05-23 23:23 ` [PATCH v2 8/9] usb: cdns3: host: add .suspend_quirk for xhci-plat.c Peter Chen
2020-05-23 23:23 ` [PATCH v2 9/9] usb: cdns3: host: add xhci_plat_priv's flag skip_phy_initialization Peter Chen
2020-05-29 7:22 ` [PATCH v2 0/9] usb: some PM changes for cdns3 and xhci-plat Peter Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200525025946.GB16948@b29397-desktop \
--to=peter.chen@nxp.com \
--cc=balbi@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jun.li@nxp.com \
--cc=linux-imx@nxp.com \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=pawell@cadence.com \
--cc=rogerq@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.