cm3xxx.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * OMAP2/3 Clock Management (CM) register definitions
  3. *
  4. * Copyright (C) 2007-2009 Texas Instruments, Inc.
  5. * Copyright (C) 2007-2010 Nokia Corporation
  6. * Paul Walmsley
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. *
  12. * The CM hardware modules on the OMAP2/3 are quite similar to each
  13. * other. The CM modules/instances on OMAP4 are quite different, so
  14. * they are handled in a separate file.
  15. */
  16. #ifndef __ARCH_ASM_MACH_OMAP2_CM3XXX_H
  17. #define __ARCH_ASM_MACH_OMAP2_CM3XXX_H
  18. #include "prcm-common.h"
  19. #include "cm2xxx_3xxx.h"
  20. #define OMAP34XX_CM_REGADDR(module, reg) \
  21. OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE + (module) + (reg))
  22. /*
  23. * OMAP3-specific global CM registers
  24. * Use cm_{read,write}_reg() with these registers.
  25. * These registers appear once per CM module.
  26. */
  27. #define OMAP3430_CM_SYSCONFIG 0x0010
  28. #define OMAP3430_CM_POLCTRL 0x009c
  29. #define OMAP3_CM_CLKOUT_CTRL_OFFSET 0x0070
  30. #define OMAP3430_CM_CLKOUT_CTRL OMAP_CM_REGADDR(OMAP3430_CCR_MOD, 0x0070)
  31. /*
  32. * Module specific CM register offsets from CM_BASE + domain offset
  33. * Use cm_{read,write}_mod_reg() with these registers.
  34. * These register offsets generally appear in more than one PRCM submodule.
  35. */
  36. /* OMAP3-specific register offsets */
  37. #define OMAP3430_CM_CLKEN_PLL 0x0004
  38. #define OMAP3430ES2_CM_CLKEN2 0x0004
  39. #define OMAP3430ES2_CM_FCLKEN3 0x0008
  40. #define OMAP3430_CM_IDLEST_PLL CM_IDLEST2
  41. #define OMAP3430_CM_AUTOIDLE_PLL CM_AUTOIDLE2
  42. #define OMAP3430ES2_CM_AUTOIDLE2_PLL CM_AUTOIDLE2
  43. #define OMAP3430_CM_CLKSEL1 CM_CLKSEL
  44. #define OMAP3430_CM_CLKSEL1_PLL CM_CLKSEL
  45. #define OMAP3430_CM_CLKSEL2_PLL CM_CLKSEL2
  46. #define OMAP3430_CM_SLEEPDEP CM_CLKSEL2
  47. #define OMAP3430_CM_CLKSEL3 OMAP2_CM_CLKSTCTRL
  48. #define OMAP3430_CM_CLKSTST 0x004c
  49. #define OMAP3430ES2_CM_CLKSEL4 0x004c
  50. #define OMAP3430ES2_CM_CLKSEL5 0x0050
  51. #define OMAP3430_CM_CLKSEL2_EMU 0x0050
  52. #define OMAP3430_CM_CLKSEL3_EMU 0x0054
  53. /* CM_IDLEST bit field values to indicate deasserted IdleReq */
  54. #define OMAP34XX_CM_IDLEST_VAL 1
  55. #ifndef __ASSEMBLER__
  56. extern void omap3_cm_save_context(void);
  57. extern void omap3_cm_restore_context(void);
  58. extern void omap3_cm_save_scratchpad_contents(u32 *ptr);
  59. int __init omap3xxx_cm_init(const struct omap_prcm_init_data *data);
  60. #endif
  61. #endif