2005-11-10 17:26:53 +03:00
/*
2008-08-05 19:14:15 +04:00
* arch / arm / plat - omap / include / mach / sram . h
2005-11-10 17:26:53 +03:00
*
* Interface for functions that need to be run in internal SRAM
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef __ARCH_ARM_OMAP_SRAM_H
# define __ARCH_ARM_OMAP_SRAM_H
2010-12-18 18:44:42 +03:00
# ifndef __ASSEMBLY__
2011-02-02 18:38:06 +03:00
# include <asm/fncpy.h>
extern void * omap_sram_push_address ( unsigned long size ) ;
/* Macro to push a function to the internal SRAM, using the fncpy API */
# define omap_sram_push(funcp, size) ({ \
typeof ( & ( funcp ) ) _res = NULL ; \
void * _sram_address = omap_sram_push_address ( size ) ; \
if ( _sram_address ) \
_res = fncpy ( _sram_address , & ( funcp ) , size ) ; \
_res ; \
} )
2005-11-10 17:26:53 +03:00
extern void omap_sram_reprogram_clock ( u32 dpllctl , u32 ckctl ) ;
extern void omap2_sram_ddr_init ( u32 * slow_dll_ctrl , u32 fast_dll_ctrl ,
u32 base_cs , u32 force_unlock ) ;
extern void omap2_sram_reprogram_sdrc ( u32 perf_level , u32 dll_val ,
u32 mem_type ) ;
extern u32 omap2_set_prcm ( u32 dpll_ctrl_val , u32 sdrc_rfr_val , int bypass ) ;
2009-07-25 05:43:25 +04:00
extern u32 omap3_configure_core_dpll (
u32 m2 , u32 unlock_dll , u32 f , u32 inc ,
u32 sdrc_rfr_ctrl_0 , u32 sdrc_actim_ctrl_a_0 ,
u32 sdrc_actim_ctrl_b_0 , u32 sdrc_mr_0 ,
u32 sdrc_rfr_ctrl_1 , u32 sdrc_actim_ctrl_a_1 ,
u32 sdrc_actim_ctrl_b_1 , u32 sdrc_mr_1 ) ;
2008-09-26 16:20:07 +04:00
extern void omap3_sram_restore_context ( void ) ;
2008-10-09 18:51:41 +04:00
2005-11-10 17:26:53 +03:00
/* Do not use these */
2008-07-03 13:24:38 +04:00
extern void omap1_sram_reprogram_clock ( u32 ckctl , u32 dpllctl ) ;
extern unsigned long omap1_sram_reprogram_clock_sz ;
2005-11-10 17:26:53 +03:00
2008-07-03 13:24:38 +04:00
extern void omap24xx_sram_reprogram_clock ( u32 ckctl , u32 dpllctl ) ;
extern unsigned long omap24xx_sram_reprogram_clock_sz ;
2005-11-10 17:26:53 +03:00
2008-07-03 13:24:38 +04:00
extern void omap242x_sram_ddr_init ( u32 * slow_dll_ctrl , u32 fast_dll_ctrl ,
u32 base_cs , u32 force_unlock ) ;
extern unsigned long omap242x_sram_ddr_init_sz ;
2005-11-10 17:26:53 +03:00
2008-07-03 13:24:38 +04:00
extern u32 omap242x_sram_set_prcm ( u32 dpll_ctrl_val , u32 sdrc_rfr_val ,
int bypass ) ;
extern unsigned long omap242x_sram_set_prcm_sz ;
extern void omap242x_sram_reprogram_sdrc ( u32 perf_level , u32 dll_val ,
u32 mem_type ) ;
extern unsigned long omap242x_sram_reprogram_sdrc_sz ;
extern void omap243x_sram_ddr_init ( u32 * slow_dll_ctrl , u32 fast_dll_ctrl ,
u32 base_cs , u32 force_unlock ) ;
extern unsigned long omap243x_sram_ddr_init_sz ;
extern u32 omap243x_sram_set_prcm ( u32 dpll_ctrl_val , u32 sdrc_rfr_val ,
int bypass ) ;
extern unsigned long omap243x_sram_set_prcm_sz ;
extern void omap243x_sram_reprogram_sdrc ( u32 perf_level , u32 dll_val ,
u32 mem_type ) ;
extern unsigned long omap243x_sram_reprogram_sdrc_sz ;
2005-11-10 17:26:53 +03:00
2009-07-25 05:43:25 +04:00
extern u32 omap3_sram_configure_core_dpll (
u32 m2 , u32 unlock_dll , u32 f , u32 inc ,
u32 sdrc_rfr_ctrl_0 , u32 sdrc_actim_ctrl_a_0 ,
u32 sdrc_actim_ctrl_b_0 , u32 sdrc_mr_0 ,
u32 sdrc_rfr_ctrl_1 , u32 sdrc_actim_ctrl_a_1 ,
u32 sdrc_actim_ctrl_b_1 , u32 sdrc_mr_1 ) ;
2008-10-09 18:51:41 +04:00
extern unsigned long omap3_sram_configure_core_dpll_sz ;
2008-09-26 16:19:14 +04:00
# ifdef CONFIG_PM
extern void omap_push_sram_idle ( void ) ;
# else
static inline void omap_push_sram_idle ( void ) { }
# endif /* CONFIG_PM */
2010-12-18 18:44:42 +03:00
# endif /* __ASSEMBLY__ */
/*
* OMAP2 + : define the SRAM PA addresses .
* Used by the SRAM management code and the idle sleep code .
*/
# define OMAP2_SRAM_PA 0x40200000
# define OMAP3_SRAM_PA 0x40200000
2011-06-26 05:04:31 +04:00
# ifdef CONFIG_OMAP4_ERRATA_I688
# define OMAP4_SRAM_PA 0x40304000
# define OMAP4_SRAM_VA 0xfe404000
# else
2010-12-18 18:44:42 +03:00
# define OMAP4_SRAM_PA 0x40300000
2011-06-26 05:04:31 +04:00
# endif
2012-03-06 04:11:01 +04:00
# define AM33XX_SRAM_PA 0x40300000
2005-11-10 17:26:53 +03:00
# endif