analysisSpray.c 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  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,
  198. SCIFA4_RXD_PORT94_MARK, /* MSEL5CR[12:11] = 10 */
  199. SCIFA4_TXD_PORT93_MARK,
  200. SCIFA4_SCK_PORT21_MARK, /* SCIFA4_SCK Port 21/205 */
  201. SCIFA4_SCK_PORT205_MARK,
  202. /* SCIFA5 */
  203. SCIFA5_TXD_PORT20_MARK, /* MSEL5CR[15:14] = 00 */
  204. SCIFA5_RXD_PORT10_MARK,
  205. SCIFA5_RXD_PORT207_MARK, /* MSEL5CR[15:14] = 01 */
  206. SCIFA5_TXD_PORT208_MARK,
  207. SCIFA5_TXD_PORT91_MARK, /* MSEL5CR[15:14] = 10 */
  208. SCIFA5_RXD_PORT92_MARK,
  209. SCIFA5_SCK_PORT23_MARK, /* SCIFA5_SCK Port 23/206 */
  210. SCIFA5_SCK_PORT206_MARK,
  211. /* SCIFA6 */
  212. SCIFA6_SCK_MARK, SCIFA6_RXD_MARK, SCIFA6_TXD_MARK,
  213. /* SCIFA7 */
  214. SCIFA7_TXD_MARK, SCIFA7_RXD_MARK,
  215. /* SCIFAB */
  216. SCIFB_SCK_PORT190_MARK, /* MSEL5CR_17_0 */
  217. SCIFB_RXD_PORT191_MARK,
  218. SCIFB_TXD_PORT192_MARK,
  219. SCIFB_RTS_PORT186_MARK,
  220. SCIFB_CTS_PORT187_MARK,
  221. SCIFB_SCK_PORT2_MARK, /* MSEL5CR_17_1 */
  222. SCIFB_RXD_PORT3_MARK,
  223. SCIFB_TXD_PORT4_MARK,
  224. SCIFB_RTS_PORT172_MARK,
  225. SCIFB_CTS_PORT173_MARK,
  226. /* LCD0 */
  227. LCDC0_SELECT_MARK,
  228. LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK,
  229. LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK,
  230. LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK,
  231. LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK,
  232. LCD0_D16_MARK, LCD0_D17_MARK,
  233. LCD0_DON_MARK, LCD0_VCPWC_MARK, LCD0_VEPWC_MARK,
  234. LCD0_DCK_MARK, LCD0_VSYN_MARK, /* for RGB */
  235. LCD0_HSYN_MARK, LCD0_DISP_MARK, /* for RGB */
  236. LCD0_WR_MARK, LCD0_RD_MARK, /* for SYS */
  237. LCD0_CS_MARK, LCD0_RS_MARK, /* for SYS */
  238. LCD0_D21_PORT158_MARK, LCD0_D23_PORT159_MARK, /* MSEL5CR_6_1 */
  239. LCD0_D22_PORT160_MARK, LCD0_D20_PORT161_MARK,
  240. LCD0_D19_PORT162_MARK, LCD0_D18_PORT163_MARK,
  241. LCD0_LCLK_PORT165_MARK,
  242. LCD0_D18_PORT40_MARK, LCD0_D22_PORT0_MARK, /* MSEL5CR_6_0 */
  243. LCD0_D23_PORT1_MARK, LCD0_D21_PORT2_MARK,
  244. LCD0_D20_PORT3_MARK, LCD0_D19_PORT4_MARK,
  245. LCD0_LCLK_PORT102_MARK,
  246. /* LCD1 */
  247. LCDC1_SELECT_MARK,
  248. LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK,
  249. LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK,
  250. LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK,
  251. LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK,
  252. LCD1_D16_MARK, LCD1_D17_MARK, LCD1_D18_MARK, LCD1_D19_MARK,
  253. LCD1_D20_MARK, LCD1_D21_MARK, LCD1_D22_MARK, LCD1_D23_MARK,
  254. LCD1_DON_MARK, LCD1_VCPWC_MARK,
  255. LCD1_LCLK_MARK, LCD1_VEPWC_MARK,
  256. LCD1_DCK_MARK, LCD1_VSYN_MARK, /* for RGB */
  257. LCD1_HSYN_MARK, LCD1_DISP_MARK, /* for RGB */
  258. LCD1_RS_MARK, LCD1_CS_MARK, /* for SYS */
  259. LCD1_RD_MARK, LCD1_WR_MARK, /* for SYS */
  260. /* RSPI */
  261. RSPI_SSL0_A_MARK, RSPI_SSL1_A_MARK, RSPI_SSL2_A_MARK,
  262. RSPI_SSL3_A_MARK, RSPI_CK_A_MARK, RSPI_MOSI_A_MARK,
  263. RSPI_MISO_A_MARK,
  264. /* VIO CKO */
  265. VIO_CKO1_MARK, /* needs fixup */
  266. VIO_CKO2_MARK,
  267. VIO_CKO_1_MARK,
  268. VIO_CKO_MARK,
  269. /* VIO0 */
  270. VIO0_D0_MARK, VIO0_D1_MARK, VIO0_D2_MARK, VIO0_D3_MARK,
  271. VIO0_D4_MARK, VIO0_D5_MARK, VIO0_D6_MARK, VIO0_D7_MARK,
  272. VIO0_D8_MARK, VIO0_D9_MARK, VIO0_D10_MARK, VIO0_D11_MARK,
  273. VIO0_D12_MARK, VIO0_VD_MARK, VIO0_HD_MARK, VIO0_CLK_MARK,
  274. VIO0_FIELD_MARK,
  275. VIO0_D13_PORT26_MARK, /* MSEL5CR_27_0 */
  276. VIO0_D14_PORT25_MARK,
  277. VIO0_D15_PORT24_MARK,
  278. VIO0_D13_PORT22_MARK, /* MSEL5CR_27_1 */
  279. VIO0_D14_PORT95_MARK,
  280. VIO0_D15_PORT96_MARK,
  281. /* VIO1 */
  282. VIO1_D0_MARK, VIO1_D1_MARK, VIO1_D2_MARK, VIO1_D3_MARK,
  283. VIO1_D4_MARK, VIO1_D5_MARK, VIO1_D6_MARK, VIO1_D7_MARK,
  284. VIO1_VD_MARK, VIO1_HD_MARK, VIO1_CLK_MARK, VIO1_FIELD_MARK,
  285. /* TPU0 */
  286. TPU0TO0_MARK, TPU0TO1_MARK, TPU0TO3_MARK,
  287. TPU0TO2_PORT66_MARK, /* TPU0TO2 Port 66/202 */
  288. TPU0TO2_PORT202_MARK,
  289. /* SSP1 0 */
  290. STP0_IPD0_MARK, STP0_IPD1_MARK, STP0_IPD2_MARK, STP0_IPD3_MARK,
  291. STP0_IPD4_MARK, STP0_IPD5_MARK, STP0_IPD6_MARK, STP0_IPD7_MARK,
  292. STP0_IPEN_MARK, STP0_IPCLK_MARK, STP0_IPSYNC_MARK,
  293. /* SSP1 1 */
  294. STP1_IPD1_MARK, STP1_IPD2_MARK, STP1_IPD3_MARK, STP1_IPD4_MARK,
  295. STP1_IPD5_MARK, STP1_IPD6_MARK, STP1_IPD7_MARK, STP1_IPCLK_MARK,
  296. STP1_IPSYNC_MARK,
  297. STP1_IPD0_PORT186_MARK, /* MSEL5CR_23_0 */
  298. STP1_IPEN_PORT187_MARK,
  299. STP1_IPD0_PORT194_MARK, /* MSEL5CR_23_1 */
  300. STP1_IPEN_PORT193_MARK,
  301. /* SIM */
  302. SIM_RST_MARK, SIM_CLK_MARK,
  303. SIM_D_PORT22_MARK, /* SIM_D Port 22/199 */
  304. SIM_D_PORT199_MARK,
  305. /* SDHI0 */
  306. SDHI0_D0_MARK, SDHI0_D1_MARK, SDHI0_D2_MARK, SDHI0_D3_MARK,
  307. SDHI0_CD_MARK, SDHI0_WP_MARK, SDHI0_CMD_MARK, SDHI0_CLK_MARK,
  308. /* SDHI1 */
  309. SDHI1_D0_MARK, SDHI1_D1_MARK, SDHI1_D2_MARK, SDHI1_D3_MARK,
  310. SDHI1_CD_MARK, SDHI1_WP_MARK, SDHI1_CMD_MARK, SDHI1_CLK_MARK,
  311. /* SDHI2 */
  312. SDHI2_D0_MARK, SDHI2_D1_MARK, SDHI2_D2_MARK, SDHI2_D3_MARK,
  313. SDHI2_CLK_MARK, SDHI2_CMD_MARK,
  314. SDHI2_CD_PORT24_MARK, /* MSEL5CR_19_0 */
  315. SDHI2_WP_PORT25_MARK,
  316. SDHI2_WP_PORT177_MARK, /* MSEL5CR_19_1 */
  317. SDHI2_CD_PORT202_MARK,
  318. /* MSIOF2 */
  319. MSIOF2_TXD_MARK, MSIOF2_RXD_MARK, MSIOF2_TSCK_MARK,
  320. MSIOF2_SS2_MARK, MSIOF2_TSYNC_MARK, MSIOF2_SS1_MARK,
  321. MSIOF2_MCK1_MARK, MSIOF2_MCK0_MARK, MSIOF2_RSYNC_MARK,
  322. MSIOF2_RSCK_MARK,
  323. /* KEYSC */
  324. KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, KEYIN7_MARK,
  325. KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK,
  326. KEYOUT4_MARK, KEYOUT5_MARK, KEYOUT6_MARK, KEYOUT7_MARK,
  327. KEYIN0_PORT43_MARK, /* MSEL4CR_18_0 */
  328. KEYIN1_PORT44_MARK,
  329. KEYIN2_PORT45_MARK,
  330. KEYIN3_PORT46_MARK,
  331. KEYIN0_PORT58_MARK, /* MSEL4CR_18_1 */
  332. KEYIN1_PORT57_MARK,
  333. KEYIN2_PORT56_MARK,
  334. KEYIN3_PORT55_MARK,
  335. /* VOU */
  336. DV_D0_MARK, DV_D1_MARK, DV_D2_MARK, DV_D3_MARK,
  337. DV_D4_MARK, DV_D5_MARK, DV_D6_MARK, DV_D7_MARK,
  338. DV_D8_MARK, DV_D9_MARK, DV_D10_MARK, DV_D11_MARK,
  339. DV_D12_MARK, DV_D13_MARK, DV_D14_MARK, DV_D15_MARK,
  340. DV_CLK_MARK, DV_VSYNC_MARK, DV_HSYNC_MARK,
  341. /* MEMC */
  342. MEMC_AD0_MARK, MEMC_AD1_MARK, MEMC_AD2_MARK, MEMC_AD3_MARK,
  343. MEMC_AD4_MARK, MEMC_AD5_MARK, MEMC_AD6_MARK, MEMC_AD7_MARK,
  344. MEMC_AD8_MARK, MEMC_AD9_MARK, MEMC_AD10_MARK, MEMC_AD11_MARK,
  345. MEMC_AD12_MARK, MEMC_AD13_MARK, MEMC_AD14_MARK, MEMC_AD15_MARK,
  346. MEMC_CS0_MARK, MEMC_INT_MARK, MEMC_NWE_MARK, MEMC_NOE_MARK,
  347. MEMC_CS1_MARK, /* MSEL4CR_6_0 */
  348. MEMC_ADV_MARK,
  349. MEMC_WAIT_MARK,
  350. MEMC_BUSCLK_MARK,
  351. MEMC_A1_MARK, /* MSEL4CR_6_1 */
  352. MEMC_DREQ0_MARK,
  353. MEMC_DREQ1_MARK,
  354. MEMC_A0_MARK,
  355. /* MMC */
  356. MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK,
  357. MMC0_D3_PORT71_MARK, MMC0_D4_PORT72_MARK, MMC0_D5_PORT73_MARK,
  358. MMC0_D6_PORT74_MARK, MMC0_D7_PORT75_MARK, MMC0_CLK_PORT66_MARK,
  359. MMC0_CMD_PORT67_MARK, /* MSEL4CR_15_0 */
  360. MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK,
  361. MMC1_D3_PORT146_MARK, MMC1_D4_PORT145_MARK, MMC1_D5_PORT144_MARK,
  362. MMC1_D6_PORT143_MARK, MMC1_D7_PORT142_MARK, MMC1_CLK_PORT103_MARK,
  363. MMC1_CMD_PORT104_MARK, /* MSEL4CR_15_1 */
  364. /* MSIOF0 */
  365. MSIOF0_SS1_MARK, MSIOF0_SS2_MARK, MSIOF0_RXD_MARK,
  366. MSIOF0_TXD_MARK, MSIOF0_MCK0_MARK, MSIOF0_MCK1_MARK,
  367. MSIOF0_RSYNC_MARK, MSIOF0_RSCK_MARK, MSIOF0_TSCK_MARK,
  368. MSIOF0_TSYNC_MARK,
  369. /* MSIOF1 */
  370. MSIOF1_RSCK_MARK, MSIOF1_RSYNC_MARK,
  371. MSIOF1_MCK0_MARK, MSIOF1_MCK1_MARK,
  372. MSIOF1_SS2_PORT116_MARK, MSIOF1_SS1_PORT117_MARK,
  373. MSIOF1_RXD_PORT118_MARK, MSIOF1_TXD_PORT119_MARK,
  374. MSIOF1_TSYNC_PORT120_MARK,
  375. MSIOF1_TSCK_PORT121_MARK, /* MSEL4CR_10_0 */
  376. MSIOF1_SS1_PORT67_MARK, MSIOF1_TSCK_PORT72_MARK,
  377. MSIOF1_TSYNC_PORT73_MARK, MSIOF1_TXD_PORT74_MARK,
  378. MSIOF1_RXD_PORT75_MARK,
  379. MSIOF1_SS2_PORT202_MARK, /* MSEL4CR_10_1 */
  380. /* GPIO */
  381. GPO0_MARK, GPI0_MARK, GPO1_MARK, GPI1_MARK,
  382. /* USB0 */
  383. USB0_OCI_MARK, USB0_PPON_MARK, VBUS_MARK,
  384. /* USB1 */
  385. USB1_OCI_MARK, USB1_PPON_MARK,
  386. /* BBIF1 */
  387. BBIF1_RXD_MARK, BBIF1_TXD_MARK, BBIF1_TSYNC_MARK,
  388. BBIF1_TSCK_MARK, BBIF1_RSCK_MARK, BBIF1_RSYNC_MARK,
  389. BBIF1_FLOW_MARK, BBIF1_RX_FLOW_N_MARK,
  390. /* BBIF2 */
  391. BBIF2_TXD2_PORT5_MARK, /* MSEL5CR_0_0 */
  392. BBIF2_RXD2_PORT60_MARK,
  393. BBIF2_TSYNC2_PORT6_MARK,
  394. BBIF2_TSCK2_PORT59_MARK,
  395. BBIF2_RXD2_PORT90_MARK, /* MSEL5CR_0_1 */
  396. BBIF2_TXD2_PORT183_MARK,
  397. BBIF2_TSCK2_PORT89_MARK,
  398. BBIF2_TSYNC2_PORT184_MARK,
  399. /* BSC / FLCTL / PCMCIA */
  400. CS0_MARK, CS2_MARK, CS4_MARK,
  401. CS5B_MARK, CS6A_MARK,
  402. CS5A_PORT105_MARK, /* CS5A PORT 19/105 */
  403. CS5A_PORT19_MARK,
  404. IOIS16_MARK, /* ? */
  405. A0_MARK, A1_MARK, A2_MARK, A3_MARK,
  406. A4_FOE_MARK, /* share with FLCTL */
  407. A5_FCDE_MARK, /* share with FLCTL */
  408. A6_MARK, A7_MARK, A8_MARK, A9_MARK,
  409. A10_MARK, A11_MARK, A12_MARK, A13_MARK,
  410. A14_MARK, A15_MARK, A16_MARK, A17_MARK,
  411. A18_MARK, A19_MARK, A20_MARK, A21_MARK,
  412. A22_MARK, A23_MARK, A24_MARK, A25_MARK,
  413. A26_MARK,
  414. D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, /* share with FLCTL */
  415. D3_NAF3_MARK, D4_NAF4_MARK, D5_NAF5_MARK, /* share with FLCTL */
  416. D6_NAF6_MARK, D7_NAF7_MARK, D8_NAF8_MARK, /* share with FLCTL */
  417. D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK, /* share with FLCTL */
  418. D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, /* share with FLCTL */
  419. D15_NAF15_MARK, /* share with FLCTL */
  420. D16_MARK, D17_MARK, D18_MARK, D19_MARK,
  421. D20_MARK, D21_MARK, D22_MARK, D23_MARK,
  422. D24_MARK, D25_MARK, D26_MARK, D27_MARK,
  423. D28_MARK, D29_MARK, D30_MARK, D31_MARK,
  424. WE0_FWE_MARK, /* share with FLCTL */
  425. WE1_MARK,
  426. WE2_ICIORD_MARK, /* share with PCMCIA */
  427. WE3_ICIOWR_MARK, /* share with PCMCIA */
  428. CKO_MARK, BS_MARK, RDWR_MARK,
  429. RD_FSC_MARK, /* share with FLCTL */
  430. WAIT_PORT177_MARK, /* WAIT Port 90/177 */
  431. WAIT_PORT90_MARK,
  432. FCE0_MARK, FCE1_MARK, FRB_MARK, /* FLCTL */
  433. /* IRDA */
  434. IRDA_FIRSEL_MARK, IRDA_IN_MARK, IRDA_OUT_MARK,
  435. /* ATAPI */
  436. IDE_D0_MARK, IDE_D1_MARK, IDE_D2_MARK, IDE_D3_MARK,
  437. IDE_D4_MARK, IDE_D5_MARK, IDE_D6_MARK, IDE_D7_MARK,
  438. IDE_D8_MARK, IDE_D9_MARK, IDE_D10_MARK, IDE_D11_MARK,
  439. IDE_D12_MARK, IDE_D13_MARK, IDE_D14_MARK, IDE_D15_MARK,
  440. IDE_A0_MARK, IDE_A1_MARK, IDE_A2_MARK, IDE_CS0_MARK,
  441. IDE_CS1_MARK, IDE_IOWR_MARK, IDE_IORD_MARK, IDE_IORDY_MARK,
  442. IDE_INT_MARK, IDE_RST_MARK, IDE_DIRECTION_MARK,
  443. IDE_EXBUF_ENB_MARK, IDE_IODACK_MARK, IDE_IODREQ_MARK,
  444. /* RMII */
  445. RMII_CRS_DV_MARK, RMII_RX_ER_MARK, RMII_RXD0_MARK,
  446. RMII_RXD1_MARK, RMII_TX_EN_MARK, RMII_TXD0_MARK,
  447. RMII_MDC_MARK, RMII_TXD1_MARK, RMII_MDIO_MARK,
  448. RMII_REF50CK_MARK, /* for RMII */
  449. RMII_REF125CK_MARK, /* for GMII */
  450. /* GEther */
  451. ET_TX_CLK_MARK, ET_TX_EN_MARK, ET_ETXD0_MARK, ET_ETXD1_MARK,
  452. ET_ETXD2_MARK, ET_ETXD3_MARK,
  453. ET_ETXD4_MARK, ET_ETXD5_MARK, /* for GEther */
  454. ET_ETXD6_MARK, ET_ETXD7_MARK, /* for GEther */
  455. ET_COL_MARK, ET_TX_ER_MARK, ET_RX_CLK_MARK, ET_RX_DV_MARK,
  456. ET_ERXD0_MARK, ET_ERXD1_MARK, ET_ERXD2_MARK, ET_ERXD3_MARK,
  457. ET_ERXD4_MARK, ET_ERXD5_MARK, /* for GEther */
  458. ET_ERXD6_MARK, ET_ERXD7_MARK, /* for GEther */
  459. ET_RX_ER_MARK, ET_CRS_MARK, ET_MDC_MARK, ET_MDIO_MARK,
  460. ET_LINK_MARK, ET_PHY_INT_MARK, ET_WOL_MARK, ET_GTX_CLK_MARK,
  461. /* DMA0 */
  462. DREQ0_MARK, DACK0_MARK,
  463. /* DMA1 */
  464. DREQ1_MARK, DACK1_MARK,
  465. /* SYSC */
  466. RESETOUTS_MARK, RESETP_PULLUP_MARK, RESETP_PLAIN_MARK,
  467. /* IRREM */
  468. IROUT_MARK,
  469. /* SDENC */
  470. SDENC_CPG_MARK, SDENC_DV_CLKI_MARK,
  471. /* HDMI */
  472. HDMI_HPD_MARK, HDMI_CEC_MARK,
  473. /* DEBUG */
  474. EDEBGREQ_PULLUP_MARK, /* for JTAG */
  475. EDEBGREQ_PULLDOWN_MARK,
  476. TRACEAUD_FROM_VIO_MARK, /* for TRACE/AUD */
  477. TRACEAUD_FROM_LCDC0_MARK,
  478. TRACEAUD_FROM_MEMC_MARK,
  479. PINMUX_MARK_END,
  480. };
  481. static pinmux_enum_t pinmux_data[] = {
  482. /* specify valid pin states for each pin in GPIO mode */
  483. /* I/O and Pull U/D */
  484. PORT_DATA_IO_PD(0), PORT_DATA_IO_PD(1),
  485. PORT_DATA_IO_PD(2), PORT_DATA_IO_PD(3),
  486. PORT_DATA_IO_PD(4), PORT_DATA_IO_PD(5),
  487. PORT_DATA_IO_PD(6), PORT_DATA_IO(7),
  488. PORT_DATA_IO(8), PORT_DATA_IO(9),
  489. PORT_DATA_IO_PD(10), PORT_DATA_IO_PD(11),
  490. PORT_DATA_IO_PD(12), PORT_DATA_IO_PU_PD(13),
  491. PORT_DATA_IO_PD(14), PORT_DATA_IO_PD(15),
  492. PORT_DATA_IO_PD(16), PORT_DATA_IO_PD(17),
  493. PORT_DATA_IO(18), PORT_DATA_IO_PU(19),
  494. PORT_DATA_IO_PU_PD(20), PORT_DATA_IO_PD(21),
  495. PORT_DATA_IO_PU_PD(22), PORT_DATA_IO(23),
  496. PORT_DATA_IO_PU(24), PORT_DATA_IO_PU(25),
  497. PORT_DATA_IO_PU(26), PORT_DATA_IO_PU(27),
  498. PORT_DATA_IO_PU(28), PORT_DATA_IO_PU(29),
  499. PORT_DATA_IO_PU(30), PORT_DATA_IO_PD(31),
  500. PORT_DATA_IO_PD(32), PORT_DATA_IO_PD(33),
  501. PORT_DATA_IO_PD(34), PORT_DATA_IO_PU(35),
  502. PORT_DATA_IO_PU(36), PORT_DATA_IO_PD(37),
  503. PORT_DATA_IO_PU(38), PORT_DATA_IO_PD(39),
  504. PORT_DATA_IO_PU_PD(40), PORT_DATA_IO_PD(41),
  505. PORT_DATA_IO_PD(42), PORT_DATA_IO_PU_PD(43),
  506. PORT_DATA_IO_PU_PD(44), PORT_DATA_IO_PU_PD(45),
  507. PORT_DATA_IO_PU_PD(46), PORT_DATA_IO_PU_PD(47),
  508. PORT_DATA_IO_PU_PD(48), PORT_DATA_IO_PU_PD(49),
  509. PORT_DATA_IO_PU_PD(50), PORT_DATA_IO_PD(51),
  510. PORT_DATA_IO_PD(52), PORT_DATA_IO_PD(53),
  511. PORT_DATA_IO_PD(54), PORT_DATA_IO_PU_PD(55),
  512. PORT_DATA_IO_PU_PD(56), PORT_DATA_IO_PU_PD(57),
  513. PORT_DATA_IO_PU_PD(58), PORT_DATA_IO_PU_PD(59),
  514. PORT_DATA_IO_PU_PD(60), PORT_DATA_IO_PD(61),
  515. PORT_DATA_IO_PD(62), PORT_DATA_IO_PD(63),
  516. PORT_DATA_IO_PD(64), PORT_DATA_IO_PD(65),
  517. PORT_DATA_IO_PU_PD(66), PORT_DATA_IO_PU_PD(67),
  518. PORT_DATA_IO_PU_PD(68), PORT_DATA_IO_PU_PD(69),
  519. PORT_DATA_IO_PU_PD(70), PORT_DATA_IO_PU_PD(71),
  520. PORT_DATA_IO_PU_PD(72), PORT_DATA_IO_PU_PD(73),
  521. PORT_DATA_IO_PU_PD(74), PORT_DATA_IO_PU_PD(75),
  522. PORT_DATA_IO_PU_PD(76), PORT_DATA_IO_PU_PD(77),
  523. PORT_DATA_IO_PU_PD(78), PORT_DATA_IO_PU_PD(79),
  524. PORT_DATA_IO_PU_PD(80), PORT_DATA_IO_PU_PD(81),
  525. PORT_DATA_IO(82), PORT_DATA_IO_PU_PD(83),
  526. PORT_DATA_IO(84), PORT_DATA_IO_PD(85),
  527. PORT_DATA_IO_PD(86), PORT_DATA_IO_PD(87),
  528. PORT_DATA_IO_PD(88), PORT_DATA_IO_PD(89),
  529. PORT_DATA_IO_PD(90), PORT_DATA_IO_PU_PD(91),
  530. PORT_DATA_IO_PU_PD(92), PORT_DATA_IO_PU_PD(93),
  531. PORT_DATA_IO_PU_PD(94), PORT_DATA_IO_PU_PD(95),
  532. PORT_DATA_IO_PU_PD(96), PORT_DATA_IO_PU_PD(97),
  533. PORT_DATA_IO_PU_PD(98), PORT_DATA_IO_PU_PD(99),
  534. PORT_DATA_IO_PU_PD(100), PORT_DATA_IO(101),
  535. PORT_DATA_IO_PU(102), PORT_DATA_IO_PU_PD(103),
  536. PORT_DATA_IO_PU(104), PORT_DATA_IO_PU(105),
  537. PORT_DATA_IO_PU_PD(106), PORT_DATA_IO(107),
  538. PORT_DATA_IO(108), PORT_DATA_IO(109),
  539. PORT_DATA_IO(110), PORT_DATA_IO(111),
  540. PORT_DATA_IO(112), PORT_DATA_IO(113),
  541. PORT_DATA_IO_PU_PD(114), PORT_DATA_IO(115),
  542. PORT_DATA_IO_PD(116), PORT_DATA_IO_PD(117),
  543. PORT_DATA_IO_PD(118), PORT_DATA_IO_PD(119),
  544. PORT_DATA_IO_PD(120), PORT_DATA_IO_PD(121),
  545. PORT_DATA_IO_PD(122), PORT_DATA_IO_PD(123),
  546. PORT_DATA_IO_PD(124), PORT_DATA_IO(125),
  547. PORT_DATA_IO(126), PORT_DATA_IO(127),
  548. PORT_DATA_IO(128), PORT_DATA_IO(129),
  549. PORT_DATA_IO(130), PORT_DATA_IO(131),
  550. PORT_DATA_IO(132), PORT_DATA_IO(133),
  551. PORT_DATA_IO(134), PORT_DATA_IO(135),
  552. PORT_DATA_IO(136), PORT_DATA_IO(137),
  553. PORT_DATA_IO(138), PORT_DATA_IO(139),
  554. PORT_DATA_IO(140), PORT_DATA_IO(141),
  555. PORT_DATA_IO_PU(142), PORT_DATA_IO_PU(143),
  556. PORT_DATA_IO_PU(144), PORT_DATA_IO_PU(145),
  557. PORT_DATA_IO_PU(146), PORT_DATA_IO_PU(147),
  558. PORT_DATA_IO_PU(148), PORT_DATA_IO_PU(149),
  559. PORT_DATA_IO_PU(150), PORT_DATA_IO_PU(151),
  560. PORT_DATA_IO_PU(152), PORT_DATA_IO_PU(153),
  561. PORT_DATA_IO_PU(154), PORT_DATA_IO_PU(155),
  562. PORT_DATA_IO_PU(156), PORT_DATA_IO_PU(157),
  563. PORT_DATA_IO_PD(158), PORT_DATA_IO_PD(159),
  564. PORT_DATA_IO_PU_PD(160), PORT_DATA_IO_PD(161),
  565. PORT_DATA_IO_PD(162), PORT_DATA_IO_PD(163),
  566. PORT_DATA_IO_PD(164), PORT_DATA_IO_PD(165),
  567. PORT_DATA_IO_PU(166), PORT_DATA_IO_PU(167),
  568. PORT_DATA_IO_PU(168), PORT_DATA_IO_PU(169),
  569. PORT_DATA_IO_PU(170), PORT_DATA_IO_PU(171),
  570. PORT_DATA_IO_PD(172), PORT_DATA_IO_PD(173),
  571. PORT_DATA_IO_PD(174), PORT_DATA_IO_PD(175),
  572. PORT_DATA_IO_PU(176), PORT_DATA_IO_PU_PD(177),
  573. PORT_DATA_IO_PU(178), PORT_DATA_IO_PD(179),
  574. PORT_DATA_IO_PD(180), PORT_DATA_IO_PU(181),
  575. PORT_DATA_IO_PU(182), PORT_DATA_IO(183),
  576. PORT_DATA_IO_PD(184), PORT_DATA_IO_PD(185),
  577. PORT_DATA_IO_PD(186), PORT_DATA_IO_PD(187),
  578. PORT_DATA_IO_PD(188), PORT_DATA_IO_PD(189),
  579. PORT_DATA_IO_PD(190), PORT_DATA_IO_PD(191),
  580. PORT_DATA_IO_PD(192), PORT_DATA_IO_PU_PD(193),
  581. PORT_DATA_IO_PU_PD(194), PORT_DATA_IO_PD(195),
  582. PORT_DATA_IO_PU_PD(196), PORT_DATA_IO_PD(197),
  583. PORT_DATA_IO_PU_PD(198), PORT_DATA_IO_PU_PD(199),
  584. PORT_DATA_IO_PU_PD(200), PORT_DATA_IO_PU(201),
  585. PORT_DATA_IO_PU_PD(202), PORT_DATA_IO(203),
  586. PORT_DATA_IO_PU_PD(204), PORT_DATA_IO_PU_PD(205),
  587. PORT_DATA_IO_PU_PD(206), PORT_DATA_IO_PU_PD(207),
  588. PORT_DATA_IO_PU_PD(208), PORT_DATA_IO_PD(209),
  589. PORT_DATA_IO_PD(210), PORT_DATA_IO_PD(211),
  590. /* Port0 */
  591. PINMUX_DATA(DBGMDT2_MARK, PORT0_FN1),
  592. PINMUX_DATA(FSIAISLD_PORT0_MARK, PORT0_FN2, MSEL5CR_3_0),
  593. PINMUX_DATA(FSIAOSLD1_MARK, PORT0_FN3),
  594. PINMUX_DATA(LCD0_D22_PORT0_MARK, PORT0_FN4, MSEL5CR_6_0),
  595. PINMUX_DATA(SCIFA7_RXD_MARK, PORT0_FN6),
  596. PINMUX_DATA(LCD1_D4_MARK, PORT0_FN7),
  597. PINMUX_DATA(IRQ5_PORT0_MARK, PORT0_FN0, MSEL1CR_5_0),
  598. /* Port1 */
  599. PINMUX_DATA(DBGMDT1_MARK, PORT1_FN1),
  600. PINMUX_DATA(FMSISLD_PORT1_MARK, PORT1_FN2, MSEL5CR_5_0),
  601. PINMUX_DATA(FSIAOSLD2_MARK, PORT1_FN3),
  602. PINMUX_DATA(LCD0_D23_PORT1_MARK, PORT1_FN4, MSEL5CR_6_0),
  603. PINMUX_DATA(SCIFA7_TXD_MARK, PORT1_FN6),
  604. PINMUX_DATA(LCD1_D3_MARK, PORT1_FN7),
  605. PINMUX_DATA(IRQ5_PORT1_MARK, PORT1_FN0, MSEL1CR_5_1),
  606. /* Port2 */
  607. PINMUX_DATA(DBGMDT0_MARK, PORT2_FN1),
  608. PINMUX_DATA(SCIFB_SCK_PORT2_MARK, PORT2_FN2, MSEL5CR_17_1),
  609. PINMUX_DATA(LCD0_D21_PORT2_MARK, PORT2_FN4, MSEL5CR_6_0),
  610. PINMUX_DATA(LCD1_D2_MARK, PORT2_FN7),
  611. PINMUX_DATA(IRQ0_PORT2_MARK, PORT2_FN0, MSEL1CR_0_1),
  612. /* Port3 */
  613. PINMUX_DATA(DBGMD21_MARK, PORT3_FN1),