From: Olof Johansson Date: Thu, 13 Dec 2012 00:09:22 +0000 (-0800) Subject: ARM: arm-soc: Merge branch 'next/clk' into next/pm X-Git-Tag: v3.8-rc1~136^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4a76411ea3f1da9032e031f8fff8894b97d141b2;p=thirdparty%2Fkernel%2Flinux.git ARM: arm-soc: Merge branch 'next/clk' into next/pm Merge together a couple of the smaller pm/clock branches into one. Signed-off-by: Olof Johansson --- 4a76411ea3f1da9032e031f8fff8894b97d141b2 diff --cc arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 0b1249e003987,5b9be734709c2..d6700d3ddd042 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@@ -21,18 -21,18 +21,19 @@@ #include #include #include +#include + #include + + #include - #include - #include - #include #include #include - #include #include - #include #include + #include "../plat-omap/common.h" + + #include "omap_hwmod.h" #include "omap_hwmod_common_data.h" #include "cm1_44xx.h" #include "cm2_44xx.h" diff --cc arch/arm/mach-omap2/omap_phy_internal.c index 9b56e5e1a2d2d,4d76a3ca5bf3d..e237602e10ea4 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@@ -32,39 -31,8 +31,40 @@@ #include "soc.h" #include "control.h" + #include "usb.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;