From: Tony Lindgren Date: Wed, 4 Jul 2012 07:29:31 +0000 (-0700) Subject: Merge tags 'omap-cleanup-for-v3.6', 'omap-devel-dmtimer-for-v3.6' and 'omap-devel... X-Git-Tag: master-2012-08-06~124^2~1 X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=3f96a2d90e6923e2dd1e35d2f149a70a4d0f678c;hp=-c;p=~andy%2Flinux Merge tags 'omap-cleanup-for-v3.6', 'omap-devel-dmtimer-for-v3.6' and 'omap-devel-am33xx-for-v3.6' into devel-am33xx-part2 --- 3f96a2d90e6923e2dd1e35d2f149a70a4d0f678c diff --combined arch/arm/mach-omap2/Makefile index fa742f3c262,9ba1c406a46,fa742f3c262,a4cf93242b0..54ad3a4b612 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@@@@ -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 diff --combined arch/arm/mach-omap2/clock2420_data.c index bace9308a4d,7e39015357b,861767ed1a3,bace9308a4d..002745181ad --- a/arch/arm/mach-omap2/clock2420_data.c +++ b/arch/arm/mach-omap2/clock2420_data.c @@@@@ -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), @@@@@ -1784,8 -1782,6 -1784,8 -1784,8 +1782,6 @@@@@ /* 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), @@@@@ -1901,42 -1897,42 -1901,9 -1901,42 +1897,9 @@@@@ 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), }; /* diff --combined arch/arm/mach-omap2/clock2430_data.c index 3b4d09a5039,90a08c3b12a,5577810dbc2,3b4d09a5039..cacabb070e2 --- a/arch/arm/mach-omap2/clock2430_data.c +++ b/arch/arm/mach-omap2/clock2430_data.c @@@@@ -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), @@@@@ -1871,11 -1866,6 -1871,11 -1871,11 +1866,6 @@@@@ /* 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), @@@@@ -2000,42 -1990,42 -2000,9 -2000,42 +1990,9 @@@@@ 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), }; /* diff --combined arch/arm/mach-omap2/clock3xxx_data.c index 1efdec236ae,ff422bee804,64b2b1fafdd,4e1a3b0e8cc..71a1d338380 --- a/arch/arm/mach-omap2/clock3xxx_data.c +++ b/arch/arm/mach-omap2/clock3xxx_data.c @@@@@ -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), @@@@@ -3307,8 -3302,6 -3307,8 -3307,8 +3302,6 @@@@@ 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), @@@@@ -3413,9 -3406,6 -3413,9 -3413,9 +3406,6 @@@@@ 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), @@@@@ -3482,30 -3472,30 -3482,8 -3482,30 +3472,8 @@@@@ 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()) { diff --combined arch/arm/mach-omap2/clock44xx_data.c index ba6f9a0a43e,e2b701e164f,51f7424c7ca,2172f660384..de53b7014b8 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c @@@@@ -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) @@@@@ -3417,12 -3417,9 -3402,9 -3412,9 +3407,12 @@@@@ 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; } diff --combined arch/arm/mach-omap2/clockdomain.h index f7b58609bad,349dcbb6fec,f7b58609bad,72cb12bbb9c..0a8c7b67858 --- a/arch/arm/mach-omap2/clockdomain.h +++ b/arch/arm/mach-omap2/clockdomain.h @@@@@ -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); @@@@@ -202,11 -202,9 -202,11 -203,12 +203,10 @@@@@ 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 diff --combined arch/arm/mach-omap2/control.h index a406fd045ce,fcc98f822d9,a406fd045ce,c43f03cbefc..5baf305386e --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h @@@@@ -21,6 -21,6 -21,6 -21,8 +21,8 @@@@@ #include #include +++ #include +++ #ifndef __ASSEMBLY__ #define OMAP242X_CTRL_REGADDR(reg) \ OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE + (reg)) @@@@@ -28,6 -28,6 -28,6 -30,8 +30,8 @@@@@ 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)) @@@@@ -35,6 -35,6 -35,6 -39,8 +39,8 @@@@@ 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__ */ /* @@@@@ -312,15 -312,15 -312,15 -318,15 +318,15 @@@@@ 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) @@@@@ -330,21 -330,21 -330,21 -336,22 +336,22 @@@@@ #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 diff --combined arch/arm/mach-omap2/irq.c index 6038a8c84b7,6038a8c84b7,fdc4303be56,428685f6506..d5b34febd82 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@@@@ -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) diff --combined arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index b26d3c9bca1,8379b8d7244,0ea53bcc7d1,b26d3c9bca1..6491e057d9c --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c @@@@@ -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 = { @@@@@ -145,12 -145,12 -144,11 -145,12 +144,11 @@@@@ 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) diff --combined arch/arm/mach-omap2/omap_hwmod_44xx_data.c index f30e861ce6d,d055b472567,ebf9657460d,950454a3fa3..1b1d04141c3 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@@@@ -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); } diff --combined arch/arm/mach-omap2/timer.c index 840929bd9da,840929bd9da,8fe75a81e12,ea6a0eb13f0..b5b5d92acd9 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@@@@ -69,11 -69,11 -69,6 -69,11 +69,6 @@@@@ #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); @@@@@ -501,18 -501,18 -436,9 -506,18 +441,9 @@@@@ */ 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);