board-trout.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /* linux/arch/arm/mach-msm/board-trout.h
  2. ** Author: Brian Swetland <swetland@google.com>
  3. */
  4. #ifndef __ARCH_ARM_MACH_MSM_BOARD_TROUT_H
  5. #define __ARCH_ARM_MACH_MSM_BOARD_TROUT_H
  6. #include <mach/board.h>
  7. #define MSM_SMI_BASE 0x00000000
  8. #define MSM_SMI_SIZE 0x00800000
  9. #define MSM_EBI_BASE 0x10000000
  10. #define MSM_EBI_SIZE 0x06e00000
  11. #define MSM_PMEM_GPU0_BASE 0x00000000
  12. #define MSM_PMEM_GPU0_SIZE 0x00700000
  13. #define MSM_PMEM_MDP_BASE 0x02000000
  14. #define MSM_PMEM_MDP_SIZE 0x00800000
  15. #define MSM_PMEM_ADSP_BASE 0x02800000
  16. #define MSM_PMEM_ADSP_SIZE 0x00800000
  17. #define MSM_PMEM_CAMERA_BASE 0x03000000
  18. #define MSM_PMEM_CAMERA_SIZE 0x00800000
  19. #define MSM_FB_BASE 0x03800000
  20. #define MSM_FB_SIZE 0x00100000
  21. #define MSM_LINUX_BASE MSM_EBI_BASE
  22. #define MSM_LINUX_SIZE 0x06500000
  23. #define MSM_PMEM_GPU1_SIZE 0x800000
  24. #define MSM_PMEM_GPU1_BASE (MSM_RAM_CONSOLE_BASE - MSM_PMEM_GPU1_SIZE)
  25. #define MSM_RAM_CONSOLE_BASE (MSM_EBI_BASE + 0x6d00000)
  26. #define MSM_RAM_CONSOLE_SIZE (128 * SZ_1K)
  27. #if (MSM_FB_BASE + MSM_FB_SIZE) >= (MSM_PMEM_GPU1_BASE)
  28. #error invalid memory map
  29. #endif
  30. #define DECLARE_MSM_IOMAP
  31. #include <mach/msm_iomap.h>
  32. #define TROUT_4_BALL_UP_0 1
  33. #define TROUT_4_BALL_LEFT_0 18
  34. #define TROUT_4_BALL_DOWN_0 57
  35. #define TROUT_4_BALL_RIGHT_0 91
  36. #define TROUT_5_BALL_UP_0 94
  37. #define TROUT_5_BALL_LEFT_0 18
  38. #define TROUT_5_BALL_DOWN_0 90
  39. #define TROUT_5_BALL_RIGHT_0 19
  40. #define TROUT_POWER_KEY 20
  41. #define TROUT_4_TP_LS_EN 19
  42. #define TROUT_5_TP_LS_EN 1
  43. #define TROUT_CPLD_BASE 0xE8100000
  44. #define TROUT_CPLD_START 0x98000000
  45. #define TROUT_CPLD_SIZE SZ_4K
  46. #define TROUT_GPIO_CABLE_IN1 (83)
  47. #define TROUT_GPIO_CABLE_IN2 (49)
  48. #define TROUT_GPIO_START (128)
  49. #define TROUT_GPIO_INT_MASK0_REG (0x0c)
  50. #define TROUT_GPIO_INT_STAT0_REG (0x0e)
  51. #define TROUT_GPIO_INT_MASK1_REG (0x14)
  52. #define TROUT_GPIO_INT_STAT1_REG (0x10)
  53. #define TROUT_GPIO_HAPTIC_PWM (28)
  54. #define TROUT_GPIO_PS_HOLD (25)
  55. #define TROUT_GPIO_MISC2_BASE (TROUT_GPIO_START + 0x00)
  56. #define TROUT_GPIO_MISC3_BASE (TROUT_GPIO_START + 0x08)
  57. #define TROUT_GPIO_MISC4_BASE (TROUT_GPIO_START + 0x10)
  58. #define TROUT_GPIO_MISC5_BASE (TROUT_GPIO_START + 0x18)
  59. #define TROUT_GPIO_INT2_BASE (TROUT_GPIO_START + 0x20)
  60. #define TROUT_GPIO_MISC1_BASE (TROUT_GPIO_START + 0x28)
  61. #define TROUT_GPIO_VIRTUAL_BASE (TROUT_GPIO_START + 0x30)
  62. #define TROUT_GPIO_INT5_BASE (TROUT_GPIO_START + 0x48)
  63. #define TROUT_GPIO_CHARGER_EN (TROUT_GPIO_MISC2_BASE + 0)
  64. #define TROUT_GPIO_ISET (TROUT_GPIO_MISC2_BASE + 1)
  65. #define TROUT_GPIO_H2W_DAT_DIR (TROUT_GPIO_MISC2_BASE + 2)
  66. #define TROUT_GPIO_H2W_CLK_DIR (TROUT_GPIO_MISC2_BASE + 3)
  67. #define TROUT_GPIO_H2W_DAT_GPO (TROUT_GPIO_MISC2_BASE + 4)
  68. #define TROUT_GPIO_H2W_CLK_GPO (TROUT_GPIO_MISC2_BASE + 5)
  69. #define TROUT_GPIO_H2W_SEL0 (TROUT_GPIO_MISC2_BASE + 6)
  70. #define TROUT_GPIO_H2W_SEL1 (TROUT_GPIO_MISC2_BASE + 7)
  71. #define TROUT_GPIO_SPOTLIGHT_EN (TROUT_GPIO_MISC3_BASE + 0)
  72. #define TROUT_GPIO_FLASH_EN (TROUT_GPIO_MISC3_BASE + 1)
  73. #define TROUT_GPIO_I2C_PULL (TROUT_GPIO_MISC3_BASE + 2)
  74. #define TROUT_GPIO_TP_I2C_PULL (TROUT_GPIO_MISC3_BASE + 3)
  75. #define TROUT_GPIO_TP_EN (TROUT_GPIO_MISC3_BASE + 4)
  76. #define TROUT_GPIO_JOG_EN (TROUT_GPIO_MISC3_BASE + 5)
  77. #define TROUT_GPIO_UI_LED_EN (TROUT_GPIO_MISC3_BASE + 6)
  78. #define TROUT_GPIO_QTKEY_LED_EN (TROUT_GPIO_MISC3_BASE + 7)
  79. #define TROUT_GPIO_VCM_PWDN (TROUT_GPIO_MISC4_BASE + 0)
  80. #define TROUT_GPIO_USB_H2W_SW (TROUT_GPIO_MISC4_BASE + 1)
  81. #define TROUT_GPIO_COMPASS_RST_N (TROUT_GPIO_MISC4_BASE + 2)
  82. #define TROUT_GPIO_HAPTIC_EN_UP (TROUT_GPIO_MISC4_BASE + 3)
  83. #define TROUT_GPIO_HAPTIC_EN_MAIN (TROUT_GPIO_MISC4_BASE + 4)
  84. #define TROUT_GPIO_USB_PHY_RST_N (TROUT_GPIO_MISC4_BASE + 5)
  85. #define TROUT_GPIO_WIFI_PA_RESETX (TROUT_GPIO_MISC4_BASE + 6)
  86. #define TROUT_GPIO_WIFI_EN (TROUT_GPIO_MISC4_BASE + 7)
  87. #define TROUT_GPIO_BT_32K_EN (TROUT_GPIO_MISC5_BASE + 0)
  88. #define TROUT_GPIO_MAC_32K_EN (TROUT_GPIO_MISC5_BASE + 1)
  89. #define TROUT_GPIO_MDDI_32K_EN (TROUT_GPIO_MISC5_BASE + 2)
  90. #define TROUT_GPIO_COMPASS_32K_EN (TROUT_GPIO_MISC5_BASE + 3)
  91. #define TROUT_GPIO_NAVI_ACT_N (TROUT_GPIO_INT2_BASE + 0)
  92. #define TROUT_GPIO_COMPASS_IRQ (TROUT_GPIO_INT2_BASE + 1)
  93. #define TROUT_GPIO_SLIDING_DET (TROUT_GPIO_INT2_BASE + 2)
  94. #define TROUT_GPIO_AUD_HSMIC_DET_N (TROUT_GPIO_INT2_BASE + 3)
  95. #define TROUT_GPIO_SD_DOOR_N (TROUT_GPIO_INT2_BASE + 4)
  96. #define TROUT_GPIO_CAM_BTN_STEP1_N (TROUT_GPIO_INT2_BASE + 5)
  97. #define TROUT_GPIO_CAM_BTN_STEP2_N (TROUT_GPIO_INT2_BASE + 6)
  98. #define TROUT_GPIO_TP_ATT_N (TROUT_GPIO_INT2_BASE + 7)
  99. #define TROUT_GPIO_BANK0_FIRST_INT_SOURCE (TROUT_GPIO_NAVI_ACT_N)
  100. #define TROUT_GPIO_BANK0_LAST_INT_SOURCE (TROUT_GPIO_TP_ATT_N)
  101. #define TROUT_GPIO_H2W_DAT_GPI (TROUT_GPIO_MISC1_BASE + 0)
  102. #define TROUT_GPIO_H2W_CLK_GPI (TROUT_GPIO_MISC1_BASE + 1)
  103. #define TROUT_GPIO_CPLD128_VER_0 (TROUT_GPIO_MISC1_BASE + 4)
  104. #define TROUT_GPIO_CPLD128_VER_1 (TROUT_GPIO_MISC1_BASE + 5)
  105. #define TROUT_GPIO_CPLD128_VER_2 (TROUT_GPIO_MISC1_BASE + 6)
  106. #define TROUT_GPIO_CPLD128_VER_3 (TROUT_GPIO_MISC1_BASE + 7)
  107. #define TROUT_GPIO_SDMC_CD_N (TROUT_GPIO_VIRTUAL_BASE + 0)
  108. #define TROUT_GPIO_END (TROUT_GPIO_SDMC_CD_N)
  109. #define TROUT_GPIO_BANK1_FIRST_INT_SOURCE (TROUT_GPIO_SDMC_CD_N)
  110. #define TROUT_GPIO_BANK1_LAST_INT_SOURCE (TROUT_GPIO_SDMC_CD_N)
  111. #define TROUT_GPIO_VIRTUAL_TO_REAL_OFFSET \
  112. (TROUT_GPIO_INT5_BASE - TROUT_GPIO_VIRTUAL_BASE)
  113. #define TROUT_INT_START (NR_MSM_IRQS + NR_GPIO_IRQS)
  114. #define TROUT_INT_BANK0_COUNT (8)
  115. #define TROUT_INT_BANK1_START (TROUT_INT_START + TROUT_INT_BANK0_COUNT)
  116. #define TROUT_INT_BANK1_COUNT (1)
  117. #define TROUT_INT_END (TROUT_INT_START + TROUT_INT_BANK0_COUNT + \
  118. TROUT_INT_BANK1_COUNT - 1)
  119. #define TROUT_GPIO_TO_INT(n) (((n) <= TROUT_GPIO_BANK0_LAST_INT_SOURCE) ? \
  120. (TROUT_INT_START - TROUT_GPIO_BANK0_FIRST_INT_SOURCE + (n)) : \
  121. (TROUT_INT_BANK1_START - TROUT_GPIO_BANK1_FIRST_INT_SOURCE + (n)))
  122. #define TROUT_INT_TO_BANK(n) ((n - TROUT_INT_START) / TROUT_INT_BANK0_COUNT)
  123. #define TROUT_INT_TO_MASK(n) (1U << ((n - TROUT_INT_START) & 7))
  124. #define TROUT_BANK_TO_MASK_REG(bank) \
  125. (bank ? TROUT_GPIO_INT_MASK1_REG : TROUT_GPIO_INT_MASK0_REG)
  126. #define TROUT_BANK_TO_STAT_REG(bank) \
  127. (bank ? TROUT_GPIO_INT_STAT1_REG : TROUT_GPIO_INT_STAT0_REG)
  128. #endif /* GUARD */