analysisSpray.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. /*
  2. * R8A7740 processor support
  3. *
  4. * Copyright (C) 2011 Renesas Solutions Corp.
  5. * Copyright (C) 2011 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
  6. *
  7. * This program is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU General Public License as
  9. * published by the Free Software Foundation; version 2 of the
  10. * License.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  20. */
  21. #include <linux/init.h>
  22. #include <linux/kernel.h>
  23. #include <linux/sh_pfc.h>
  24. #include <mach/r8a7740.h>
  25. #include <mach/irqs.h>
  26. #define CPU_ALL_PORT(fn, pfx, sfx) \
  27. PORT_10(fn, pfx, sfx), PORT_90(fn, pfx, sfx), \
  28. PORT_10(fn, pfx##10, sfx), PORT_90(fn, pfx##1, sfx), \
  29. PORT_10(fn, pfx##20, sfx), \
  30. PORT_1(fn, pfx##210, sfx), PORT_1(fn, pfx##211, sfx)
  31. enum {
  32. PINMUX_RESERVED = 0,
  33. /* PORT0_DATA -> PORT211_DATA */
  34. PINMUX_DATA_BEGIN,
  35. PORT_ALL(DATA),
  36. PINMUX_DATA_END,
  37. /* PORT0_IN -> PORT211_IN */
  38. PINMUX_INPUT_BEGIN,
  39. PORT_ALL(IN),
  40. PINMUX_INPUT_END,
  41. /* PORT0_IN_PU -> PORT211_IN_PU */
  42. PINMUX_INPUT_PULLUP_BEGIN,
  43. PORT_ALL(IN_PU),
  44. PINMUX_INPUT_PULLUP_END,
  45. /* PORT0_IN_PD -> PORT211_IN_PD */
  46. PINMUX_INPUT_PULLDOWN_BEGIN,
  47. PORT_ALL(IN_PD),
  48. PINMUX_INPUT_PULLDOWN_END,
  49. /* PORT0_OUT -> PORT211_OUT */
  50. PINMUX_OUTPUT_BEGIN,
  51. PORT_ALL(OUT),
  52. PINMUX_OUTPUT_END,
  53. PINMUX_FUNCTION_BEGIN,
  54. PORT_ALL(FN_IN), /* PORT0_FN_IN -> PORT211_FN_IN */
  55. PORT_ALL(FN_OUT), /* PORT0_FN_OUT -> PORT211_FN_OUT */
  56. PORT_ALL(FN0), /* PORT0_FN0 -> PORT211_FN0 */
  57. PORT_ALL(FN1), /* PORT0_FN1 -> PORT211_FN1 */
  58. PORT_ALL(FN2), /* PORT0_FN2 -> PORT211_FN2 */
  59. PORT_ALL(FN3), /* PORT0_FN3 -> PORT211_FN3 */
  60. PORT_ALL(FN4), /* PORT0_FN4 -> PORT211_FN4 */
  61. PORT_ALL(FN5), /* PORT0_FN5 -> PORT211_FN5 */
  62. PORT_ALL(FN6), /* PORT0_FN6 -> PORT211_FN6 */
  63. PORT_ALL(FN7), /* PORT0_FN7 -> PORT211_FN7 */
  64. MSEL1CR_31_0, MSEL1CR_31_1,
  65. MSEL1CR_30_0, MSEL1CR_30_1,
  66. MSEL1CR_29_0, MSEL1CR_29_1,
  67. MSEL1CR_28_0, MSEL1CR_28_1,
  68. MSEL1CR_27_0, MSEL1CR_27_1,
  69. MSEL1CR_26_0, MSEL1CR_26_1,
  70. MSEL1CR_16_0, MSEL1CR_16_1,
  71. MSEL1CR_15_0, MSEL1CR_15_1,
  72. MSEL1CR_14_0, MSEL1CR_14_1,
  73. MSEL1CR_13_0, MSEL1CR_13_1,
  74. MSEL1CR_12_0, MSEL1CR_12_1,
  75. MSEL1CR_9_0, MSEL1CR_9_1,
  76. MSEL1CR_7_0, MSEL1CR_7_1,
  77. MSEL1CR_6_0, MSEL1CR_6_1,
  78. MSEL1CR_5_0, MSEL1CR_5_1,
  79. MSEL1CR_4_0, MSEL1CR_4_1,
  80. MSEL1CR_3_0, MSEL1CR_3_1,
  81. MSEL1CR_2_0, MSEL1CR_2_1,
  82. MSEL1CR_0_0, MSEL1CR_0_1,
  83. MSEL3CR_15_0, MSEL3CR_15_1, /* Trace / Debug ? */
  84. MSEL3CR_6_0, MSEL3CR_6_1,
  85. MSEL4CR_19_0, MSEL4CR_19_1,
  86. MSEL4CR_18_0, MSEL4CR_18_1,
  87. MSEL4CR_15_0, MSEL4CR_15_1,
  88. MSEL4CR_10_0, MSEL4CR_10_1,
  89. MSEL4CR_6_0, MSEL4CR_6_1,
  90. MSEL4CR_4_0, MSEL4CR_4_1,
  91. MSEL4CR_1_0, MSEL4CR_1_1,
  92. MSEL5CR_31_0, MSEL5CR_31_1, /* irq/fiq output */
  93. MSEL5CR_30_0, MSEL5CR_30_1,
  94. MSEL5CR_29_0, MSEL5CR_29_1,
  95. MSEL5CR_27_0, MSEL5CR_27_1,
  96. MSEL5CR_25_0, MSEL5CR_25_1,
  97. MSEL5CR_23_0, MSEL5CR_23_1,
  98. MSEL5CR_21_0, MSEL5CR_21_1,
  99. MSEL5CR_19_0, MSEL5CR_19_1,
  100. MSEL5CR_17_0, MSEL5CR_17_1,
  101. MSEL5CR_15_0, MSEL5CR_15_1,
  102. MSEL5CR_14_0, MSEL5CR_14_1,
  103. MSEL5CR_13_0, MSEL5CR_13_1,
  104. MSEL5CR_12_0, MSEL5CR_12_1,
  105. MSEL5CR_11_0, MSEL5CR_11_1,
  106. MSEL5CR_10_0, MSEL5CR_10_1,
  107. MSEL5CR_8_0, MSEL5CR_8_1,
  108. MSEL5CR_7_0, MSEL5CR_7_1,
  109. MSEL5CR_6_0, MSEL5CR_6_1,
  110. MSEL5CR_5_0, MSEL5CR_5_1,
  111. MSEL5CR_4_0, MSEL5CR_4_1,
  112. MSEL5CR_3_0, MSEL5CR_3_1,
  113. MSEL5CR_2_0, MSEL5CR_2_1,
  114. MSEL5CR_0_0, MSEL5CR_0_1,
  115. PINMUX_FUNCTION_END,
  116. PINMUX_MARK_BEGIN,
  117. /* IRQ */
  118. IRQ0_PORT2_MARK, IRQ0_PORT13_MARK,
  119. IRQ1_MARK,
  120. IRQ2_PORT11_MARK, IRQ2_PORT12_MARK,
  121. IRQ3_PORT10_MARK, IRQ3_PORT14_MARK,
  122. IRQ4_PORT15_MARK, IRQ4_PORT172_MARK,
  123. IRQ5_PORT0_MARK, IRQ5_PORT1_MARK,
  124. IRQ6_PORT121_MARK, IRQ6_PORT173_MARK,
  125. IRQ7_PORT120_MARK, IRQ7_PORT209_MARK,
  126. IRQ8_MARK,
  127. IRQ9_PORT118_MARK, IRQ9_PORT210_MARK,
  128. IRQ10_MARK,
  129. IRQ11_MARK,
  130. IRQ12_PORT42_MARK, IRQ12_PORT97_MARK,
  131. IRQ13_PORT64_MARK, IRQ13_PORT98_MARK,
  132. IRQ14_PORT63_MARK, IRQ14_PORT99_MARK,
  133. IRQ15_PORT62_MARK, IRQ15_PORT100_MARK,
  134. IRQ16_PORT68_MARK, IRQ16_PORT211_MARK,
  135. IRQ17_MARK,
  136. IRQ18_MARK,
  137. IRQ19_MARK,
  138. IRQ20_MARK,
  139. IRQ21_MARK,
  140. IRQ22_MARK,
  141. IRQ23_MARK,
  142. IRQ24_MARK,
  143. IRQ25_MARK,
  144. IRQ26_PORT58_MARK, IRQ26_PORT81_MARK,
  145. IRQ27_PORT57_MARK, IRQ27_PORT168_MARK,
  146. IRQ28_PORT56_MARK, IRQ28_PORT169_MARK,
  147. IRQ29_PORT50_MARK, IRQ29_PORT170_MARK,
  148. IRQ30_PORT49_MARK, IRQ30_PORT171_MARK,
  149. IRQ31_PORT41_MARK, IRQ31_PORT167_MARK,
  150. /* Function */
  151. /* DBGT */
  152. DBGMDT2_MARK, DBGMDT1_MARK, DBGMDT0_MARK,
  153. DBGMD10_MARK, DBGMD11_MARK, DBGMD20_MARK,
  154. DBGMD21_MARK,
  155. /* FSI-A */
  156. FSIAISLD_PORT0_MARK, /* FSIAISLD Port 0/5 */
  157. FSIAISLD_PORT5_MARK,
  158. FSIASPDIF_PORT9_MARK, /* FSIASPDIF Port 9/18 */
  159. FSIASPDIF_PORT18_MARK,
  160. FSIAOSLD1_MARK, FSIAOSLD2_MARK, FSIAOLR_MARK,
  161. FSIAOBT_MARK, FSIAOSLD_MARK, FSIAOMC_MARK,
  162. FSIACK_MARK, FSIAILR_MARK, FSIAIBT_MARK,
  163. /* FSI-B */
  164. FSIBCK_MARK,
  165. /* FMSI */
  166. FMSISLD_PORT1_MARK, /* FMSISLD Port 1/6 */
  167. FMSISLD_PORT6_MARK,
  168. FMSIILR_MARK, FMSIIBT_MARK, FMSIOLR_MARK, FMSIOBT_MARK,
  169. FMSICK_MARK, FMSOILR_MARK, FMSOIBT_MARK, FMSOOLR_MARK,
  170. FMSOOBT_MARK, FMSOSLD_MARK, FMSOCK_MARK,
  171. /* SCIFA0 */
  172. SCIFA0_SCK_MARK, SCIFA0_CTS_MARK, SCIFA0_RTS_MARK,
  173. SCIFA0_RXD_MARK, SCIFA0_TXD_MARK,
  174. /* SCIFA1 */
  175. SCIFA1_CTS_MARK, SCIFA1_SCK_MARK, SCIFA1_RXD_MARK,
  176. SCIFA1_TXD_MARK, SCIFA1_RTS_MARK,
  177. /* SCIFA2 */
  178. SCIFA2_SCK_PORT22_MARK, /* SCIFA2_SCK Port 22/199 */
  179. SCIFA2_SCK_PORT199_MARK,
  180. SCIFA2_RXD_MARK, SCIFA2_TXD_MARK,
  181. SCIFA2_CTS_MARK, SCIFA2_RTS_MARK,
  182. /* SCIFA3 */
  183. SCIFA3_RTS_PORT105_MARK, /* MSEL5CR_8_0 */
  184. SCIFA3_SCK_PORT116_MARK,
  185. SCIFA3_CTS_PORT117_MARK,
  186. SCIFA3_RXD_PORT174_MARK,
  187. SCIFA3_TXD_PORT175_MARK,
  188. SCIFA3_RTS_PORT161_MARK, /* MSEL5CR_8_1 */
  189. SCIFA3_SCK_PORT158_MARK,
  190. SCIFA3_CTS_PORT162_MARK,
  191. SCIFA3_RXD_PORT159_MARK,
  192. SCIFA3_TXD_PORT160_MARK,
  193. /* SCIFA4 */
  194. SCIFA4_RXD_PORT12_MARK, /* MSEL5CR[12:11] = 00 */
  195. SCIFA4_TXD_PORT13_MARK,
  196. SCIFA4_RXD_PORT204_MARK, /* MSEL5CR[12:11] = 01 */
  197. SCIFA4_TXD_PORT203_MARK,