sram.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. * arch/arm/plat-omap/include/mach/sram.h
  3. *
  4. * Interface for functions that need to be run in internal SRAM
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. #ifndef __ARCH_ARM_OMAP_SRAM_H
  11. #define __ARCH_ARM_OMAP_SRAM_H
  12. #ifndef __ASSEMBLY__
  13. extern void * omap_sram_push(void * start, unsigned long size);
  14. extern void omap_sram_reprogram_clock(u32 dpllctl, u32 ckctl);
  15. extern void omap2_sram_ddr_init(u32 *slow_dll_ctrl, u32 fast_dll_ctrl,
  16. u32 base_cs, u32 force_unlock);
  17. extern void omap2_sram_reprogram_sdrc(u32 perf_level, u32 dll_val,
  18. u32 mem_type);
  19. extern u32 omap2_set_prcm(u32 dpll_ctrl_val, u32 sdrc_rfr_val, int bypass);
  20. extern u32 omap3_configure_core_dpll(
  21. u32 m2, u32 unlock_dll, u32 f, u32 inc,
  22. u32 sdrc_rfr_ctrl_0, u32 sdrc_actim_ctrl_a_0,
  23. u32 sdrc_actim_ctrl_b_0, u32 sdrc_mr_0,
  24. u32 sdrc_rfr_ctrl_1, u32 sdrc_actim_ctrl_a_1,
  25. u32 sdrc_actim_ctrl_b_1, u32 sdrc_mr_1);
  26. extern void omap3_sram_restore_context(void);
  27. /* Do not use these */
  28. extern void omap1_sram_reprogram_clock(u32 ckctl, u32 dpllctl);
  29. extern unsigned long omap1_sram_reprogram_clock_sz;
  30. extern void omap24xx_sram_reprogram_clock(u32 ckctl, u32 dpllctl);
  31. extern unsigned long omap24xx_sram_reprogram_clock_sz;
  32. extern void omap242x_sram_ddr_init(u32 *slow_dll_ctrl, u32 fast_dll_ctrl,
  33. u32 base_cs, u32 force_unlock);
  34. extern unsigned long omap242x_sram_ddr_init_sz;
  35. extern u32 omap242x_sram_set_prcm(u32 dpll_ctrl_val, u32 sdrc_rfr_val,
  36. int bypass);
  37. extern unsigned long omap242x_sram_set_prcm_sz;
  38. extern void omap242x_sram_reprogram_sdrc(u32 perf_level, u32 dll_val,
  39. u32 mem_type);
  40. extern unsigned long omap242x_sram_reprogram_sdrc_sz;
  41. extern void omap243x_sram_ddr_init(u32 *slow_dll_ctrl, u32 fast_dll_ctrl,
  42. u32 base_cs, u32 force_unlock);
  43. extern unsigned long omap243x_sram_ddr_init_sz;
  44. extern u32 omap243x_sram_set_prcm(u32 dpll_ctrl_val, u32 sdrc_rfr_val,
  45. int bypass);
  46. extern unsigned long omap243x_sram_set_prcm_sz;
  47. extern void omap243x_sram_reprogram_sdrc(u32 perf_level, u32 dll_val,
  48. u32 mem_type);
  49. extern unsigned long omap243x_sram_reprogram_sdrc_sz;
  50. extern u32 omap3_sram_configure_core_dpll(
  51. u32 m2, u32 unlock_dll, u32 f, u32 inc,
  52. u32 sdrc_rfr_ctrl_0, u32 sdrc_actim_ctrl_a_0,
  53. u32 sdrc_actim_ctrl_b_0, u32 sdrc_mr_0,
  54. u32 sdrc_rfr_ctrl_1, u32 sdrc_actim_ctrl_a_1,
  55. u32 sdrc_actim_ctrl_b_1, u32 sdrc_mr_1);
  56. extern unsigned long omap3_sram_configure_core_dpll_sz;
  57. #ifdef CONFIG_PM
  58. extern void omap_push_sram_idle(void);
  59. #else
  60. static inline void omap_push_sram_idle(void) {}
  61. #endif /* CONFIG_PM */
  62. #endif /* __ASSEMBLY__ */
  63. /*
  64. * OMAP2+: define the SRAM PA addresses.
  65. * Used by the SRAM management code and the idle sleep code.
  66. */
  67. #define OMAP2_SRAM_PA 0x40200000
  68. #define OMAP3_SRAM_PA 0x40200000
  69. #define OMAP4_SRAM_PA 0x40300000
  70. #endif