Merge tags 'omap-cleanup-for-v3.6', 'omap-devel-dmtimer-for-v3.6' and 'omap-devel...
authorTony Lindgren <tony@atomide.com>
Wed, 4 Jul 2012 07:29:31 +0000 (00:29 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 4 Jul 2012 07:29:31 +0000 (00:29 -0700)
1  2  3  4 
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/clock2420_data.c
arch/arm/mach-omap2/clock2430_data.c
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clockdomain.h
arch/arm/mach-omap2/control.h
arch/arm/mach-omap2/irq.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/timer.c

index fa742f3c262947313f23df2b65e8b36521cf71d9,9ba1c406a4650a9641ddeeb120affa8c8c6f77cf,fa742f3c262947313f23df2b65e8b36521cf71d9,a4cf93242b0bf5d68b9c0086f3952e3ff209f922..54ad3a4b612c29820f0f6aa13c892a940b26d26b
@@@@@ -90,6 -90,6 -90,6 -90,7 +90,7 @@@@@ obj-$(CONFIG_ARCH_OMAP3)              += vc3xxx_dat
    obj-$(CONFIG_ARCH_OMAP4)            += prcm.o cminst44xx.o cm44xx.o
    obj-$(CONFIG_ARCH_OMAP4)            += prcm_mpu44xx.o prminst44xx.o
    obj-$(CONFIG_ARCH_OMAP4)            += vc44xx_data.o vp44xx_data.o prm44xx.o
+++ obj-$(CONFIG_SOC_AM33XX)            += prcm.o prm33xx.o cm33xx.o
    
    # OMAP voltage domains
    voltagedomain-common                        := voltage.o vc.o vp.o
@@@@@ -99,6 -99,6 -99,6 -100,7 +100,7 @@@@@ obj-$(CONFIG_ARCH_OMAP3)            += $(voltaged
    obj-$(CONFIG_ARCH_OMAP3)            += voltagedomains3xxx_data.o
    obj-$(CONFIG_ARCH_OMAP4)            += $(voltagedomain-common)
    obj-$(CONFIG_ARCH_OMAP4)            += voltagedomains44xx_data.o
+++ obj-$(CONFIG_SOC_AM33XX)                += voltagedomains33xx_data.o
    
    # OMAP powerdomain framework
    powerdomain-common                  += powerdomain.o powerdomain-common.o
@@@@@ -113,10 -113,9 -113,10 -115,12 +115,11 @@@@@ obj-$(CONFIG_ARCH_OMAP3)             += powerdomai
    obj-$(CONFIG_ARCH_OMAP4)            += $(powerdomain-common)
    obj-$(CONFIG_ARCH_OMAP4)            += powerdomain44xx.o
    obj-$(CONFIG_ARCH_OMAP4)            += powerdomains44xx_data.o
+++ obj-$(CONFIG_SOC_AM33XX)            += powerdomain33xx.o
+++ obj-$(CONFIG_SOC_AM33XX)            += powerdomains33xx_data.o
    
    # PRCM clockdomain control
    clockdomain-common                  += clockdomain.o
- --clockdomain-common                  += clockdomains_common_data.o
    obj-$(CONFIG_ARCH_OMAP2)            += $(clockdomain-common)
    obj-$(CONFIG_ARCH_OMAP2)            += clockdomain2xxx_3xxx.o
    obj-$(CONFIG_ARCH_OMAP2)            += clockdomains2xxx_3xxx_data.o
@@@@@ -129,6 -128,6 -129,6 -133,8 +132,8 @@@@@ obj-$(CONFIG_ARCH_OMAP3)         += clockdomai
    obj-$(CONFIG_ARCH_OMAP4)            += $(clockdomain-common)
    obj-$(CONFIG_ARCH_OMAP4)            += clockdomain44xx.o
    obj-$(CONFIG_ARCH_OMAP4)            += clockdomains44xx_data.o
+++ obj-$(CONFIG_SOC_AM33XX)            += clockdomain33xx.o
+++ obj-$(CONFIG_SOC_AM33XX)            += clockdomains33xx_data.o
    
    # Clock framework
    obj-$(CONFIG_ARCH_OMAP2)            += $(clock-common) clock2xxx.o
@@@@@ -244,9 -243,6 -244,9 -250,9 +249,6 @@@@@ obj-y                                    += $(omap-flash-y) $(omap-fla
    omap-hsmmc-$(CONFIG_MMC_OMAP_HS)    := hsmmc.o
    obj-y                                       += $(omap-hsmmc-m) $(omap-hsmmc-y)
    
- --
- --usbfs-$(CONFIG_ARCH_OMAP_OTG)               := usb-fs.o
- --obj-y                                       += $(usbfs-m) $(usbfs-y)
    obj-y                                       += usb-musb.o
    obj-y                                       += omap_phy_internal.o
    
index bace9308a4db89616b780f310738f35c6cee5644,7e39015357b126255707fed16515604b899b0d78,861767ed1a3a0492c94f7cc3f3b0a5150ee875df,bace9308a4db89616b780f310738f35c6cee5644..002745181ad6e334bdbe961b8257f63b0f7c75b0
@@@@@ -1774,8 -1774,6 -1774,8 -1774,8 +1774,6 @@@@@ static struct omap_clk omap2420_clks[] 
        CLK(NULL,       "osc_ck",       &osc_ck,        CK_242X),
        CLK(NULL,       "sys_ck",       &sys_ck,        CK_242X),
        CLK(NULL,       "alt_ck",       &alt_ck,        CK_242X),
- --    CLK("omap-mcbsp.1",     "pad_fck",      &mcbsp_clks,    CK_242X),
- --    CLK("omap-mcbsp.2",     "pad_fck",      &mcbsp_clks,    CK_242X),
        CLK(NULL,       "mcbsp_clks",   &mcbsp_clks,    CK_242X),
        /* internal analog sources */
        CLK(NULL,       "dpll_ck",      &dpll_ck,       CK_242X),
        /* internal prcm root sources */
        CLK(NULL,       "func_54m_ck",  &func_54m_ck,   CK_242X),
        CLK(NULL,       "core_ck",      &core_ck,       CK_242X),
- --    CLK("omap-mcbsp.1",     "prcm_fck",     &func_96m_ck,   CK_242X),
- --    CLK("omap-mcbsp.2",     "prcm_fck",     &func_96m_ck,   CK_242X),
        CLK(NULL,       "func_96m_ck",  &func_96m_ck,   CK_242X),
        CLK(NULL,       "func_48m_ck",  &func_48m_ck,   CK_242X),
        CLK(NULL,       "func_12m_ck",  &func_12m_ck,   CK_242X),
        CLK(NULL,       "pka_ick",      &pka_ick,       CK_242X),
        CLK(NULL,       "usb_fck",      &usb_fck,       CK_242X),
        CLK("musb-hdrc",        "fck",  &osc_ck,        CK_242X),
-- -    CLK("omap_timer.1",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.2",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.3",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.4",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.5",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.6",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.7",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.8",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.9",     "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.10",    "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.11",    "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.12",    "32k_ck",       &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.1",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.2",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.3",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.4",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.5",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.6",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.7",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.8",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.9",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.10",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.11",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.12",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.1",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.2",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.3",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.4",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.5",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.6",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.7",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.8",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.9",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.10",    "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.11",    "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.12",    "alt_ck",       &alt_ck,        CK_243X),
++ +    CLK(NULL,       "timer_32k_ck", &func_32k_ck,   CK_243X),
++ +    CLK(NULL,       "timer_sys_ck", &sys_ck,        CK_243X),
++ +    CLK(NULL,       "timer_ext_ck", &alt_ck,        CK_243X),
    };
    
    /*
index 3b4d09a5039905687b2723adbad0d76add914221,90a08c3b12acab0e84bb7a06866b3f35675bb908,5577810dbc26328dc0d09432858cca378eed2cc8,3b4d09a5039905687b2723adbad0d76add914221..cacabb070e22b546126e82c61ce7824505755c19
@@@@@ -1858,11 -1858,6 -1858,11 -1858,11 +1858,6 @@@@@ static struct omap_clk omap2430_clks[] 
        CLK(NULL,       "osc_ck",       &osc_ck,        CK_243X),
        CLK(NULL,       "sys_ck",       &sys_ck,        CK_243X),
        CLK(NULL,       "alt_ck",       &alt_ck,        CK_243X),
- --    CLK("omap-mcbsp.1",     "pad_fck",      &mcbsp_clks,    CK_243X),
- --    CLK("omap-mcbsp.2",     "pad_fck",      &mcbsp_clks,    CK_243X),
- --    CLK("omap-mcbsp.3",     "pad_fck",      &mcbsp_clks,    CK_243X),
- --    CLK("omap-mcbsp.4",     "pad_fck",      &mcbsp_clks,    CK_243X),
- --    CLK("omap-mcbsp.5",     "pad_fck",      &mcbsp_clks,    CK_243X),
        CLK(NULL,       "mcbsp_clks",   &mcbsp_clks,    CK_243X),
        /* internal analog sources */
        CLK(NULL,       "dpll_ck",      &dpll_ck,       CK_243X),
        /* internal prcm root sources */
        CLK(NULL,       "func_54m_ck",  &func_54m_ck,   CK_243X),
        CLK(NULL,       "core_ck",      &core_ck,       CK_243X),
- --    CLK("omap-mcbsp.1",     "prcm_fck",     &func_96m_ck,   CK_243X),
- --    CLK("omap-mcbsp.2",     "prcm_fck",     &func_96m_ck,   CK_243X),
- --    CLK("omap-mcbsp.3",     "prcm_fck",     &func_96m_ck,   CK_243X),
- --    CLK("omap-mcbsp.4",     "prcm_fck",     &func_96m_ck,   CK_243X),
- --    CLK("omap-mcbsp.5",     "prcm_fck",     &func_96m_ck,   CK_243X),
        CLK(NULL,       "func_96m_ck",  &func_96m_ck,   CK_243X),
        CLK(NULL,       "func_48m_ck",  &func_48m_ck,   CK_243X),
        CLK(NULL,       "func_12m_ck",  &func_12m_ck,   CK_243X),
        CLK(NULL,       "mdm_intc_ick", &mdm_intc_ick,  CK_243X),
        CLK("omap_hsmmc.0", "mmchsdb_fck",      &mmchsdb1_fck,  CK_243X),
        CLK("omap_hsmmc.1", "mmchsdb_fck",      &mmchsdb2_fck,  CK_243X),
-- -    CLK("omap_timer.1",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.2",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.3",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.4",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.5",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.6",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.7",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.8",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.9",     "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.10",    "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.11",    "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.12",    "32k_ck",  &func_32k_ck,   CK_243X),
-- -    CLK("omap_timer.1",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.2",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.3",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.4",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.5",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.6",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.7",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.8",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.9",     "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.10",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.11",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.12",    "sys_ck",       &sys_ck,        CK_243X),
-- -    CLK("omap_timer.1",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.2",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.3",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.4",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.5",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.6",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.7",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.8",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.9",     "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.10",    "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.11",    "alt_ck",       &alt_ck,        CK_243X),
-- -    CLK("omap_timer.12",    "alt_ck",       &alt_ck,        CK_243X),
++ +    CLK(NULL,       "timer_32k_ck",  &func_32k_ck,   CK_243X),
++ +    CLK(NULL,       "timer_sys_ck", &sys_ck,        CK_243X),
++ +    CLK(NULL,       "timer_ext_ck", &alt_ck,        CK_243X),
    };
    
    /*
index 1efdec236ae89dac6671bbd8f09d7cffb2067deb,ff422bee804a3fe0f0ee4a5ded7e45e210de46e0,64b2b1fafddd4085f2d24addd0a09765f2dbec06,4e1a3b0e8cc83d5d505abf7d789273c4f1a970a0..71a1d3383807dcf80ef42f239d201c04ae1be8ae
@@@@@ -3236,11 -3236,6 -3236,11 -3236,11 +3236,6 @@@@@ static struct omap_clk omap3xxx_clks[] 
        CLK(NULL,       "osc_sys_ck",   &osc_sys_ck,    CK_3XXX),
        CLK(NULL,       "sys_ck",       &sys_ck,        CK_3XXX),
        CLK(NULL,       "sys_altclk",   &sys_altclk,    CK_3XXX),
- --    CLK("omap-mcbsp.1",     "pad_fck",      &mcbsp_clks,    CK_3XXX),
- --    CLK("omap-mcbsp.2",     "pad_fck",      &mcbsp_clks,    CK_3XXX),
- --    CLK("omap-mcbsp.3",     "pad_fck",      &mcbsp_clks,    CK_3XXX),
- --    CLK("omap-mcbsp.4",     "pad_fck",      &mcbsp_clks,    CK_3XXX),
- --    CLK("omap-mcbsp.5",     "pad_fck",      &mcbsp_clks,    CK_3XXX),
        CLK(NULL,       "mcbsp_clks",   &mcbsp_clks,    CK_3XXX),
        CLK(NULL,       "sys_clkout1",  &sys_clkout1,   CK_3XXX),
        CLK(NULL,       "dpll1_ck",     &dpll1_ck,      CK_3XXX),
        CLK(NULL,       "ts_fck",       &ts_fck,        CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
        CLK(NULL,       "usbtll_fck",   &usbtll_fck,    CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
        CLK("usbhs_omap",       "usbtll_fck",   &usbtll_fck,    CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
- --    CLK("omap-mcbsp.1",     "prcm_fck",     &core_96m_fck,  CK_3XXX),
- --    CLK("omap-mcbsp.5",     "prcm_fck",     &core_96m_fck,  CK_3XXX),
        CLK(NULL,       "core_96m_fck", &core_96m_fck,  CK_3XXX),
        CLK(NULL,       "mmchs3_fck",   &mmchs3_fck,    CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
        CLK(NULL,       "mmchs2_fck",   &mmchs2_fck,    CK_3XXX),
        CLK(NULL,       "omap_32ksync_ick", &omap_32ksync_ick, CK_3XXX),
        CLK(NULL,       "gpt12_ick",    &gpt12_ick,     CK_3XXX),
        CLK(NULL,       "gpt1_ick",     &gpt1_ick,      CK_3XXX),
- --    CLK("omap-mcbsp.2",     "prcm_fck",     &per_96m_fck,   CK_3XXX),
- --    CLK("omap-mcbsp.3",     "prcm_fck",     &per_96m_fck,   CK_3XXX),
- --    CLK("omap-mcbsp.4",     "prcm_fck",     &per_96m_fck,   CK_3XXX),
        CLK(NULL,       "per_96m_fck",  &per_96m_fck,   CK_3XXX),
        CLK(NULL,       "per_48m_fck",  &per_48m_fck,   CK_3XXX),
        CLK(NULL,       "uart3_fck",    &uart3_fck,     CK_3XXX),
        CLK("musb-am35x",       "fck",          &hsotgusb_fck_am35xx,   CK_AM35XX),
        CLK(NULL,       "hecc_ck",      &hecc_ck,       CK_AM35XX),
        CLK(NULL,       "uart4_ick",    &uart4_ick_am35xx,      CK_AM35XX),
-- -    CLK("omap_timer.1",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.2",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.3",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.4",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.5",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.6",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.7",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.8",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.9",     "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.10",    "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.11",    "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.12",    "32k_ck",       &omap_32k_fck,  CK_3XXX),
-- -    CLK("omap_timer.1",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.2",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.3",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.4",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.5",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.6",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.7",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.8",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.9",     "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.10",    "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.11",    "sys_ck",       &sys_ck,        CK_3XXX),
-- -    CLK("omap_timer.12",    "sys_ck",       &sys_ck,        CK_3XXX),
++ +    CLK(NULL,       "timer_32k_ck", &omap_32k_fck,  CK_3XXX),
++ +    CLK(NULL,       "timer_sys_ck", &sys_ck,        CK_3XXX),
    };
    
    
@@@@@ -3514,7 -3504,7 -3492,7 -3514,7 +3482,7 @@@@@ int __init omap3xxx_clk_init(void
        struct omap_clk *c;
        u32 cpu_clkflg = 0;
    
  --    if (cpu_is_omap3517()) {
  ++    if (soc_is_am35xx()) {
                cpu_mask = RATE_IN_34XX;
                cpu_clkflg = CK_AM35XX;
        } else if (cpu_is_omap3630()) {
index ba6f9a0a43e9096776963ea1285eea34fb1a24f8,e2b701e164f64c1a3117690a8363b1dc6b0041fe,51f7424c7caaee2d67500e0c2d0382d427a4105a,2172f660384889535c6d812dae30dacf56b18eec..de53b7014b80894fde68fdc8d81c3477bd55a47d
@@@@@ -84,7 -84,7 -84,6 -84,6 +84,7 @@@@@ static struct clk slimbus_clk = 
    
    static struct clk sys_32k_ck = {
        .name           = "sys_32k_ck",
  ++    .clkdm_name     = "prm_clkdm",
        .rate           = 32768,
        .ops            = &clkops_null,
    };
@@@@@ -513,7 -513,7 -512,6 -512,6 +513,7 @@@@@ static struct clk ddrphy_ck = 
        .name           = "ddrphy_ck",
        .parent         = &dpll_core_m2_ck,
        .ops            = &clkops_null,
  ++    .clkdm_name     = "l3_emif_clkdm",
        .fixed_div      = 2,
        .recalc         = &omap_fixed_divisor_recalc,
    };
@@@@@ -771,7 -771,7 -769,6 -769,6 +771,7 @@@@@ static const struct clksel dpll_mpu_m2_
    static struct clk dpll_mpu_m2_ck = {
        .name           = "dpll_mpu_m2_ck",
        .parent         = &dpll_mpu_ck,
  ++    .clkdm_name     = "cm_clkdm",
        .clksel         = dpll_mpu_m2_div,
        .clksel_reg     = OMAP4430_CM_DIV_M2_DPLL_MPU,
        .clksel_mask    = OMAP4430_DPLL_CLKOUT_DIV_MASK,
@@@@@ -1152,7 -1152,7 -1149,6 -1149,6 +1152,7 @@@@@ static const struct clksel l3_div_div[
    static struct clk l3_div_ck = {
        .name           = "l3_div_ck",
        .parent         = &div_core_ck,
  ++    .clkdm_name     = "cm_clkdm",
        .clksel         = l3_div_div,
        .clksel_reg     = OMAP4430_CM_CLKSEL_CORE,
        .clksel_mask    = OMAP4430_CLKSEL_L3_MASK,
@@@@@ -2828,7 -2828,7 -2824,6 -2824,6 +2828,7 @@@@@ static const struct clksel trace_clk_di
    static struct clk trace_clk_div_ck = {
        .name           = "trace_clk_div_ck",
        .parent         = &pmd_trace_clk_mux_ck,
  ++    .clkdm_name     = "emu_sys_clkdm",
        .clksel         = trace_clk_div_div,
        .clksel_reg     = OMAP4430_CM_EMU_DEBUGSS_CLKCTRL,
        .clksel_mask    = OMAP4430_CLKSEL_PMD_TRACE_CLK_MASK,
@@@@@ -3385,28 -3385,28 -3380,18 -3380,28 +3385,18 @@@@@ static struct omap_clk omap44xx_clks[] 
        CLK("usbhs_omap",       "usbhost_ick",          &dummy_ck,              CK_443X),
        CLK("usbhs_omap",       "usbtll_fck",           &dummy_ck,      CK_443X),
        CLK("omap_wdt", "ick",                          &dummy_ck,      CK_443X),
-- -    CLK("omap_timer.1",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.2",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.3",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.4",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.5",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.6",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.7",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.8",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.9",     "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.10",    "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.11",    "32k_ck",       &sys_32k_ck,    CK_443X),
-- -    CLK("omap_timer.1",     "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.2",     "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.3",     "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.4",     "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.9",     "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.10",    "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.11",    "sys_ck",       &sys_clkin_ck,  CK_443X),
-- -    CLK("omap_timer.5",     "sys_ck",       &syc_clk_div_ck,        CK_443X),
-- -    CLK("omap_timer.6",     "sys_ck",       &syc_clk_div_ck,        CK_443X),
-- -    CLK("omap_timer.7",     "sys_ck",       &syc_clk_div_ck,        CK_443X),
-- -    CLK("omap_timer.8",     "sys_ck",       &syc_clk_div_ck,        CK_443X),
++ +    CLK(NULL,       "timer_32k_ck", &sys_32k_ck,    CK_443X),
++ +    CLK("omap_timer.1",     "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.2",     "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.3",     "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.4",     "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.9",     "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.10",    "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.11",    "timer_sys_ck", &sys_clkin_ck,  CK_443X),
++ +    CLK("omap_timer.5",     "timer_sys_ck", &syc_clk_div_ck,        CK_443X),
++ +    CLK("omap_timer.6",     "timer_sys_ck", &syc_clk_div_ck,        CK_443X),
++ +    CLK("omap_timer.7",     "timer_sys_ck", &syc_clk_div_ck,        CK_443X),
++ +    CLK("omap_timer.8",     "timer_sys_ck", &syc_clk_div_ck,        CK_443X),
    };
    
    int __init omap4xxx_clk_init(void)
        if (cpu_is_omap443x()) {
                cpu_mask = RATE_IN_4430;
                cpu_clkflg = CK_443X;
 ---    } else if (cpu_is_omap446x()) {
 +++    } else if (cpu_is_omap446x() || cpu_is_omap447x()) {
                cpu_mask = RATE_IN_4460 | RATE_IN_4430;
                cpu_clkflg = CK_446X | CK_443X;
 +++
 +++            if (cpu_is_omap447x())
 +++                    pr_warn("WARNING: OMAP4470 clock data incomplete!\n");
        } else {
                return 0;
        }
index f7b58609bad888b6b276a524badf9518e450a709,349dcbb6fecb1e08beec844341524f0429401f46,f7b58609bad888b6b276a524badf9518e450a709,72cb12bbb9c3daeb46827c784af187fb94f0e2d5..0a8c7b67858cbe3d07e7139c81cb5749cf09e5e0
@@@@@ -195,6 -195,6 -195,6 -195,7 +195,7 @@@@@ int clkdm_hwmod_disable(struct clockdom
    extern void __init omap242x_clockdomains_init(void);
    extern void __init omap243x_clockdomains_init(void);
    extern void __init omap3xxx_clockdomains_init(void);
+++ extern void __init am33xx_clockdomains_init(void);
    extern void __init omap44xx_clockdomains_init(void);
    extern void _clkdm_add_autodeps(struct clockdomain *clkdm);
    extern void _clkdm_del_autodeps(struct clockdomain *clkdm);
    extern struct clkdm_ops omap2_clkdm_operations;
    extern struct clkdm_ops omap3_clkdm_operations;
    extern struct clkdm_ops omap4_clkdm_operations;
+++ extern struct clkdm_ops am33xx_clkdm_operations;
    
    extern struct clkdm_dep gfx_24xx_wkdeps[];
    extern struct clkdm_dep dsp_24xx_wkdeps[];
    extern struct clockdomain wkup_common_clkdm;
- --extern struct clockdomain prm_common_clkdm;
- --extern struct clockdomain cm_common_clkdm;
    
    #endif
index a406fd045ce13e18649b488a663cc21c6520a415,fcc98f822d9d3e932c03521ab9c8a107c960b0c8,a406fd045ce13e18649b488a663cc21c6520a415,c43f03cbefc5d355190f4885e30197db43d2797e..5baf305386e97eb457bca89470f37abfbc41ae84
    #include <mach/ctrl_module_pad_core_44xx.h>
    #include <mach/ctrl_module_pad_wkup_44xx.h>
    
+++ #include <plat/am33xx.h>
+++ 
    #ifndef __ASSEMBLY__
    #define OMAP242X_CTRL_REGADDR(reg)                                  \
                OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE + (reg))
                OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE + (reg))
    #define OMAP343X_CTRL_REGADDR(reg)                                  \
                OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg))
+++ #define AM33XX_CTRL_REGADDR(reg)                                    \
+++             AM33XX_L4_WK_IO_ADDRESS(AM33XX_SCM_BASE + (reg))
    #else
    #define OMAP242X_CTRL_REGADDR(reg)                                  \
                OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE + (reg))
                OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE + (reg))
    #define OMAP343X_CTRL_REGADDR(reg)                                  \
                OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg))
+++ #define AM33XX_CTRL_REGADDR(reg)                                    \
+++             AM33XX_L4_WK_IO_ADDRESS(AM33XX_SCM_BASE + (reg))
    #endif /* __ASSEMBLY__ */
    
    /*
                                                OMAP343X_SCRATCHPAD + reg)
    
    /* AM35XX_CONTROL_IPSS_CLK_CTRL bits */
--- #define AM35XX_USBOTG_VBUSP_CLK_SHIFT   0
--- #define AM35XX_CPGMAC_VBUSP_CLK_SHIFT   1
--- #define AM35XX_VPFE_VBUSP_CLK_SHIFT     2
--- #define AM35XX_HECC_VBUSP_CLK_SHIFT     3
--- #define AM35XX_USBOTG_FCLK_SHIFT        8
--- #define AM35XX_CPGMAC_FCLK_SHIFT        9
--- #define AM35XX_VPFE_FCLK_SHIFT          10
--- 
--- /*AM35XX CONTROL_LVL_INTR_CLEAR bits*/
+++ #define AM35XX_USBOTG_VBUSP_CLK_SHIFT       0
+++ #define AM35XX_CPGMAC_VBUSP_CLK_SHIFT       1
+++ #define AM35XX_VPFE_VBUSP_CLK_SHIFT 2
+++ #define AM35XX_HECC_VBUSP_CLK_SHIFT 3
+++ #define AM35XX_USBOTG_FCLK_SHIFT    8
+++ #define AM35XX_CPGMAC_FCLK_SHIFT    9
+++ #define AM35XX_VPFE_FCLK_SHIFT              10
+++ 
+++ /* AM35XX CONTROL_LVL_INTR_CLEAR bits */
    #define AM35XX_CPGMAC_C0_MISC_PULSE_CLR     BIT(0)
    #define AM35XX_CPGMAC_C0_RX_PULSE_CLR       BIT(1)
    #define AM35XX_CPGMAC_C0_RX_THRESH_CLR      BIT(2)
    #define AM35XX_VPFE_CCDC_VD1_INT_CLR        BIT(6)
    #define AM35XX_VPFE_CCDC_VD2_INT_CLR        BIT(7)
    
--- /*AM35XX CONTROL_IP_SW_RESET bits*/
+++ /* AM35XX CONTROL_IP_SW_RESET bits */
    #define AM35XX_USBOTGSS_SW_RST              BIT(0)
    #define AM35XX_CPGMACSS_SW_RST              BIT(1)
    #define AM35XX_VPFE_VBUSP_SW_RST    BIT(2)
    #define AM35XX_HECC_SW_RST          BIT(3)
    #define AM35XX_VPFE_PCLK_SW_RST             BIT(4)
    
--- /*
---  * CONTROL AM33XX STATUS register
---  */
+++ /* AM33XX CONTROL_STATUS register */
    #define AM33XX_CONTROL_STATUS               0x040
+++ #define AM33XX_CONTROL_SEC_CLK_CTRL 0x1bc
    
--- /*
---  * CONTROL OMAP STATUS register to identify OMAP3 features
---  */
+++ /* AM33XX CONTROL_STATUS bitfields (partial) */
+++ #define AM33XX_CONTROL_STATUS_SYSBOOT1_SHIFT                22
+++ #define AM33XX_CONTROL_STATUS_SYSBOOT1_MASK         (0x3 << 22)
+++ 
+++ /* CONTROL OMAP STATUS register to identify OMAP3 features */
    #define OMAP3_CONTROL_OMAP_STATUS   0x044c
    
    #define OMAP3_SGX_SHIFT                     13
@@@@@ -397,6 -397,8 -397,6 -404,6 +404,8 @@@@@ extern u32 omap3_arm_context[128]
    extern void omap3_control_save_context(void);
    extern void omap3_control_restore_context(void);
    extern void omap3_ctrl_write_boot_mode(u8 bootmode);
+ ++extern void omap_ctrl_write_dsp_boot_addr(u32 bootaddr);
+ ++extern void omap_ctrl_write_dsp_boot_mode(u8 bootmode);
    extern void omap3630_ctrl_disable_rta(void);
    extern int omap3_ctrl_save_padconf(void);
    #else
index 6038a8c84b743af0ed1f205af643f3a8a0013b63,6038a8c84b743af0ed1f205af643f3a8a0013b63,fdc4303be563169dedbd458bd8391a16e43e252b,428685f650601d8cef27f807b90adccc38f7171f..d5b34febd82d70b2afdccc6741ed0e401ce02638
@@@@@ -149,7 -149,7 -149,6 -149,6 +149,7 @@@@@ omap_alloc_gc(void __iomem *base, unsig
        ct->chip.irq_ack = omap_mask_ack_irq;
        ct->chip.irq_mask = irq_gc_mask_disable_reg;
        ct->chip.irq_unmask = irq_gc_unmask_enable_reg;
  ++    ct->chip.flags |= IRQCHIP_SKIP_SET_WAKE;
    
        ct->regs.enable = INTC_MIR_CLEAR0;
        ct->regs.disable = INTC_MIR_SET0;
@@@@@ -280,7 -280,7 -279,7 -279,7 +280,7 @@@@@ int __init omap_intc_of_init(struct dev
        return 0;
    }
    
--- #ifdef CONFIG_ARCH_OMAP3
+++ #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
    static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
    
    void omap_intc_save_context(void)
index b26d3c9bca1621cab9ac87eea39aff6cc489fc24,8379b8d7244a1f9803f5b63d6b504f3976a98cf1,0ea53bcc7d18fd1eaeeb9b3034f1d8036c7e26d9,b26d3c9bca1621cab9ac87eea39aff6cc489fc24..6491e057d9ce72676157fd2f3a06f816c2724a05
@@@@@ -129,7 -129,7 -129,6 -129,7 +129,6 @@@@@ static struct omap_hwmod_class_sysconfi
    static struct omap_hwmod_class omap3xxx_timer_1ms_hwmod_class = {
        .name = "timer",
        .sysc = &omap3xxx_timer_1ms_sysc,
-- -    .rev = OMAP_TIMER_IP_VERSION_1,
    };
    
    static struct omap_hwmod_class_sysconfig omap3xxx_timer_sysc = {
    static struct omap_hwmod_class omap3xxx_timer_hwmod_class = {
        .name = "timer",
        .sysc = &omap3xxx_timer_sysc,
-- -    .rev =  OMAP_TIMER_IP_VERSION_1,
    };
    
    /* secure timers dev attribute */
    static struct omap_timer_capability_dev_attr capability_secure_dev_attr = {
-- -    .timer_capability       = OMAP_TIMER_SECURE,
++ +    .timer_capability       = OMAP_TIMER_ALWON | OMAP_TIMER_SECURE,
    };
    
    /* always-on timers dev attribute */
@@@@@ -195,7 -195,7 -193,6 -195,7 +193,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT2_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_1ms_hwmod_class,
    };
    
@@@@@ -213,7 -213,7 -210,6 -213,7 +210,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT3_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_hwmod_class,
    };
    
@@@@@ -231,7 -231,7 -227,6 -231,7 +227,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT4_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_hwmod_class,
    };
    
@@@@@ -249,7 -249,7 -244,6 -249,7 +244,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT5_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_hwmod_class,
    };
    
@@@@@ -267,7 -267,7 -261,6 -267,7 +261,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT6_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_hwmod_class,
    };
    
@@@@@ -285,7 -285,7 -278,6 -285,7 +278,6 @@@@@ static struct omap_hwmod omap3xxx_timer
                        .idlest_idle_bit = OMAP3430_ST_GPT7_SHIFT,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
        .class          = &omap3xxx_timer_hwmod_class,
    };
    
@@@@@ -1074,6 -1074,17 -1066,6 -1074,6 +1066,17 @@@@@ static struct omap_hwmod_class omap3xxx
        .rev  = MCBSP_CONFIG_TYPE3,
    };
    
+ ++/* McBSP functional clock mapping */
+ ++static struct omap_hwmod_opt_clk mcbsp15_opt_clks[] = {
+ ++    { .role = "pad_fck", .clk = "mcbsp_clks" },
+ ++    { .role = "prcm_fck", .clk = "core_96m_fck" },
+ ++};
+ ++
+ ++static struct omap_hwmod_opt_clk mcbsp234_opt_clks[] = {
+ ++    { .role = "pad_fck", .clk = "mcbsp_clks" },
+ ++    { .role = "prcm_fck", .clk = "per_96m_fck" },
+ ++};
+ ++
    /* mcbsp1 */
    static struct omap_hwmod_irq_info omap3xxx_mcbsp1_irqs[] = {
        { .name = "common", .irq = 16 },
@@@@@ -1097,6 -1108,8 -1089,6 -1097,6 +1100,8 @@@@@ static struct omap_hwmod omap3xxx_mcbsp
                        .idlest_idle_bit = OMAP3430_ST_MCBSP1_SHIFT,
                },
        },
+ ++    .opt_clks       = mcbsp15_opt_clks,
+ ++    .opt_clks_cnt   = ARRAY_SIZE(mcbsp15_opt_clks),
    };
    
    /* mcbsp2 */
@@@@@ -1126,6 -1139,8 -1118,6 -1126,6 +1131,8 @@@@@ static struct omap_hwmod omap3xxx_mcbsp
                        .idlest_idle_bit = OMAP3430_ST_MCBSP2_SHIFT,
                },
        },
+ ++    .opt_clks       = mcbsp234_opt_clks,
+ ++    .opt_clks_cnt   = ARRAY_SIZE(mcbsp234_opt_clks),
        .dev_attr       = &omap34xx_mcbsp2_dev_attr,
    };
    
@@@@@ -1156,6 -1171,8 -1148,6 -1156,6 +1163,8 @@@@@ static struct omap_hwmod omap3xxx_mcbsp
                        .idlest_idle_bit = OMAP3430_ST_MCBSP3_SHIFT,
                },
        },
+ ++    .opt_clks       = mcbsp234_opt_clks,
+ ++    .opt_clks_cnt   = ARRAY_SIZE(mcbsp234_opt_clks),
        .dev_attr       = &omap34xx_mcbsp3_dev_attr,
    };
    
@@@@@ -1188,6 -1205,8 -1180,6 -1188,6 +1197,8 @@@@@ static struct omap_hwmod omap3xxx_mcbsp
                        .idlest_idle_bit = OMAP3430_ST_MCBSP4_SHIFT,
                },
        },
+ ++    .opt_clks       = mcbsp234_opt_clks,
+ ++    .opt_clks_cnt   = ARRAY_SIZE(mcbsp234_opt_clks),
    };
    
    /* mcbsp5 */
@@@@@ -1219,6 -1238,8 -1211,6 -1219,6 +1230,8 @@@@@ static struct omap_hwmod omap3xxx_mcbsp
                        .idlest_idle_bit = OMAP3430_ST_MCBSP5_SHIFT,
                },
        },
+ ++    .opt_clks       = mcbsp15_opt_clks,
+ ++    .opt_clks_cnt   = ARRAY_SIZE(mcbsp15_opt_clks),
    };
    
    /* 'mcbsp sidetone' class */
@@@@@ -3283,6 -3304,8 -3275,6 -3283,6 +3296,8 @@@@@ int __init omap3xxx_hwmod_init(void
        struct omap_hwmod_ocp_if **h = NULL;
        unsigned int rev;
    
+ ++    omap_hwmod_init();
+ ++
        /* Register hwmod links common to all OMAP3 */
        r = omap_hwmod_register_links(omap3xxx_hwmod_ocp_ifs);
        if (r < 0)
index f30e861ce6d9cf42c76d90cb78cfcc90cf99f31b,d055b4725679dc60a457379f0a532337a1e08782,ebf9657460ddc07312f55764190052f5e6e16bd0,950454a3fa314da4448c99eeaaf50f81201b382b..1b1d04141c3d695cef78c294301f1e10a18df29a
@@@@@ -393,7 -393,7 -393,8 -393,8 +393,7 @@@@@ static struct omap_hwmod_class_sysconfi
        .rev_offs       = 0x0000,
        .sysc_offs      = 0x0004,
        .sysc_flags     = SYSC_HAS_SIDLEMODE,
  --    .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
  --                       SIDLE_SMART_WKUP),
  ++    .idlemodes      = (SIDLE_FORCE | SIDLE_NO),
        .sysc_fields    = &omap_hwmod_sysc_type1,
    };
    
@@@@@ -853,11 -853,11 -854,6 -854,6 +853,11 @@@@@ static struct omap_hwmod omap44xx_dss_h
        .name           = "dss_hdmi",
        .class          = &omap44xx_hdmi_hwmod_class,
        .clkdm_name     = "l3_dss_clkdm",
  ++    /*
  ++     * HDMI audio requires to use no-idle mode. Hence,
  ++     * set idle mode by software.
  ++     */
  ++    .flags          = HWMOD_SWSUP_SIDLE,
        .mpu_irqs       = omap44xx_dss_hdmi_irqs,
        .sdma_reqs      = omap44xx_dss_hdmi_sdma_reqs,
        .main_clk       = "dss_48mhz_clk",
@@@@@ -2544,14 -2544,12 -2540,14 -2540,14 +2544,12 @@@@@ static struct omap_hwmod omap44xx_prcm_
    static struct omap_hwmod omap44xx_cm_core_aon_hwmod = {
        .name           = "cm_core_aon",
        .class          = &omap44xx_prcm_hwmod_class,
- --    .clkdm_name     = "cm_clkdm",
    };
    
    /* cm_core */
    static struct omap_hwmod omap44xx_cm_core_hwmod = {
        .name           = "cm_core",
        .class          = &omap44xx_prcm_hwmod_class,
- --    .clkdm_name     = "cm_clkdm",
    };
    
    /* prm */
@@@@@ -2568,7 -2566,6 -2564,7 -2564,7 +2566,6 @@@@@ static struct omap_hwmod_rst_info omap4
    static struct omap_hwmod omap44xx_prm_hwmod = {
        .name           = "prm",
        .class          = &omap44xx_prcm_hwmod_class,
- --    .clkdm_name     = "prm_clkdm",
        .mpu_irqs       = omap44xx_prm_irqs,
        .rst_lines      = omap44xx_prm_resets,
        .rst_lines_cnt  = ARRAY_SIZE(omap44xx_prm_resets),
@@@@@ -2947,7 -2944,7 -2943,6 -2943,7 +2944,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer3 */
@@@@@ -2969,7 -2966,7 -2964,6 -2965,7 +2965,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer4 */
@@@@@ -2991,7 -2988,7 -2985,6 -2987,7 +2986,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer5 */
@@@@@ -3013,7 -3010,7 -3006,6 -3009,7 +3007,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer6 */
@@@@@ -3036,7 -3033,7 -3028,6 -3032,7 +3029,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer7 */
@@@@@ -3058,7 -3055,7 -3049,6 -3054,7 +3050,6 @@@@@ static struct omap_hwmod omap44xx_timer
                        .modulemode   = MODULEMODE_SWCTRL,
                },
        },
-- -    .dev_attr       = &capability_alwon_dev_attr,
    };
    
    /* timer8 */
@@@@@ -6148,6 -6145,7 -6138,6 -6144,6 +6139,7 @@@@@ static struct omap_hwmod_ocp_if *omap44
    
    int __init omap44xx_hwmod_init(void)
    {
+ ++    omap_hwmod_init();
        return omap_hwmod_register_links(omap44xx_hwmod_ocp_ifs);
    }
    
index 840929bd9daecce4ef8e1ee95c2d404a2536c9c4,840929bd9daecce4ef8e1ee95c2d404a2536c9c4,8fe75a81e12db2415edc74e4ec19b4d8e0091df0,ea6a0eb13f053db8bd141ef0e1aecaa386bcb38d..b5b5d92acd9df8695135f2f11ca5bc20ac67e73b
    #define OMAP3_SECURE_TIMER  1
    #endif
    
-- -/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
-- -#define MAX_GPTIMER_ID              12
-- -
-- -static u32 sys_timer_reserved;
-- -
    /* Clockevent code */
    
    static struct omap_dm_timer clkev;
@@@@@ -180,7 -180,7 -175,8 -180,7 +175,8 @@@@@ static int __init omap_dm_timer_init_on
    
        omap_hwmod_enable(oh);
    
-- -    sys_timer_reserved |= (1 << (gptimer_id - 1));
++ +    if (omap_dm_timer_reserve_systimer(gptimer_id))
++ +            return -ENODEV;
    
        if (gptimer_id != 12) {
                struct clk *src;
@@@@@ -368,6 -368,6 -364,6 -368,11 +364,11 @@@@@ OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SEC
    OMAP_SYS_TIMER(3_secure)
    #endif
    
+++ #ifdef CONFIG_SOC_AM33XX
+++ OMAP_SYS_TIMER_INIT(3_am33xx, 1, OMAP4_MPU_SOURCE, 2, OMAP4_MPU_SOURCE)
+++ OMAP_SYS_TIMER(3_am33xx)
+++ #endif
+++ 
    #ifdef CONFIG_ARCH_OMAP4
    #ifdef CONFIG_LOCAL_TIMERS
    static DEFINE_TWD_LOCAL_TIMER(twd_local_timer,
@@@@@ -393,66 -393,66 -389,6 -398,66 +394,6 @@@@@ static void __init omap4_timer_init(voi
    OMAP_SYS_TIMER(4)
    #endif
    
-- -/**
-- - * omap2_dm_timer_set_src - change the timer input clock source
-- - * @pdev:   timer platform device pointer
-- - * @source: array index of parent clock source
-- - */
-- -static int omap2_dm_timer_set_src(struct platform_device *pdev, int source)
-- -{
-- -    int ret;
-- -    struct dmtimer_platform_data *pdata = pdev->dev.platform_data;
-- -    struct clk *fclk, *parent;
-- -    char *parent_name = NULL;
-- -
-- -    fclk = clk_get(&pdev->dev, "fck");
-- -    if (IS_ERR_OR_NULL(fclk)) {
-- -            dev_err(&pdev->dev, "%s: %d: clk_get() FAILED\n",
-- -                            __func__, __LINE__);
-- -            return -EINVAL;
-- -    }
-- -
-- -    switch (source) {
-- -    case OMAP_TIMER_SRC_SYS_CLK:
-- -            parent_name = "sys_ck";
-- -            break;
-- -
-- -    case OMAP_TIMER_SRC_32_KHZ:
-- -            parent_name = "32k_ck";
-- -            break;
-- -
-- -    case OMAP_TIMER_SRC_EXT_CLK:
-- -            if (pdata->timer_ip_version == OMAP_TIMER_IP_VERSION_1) {
-- -                    parent_name = "alt_ck";
-- -                    break;
-- -            }
-- -            dev_err(&pdev->dev, "%s: %d: invalid clk src.\n",
-- -                    __func__, __LINE__);
-- -            clk_put(fclk);
-- -            return -EINVAL;
-- -    }
-- -
-- -    parent = clk_get(&pdev->dev, parent_name);
-- -    if (IS_ERR_OR_NULL(parent)) {
-- -            dev_err(&pdev->dev, "%s: %d: clk_get() %s FAILED\n",
-- -                    __func__, __LINE__, parent_name);
-- -            clk_put(fclk);
-- -            return -EINVAL;
-- -    }
-- -
-- -    ret = clk_set_parent(fclk, parent);
-- -    if (IS_ERR_VALUE(ret)) {
-- -            dev_err(&pdev->dev, "%s: clk_set_parent() to %s FAILED\n",
-- -                    __func__, parent_name);
-- -            ret = -EINVAL;
-- -    }
-- -
-- -    clk_put(parent);
-- -    clk_put(fclk);
-- -
-- -    return ret;
-- -}
-- -
    /**
     * omap_timer_init - build and register timer device with an
     * associated timer hwmod
@@@@@ -473,7 -473,7 -409,6 -478,7 +414,6 @@@@@ static int __init omap_timer_init(struc
        struct dmtimer_platform_data *pdata;
        struct platform_device *pdev;
        struct omap_timer_capability_dev_attr *timer_dev_attr;
-- -    struct powerdomain *pwrdm;
    
        pr_debug("%s: %s\n", __func__, oh->name);
    
         */
        sscanf(oh->name, "timer%2d", &id);
    
-- -    pdata->set_timer_src = omap2_dm_timer_set_src;
-- -    pdata->timer_ip_version = oh->class->rev;
-- -
-- -    /* Mark clocksource and clockevent timers as reserved */
-- -    if ((sys_timer_reserved >> (id - 1)) & 0x1)
-- -            pdata->reserved = 1;
++ +    if (timer_dev_attr)
++ +            pdata->timer_capability = timer_dev_attr->timer_capability;
    
-- -    pwrdm = omap_hwmod_get_pwrdm(oh);
-- -    pdata->loses_context = pwrdm_can_ever_lose_context(pwrdm);
-- -#ifdef CONFIG_PM
-- -    pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count;
-- -#endif
        pdev = omap_device_build(name, id, oh, pdata, sizeof(*pdata),
                                 NULL, 0, 0);