map.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /*
  2. * arch/arm/mach-w90x900/include/mach/map.h
  3. *
  4. * Copyright (c) 2008 Nuvoton technology corporation.
  5. *
  6. * Wan ZongShun <mcuos.com@gmail.com>
  7. *
  8. * Based on arch/arm/mach-s3c2410/include/mach/map.h
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation;version 2 of the License.
  13. *
  14. */
  15. #ifndef __ASM_ARCH_MAP_H
  16. #define __ASM_ARCH_MAP_H
  17. #ifndef __ASSEMBLY__
  18. #define W90X900_ADDR(x) ((void __iomem *)(0xF0000000 + (x)))
  19. #else
  20. #define W90X900_ADDR(x) (0xF0000000 + (x))
  21. #endif
  22. #define AHB_IO_BASE 0xB0000000
  23. #define APB_IO_BASE 0xB8000000
  24. #define CLOCKPW_BASE (APB_IO_BASE+0x200)
  25. #define AIC_IO_BASE (APB_IO_BASE+0x2000)
  26. #define TIMER_IO_BASE (APB_IO_BASE+0x1000)
  27. /*
  28. * interrupt controller is the first thing we put in, to make
  29. * the assembly code for the irq detection easier
  30. */
  31. #define W90X900_VA_IRQ W90X900_ADDR(0x00000000)
  32. #define W90X900_PA_IRQ (0xB8002000)
  33. #define W90X900_SZ_IRQ SZ_4K
  34. #define W90X900_VA_GCR W90X900_ADDR(0x08002000)
  35. #define W90X900_PA_GCR (0xB0000000)
  36. #define W90X900_SZ_GCR SZ_4K
  37. /* Clock and Power management */
  38. #define W90X900_VA_CLKPWR (W90X900_VA_GCR+0x200)
  39. #define W90X900_PA_CLKPWR (0xB0000200)
  40. #define W90X900_SZ_CLKPWR SZ_4K
  41. /* EBI management */
  42. #define W90X900_VA_EBI W90X900_ADDR(0x00001000)
  43. #define W90X900_PA_EBI (0xB0001000)
  44. #define W90X900_SZ_EBI SZ_4K
  45. /* UARTs */
  46. #define W90X900_VA_UART W90X900_ADDR(0x08000000)
  47. #define W90X900_PA_UART (0xB8000000)
  48. #define W90X900_SZ_UART SZ_4K
  49. /* Timers */
  50. #define W90X900_VA_TIMER W90X900_ADDR(0x08001000)
  51. #define W90X900_PA_TIMER (0xB8001000)
  52. #define W90X900_SZ_TIMER SZ_4K
  53. /* GPIO ports */
  54. #define W90X900_VA_GPIO W90X900_ADDR(0x08003000)
  55. #define W90X900_PA_GPIO (0xB8003000)
  56. #define W90X900_SZ_GPIO SZ_4K
  57. /* GDMA control */
  58. #define W90X900_VA_GDMA W90X900_ADDR(0x00004000)
  59. #define W90X900_PA_GDMA (0xB0004000)
  60. #define W90X900_SZ_GDMA SZ_4K
  61. /* USB host controller*/
  62. #define W90X900_VA_USBEHCIHOST W90X900_ADDR(0x00005000)
  63. #define W90X900_PA_USBEHCIHOST (0xB0005000)
  64. #define W90X900_SZ_USBEHCIHOST SZ_4K
  65. #define W90X900_VA_USBOHCIHOST W90X900_ADDR(0x00007000)
  66. #define W90X900_PA_USBOHCIHOST (0xB0007000)
  67. #define W90X900_SZ_USBOHCIHOST SZ_4K
  68. /* I2C hardware controller */
  69. #define W90X900_VA_I2C W90X900_ADDR(0x08006000)
  70. #define W90X900_PA_I2C (0xB8006000)
  71. #define W90X900_SZ_I2C SZ_4K
  72. /* Keypad Interface*/
  73. #define W90X900_VA_KPI W90X900_ADDR(0x08008000)
  74. #define W90X900_PA_KPI (0xB8008000)
  75. #define W90X900_SZ_KPI SZ_4K
  76. /* Smart card host*/
  77. #define W90X900_VA_SC W90X900_ADDR(0x08005000)
  78. #define W90X900_PA_SC (0xB8005000)
  79. #define W90X900_SZ_SC SZ_4K
  80. /* LCD controller*/
  81. #define W90X900_VA_LCD W90X900_ADDR(0x00008000)
  82. #define W90X900_PA_LCD (0xB0008000)
  83. #define W90X900_SZ_LCD SZ_4K
  84. /* 2D controller*/
  85. #define W90X900_VA_GE W90X900_ADDR(0x0000B000)
  86. #define W90X900_PA_GE (0xB000B000)
  87. #define W90X900_SZ_GE SZ_4K
  88. /* ATAPI */
  89. #define W90X900_VA_ATAPI W90X900_ADDR(0x0000A000)
  90. #define W90X900_PA_ATAPI (0xB000A000)
  91. #define W90X900_SZ_ATAPI SZ_4K
  92. /* ADC */
  93. #define W90X900_VA_ADC W90X900_ADDR(0x0800A000)
  94. #define W90X900_PA_ADC (0xB800A000)
  95. #define W90X900_SZ_ADC SZ_4K
  96. /* PS2 Interface*/
  97. #define W90X900_VA_PS2 W90X900_ADDR(0x08009000)
  98. #define W90X900_PA_PS2 (0xB8009000)
  99. #define W90X900_SZ_PS2 SZ_4K
  100. /* RTC */
  101. #define W90X900_VA_RTC W90X900_ADDR(0x08004000)
  102. #define W90X900_PA_RTC (0xB8004000)
  103. #define W90X900_SZ_RTC SZ_4K
  104. /* Pulse Width Modulation(PWM) Registers */
  105. #define W90X900_VA_PWM W90X900_ADDR(0x08007000)
  106. #define W90X900_PA_PWM (0xB8007000)
  107. #define W90X900_SZ_PWM SZ_4K
  108. /* Audio Controller controller */
  109. #define W90X900_VA_ACTL W90X900_ADDR(0x00009000)
  110. #define W90X900_PA_ACTL (0xB0009000)
  111. #define W90X900_SZ_ACTL SZ_4K
  112. /* DMA controller */
  113. #define W90X900_VA_DMA W90X900_ADDR(0x0000c000)
  114. #define W90X900_PA_DMA (0xB000c000)
  115. #define W90X900_SZ_DMA SZ_4K
  116. /* FMI controller */
  117. #define W90X900_VA_FMI W90X900_ADDR(0x0000d000)
  118. #define W90X900_PA_FMI (0xB000d000)
  119. #define W90X900_SZ_FMI SZ_4K
  120. /* USB Device port */
  121. #define W90X900_VA_USBDEV W90X900_ADDR(0x00006000)
  122. #define W90X900_PA_USBDEV (0xB0006000)
  123. #define W90X900_SZ_USBDEV SZ_4K
  124. /* External MAC control*/
  125. #define W90X900_VA_EMC W90X900_ADDR(0x00003000)
  126. #define W90X900_PA_EMC (0xB0003000)
  127. #define W90X900_SZ_EMC SZ_4K
  128. #endif /* __ASM_ARCH_MAP_H */