From: Benoit Goby Date: Tue, 14 Sep 2010 00:43:44 +0000 (-0700) Subject: [ARM] tegra: usb_phy: Reset the ulpi phy on power off X-Git-Tag: firefly_0821_release~9833^2~217 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=70cdef2fc20df6de9143b7516ea0eb388db96fb9;p=firefly-linux-kernel-4.4.55.git [ARM] tegra: usb_phy: Reset the ulpi phy on power off Put the ulpi phy in reset on power off to save power in lp0. Change-Id: I7d7441c1029b170ff24da7274d8404b4bcf1d9e9 Signed-off-by: Benoit Goby --- diff --git a/arch/arm/mach-tegra/usb_phy.c b/arch/arm/mach-tegra/usb_phy.c index 7785b1ee41ec..3e145f1bee1b 100644 --- a/arch/arm/mach-tegra/usb_phy.c +++ b/arch/arm/mach-tegra/usb_phy.c @@ -556,27 +556,7 @@ static void ulpi_phy_power_off(struct tegra_usb_phy *phy) { unsigned long val; void __iomem *base = phy->regs; - - /* Programming the ULPI register function control */ - ulpi_viewport_write(phy, 0x04, 0x4D); - - /* Resetting the ULPI register IndicatorPassThru */ - ulpi_viewport_write(phy, 0x09, 0x40); - - /* USB Interrupt Rising - making sure vbus comparator and id are off */ - ulpi_viewport_write(phy, 0x0D, 0x00); - - /* USB Interrupt Falling */ - ulpi_viewport_write(phy, 0x10, 0x00); - - /* Carkit Control */ - ulpi_viewport_write(phy, 0x19, 0x00); - - /* Disabling ID float Rise/Fall (Carkit Enable) */ - ulpi_viewport_write(phy, 0x1D, 0x00); - - /* USB I/O and power */ - ulpi_viewport_write(phy, 0x39, 0x00); + struct tegra_ulpi_config *config = phy->config; /* Clear WKCN/WKDS/WKOC wake-on events that can cause the USB * Controller to immediately bring the ULPI PHY out of low power @@ -585,6 +565,7 @@ static void ulpi_phy_power_off(struct tegra_usb_phy *phy) val &= ~(USB_PORTSC1_WKOC | USB_PORTSC1_WKDS | USB_PORTSC1_WKCN); writel(val, base + USB_PORTSC1); + gpio_direction_output(config->reset_gpio, 0); clk_disable(phy->clk); }