ARM: OMAP4/AM33xx: add cm_init / cm_exit calls for AM33xx and OMAP4+
authorTero Kristo <t-kristo@ti.com>
Mon, 27 Oct 2014 15:39:23 +0000 (08:39 -0700)
committerTony Lindgren <tony@atomide.com>
Mon, 27 Oct 2014 15:39:23 +0000 (08:39 -0700)
This is needed for expanding the generic CM driver API to include
AM33xx and OMAP4 also.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/cm33xx.c
arch/arm/mach-omap2/cm33xx.h
arch/arm/mach-omap2/cminst44xx.c
arch/arm/mach-omap2/cminst44xx.h
arch/arm/mach-omap2/io.c

index ef9e9018f4d5fcf7ae2a5af1cb0adaffc67bcf51..e02988fd237f733959e2ce81c14ecf5daf51083a 100644 (file)
@@ -358,3 +358,16 @@ struct clkdm_ops am33xx_clkdm_operations = {
        .clkdm_clk_enable       = am33xx_clkdm_clk_enable,
        .clkdm_clk_disable      = am33xx_clkdm_clk_disable,
 };
+
+static struct cm_ll_data am33xx_cm_ll_data;
+
+int __init am33xx_cm_init(void)
+{
+       return cm_register(&am33xx_cm_ll_data);
+}
+
+static void __exit am33xx_cm_exit(void)
+{
+       cm_unregister(&am33xx_cm_ll_data);
+}
+__exitcall(am33xx_cm_exit);
index 1771fc17fd8c492d147aab48ed98c7c955a1899b..1d3cde732648e24349be317898037d3c40cd59c8 100644 (file)
@@ -379,6 +379,7 @@ void am33xx_cm_clkdm_enable_hwsup(u16 inst, u16 cdoffs);
 void am33xx_cm_clkdm_disable_hwsup(u16 inst, u16 cdoffs);
 void am33xx_cm_clkdm_force_sleep(u16 inst, u16 cdoffs);
 void am33xx_cm_clkdm_force_wakeup(u16 inst, u16 cdoffs);
+int am33xx_cm_init(void);
 
 #if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
 int am33xx_cm_wait_module_idle(u16 inst, u16 clkctrl_offs);
index 7e6970af1d666968e4beb382110c71875f373aee..695e71e802a5fa6c4a468a7a5a4ac8e9f2af6172 100644 (file)
@@ -505,3 +505,16 @@ struct clkdm_ops am43xx_clkdm_operations = {
        .clkdm_clk_enable       = omap4_clkdm_clk_enable,
        .clkdm_clk_disable      = omap4_clkdm_clk_disable,
 };
+
+static struct cm_ll_data omap4xxx_cm_ll_data;
+
+int __init omap4_cm_init(void)
+{
+       return cm_register(&omap4xxx_cm_ll_data);
+}
+
+static void __exit omap4_cm_exit(void)
+{
+       cm_unregister(&omap4xxx_cm_ll_data);
+}
+__exitcall(omap4_cm_exit);
index 67a05f9f9eab7dc1315058adbd421f2fa938f9fd..cc3c9133a3043cfc950ecce6bd8f39be2348eee0 100644 (file)
@@ -38,5 +38,6 @@ extern u32 omap4_cminst_read_inst_reg_bits(u8 part, u16 inst, s16 idx,
                                           u32 mask);
 
 extern void omap_cm_base_init(void);
+int omap4_cm_init(void);
 
 #endif
index 5f46f272975900ac716f18a50b5714941478a04b..dc251673103aea1e82e9f538ff8d2cb7651403dd 100644 (file)
@@ -45,6 +45,7 @@
 #include "sram.h"
 #include "cm2xxx.h"
 #include "cm3xxx.h"
+#include "cm33xx.h"
 #include "prm.h"
 #include "cm.h"
 #include "prcm_mpu44xx.h"
@@ -565,6 +566,7 @@ void __init am33xx_init_early(void)
        omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL);
        omap3xxx_check_revision();
        am33xx_check_features();
+       am33xx_cm_init();
        am33xx_powerdomains_init();
        am33xx_clockdomains_init();
        am33xx_hwmod_init();
@@ -592,6 +594,7 @@ void __init am43xx_init_early(void)
        omap3xxx_check_revision();
        am33xx_check_features();
        omap44xx_prm_init();
+       omap4_cm_init();
        am43xx_powerdomains_init();
        am43xx_clockdomains_init();
        am43xx_hwmod_init();
@@ -621,6 +624,7 @@ void __init omap4430_init_early(void)
        omap_cm_base_init();
        omap4xxx_check_revision();
        omap4xxx_check_features();
+       omap4_cm_init();
        omap4_pm_init_early();
        omap44xx_prm_init();
        omap44xx_voltagedomains_init();
@@ -656,6 +660,7 @@ void __init omap5_init_early(void)
        omap_cm_base_init();
        omap44xx_prm_init();
        omap5xxx_check_revision();
+       omap4_cm_init();
        omap54xx_voltagedomains_init();
        omap54xx_powerdomains_init();
        omap54xx_clockdomains_init();
@@ -687,6 +692,7 @@ void __init dra7xx_init_early(void)
        omap_cm_base_init();
        omap44xx_prm_init();
        dra7xxx_check_revision();
+       omap4_cm_init();
        dra7xx_powerdomains_init();
        dra7xx_clockdomains_init();
        dra7xx_hwmod_init();
This page took 0.027641 seconds and 5 git commands to generate.