lpc1700.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. #ifndef _ARCH_CM3_NXP_MACH_LPC1700_H_
  2. #define _ARCH_CM3_NXP_MACH_LPC1700_H_
  3. /*
  4. * Copyright 2011 by egnite GmbH
  5. *
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. *
  12. * 1. Redistributions of source code must retain the above copyright
  13. * notice, this list of conditions and the following disclaimer.
  14. * 2. Redistributions in binary form must reproduce the above copyright
  15. * notice, this list of conditions and the following disclaimer in the
  16. * documentation and/or other materials provided with the distribution.
  17. * 3. Neither the name of the copyright holders nor the names of
  18. * contributors may be used to endorse or promote products derived
  19. * from this software without specific prior written permission.
  20. *
  21. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  22. * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  23. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  24. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  25. * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  26. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  27. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  28. * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  29. * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  30. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  31. * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  32. * SUCH DAMAGE.
  33. *
  34. * For additional information see http://www.ethernut.de/
  35. */
  36. /*!
  37. * \file arch/cm3/nxp/mach/lpc1700.h
  38. * \brief LPC1700 peripherals
  39. *
  40. * \verbatim
  41. * $Id$
  42. * \endverbatim
  43. */
  44. #define PIN_CFGREG(p, b) ((p) * 2 + (b) / 16)
  45. #define PIN_CFGLSB(b) (((b) % 16) * 2)
  46. #define PINSEL_REG(p, b) PINSEL(PIN_CFGREG(p, b))
  47. #define P0_PINSEL(b) PINSEL((b) / 16)
  48. #define P1_PINSEL(b) PINSEL((b) / 16 + 2)
  49. #define P2_PINSEL(b) PINSEL((b) / 16 + 4)
  50. #define P3_PINSEL(b) PINSEL((b) / 16 + 6)
  51. #define P0_PINMODE(b) PINMODE((b) / 16)
  52. #define P1_PINMODE(b) PINMODE((b) / 16 + 2)
  53. #define P2_PINMODE(b) PINMODE((b) / 16 + 4)
  54. #define P3_PINMODE(b) PINMODE((b) / 16 + 6)
  55. #define P0_PINMODE_OD(b) PINMODE_OD((b) / 16)
  56. #define P1_PINMODE_OD(b) PINMODE_OD((b) / 16 + 2)
  57. #define P2_PINMODE_OD(b) PINMODE_OD((b) / 16 + 4)
  58. #define P3_PINMODE_OD(b) PINMODE_OD((b) / 16 + 6)
  59. #define PIN_CFGMSK(b) (3 << PIN_CFGLSB(b))
  60. #define PS0_P0_0_MSK (3 << 0)
  61. #define PS0_P0_1_MSK (3 << 2)
  62. #define PS0_P0_2_MSK (3 << 4)
  63. #define PS0_P0_3_MSK (3 << 6)
  64. #define PS0_P0_4_MSK (3 << 8)
  65. #define PS0_P0_5_MSK (3 << 10)
  66. #define PS0_P0_6_MSK (3 << 12)
  67. #define PS0_P0_7_MSK (3 << 14)
  68. #define PS0_P0_8_MSK (3 << 16)
  69. #define PS0_P0_9_MSK (3 << 18)
  70. #define PS0_P0_10_MSK (3 << 20)
  71. #define PS0_P0_11_MSK (3 << 22)
  72. #define PS0_P0_12_MSK (3 << 24)
  73. #define PS0_P0_13_MSK (3 << 26)
  74. #define PS0_P0_14_MSK (3 << 28)
  75. #define PS0_P0_15_MSK (3 << 30)
  76. #define PS1_P0_16_MSK (3 << 0)
  77. #define PS1_P0_17_MSK (3 << 2)
  78. #define PS1_P0_18_MSK (3 << 4)
  79. #define PS1_P0_19_MSK (3 << 6)
  80. #define PS1_P0_20_MSK (3 << 8)
  81. #define PS1_P0_21_MSK (3 << 10)
  82. #define PS1_P0_22_MSK (3 << 12)
  83. #define PS1_P0_23_MSK (3 << 14)
  84. #define PS1_P0_24_MSK (3 << 16)
  85. #define PS1_P0_25_MSK (3 << 18)
  86. #define PS1_P0_26_MSK (3 << 20)
  87. #define PS1_P0_27_MSK (3 << 22)
  88. #define PS1_P0_28_MSK (3 << 24)
  89. #define PS1_P0_29_MSK (3 << 26)
  90. #define PS1_P0_30_MSK (3 << 28)
  91. #define PS1_P0_31_MSK (3 << 30)
  92. #define PS2_P1_0_MSK (3 << 0)
  93. #define PS2_P1_1_MSK (3 << 2)
  94. #define PS2_P1_2_MSK (3 << 4)
  95. #define PS2_P1_3_MSK (3 << 6)
  96. #define PS2_P1_4_MSK (3 << 8)
  97. #define PS2_P1_5_MSK (3 << 10)
  98. #define PS2_P1_6_MSK (3 << 12)
  99. #define PS2_P1_7_MSK (3 << 14)
  100. #define PS2_P1_8_MSK (3 << 16)
  101. #define PS2_P1_9_MSK (3 << 18)
  102. #define PS2_P1_10_MSK (3 << 20)
  103. #define PS2_P1_11_MSK (3 << 22)
  104. #define PS2_P1_12_MSK (3 << 24)
  105. #define PS2_P1_13_MSK (3 << 26)
  106. #define PS2_P1_14_MSK (3 << 28)
  107. #define PS2_P1_15_MSK (3 << 30)
  108. #define PS3_P1_16_MSK (3 << 0)
  109. #define PS3_P1_17_MSK (3 << 2)
  110. #define PS3_P1_18_MSK (3 << 4)
  111. #define PS3_P1_19_MSK (3 << 6)
  112. #define PS3_P1_20_MSK (3 << 8)
  113. #define PS3_P1_21_MSK (3 << 10)
  114. #define PS3_P1_22_MSK (3 << 12)
  115. #define PS3_P1_23_MSK (3 << 14)
  116. #define PS3_P1_24_MSK (3 << 16)
  117. #define PS3_P1_25_MSK (3 << 18)
  118. #define PS3_P1_26_MSK (3 << 20)
  119. #define PS3_P1_27_MSK (3 << 22)
  120. #define PS3_P1_28_MSK (3 << 24)
  121. #define PS3_P1_29_MSK (3 << 26)
  122. #define PS3_P1_30_MSK (3 << 28)
  123. #define PS3_P1_31_MSK (3 << 30)
  124. #define PS4_P2_0_MSK (3 << 0)
  125. #define PS4_P2_1_MSK (3 << 2)
  126. #define PS4_P2_2_MSK (3 << 4)
  127. #define PS4_P2_3_MSK (3 << 6)
  128. #define PS4_P2_4_MSK (3 << 8)
  129. #define PS4_P2_5_MSK (3 << 10)
  130. #define PS4_P2_6_MSK (3 << 12)
  131. #define PS4_P2_7_MSK (3 << 14)
  132. #define PS4_P2_8_MSK (3 << 16)
  133. #define PS4_P2_9_MSK (3 << 18)
  134. #define PS4_P2_10_MSK (3 << 20)
  135. #define PS4_P2_11_MSK (3 << 22)
  136. #define PS4_P2_12_MSK (3 << 24)
  137. #define PS4_P2_13_MSK (3 << 26)
  138. #define PS4_P2_14_MSK (3 << 28)
  139. #define PS4_P2_15_MSK (3 << 30)
  140. #define PS5_P2_16_MSK (3 << 0)
  141. #define PS5_P2_17_MSK (3 << 2)
  142. #define PS5_P2_18_MSK (3 << 4)
  143. #define PS5_P2_19_MSK (3 << 6)
  144. #define PS5_P2_20_MSK (3 << 8)
  145. #define PS5_P2_21_MSK (3 << 10)
  146. #define PS5_P2_22_MSK (3 << 12)
  147. #define PS5_P2_23_MSK (3 << 14)
  148. #define PS5_P2_24_MSK (3 << 16)
  149. #define PS5_P2_25_MSK (3 << 18)
  150. #define PS5_P2_26_MSK (3 << 20)
  151. #define PS5_P2_27_MSK (3 << 22)
  152. #define PS5_P2_28_MSK (3 << 24)
  153. #define PS5_P2_29_MSK (3 << 26)
  154. #define PS5_P2_30_MSK (3 << 28)
  155. #define PS5_P2_31_MSK (3 << 30)
  156. #define PS6_P3_0_MSK (3 << 0)
  157. #define PS6_P3_1_MSK (3 << 2)
  158. #define PS6_P3_2_MSK (3 << 4)
  159. #define PS6_P3_3_MSK (3 << 6)
  160. #define PS6_P3_4_MSK (3 << 8)
  161. #define PS6_P3_5_MSK (3 << 10)
  162. #define PS6_P3_6_MSK (3 << 12)
  163. #define PS6_P3_7_MSK (3 << 14)
  164. #define PS6_P3_8_MSK (3 << 16)
  165. #define PS6_P3_9_MSK (3 << 18)
  166. #define PS6_P3_10_MSK (3 << 20)
  167. #define PS6_P3_11_MSK (3 << 22)
  168. #define PS6_P3_12_MSK (3 << 24)
  169. #define PS6_P3_13_MSK (3 << 26)
  170. #define PS6_P3_14_MSK (3 << 28)
  171. #define PS6_P3_15_MSK (3 << 30)
  172. #define PS7_P3_16_MSK (3 << 0)
  173. #define PS7_P3_17_MSK (3 << 2)
  174. #define PS7_P3_18_MSK (3 << 4)
  175. #define PS7_P3_19_MSK (3 << 6)
  176. #define PS7_P3_20_MSK (3 << 8)
  177. #define PS7_P3_21_MSK (3 << 10)
  178. #define PS7_P3_22_MSK (3 << 12)
  179. #define PS7_P3_23_MSK (3 << 14)
  180. #define PS7_P3_24_MSK (3 << 16)
  181. #define PS7_P3_25_MSK (3 << 18)
  182. #define PS7_P3_26_MSK (3 << 20)
  183. #define PS7_P3_27_MSK (3 << 22)
  184. #define PS7_P3_28_MSK (3 << 24)
  185. #define PS7_P3_29_MSK (3 << 26)
  186. #define PS7_P3_30_MSK (3 << 28)
  187. #define PS7_P3_31_MSK (3 << 30)
  188. #define PS8_P4_0_MSK (3 << 0)
  189. #define PS8_P4_1_MSK (3 << 2)
  190. #define PS8_P4_2_MSK (3 << 4)
  191. #define PS8_P4_3_MSK (3 << 6)
  192. #define PS8_P4_4_MSK (3 << 8)
  193. #define PS8_P4_5_MSK (3 << 10)
  194. #define PS8_P4_6_MSK (3 << 12)
  195. #define PS8_P4_7_MSK (3 << 14)
  196. #define PS8_P4_8_MSK (3 << 16)
  197. #define PS8_P4_9_MSK (3 << 18)
  198. #define PS8_P4_10_MSK (3 << 20)
  199. #define PS8_P4_11_MSK (3 << 22)
  200. #define PS8_P4_12_MSK (3 << 24)
  201. #define PS8_P4_13_MSK (3 << 26)
  202. #define PS8_P4_14_MSK (3 << 28)
  203. #define PS8_P4_15_MSK (3 << 30)
  204. #define PS9_P4_16_MSK (3 << 0)
  205. #define PS9_P4_17_MSK (3 << 2)
  206. #define PS9_P4_18_MSK (3 << 4)
  207. #define PS9_P4_19_MSK (3 << 6)
  208. #define PS9_P4_20_MSK (3 << 8)
  209. #define PS9_P4_21_MSK (3 << 10)
  210. #define PS9_P4_22_MSK (3 << 12)
  211. #define PS9_P4_23_MSK (3 << 14)
  212. #define PS9_P4_24_MSK (3 << 16)
  213. #define PS9_P4_25_MSK (3 << 18)
  214. #define PS9_P4_26_MSK (3 << 20)
  215. #define PS9_P4_27_MSK (3 << 22)
  216. #define PS9_P4_28_MSK (3 << 24)
  217. #define PS9_P4_29_MSK (3 << 26)
  218. #define PS9_P4_30_MSK (3 << 28)
  219. #define PS9_P4_31_MSK (3 << 30)
  220. #if defined (MCU_LPC1768)
  221. #include <arch/cm3/nxp/mach/lpc1768.h>
  222. #endif
  223. #endif