From: Chunfeng Yun <chunfeng.yun@mediatek.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh+dt@kernel.org>, Felipe Balbi <balbi@kernel.org>
Cc: Chunfeng Yun <chunfeng.yun@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
<linux-usb@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-mediatek@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v2 11/13] usb: mtu3: add helper to power on/down device
Date: Fri, 18 Jun 2021 17:29:16 +0800 [thread overview]
Message-ID: <1624008558-16949-12-git-send-email-chunfeng.yun@mediatek.com> (raw)
In-Reply-To: <1624008558-16949-1-git-send-email-chunfeng.yun@mediatek.com>
Add helper to power on/down device ports and ip, it will be
used when support device suspend/resume
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
---
v2: no changes
---
drivers/usb/mtu3/mtu3_core.c | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
index 6d23acb4fffc..648e970d77ba 100644
--- a/drivers/usb/mtu3/mtu3_core.c
+++ b/drivers/usb/mtu3/mtu3_core.c
@@ -141,6 +141,28 @@ static void mtu3_device_disable(struct mtu3 *mtu)
mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
}
+static void mtu3_dev_power_on(struct mtu3 *mtu)
+{
+ void __iomem *ibase = mtu->ippc_base;
+
+ mtu3_clrbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
+ if (mtu->is_u3_ip)
+ mtu3_clrbits(ibase, SSUSB_U3_CTRL(0), SSUSB_U3_PORT_PDN);
+
+ mtu3_clrbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_PDN);
+}
+
+static void mtu3_dev_power_down(struct mtu3 *mtu)
+{
+ void __iomem *ibase = mtu->ippc_base;
+
+ if (mtu->is_u3_ip)
+ mtu3_setbits(ibase, SSUSB_U3_CTRL(0), SSUSB_U3_PORT_PDN);
+
+ mtu3_setbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_PDN);
+ mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
+}
+
/* reset U3D's device module. */
static void mtu3_device_reset(struct mtu3 *mtu)
{
@@ -333,12 +355,7 @@ void mtu3_start(struct mtu3 *mtu)
dev_dbg(mtu->dev, "%s devctl 0x%x\n", __func__,
mtu3_readl(mbase, U3D_DEVICE_CONTROL));
- mtu3_clrbits(mtu->ippc_base, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
- if (mtu->is_u3_ip)
- mtu3_clrbits(mtu->ippc_base, SSUSB_U3_CTRL(0), SSUSB_U3_PORT_PDN);
-
- mtu3_clrbits(mtu->ippc_base, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_PDN);
-
+ mtu3_dev_power_on(mtu);
mtu3_csr_init(mtu);
mtu3_set_speed(mtu, mtu->speed);
@@ -360,12 +377,7 @@ void mtu3_stop(struct mtu3 *mtu)
mtu3_dev_on_off(mtu, 0);
mtu->is_active = 0;
-
- if (mtu->is_u3_ip)
- mtu3_setbits(mtu->ippc_base, SSUSB_U3_CTRL(0), SSUSB_U3_PORT_PDN);
-
- mtu3_setbits(mtu->ippc_base, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_PDN);
- mtu3_setbits(mtu->ippc_base, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
+ mtu3_dev_power_down(mtu);
}
/* for non-ep0 */
--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
next prev parent reply other threads:[~2021-06-18 9:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-18 9:29 [PATCH v2 00/13] Add support mtu3 gadget (runtime) PM Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 01/13] dt-bindings: usb: mtu3: remove support VBUS detection of extcon Chunfeng Yun
2021-07-12 19:07 ` Rob Herring
2021-06-18 9:29 ` [PATCH v2 02/13] dt-bindings: usb: mtu3: add optional property to disable usb2 ports Chunfeng Yun
2021-07-12 19:08 ` Rob Herring
2021-07-13 9:00 ` Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 03/13] dt-bindings: usb: mtu3: add support property role-switch-default-mode Chunfeng Yun
2021-07-12 19:08 ` Rob Herring
2021-06-18 9:29 ` [PATCH v2 04/13] dt-bindings: usb: mtu3: add wakeup interrupt Chunfeng Yun
2021-07-12 19:09 ` Rob Herring
2021-06-18 9:29 ` [PATCH v2 05/13] usb: common: add helper to get role-switch-default-mode Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 06/13] usb: dwc3: drd: use " Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 07/13] usb: mtu3: support property role-switch-default-mode Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 08/13] usb: mtu3: support option to disable usb2 ports Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 09/13] usb: mtu3: add new helpers for host suspend/resume Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 10/13] usb: mtu3: support runtime PM for host mode Chunfeng Yun
2021-06-18 9:29 ` Chunfeng Yun [this message]
2021-06-18 9:29 ` [PATCH v2 12/13] usb: mtu3: support suspend/resume for device mode Chunfeng Yun
2021-06-18 9:29 ` [PATCH v2 13/13] usb: mtu3: support suspend/resume for dual-role mode Chunfeng Yun
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=1624008558-16949-12-git-send-email-chunfeng.yun@mediatek.com \
--to=chunfeng.yun@mediatek.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=balbi@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-usb@vger.kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=robh+dt@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).