2018-06-08 06:11:11

by Jaedon Shin

[permalink] [raw]
Subject: [PATCH] phy: phy-brcm-usb-init: Fix power down USB 3.0 PHY when XHCI reenabled

Unset is required to enable USB 3.0 PHY when XHCI reenabled in response
to setting PHY3_IDDQ_OVERRIDE in uninit().

Fixes: cd6f769fdea7 ("phy: phy-brcm-usb-init: Power down USB 3.0 PHY when XHCI disabled")
Signed-off-by: Jaedon Shin <[email protected]>
---
drivers/phy/broadcom/phy-brcm-usb-init.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/phy/broadcom/phy-brcm-usb-init.c b/drivers/phy/broadcom/phy-brcm-usb-init.c
index 1b7febc43da9..29d2c3b1913a 100644
--- a/drivers/phy/broadcom/phy-brcm-usb-init.c
+++ b/drivers/phy/broadcom/phy-brcm-usb-init.c
@@ -962,6 +962,10 @@ void brcm_usb_init_xhci(struct brcm_usb_init_params *params)
{
void __iomem *ctrl = params->ctrl_regs;

+ USB_CTRL_UNSET(ctrl, USB30_PCTL, PHY3_IDDQ_OVERRIDE);
+ /* 1 millisecond - for USB clocks to settle down */
+ usleep_range(1000, 2000);
+
if (BRCM_ID(params->family_id) == 0x7366) {
/*
* The PHY3_SOFT_RESETB bits default to the wrong state.
--
2.17.1



2018-06-08 17:59:59

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] phy: phy-brcm-usb-init: Fix power down USB 3.0 PHY when XHCI reenabled

On 06/07/2018 11:10 PM, Jaedon Shin wrote:
> Unset is required to enable USB 3.0 PHY when XHCI reenabled in response
> to setting PHY3_IDDQ_OVERRIDE in uninit().
>
> Fixes: cd6f769fdea7 ("phy: phy-brcm-usb-init: Power down USB 3.0 PHY when XHCI disabled")
> Signed-off-by: Jaedon Shin <[email protected]>

This does look valid, Al, can you review this as well? Thanks!

> ---
> drivers/phy/broadcom/phy-brcm-usb-init.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/phy/broadcom/phy-brcm-usb-init.c b/drivers/phy/broadcom/phy-brcm-usb-init.c
> index 1b7febc43da9..29d2c3b1913a 100644
> --- a/drivers/phy/broadcom/phy-brcm-usb-init.c
> +++ b/drivers/phy/broadcom/phy-brcm-usb-init.c
> @@ -962,6 +962,10 @@ void brcm_usb_init_xhci(struct brcm_usb_init_params *params)
> {
> void __iomem *ctrl = params->ctrl_regs;
>
> + USB_CTRL_UNSET(ctrl, USB30_PCTL, PHY3_IDDQ_OVERRIDE);
> + /* 1 millisecond - for USB clocks to settle down */
> + usleep_range(1000, 2000);
> +
> if (BRCM_ID(params->family_id) == 0x7366) {
> /*
> * The PHY3_SOFT_RESETB bits default to the wrong state.
>


--
Florian