hardware.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*
  2. * Copyright (C) 2009 ST-Ericsson.
  3. *
  4. * U8500 hardware definitions
  5. *
  6. * This file is licensed under the terms of the GNU General Public
  7. * License version 2. This program is licensed "as is" without any
  8. * warranty of any kind, whether express or implied.
  9. */
  10. #ifndef __MACH_HARDWARE_H
  11. #define __MACH_HARDWARE_H
  12. /* macros to get at IO space when running virtually
  13. * We dont map all the peripherals, let ioremap do
  14. * this for us. We map only very basic peripherals here.
  15. */
  16. #define U8500_IO_VIRTUAL 0xf0000000
  17. #define U8500_IO_PHYSICAL 0xa0000000
  18. /* this macro is used in assembly, so no cast */
  19. #define IO_ADDRESS(x) \
  20. (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL)
  21. /* typesafe io address */
  22. #define __io_address(n) __io(IO_ADDRESS(n))
  23. /*
  24. * Base address definitions for U8500 Onchip IPs. All the
  25. * peripherals are contained in a single 1 Mbyte region, with
  26. * AHB peripherals at the bottom and APB peripherals at the
  27. * top of the region. PER stands for PERIPHERAL region which
  28. * itself divided into sub regions.
  29. */
  30. #define U8500_PER3_BASE 0x80000000
  31. #define U8500_PER2_BASE 0x80110000
  32. #define U8500_PER1_BASE 0x80120000
  33. #define U8500_PER4_BASE 0x80150000
  34. #define U8500_PER6_BASE 0xa03c0000
  35. #define U8500_PER5_BASE 0xa03e0000
  36. #define U8500_PER7_BASE 0xa03d0000
  37. #define U8500_SVA_BASE 0xa0100000
  38. #define U8500_SIA_BASE 0xa0200000
  39. #define U8500_SGA_BASE 0xa0300000
  40. #define U8500_MCDE_BASE 0xa0350000
  41. #define U8500_DMA_BASE 0xa0362000
  42. #define U8500_SCU_BASE 0xa0410000
  43. #define U8500_GIC_CPU_BASE 0xa0410100
  44. #define U8500_TWD_BASE 0xa0410600
  45. #define U8500_GIC_DIST_BASE 0xa0411000
  46. #define U8500_L2CC_BASE 0xa0412000
  47. #define U8500_TWD_SIZE 0x100
  48. /* per7 base addressess */
  49. #define U8500_CR_BASE (U8500_PER7_BASE + 0x8000)
  50. #define U8500_MTU0_BASE (U8500_PER7_BASE + 0xa000)
  51. #define U8500_MTU1_BASE (U8500_PER7_BASE + 0xb000)
  52. #define U8500_TZPC0_BASE (U8500_PER7_BASE + 0xc000)
  53. #define U8500_CLKRST7_BASE (U8500_PER7_BASE + 0xf000)
  54. /* per6 base addressess */
  55. #define U8500_RNG_BASE (U8500_PER6_BASE + 0x0000)
  56. #define U8500_PKA_BASE (U8500_PER6_BASE + 0x1000)
  57. #define U8500_PKAM_BASE (U8500_PER6_BASE + 0x2000)
  58. #define U8500_CRYPTO0_BASE (U8500_PER6_BASE + 0xa000)
  59. #define U8500_CRYPTO1_BASE (U8500_PER6_BASE + 0xb000)
  60. #define U8500_CLKRST6_BASE (U8500_PER7_BASE + 0xf000)
  61. /* per5 base addressess */
  62. #define U8500_USBOTG_BASE (U8500_PER5_BASE + 0x00000)
  63. #define U8500_GPIO5_BASE (U8500_PER5_BASE + 0x1e000)
  64. #define U8500_CLKRST5_BASE (U8500_PER7_BASE + 0x1f000)
  65. /* per4 base addressess */
  66. #define U8500_BACKUPRAM0_BASE (U8500_PER4_BASE + 0x0000)
  67. #define U8500_BACKUPRAM1_BASE (U8500_PER4_BASE + 0x1000)
  68. #define U8500_RTT0_BASE (U8500_PER4_BASE + 0x2000)
  69. #define U8500_RTT1_BASE (U8500_PER4_BASE + 0x3000)
  70. #define U8500_RTC_BASE (U8500_PER4_BASE + 0x4000)
  71. #define U8500_SCR_BASE (U8500_PER4_BASE + 0x5000)
  72. #define U8500_DMC_BASE (U8500_PER4_BASE + 0x6000)
  73. #define U8500_PRCMU_BASE (U8500_PER4_BASE + 0x7000)
  74. /* per3 base addressess */
  75. #define U8500_FSMC_BASE (U8500_PER3_BASE + 0x0000)
  76. #define U8500_SSP0_BASE (U8500_PER3_BASE + 0x2000)
  77. #define U8500_SSP1_BASE (U8500_PER3_BASE + 0x3000)
  78. #define U8500_I2C0_BASE (U8500_PER3_BASE + 0x4000)
  79. #define U8500_SDI2_BASE (U8500_PER3_BASE + 0x5000)
  80. #define U8500_SKE_BASE (U8500_PER3_BASE + 0x6000)
  81. #define U8500_UART2_BASE (U8500_PER3_BASE + 0x7000)
  82. #define U8500_SDI5_BASE (U8500_PER3_BASE + 0x8000)
  83. #define U8500_GPIO3_BASE (U8500_PER3_BASE + 0xe000)
  84. #define U8500_CLKRST3_BASE (U8500_PER7_BASE + 0xf000)
  85. /* per2 base addressess */
  86. #define U8500_I2C3_BASE (U8500_PER2_BASE + 0x0000)
  87. #define U8500_SPI2_BASE (U8500_PER2_BASE + 0x1000)
  88. #define U8500_SPI1_BASE (U8500_PER2_BASE + 0x2000)
  89. #define U8500_PWL_BASE (U8500_PER2_BASE + 0x3000)
  90. #define U8500_SDI4_BASE (U8500_PER2_BASE + 0x4000)
  91. #define U8500_MSP2_BASE (U8500_PER2_BASE + 0x7000)
  92. #define U8500_SDI1_BASE (U8500_PER2_BASE + 0x8000)
  93. #define U8500_SDI3_BASE (U8500_PER2_BASE + 0x9000)
  94. #define U8500_SPI0_BASE (U8500_PER2_BASE + 0xa000)
  95. #define U8500_HSIR_BASE (U8500_PER2_BASE + 0xb000)
  96. #define U8500_HSIT_BASE (U8500_PER2_BASE + 0xc000)
  97. #define U8500_GPIO2_BASE (U8500_PER2_BASE + 0xe000)
  98. #define U8500_CLKRST2_BASE (U8500_PER2_BASE + 0xf000)
  99. /* per1 base addresses */
  100. #define U8500_UART0_BASE (U8500_PER1_BASE + 0x0000)
  101. #define U8500_UART1_BASE (U8500_PER1_BASE + 0x1000)
  102. #define U8500_I2C1_BASE (U8500_PER1_BASE + 0x2000)
  103. #define U8500_MSP0_BASE (U8500_PER1_BASE + 0x3000)
  104. #define U8500_MSP1_BASE (U8500_PER1_BASE + 0x4000)
  105. #define U8500_SDI0_BASE (U8500_PER1_BASE + 0x6000)
  106. #define U8500_I2C2_BASE (U8500_PER1_BASE + 0x8000)
  107. #define U8500_SPI3_BASE (U8500_PER1_BASE + 0x9000)
  108. #define U8500_SLIM0_BASE (U8500_PER1_BASE + 0xa000)
  109. #define U8500_GPIO1_BASE (U8500_PER1_BASE + 0xe000)
  110. #define U8500_CLKRST1_BASE (U8500_PER2_BASE + 0xf000)
  111. /* ST-Ericsson modified pl022 id */
  112. #define SSP_PER_ID 0x01080022
  113. #endif /* __MACH_HARDWARE_H */