OSDN Git Service

phy: phy-brcm-usb-init: Power down USB 3.0 PHY when XHCI disabled
authorAl Cooper <al.cooper@broadcom.com>
Wed, 27 Dec 2017 19:28:50 +0000 (14:28 -0500)
committerKishon Vijay Abraham I <kishon@ti.com>
Fri, 29 Dec 2017 07:30:35 +0000 (13:00 +0530)
Set PHY3_IDDQ_OVERRIDE in the xhci uninit routine. This will save
additional power when the XHCI driver is not enabled.

Fixes: 49859e55e364 ("phy: usb: phy-brcm-usb: Add Broadcom STB USB phy driver")
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/broadcom/phy-brcm-usb-init.c

index 69ea479..6672adc 100644 (file)
@@ -73,6 +73,7 @@
 #define   USB_CTRL_USB30_CTL1_USB3_IPP_MASK            0x20000000 /* option */
 #define USB_CTRL_USB30_PCTL            0x70
 #define   USB_CTRL_USB30_PCTL_PHY3_SOFT_RESETB_MASK    0x00000002
+#define   USB_CTRL_USB30_PCTL_PHY3_IDDQ_OVERRIDE_MASK  0x00008000
 #define   USB_CTRL_USB30_PCTL_PHY3_SOFT_RESETB_P1_MASK 0x00020000
 #define USB_CTRL_USB_DEVICE_CTL1       0x90
 #define   USB_CTRL_USB_DEVICE_CTL1_PORT_MODE_MASK      0x00000003 /* option */
@@ -998,6 +999,7 @@ void brcm_usb_uninit_eohci(struct brcm_usb_init_params *params)
 void brcm_usb_uninit_xhci(struct brcm_usb_init_params *params)
 {
        brcmusb_xhci_soft_reset(params, 1);
+       USB_CTRL_SET(params->ctrl_regs, USB30_PCTL, PHY3_IDDQ_OVERRIDE);
 }
 
 void brcm_usb_set_family_map(struct brcm_usb_init_params *params)