pxa-regs.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. * arch/arm/mach-pxa/include/mach/pxa-regs.h
  3. *
  4. * Author: Nicolas Pitre
  5. * Created: Jun 15, 2001
  6. * Copyright: MontaVista Software Inc.
  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. #ifndef __PXA_REGS_H
  13. #define __PXA_REGS_H
  14. #include <mach/hardware.h>
  15. /*
  16. * PXA Chip selects
  17. */
  18. #define PXA_CS0_PHYS 0x00000000
  19. #define PXA_CS1_PHYS 0x04000000
  20. #define PXA_CS2_PHYS 0x08000000
  21. #define PXA_CS3_PHYS 0x0C000000
  22. #define PXA_CS4_PHYS 0x10000000
  23. #define PXA_CS5_PHYS 0x14000000
  24. /*
  25. * Personal Computer Memory Card International Association (PCMCIA) sockets
  26. */
  27. #define PCMCIAPrtSp 0x04000000 /* PCMCIA Partition Space [byte] */
  28. #define PCMCIASp (4*PCMCIAPrtSp) /* PCMCIA Space [byte] */
  29. #define PCMCIAIOSp PCMCIAPrtSp /* PCMCIA I/O Space [byte] */
  30. #define PCMCIAAttrSp PCMCIAPrtSp /* PCMCIA Attribute Space [byte] */
  31. #define PCMCIAMemSp PCMCIAPrtSp /* PCMCIA Memory Space [byte] */
  32. #define PCMCIA0Sp PCMCIASp /* PCMCIA 0 Space [byte] */
  33. #define PCMCIA0IOSp PCMCIAIOSp /* PCMCIA 0 I/O Space [byte] */
  34. #define PCMCIA0AttrSp PCMCIAAttrSp /* PCMCIA 0 Attribute Space [byte] */
  35. #define PCMCIA0MemSp PCMCIAMemSp /* PCMCIA 0 Memory Space [byte] */
  36. #define PCMCIA1Sp PCMCIASp /* PCMCIA 1 Space [byte] */
  37. #define PCMCIA1IOSp PCMCIAIOSp /* PCMCIA 1 I/O Space [byte] */
  38. #define PCMCIA1AttrSp PCMCIAAttrSp /* PCMCIA 1 Attribute Space [byte] */
  39. #define PCMCIA1MemSp PCMCIAMemSp /* PCMCIA 1 Memory Space [byte] */
  40. #define _PCMCIA(Nb) /* PCMCIA [0..1] */ \
  41. (0x20000000 + (Nb)*PCMCIASp)
  42. #define _PCMCIAIO(Nb) _PCMCIA (Nb) /* PCMCIA I/O [0..1] */
  43. #define _PCMCIAAttr(Nb) /* PCMCIA Attribute [0..1] */ \
  44. (_PCMCIA (Nb) + 2*PCMCIAPrtSp)
  45. #define _PCMCIAMem(Nb) /* PCMCIA Memory [0..1] */ \
  46. (_PCMCIA (Nb) + 3*PCMCIAPrtSp)
  47. #define _PCMCIA0 _PCMCIA (0) /* PCMCIA 0 */
  48. #define _PCMCIA0IO _PCMCIAIO (0) /* PCMCIA 0 I/O */
  49. #define _PCMCIA0Attr _PCMCIAAttr (0) /* PCMCIA 0 Attribute */
  50. #define _PCMCIA0Mem _PCMCIAMem (0) /* PCMCIA 0 Memory */
  51. #define _PCMCIA1 _PCMCIA (1) /* PCMCIA 1 */
  52. #define _PCMCIA1IO _PCMCIAIO (1) /* PCMCIA 1 I/O */
  53. #define _PCMCIA1Attr _PCMCIAAttr (1) /* PCMCIA 1 Attribute */
  54. #define _PCMCIA1Mem _PCMCIAMem (1) /* PCMCIA 1 Memory */
  55. /*
  56. * Real Time Clock
  57. */
  58. #define RCNR __REG(0x40900000) /* RTC Count Register */
  59. #define RTAR __REG(0x40900004) /* RTC Alarm Register */
  60. #define RTSR __REG(0x40900008) /* RTC Status Register */
  61. #define RTTR __REG(0x4090000C) /* RTC Timer Trim Register */
  62. #define PIAR __REG(0x40900038) /* Periodic Interrupt Alarm Register */
  63. #define RTSR_PICE (1 << 15) /* Periodic interrupt count enable */
  64. #define RTSR_PIALE (1 << 14) /* Periodic interrupt Alarm enable */
  65. #define RTSR_HZE (1 << 3) /* HZ interrupt enable */
  66. #define RTSR_ALE (1 << 2) /* RTC alarm interrupt enable */
  67. #define RTSR_HZ (1 << 1) /* HZ rising-edge detected */
  68. #define RTSR_AL (1 << 0) /* RTC alarm detected */
  69. /*
  70. * OS Timer & Match Registers
  71. */
  72. #define OSMR0 __REG(0x40A00000) /* */
  73. #define OSMR1 __REG(0x40A00004) /* */
  74. #define OSMR2 __REG(0x40A00008) /* */
  75. #define OSMR3 __REG(0x40A0000C) /* */
  76. #define OSMR4 __REG(0x40A00080) /* */
  77. #define OSCR __REG(0x40A00010) /* OS Timer Counter Register */
  78. #define OSCR4 __REG(0x40A00040) /* OS Timer Counter Register */
  79. #define OMCR4 __REG(0x40A000C0) /* */
  80. #define OSSR __REG(0x40A00014) /* OS Timer Status Register */
  81. #define OWER __REG(0x40A00018) /* OS Timer Watchdog Enable Register */
  82. #define OIER __REG(0x40A0001C) /* OS Timer Interrupt Enable Register */
  83. #define OSSR_M3 (1 << 3) /* Match status channel 3 */
  84. #define OSSR_M2 (1 << 2) /* Match status channel 2 */
  85. #define OSSR_M1 (1 << 1) /* Match status channel 1 */
  86. #define OSSR_M0 (1 << 0) /* Match status channel 0 */
  87. #define OWER_WME (1 << 0) /* Watchdog Match Enable */
  88. #define OIER_E3 (1 << 3) /* Interrupt enable channel 3 */
  89. #define OIER_E2 (1 << 2) /* Interrupt enable channel 2 */
  90. #define OIER_E1 (1 << 1) /* Interrupt enable channel 1 */
  91. #define OIER_E0 (1 << 0) /* Interrupt enable channel 0 */
  92. /*
  93. * Interrupt Controller
  94. */
  95. #define ICIP __REG(0x40D00000) /* Interrupt Controller IRQ Pending Register */
  96. #define ICMR __REG(0x40D00004) /* Interrupt Controller Mask Register */
  97. #define ICLR __REG(0x40D00008) /* Interrupt Controller Level Register */
  98. #define ICFP __REG(0x40D0000C) /* Interrupt Controller FIQ Pending Register */
  99. #define ICPR __REG(0x40D00010) /* Interrupt Controller Pending Register */
  100. #define ICCR __REG(0x40D00014) /* Interrupt Controller Control Register */
  101. #define ICIP2 __REG(0x40D0009C) /* Interrupt Controller IRQ Pending Register 2 */
  102. #define ICMR2 __REG(0x40D000A0) /* Interrupt Controller Mask Register 2 */
  103. #define ICLR2 __REG(0x40D000A4) /* Interrupt Controller Level Register 2 */
  104. #define ICFP2 __REG(0x40D000A8) /* Interrupt Controller FIQ Pending Register 2 */
  105. #define ICPR2 __REG(0x40D000AC) /* Interrupt Controller Pending Register 2 */
  106. #endif