mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-14 12:37:32 +00:00
ARM: OMAP4/AM33xx: add cm_init / cm_exit calls for AM33xx and OMAP4+
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>
This commit is contained in:
parent
9907f85eb2
commit
7632a02f80
5 changed files with 34 additions and 0 deletions
|
@ -358,3 +358,16 @@ struct clkdm_ops am33xx_clkdm_operations = {
|
||||||
.clkdm_clk_enable = am33xx_clkdm_clk_enable,
|
.clkdm_clk_enable = am33xx_clkdm_clk_enable,
|
||||||
.clkdm_clk_disable = am33xx_clkdm_clk_disable,
|
.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);
|
||||||
|
|
|
@ -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_disable_hwsup(u16 inst, u16 cdoffs);
|
||||||
void am33xx_cm_clkdm_force_sleep(u16 inst, u16 cdoffs);
|
void am33xx_cm_clkdm_force_sleep(u16 inst, u16 cdoffs);
|
||||||
void am33xx_cm_clkdm_force_wakeup(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)
|
#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
|
||||||
int am33xx_cm_wait_module_idle(u16 inst, u16 clkctrl_offs);
|
int am33xx_cm_wait_module_idle(u16 inst, u16 clkctrl_offs);
|
||||||
|
|
|
@ -505,3 +505,16 @@ struct clkdm_ops am43xx_clkdm_operations = {
|
||||||
.clkdm_clk_enable = omap4_clkdm_clk_enable,
|
.clkdm_clk_enable = omap4_clkdm_clk_enable,
|
||||||
.clkdm_clk_disable = omap4_clkdm_clk_disable,
|
.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);
|
||||||
|
|
|
@ -38,5 +38,6 @@ extern u32 omap4_cminst_read_inst_reg_bits(u8 part, u16 inst, s16 idx,
|
||||||
u32 mask);
|
u32 mask);
|
||||||
|
|
||||||
extern void omap_cm_base_init(void);
|
extern void omap_cm_base_init(void);
|
||||||
|
int omap4_cm_init(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "sram.h"
|
#include "sram.h"
|
||||||
#include "cm2xxx.h"
|
#include "cm2xxx.h"
|
||||||
#include "cm3xxx.h"
|
#include "cm3xxx.h"
|
||||||
|
#include "cm33xx.h"
|
||||||
#include "prm.h"
|
#include "prm.h"
|
||||||
#include "cm.h"
|
#include "cm.h"
|
||||||
#include "prcm_mpu44xx.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);
|
omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL);
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
am33xx_check_features();
|
am33xx_check_features();
|
||||||
|
am33xx_cm_init();
|
||||||
am33xx_powerdomains_init();
|
am33xx_powerdomains_init();
|
||||||
am33xx_clockdomains_init();
|
am33xx_clockdomains_init();
|
||||||
am33xx_hwmod_init();
|
am33xx_hwmod_init();
|
||||||
|
@ -592,6 +594,7 @@ void __init am43xx_init_early(void)
|
||||||
omap3xxx_check_revision();
|
omap3xxx_check_revision();
|
||||||
am33xx_check_features();
|
am33xx_check_features();
|
||||||
omap44xx_prm_init();
|
omap44xx_prm_init();
|
||||||
|
omap4_cm_init();
|
||||||
am43xx_powerdomains_init();
|
am43xx_powerdomains_init();
|
||||||
am43xx_clockdomains_init();
|
am43xx_clockdomains_init();
|
||||||
am43xx_hwmod_init();
|
am43xx_hwmod_init();
|
||||||
|
@ -621,6 +624,7 @@ void __init omap4430_init_early(void)
|
||||||
omap_cm_base_init();
|
omap_cm_base_init();
|
||||||
omap4xxx_check_revision();
|
omap4xxx_check_revision();
|
||||||
omap4xxx_check_features();
|
omap4xxx_check_features();
|
||||||
|
omap4_cm_init();
|
||||||
omap4_pm_init_early();
|
omap4_pm_init_early();
|
||||||
omap44xx_prm_init();
|
omap44xx_prm_init();
|
||||||
omap44xx_voltagedomains_init();
|
omap44xx_voltagedomains_init();
|
||||||
|
@ -656,6 +660,7 @@ void __init omap5_init_early(void)
|
||||||
omap_cm_base_init();
|
omap_cm_base_init();
|
||||||
omap44xx_prm_init();
|
omap44xx_prm_init();
|
||||||
omap5xxx_check_revision();
|
omap5xxx_check_revision();
|
||||||
|
omap4_cm_init();
|
||||||
omap54xx_voltagedomains_init();
|
omap54xx_voltagedomains_init();
|
||||||
omap54xx_powerdomains_init();
|
omap54xx_powerdomains_init();
|
||||||
omap54xx_clockdomains_init();
|
omap54xx_clockdomains_init();
|
||||||
|
@ -687,6 +692,7 @@ void __init dra7xx_init_early(void)
|
||||||
omap_cm_base_init();
|
omap_cm_base_init();
|
||||||
omap44xx_prm_init();
|
omap44xx_prm_init();
|
||||||
dra7xxx_check_revision();
|
dra7xxx_check_revision();
|
||||||
|
omap4_cm_init();
|
||||||
dra7xx_powerdomains_init();
|
dra7xx_powerdomains_init();
|
||||||
dra7xx_clockdomains_init();
|
dra7xx_clockdomains_init();
|
||||||
dra7xx_hwmod_init();
|
dra7xx_hwmod_init();
|
||||||
|
|
Loading…
Reference in a new issue