ARM: OMAP4: USB: power down MUSB PHY during boot
Subsystems (3)
PATCH v2 1/1 ARM: OMAP4: USB: power down MUSB PHY during boot
Commit c9e4412ab8eb8ef82d645d8749c4ce96ad490007 removed all of the USB PHY functions for OMAP4, but this causes a problem with core retention as the MUSB module remains enabled if omap-usb2 phy driver is not used. This keeps the USB DPLL enabled and prevents l3_init pwrdm from idling.
Fixed by adding a minimal function back that disables the USB PHY during boot.
--- arch/arm/mach-omap2/omap_phy_internal.c | 32 +++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/omap_phy_internal.c +32 -0
@@ -33,6 +33,38 @@#include "soc.h" #include "control.h" +#define CONTROL_DEV_CONF 0x300 +#define PHY_PD 0x1 + +/** +* omap4430_phy_power_down: disable MUSB PHY during early init +* +* OMAP4 MUSB PHY module is enabled by default on reset, but this will +* prevent core retention if not disabled by SW. USB driver will +* later on enable this, once and if the driver needs it. +*/ +static int __init omap4430_phy_power_down (void ) +{ +void __iomem *ctrl_base; + +if (!cpu_is_omap44xx ()) +return 0 ; + + ctrl_base =ioremap (OMAP443X_SCM_BASE ,SZ_1K ); +if (!ctrl_base) { +pr_err ("control module ioremap failed\n" ); +return -ENOMEM ; + } + +/* Power down the phy */ +__raw_writel (PHY_PD , ctrl_base +CONTROL_DEV_CONF ); + +iounmap (ctrl_base); + +return 0 ; +} +early_initcall (omap4430_phy_power_down); +void am35x_musb_reset (void ) {u32 regval;
Signature · 1 line
1.7.4.1
PATCH v2 1/1 ARM: OMAP4: USB: power down MUSB PHY during boot
HI,
Quoted 5 lines · Tero Kristo
Commit
c9e4412ab8eb8ef82d645d8749c4ce96ad490007removed all of the USB PHY functions for OMAP4, but this causes a problem with core retention as the MUSB module remains enabled if omap-usb2 phy driver is not used. This keeps the USB DPLL enabled and preventsl3_initpwrdm from idling.
Quoted 8 lines
Fixed by adding a minimal function back that disables the USB PHY during boot.
Signed-off-by Tero Kristo <[email protected]>Cc Kishon Vijay Abraham I <[email protected]>Cc Felipe Balbi <[email protected]>Cc Tony Lindgren <[email protected]>Cc Kevin Hilman <[email protected]>
looks good to me. I would still suggest adding a REVISIT or FIXME note stating that this should be moved to SCM driver eventually ;-)
Other than that:
Quoted 50 lines
--- arch/arm/mach-omap2/omap_phy_internal.c | 32 +++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-)arch/arm/mach-omap2/omap_phy_internal.c +32
-0@@ -33,6 +33,38 @@#include "soc.h" #include "control.h" +#define CONTROL_DEV_CONF 0x300 +#define PHY_PD 0x1 + +/** +* omap4430_phy_power_down: disable MUSB PHY during early init +* +* OMAP4 MUSB PHY module is enabled by default on reset, but this will +* prevent core retention if not disabled by SW. USB driver will +* later on enable this, once and if the driver needs it. +*/ +static int __init omap4430_phy_power_down (void ) +{ +void __iomem *ctrl_base; + +if (!cpu_is_omap44xx ()) +return 0 ; + + ctrl_base =ioremap (OMAP443X_SCM_BASE ,SZ_1K ); +if (!ctrl_base) { +pr_err ("control module ioremap failed\n" ); +return -ENOMEM ; + } + +/* Power down the phy */ +__raw_writel (PHY_PD , ctrl_base +CONTROL_DEV_CONF ); + +iounmap (ctrl_base); + +return 0 ; +} +early_initcall (omap4430_phy_power_down); +void am35x_musb_reset (void ) {u32 regval;Signature · 1 line
1.7.4.1
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121109/5604756b/attachment.sig>
PATCH v2 1/1 ARM: OMAP4: USB: power down MUSB PHY during boot
Quoted 17 lines · Felipe Balbi
HI,
Quoted 5 lines · Tero Kristo
Commit
c9e4412ab8eb8ef82d645d8749c4ce96ad490007removed all of the USB PHY functions for OMAP4, but this causes a problem with core retention as the MUSB module remains enabled if omap-usb2 phy driver is not used. This keeps the USB DPLL enabled and preventsl3_initpwrdm from idling.Quoted 8 lines
Fixed by adding a minimal function back that disables the USB PHY during boot.
Signed-off-by Tero Kristo <[email protected]>Cc Kishon Vijay Abraham I <[email protected]>Cc Felipe Balbi <[email protected]>Cc Tony Lindgren <[email protected]>Cc Kevin Hilman <[email protected]>
Quoted 6 lines
looks good to me. I would still suggest adding a REVISIT or FIXME note stating that this should be moved to SCM driver eventually ;-)
Other than that:
Acked-by Felipe Balbi <[email protected]>
Thanks will try to get this in for v3.8 along with the original patch 4/9 which gets full-chip retention working on OMAP4.
Kevin