magician.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /*
  2. * GPIO and IRQ definitions for HTC Magician PDA phones
  3. *
  4. * Copyright (c) 2007 Philipp Zabel
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. *
  10. */
  11. #ifndef _MAGICIAN_H_
  12. #define _MAGICIAN_H_
  13. #include <asm/arch/irqs.h>
  14. #include <asm/arch/pxa2xx-gpio.h>
  15. /*
  16. * PXA GPIOs
  17. */
  18. #define GPIO0_MAGICIAN_KEY_POWER 0
  19. #define GPIO9_MAGICIAN_UNKNOWN 9
  20. #define GPIO10_MAGICIAN_GSM_IRQ 10
  21. #define GPIO11_MAGICIAN_GSM_OUT1 11
  22. #define GPIO13_MAGICIAN_CPLD_IRQ 13
  23. #define GPIO18_MAGICIAN_UNKNOWN 18
  24. #define GPIO22_MAGICIAN_VIBRA_EN 22
  25. #define GPIO26_MAGICIAN_GSM_POWER 26
  26. #define GPIO27_MAGICIAN_USBC_PUEN 27
  27. #define GPIO30_MAGICIAN_nCHARGE_EN 30
  28. #define GPIO37_MAGICIAN_KEY_HANGUP 37
  29. #define GPIO38_MAGICIAN_KEY_CONTACTS 38
  30. #define GPIO40_MAGICIAN_GSM_OUT2 40
  31. #define GPIO48_MAGICIAN_UNKNOWN 48
  32. #define GPIO56_MAGICIAN_UNKNOWN 56
  33. #define GPIO57_MAGICIAN_CAM_RESET 57
  34. #define GPIO75_MAGICIAN_SAMSUNG_POWER 75
  35. #define GPIO83_MAGICIAN_nIR_EN 83
  36. #define GPIO86_MAGICIAN_GSM_RESET 86
  37. #define GPIO87_MAGICIAN_GSM_SELECT 87
  38. #define GPIO90_MAGICIAN_KEY_CALENDAR 90
  39. #define GPIO91_MAGICIAN_KEY_CAMERA 91
  40. #define GPIO93_MAGICIAN_KEY_UP 93
  41. #define GPIO94_MAGICIAN_KEY_DOWN 94
  42. #define GPIO95_MAGICIAN_KEY_LEFT 95
  43. #define GPIO96_MAGICIAN_KEY_RIGHT 96
  44. #define GPIO97_MAGICIAN_KEY_ENTER 97
  45. #define GPIO98_MAGICIAN_KEY_RECORD 98
  46. #define GPIO99_MAGICIAN_HEADPHONE_IN 99
  47. #define GPIO100_MAGICIAN_KEY_VOL_UP 100
  48. #define GPIO101_MAGICIAN_KEY_VOL_DOWN 101
  49. #define GPIO102_MAGICIAN_KEY_PHONE 102
  50. #define GPIO103_MAGICIAN_LED_KP 103
  51. #define GPIO104_MAGICIAN_LCD_POWER_1 104
  52. #define GPIO105_MAGICIAN_LCD_POWER_2 105
  53. #define GPIO106_MAGICIAN_LCD_POWER_3 106
  54. #define GPIO107_MAGICIAN_DS1WM_IRQ 107
  55. #define GPIO108_MAGICIAN_GSM_READY 108
  56. #define GPIO114_MAGICIAN_UNKNOWN 114
  57. #define GPIO115_MAGICIAN_nPEN_IRQ 115
  58. #define GPIO116_MAGICIAN_nCAM_EN 116
  59. #define GPIO119_MAGICIAN_UNKNOWN 119
  60. #define GPIO120_MAGICIAN_UNKNOWN 120
  61. /*
  62. * PXA GPIO alternate function mode & direction
  63. */
  64. #define GPIO0_MAGICIAN_KEY_POWER_MD (0 | GPIO_IN)
  65. #define GPIO9_MAGICIAN_UNKNOWN_MD (9 | GPIO_IN)
  66. #define GPIO10_MAGICIAN_GSM_IRQ_MD (10 | GPIO_IN)
  67. #define GPIO11_MAGICIAN_GSM_OUT1_MD (11 | GPIO_OUT)
  68. #define GPIO13_MAGICIAN_CPLD_IRQ_MD (13 | GPIO_IN)
  69. #define GPIO18_MAGICIAN_UNKNOWN_MD (18 | GPIO_OUT)
  70. #define GPIO22_MAGICIAN_VIBRA_EN_MD (22 | GPIO_OUT)
  71. #define GPIO26_MAGICIAN_GSM_POWER_MD (26 | GPIO_OUT)
  72. #define GPIO27_MAGICIAN_USBC_PUEN_MD (27 | GPIO_OUT)
  73. #define GPIO30_MAGICIAN_nCHARGE_EN_MD (30 | GPIO_OUT)
  74. #define GPIO37_MAGICIAN_KEY_HANGUP_MD (37 | GPIO_OUT)
  75. #define GPIO38_MAGICIAN_KEY_CONTACTS_MD (38 | GPIO_OUT)
  76. #define GPIO40_MAGICIAN_GSM_OUT2_MD (40 | GPIO_OUT)
  77. #define GPIO48_MAGICIAN_UNKNOWN_MD (48 | GPIO_OUT)
  78. #define GPIO56_MAGICIAN_UNKNOWN_MD (56 | GPIO_OUT)
  79. #define GPIO57_MAGICIAN_CAM_RESET_MD (57 | GPIO_OUT)
  80. #define GPIO75_MAGICIAN_SAMSUNG_POWER_MD (75 | GPIO_OUT)
  81. #define GPIO83_MAGICIAN_nIR_EN_MD (83 | GPIO_OUT)
  82. #define GPIO86_MAGICIAN_GSM_RESET_MD (86 | GPIO_OUT)
  83. #define GPIO87_MAGICIAN_GSM_SELECT_MD (87 | GPIO_OUT)
  84. #define GPIO90_MAGICIAN_KEY_CALENDAR_MD (90 | GPIO_OUT)
  85. #define GPIO91_MAGICIAN_KEY_CAMERA_MD (91 | GPIO_OUT)
  86. #define GPIO93_MAGICIAN_KEY_UP_MD (93 | GPIO_IN)
  87. #define GPIO94_MAGICIAN_KEY_DOWN_MD (94 | GPIO_IN)
  88. #define GPIO95_MAGICIAN_KEY_LEFT_MD (95 | GPIO_IN)
  89. #define GPIO96_MAGICIAN_KEY_RIGHT_MD (96 | GPIO_IN)
  90. #define GPIO97_MAGICIAN_KEY_ENTER_MD (97 | GPIO_IN)
  91. #define GPIO98_MAGICIAN_KEY_RECORD_MD (98 | GPIO_IN)
  92. #define GPIO99_MAGICIAN_HEADPHONE_IN_MD (99 | GPIO_IN)
  93. #define GPIO100_MAGICIAN_KEY_VOL_UP_MD (100 | GPIO_IN)
  94. #define GPIO101_MAGICIAN_KEY_VOL_DOWN_MD (101 | GPIO_IN)
  95. #define GPIO102_MAGICIAN_KEY_PHONE_MD (102 | GPIO_IN)
  96. #define GPIO103_MAGICIAN_LED_KP_MD (103 | GPIO_OUT)
  97. #define GPIO104_MAGICIAN_LCD_POWER_1_MD (104 | GPIO_OUT)
  98. #define GPIO105_MAGICIAN_LCD_POWER_2_MD (105 | GPIO_OUT)
  99. #define GPIO106_MAGICIAN_LCD_POWER_3_MD (106 | GPIO_OUT)
  100. #define GPIO107_MAGICIAN_DS1WM_IRQ_MD (107 | GPIO_IN)
  101. #define GPIO108_MAGICIAN_GSM_READY_MD (108 | GPIO_IN)
  102. #define GPIO114_MAGICIAN_UNKNOWN_MD (114 | GPIO_OUT)
  103. #define GPIO115_MAGICIAN_nPEN_IRQ_MD (115 | GPIO_IN)
  104. #define GPIO116_MAGICIAN_nCAM_EN_MD (116 | GPIO_OUT)
  105. #define GPIO119_MAGICIAN_UNKNOWN_MD (119 | GPIO_OUT)
  106. #define GPIO120_MAGICIAN_UNKNOWN_MD (120 | GPIO_OUT)
  107. /*
  108. * CPLD IRQs
  109. */
  110. #define IRQ_MAGICIAN_SD (IRQ_BOARD_START + 0)
  111. #define IRQ_MAGICIAN_EP (IRQ_BOARD_START + 1)
  112. #define IRQ_MAGICIAN_BT (IRQ_BOARD_START + 2)
  113. #define IRQ_MAGICIAN_AC (IRQ_BOARD_START + 3)
  114. /*
  115. * CPLD EGPIOs
  116. */
  117. #define MAGICIAN_EGPIO_BASE 0x80 /* GPIO_BOARD_START */
  118. #define MAGICIAN_EGPIO(reg,bit) \
  119. (MAGICIAN_EGPIO_BASE + 8*reg + bit)
  120. /* output */
  121. #define EGPIO_MAGICIAN_TOPPOLY_POWER MAGICIAN_EGPIO(0, 2)
  122. #define EGPIO_MAGICIAN_LED_POWER MAGICIAN_EGPIO(0, 5)
  123. #define EGPIO_MAGICIAN_GSM_RESET MAGICIAN_EGPIO(0, 6)
  124. #define EGPIO_MAGICIAN_LCD_POWER MAGICIAN_EGPIO(0, 7)
  125. #define EGPIO_MAGICIAN_SPK_POWER MAGICIAN_EGPIO(1, 0)
  126. #define EGPIO_MAGICIAN_EP_POWER MAGICIAN_EGPIO(1, 1)
  127. #define EGPIO_MAGICIAN_IN_SEL0 MAGICIAN_EGPIO(1, 2)
  128. #define EGPIO_MAGICIAN_IN_SEL1 MAGICIAN_EGPIO(1, 3)
  129. #define EGPIO_MAGICIAN_MIC_POWER MAGICIAN_EGPIO(1, 4)
  130. #define EGPIO_MAGICIAN_CODEC_RESET MAGICIAN_EGPIO(1, 5)
  131. #define EGPIO_MAGICIAN_CODEC_POWER MAGICIAN_EGPIO(1, 6)
  132. #define EGPIO_MAGICIAN_BL_POWER MAGICIAN_EGPIO(1, 7)
  133. #define EGPIO_MAGICIAN_SD_POWER MAGICIAN_EGPIO(2, 0)
  134. #define EGPIO_MAGICIAN_CARKIT_MIC MAGICIAN_EGPIO(2, 1)
  135. #define EGPIO_MAGICIAN_UNKNOWN_WAVEDEV_DLL MAGICIAN_EGPIO(2, 2)
  136. #define EGPIO_MAGICIAN_FLASH_VPP MAGICIAN_EGPIO(2, 3)
  137. #define EGPIO_MAGICIAN_BL_POWER2 MAGICIAN_EGPIO(2, 4)
  138. #define EGPIO_MAGICIAN_CHARGE_EN MAGICIAN_EGPIO(2, 5)
  139. #define EGPIO_MAGICIAN_GSM_POWER MAGICIAN_EGPIO(2, 7)
  140. /* input */
  141. #define EGPIO_MAGICIAN_CABLE_STATE_AC MAGICIAN_EGPIO(4, 0)
  142. #define EGPIO_MAGICIAN_CABLE_STATE_USB MAGICIAN_EGPIO(4, 1)
  143. #define EGPIO_MAGICIAN_BOARD_ID0 MAGICIAN_EGPIO(5, 0)
  144. #define EGPIO_MAGICIAN_BOARD_ID1 MAGICIAN_EGPIO(5, 1)
  145. #define EGPIO_MAGICIAN_BOARD_ID2 MAGICIAN_EGPIO(5, 2)
  146. #define EGPIO_MAGICIAN_LCD_SELECT MAGICIAN_EGPIO(5, 3)
  147. #define EGPIO_MAGICIAN_nSD_READONLY MAGICIAN_EGPIO(5, 4)
  148. #define EGPIO_MAGICIAN_EP_INSERT MAGICIAN_EGPIO(6, 1)
  149. #endif /* _MAGICIAN_H_ */