mux.h 17 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Pin-multiplex helper macros for TI DaVinci family devices
  4. *
  5. * Author: Vladimir Barinov, MontaVista Software, Inc. <[email protected]>
  6. *
  7. * 2007 (c) MontaVista Software, Inc.
  8. *
  9. * Copyright (C) 2008 Texas Instruments.
  10. */
  11. #ifndef _MACH_DAVINCI_MUX_H_
  12. #define _MACH_DAVINCI_MUX_H_
  13. struct mux_config {
  14. const char *name;
  15. const char *mux_reg_name;
  16. const unsigned char mux_reg;
  17. const unsigned char mask_offset;
  18. const unsigned char mask;
  19. const unsigned char mode;
  20. bool debug;
  21. };
  22. enum davinci_dm644x_index {
  23. /* ATA and HDDIR functions */
  24. DM644X_HDIREN,
  25. DM644X_ATAEN,
  26. DM644X_ATAEN_DISABLE,
  27. /* HPI functions */
  28. DM644X_HPIEN_DISABLE,
  29. /* AEAW functions */
  30. DM644X_AEAW,
  31. DM644X_AEAW0,
  32. DM644X_AEAW1,
  33. DM644X_AEAW2,
  34. DM644X_AEAW3,
  35. DM644X_AEAW4,
  36. /* Memory Stick */
  37. DM644X_MSTK,
  38. /* I2C */
  39. DM644X_I2C,
  40. /* ASP function */
  41. DM644X_MCBSP,
  42. /* UART1 */
  43. DM644X_UART1,
  44. /* UART2 */
  45. DM644X_UART2,
  46. /* PWM0 */
  47. DM644X_PWM0,
  48. /* PWM1 */
  49. DM644X_PWM1,
  50. /* PWM2 */
  51. DM644X_PWM2,
  52. /* VLYNQ function */
  53. DM644X_VLYNQEN,
  54. DM644X_VLSCREN,
  55. DM644X_VLYNQWD,
  56. /* EMAC and MDIO function */
  57. DM644X_EMACEN,
  58. /* GPIO3V[0:16] pins */
  59. DM644X_GPIO3V,
  60. /* GPIO pins */
  61. DM644X_GPIO0,
  62. DM644X_GPIO3,
  63. DM644X_GPIO43_44,
  64. DM644X_GPIO46_47,
  65. /* VPBE */
  66. DM644X_RGB666,
  67. /* LCD */
  68. DM644X_LOEEN,
  69. DM644X_LFLDEN,
  70. };
  71. enum davinci_dm646x_index {
  72. /* ATA function */
  73. DM646X_ATAEN,
  74. /* AUDIO Clock */
  75. DM646X_AUDCK1,
  76. DM646X_AUDCK0,
  77. /* CRGEN Control */
  78. DM646X_CRGMUX,
  79. /* VPIF Control */
  80. DM646X_STSOMUX_DISABLE,
  81. DM646X_STSIMUX_DISABLE,
  82. DM646X_PTSOMUX_DISABLE,
  83. DM646X_PTSIMUX_DISABLE,
  84. /* TSIF Control */
  85. DM646X_STSOMUX,
  86. DM646X_STSIMUX,
  87. DM646X_PTSOMUX_PARALLEL,
  88. DM646X_PTSIMUX_PARALLEL,
  89. DM646X_PTSOMUX_SERIAL,
  90. DM646X_PTSIMUX_SERIAL,
  91. };
  92. enum davinci_dm355_index {
  93. /* MMC/SD 0 */
  94. DM355_MMCSD0,
  95. /* MMC/SD 1 */
  96. DM355_SD1_CLK,
  97. DM355_SD1_CMD,
  98. DM355_SD1_DATA3,
  99. DM355_SD1_DATA2,
  100. DM355_SD1_DATA1,
  101. DM355_SD1_DATA0,
  102. /* I2C */
  103. DM355_I2C_SDA,
  104. DM355_I2C_SCL,
  105. /* ASP0 function */
  106. DM355_MCBSP0_BDX,
  107. DM355_MCBSP0_X,
  108. DM355_MCBSP0_BFSX,
  109. DM355_MCBSP0_BDR,
  110. DM355_MCBSP0_R,
  111. DM355_MCBSP0_BFSR,
  112. /* SPI0 */
  113. DM355_SPI0_SDI,
  114. DM355_SPI0_SDENA0,
  115. DM355_SPI0_SDENA1,
  116. /* IRQ muxing */
  117. DM355_INT_EDMA_CC,
  118. DM355_INT_EDMA_TC0_ERR,
  119. DM355_INT_EDMA_TC1_ERR,
  120. /* EDMA event muxing */
  121. DM355_EVT8_ASP1_TX,
  122. DM355_EVT9_ASP1_RX,
  123. DM355_EVT26_MMC0_RX,
  124. /* Video Out */
  125. DM355_VOUT_FIELD,
  126. DM355_VOUT_FIELD_G70,
  127. DM355_VOUT_HVSYNC,
  128. DM355_VOUT_COUTL_EN,
  129. DM355_VOUT_COUTH_EN,
  130. /* Video In Pin Mux */
  131. DM355_VIN_PCLK,
  132. DM355_VIN_CAM_WEN,
  133. DM355_VIN_CAM_VD,
  134. DM355_VIN_CAM_HD,
  135. DM355_VIN_YIN_EN,
  136. DM355_VIN_CINL_EN,
  137. DM355_VIN_CINH_EN,
  138. };
  139. enum davinci_dm365_index {
  140. /* MMC/SD 0 */
  141. DM365_MMCSD0,
  142. /* MMC/SD 1 */
  143. DM365_SD1_CLK,
  144. DM365_SD1_CMD,
  145. DM365_SD1_DATA3,
  146. DM365_SD1_DATA2,
  147. DM365_SD1_DATA1,
  148. DM365_SD1_DATA0,
  149. /* I2C */
  150. DM365_I2C_SDA,
  151. DM365_I2C_SCL,
  152. /* AEMIF */
  153. DM365_AEMIF_AR_A14,
  154. DM365_AEMIF_AR_BA0,
  155. DM365_AEMIF_A3,
  156. DM365_AEMIF_A7,
  157. DM365_AEMIF_D15_8,
  158. DM365_AEMIF_CE0,
  159. DM365_AEMIF_CE1,
  160. DM365_AEMIF_WE_OE,
  161. /* ASP0 function */
  162. DM365_MCBSP0_BDX,
  163. DM365_MCBSP0_X,
  164. DM365_MCBSP0_BFSX,
  165. DM365_MCBSP0_BDR,
  166. DM365_MCBSP0_R,
  167. DM365_MCBSP0_BFSR,
  168. /* SPI0 */
  169. DM365_SPI0_SCLK,
  170. DM365_SPI0_SDI,
  171. DM365_SPI0_SDO,
  172. DM365_SPI0_SDENA0,
  173. DM365_SPI0_SDENA1,
  174. /* UART */
  175. DM365_UART0_RXD,
  176. DM365_UART0_TXD,
  177. DM365_UART1_RXD,
  178. DM365_UART1_TXD,
  179. DM365_UART1_RTS,
  180. DM365_UART1_CTS,
  181. /* EMAC */
  182. DM365_EMAC_TX_EN,
  183. DM365_EMAC_TX_CLK,
  184. DM365_EMAC_COL,
  185. DM365_EMAC_TXD3,
  186. DM365_EMAC_TXD2,
  187. DM365_EMAC_TXD1,
  188. DM365_EMAC_TXD0,
  189. DM365_EMAC_RXD3,
  190. DM365_EMAC_RXD2,
  191. DM365_EMAC_RXD1,
  192. DM365_EMAC_RXD0,
  193. DM365_EMAC_RX_CLK,
  194. DM365_EMAC_RX_DV,
  195. DM365_EMAC_RX_ER,
  196. DM365_EMAC_CRS,
  197. DM365_EMAC_MDIO,
  198. DM365_EMAC_MDCLK,
  199. /* Key Scan */
  200. DM365_KEYSCAN,
  201. /* PWM */
  202. DM365_PWM0,
  203. DM365_PWM0_G23,
  204. DM365_PWM1,
  205. DM365_PWM1_G25,
  206. DM365_PWM2_G87,
  207. DM365_PWM2_G88,
  208. DM365_PWM2_G89,
  209. DM365_PWM2_G90,
  210. DM365_PWM3_G80,
  211. DM365_PWM3_G81,
  212. DM365_PWM3_G85,
  213. DM365_PWM3_G86,
  214. /* SPI1 */
  215. DM365_SPI1_SCLK,
  216. DM365_SPI1_SDO,
  217. DM365_SPI1_SDI,
  218. DM365_SPI1_SDENA0,
  219. DM365_SPI1_SDENA1,
  220. /* SPI2 */
  221. DM365_SPI2_SCLK,
  222. DM365_SPI2_SDO,
  223. DM365_SPI2_SDI,
  224. DM365_SPI2_SDENA0,
  225. DM365_SPI2_SDENA1,
  226. /* SPI3 */
  227. DM365_SPI3_SCLK,
  228. DM365_SPI3_SDO,
  229. DM365_SPI3_SDI,
  230. DM365_SPI3_SDENA0,
  231. DM365_SPI3_SDENA1,
  232. /* SPI4 */
  233. DM365_SPI4_SCLK,
  234. DM365_SPI4_SDO,
  235. DM365_SPI4_SDI,
  236. DM365_SPI4_SDENA0,
  237. DM365_SPI4_SDENA1,
  238. /* Clock */
  239. DM365_CLKOUT0,
  240. DM365_CLKOUT1,
  241. DM365_CLKOUT2,
  242. /* GPIO */
  243. DM365_GPIO20,
  244. DM365_GPIO30,
  245. DM365_GPIO31,
  246. DM365_GPIO32,
  247. DM365_GPIO33,
  248. DM365_GPIO40,
  249. DM365_GPIO64_57,
  250. /* Video */
  251. DM365_VOUT_FIELD,
  252. DM365_VOUT_FIELD_G81,
  253. DM365_VOUT_HVSYNC,
  254. DM365_VOUT_COUTL_EN,
  255. DM365_VOUT_COUTH_EN,
  256. DM365_VIN_CAM_WEN,
  257. DM365_VIN_CAM_VD,
  258. DM365_VIN_CAM_HD,
  259. DM365_VIN_YIN4_7_EN,
  260. DM365_VIN_YIN0_3_EN,
  261. /* IRQ muxing */
  262. DM365_INT_EDMA_CC,
  263. DM365_INT_EDMA_TC0_ERR,
  264. DM365_INT_EDMA_TC1_ERR,
  265. DM365_INT_EDMA_TC2_ERR,
  266. DM365_INT_EDMA_TC3_ERR,
  267. DM365_INT_PRTCSS,
  268. DM365_INT_EMAC_RXTHRESH,
  269. DM365_INT_EMAC_RXPULSE,
  270. DM365_INT_EMAC_TXPULSE,
  271. DM365_INT_EMAC_MISCPULSE,
  272. DM365_INT_IMX0_ENABLE,
  273. DM365_INT_IMX0_DISABLE,
  274. DM365_INT_HDVICP_ENABLE,
  275. DM365_INT_HDVICP_DISABLE,
  276. DM365_INT_IMX1_ENABLE,
  277. DM365_INT_IMX1_DISABLE,
  278. DM365_INT_NSF_ENABLE,
  279. DM365_INT_NSF_DISABLE,
  280. /* EDMA event muxing */
  281. DM365_EVT2_ASP_TX,
  282. DM365_EVT3_ASP_RX,
  283. DM365_EVT2_VC_TX,
  284. DM365_EVT3_VC_RX,
  285. DM365_EVT26_MMC0_RX,
  286. };
  287. enum da830_index {
  288. DA830_GPIO7_14,
  289. DA830_RTCK,
  290. DA830_GPIO7_15,
  291. DA830_EMU_0,
  292. DA830_EMB_SDCKE,
  293. DA830_EMB_CLK_GLUE,
  294. DA830_EMB_CLK,
  295. DA830_NEMB_CS_0,
  296. DA830_NEMB_CAS,
  297. DA830_NEMB_RAS,
  298. DA830_NEMB_WE,
  299. DA830_EMB_BA_1,
  300. DA830_EMB_BA_0,
  301. DA830_EMB_A_0,
  302. DA830_EMB_A_1,
  303. DA830_EMB_A_2,
  304. DA830_EMB_A_3,
  305. DA830_EMB_A_4,
  306. DA830_EMB_A_5,
  307. DA830_GPIO7_0,
  308. DA830_GPIO7_1,
  309. DA830_GPIO7_2,
  310. DA830_GPIO7_3,
  311. DA830_GPIO7_4,
  312. DA830_GPIO7_5,
  313. DA830_GPIO7_6,
  314. DA830_GPIO7_7,
  315. DA830_EMB_A_6,
  316. DA830_EMB_A_7,
  317. DA830_EMB_A_8,
  318. DA830_EMB_A_9,
  319. DA830_EMB_A_10,
  320. DA830_EMB_A_11,
  321. DA830_EMB_A_12,
  322. DA830_EMB_D_31,
  323. DA830_GPIO7_8,
  324. DA830_GPIO7_9,
  325. DA830_GPIO7_10,
  326. DA830_GPIO7_11,
  327. DA830_GPIO7_12,
  328. DA830_GPIO7_13,
  329. DA830_GPIO3_13,
  330. DA830_EMB_D_30,
  331. DA830_EMB_D_29,
  332. DA830_EMB_D_28,
  333. DA830_EMB_D_27,
  334. DA830_EMB_D_26,
  335. DA830_EMB_D_25,
  336. DA830_EMB_D_24,
  337. DA830_EMB_D_23,
  338. DA830_EMB_D_22,
  339. DA830_EMB_D_21,
  340. DA830_EMB_D_20,
  341. DA830_EMB_D_19,
  342. DA830_EMB_D_18,
  343. DA830_EMB_D_17,
  344. DA830_EMB_D_16,
  345. DA830_NEMB_WE_DQM_3,
  346. DA830_NEMB_WE_DQM_2,
  347. DA830_EMB_D_0,
  348. DA830_EMB_D_1,
  349. DA830_EMB_D_2,
  350. DA830_EMB_D_3,
  351. DA830_EMB_D_4,
  352. DA830_EMB_D_5,
  353. DA830_EMB_D_6,
  354. DA830_GPIO6_0,
  355. DA830_GPIO6_1,
  356. DA830_GPIO6_2,
  357. DA830_GPIO6_3,
  358. DA830_GPIO6_4,
  359. DA830_GPIO6_5,
  360. DA830_GPIO6_6,
  361. DA830_EMB_D_7,
  362. DA830_EMB_D_8,
  363. DA830_EMB_D_9,
  364. DA830_EMB_D_10,
  365. DA830_EMB_D_11,
  366. DA830_EMB_D_12,
  367. DA830_EMB_D_13,
  368. DA830_EMB_D_14,
  369. DA830_GPIO6_7,
  370. DA830_GPIO6_8,
  371. DA830_GPIO6_9,
  372. DA830_GPIO6_10,
  373. DA830_GPIO6_11,
  374. DA830_GPIO6_12,
  375. DA830_GPIO6_13,
  376. DA830_GPIO6_14,
  377. DA830_EMB_D_15,
  378. DA830_NEMB_WE_DQM_1,
  379. DA830_NEMB_WE_DQM_0,
  380. DA830_SPI0_SOMI_0,
  381. DA830_SPI0_SIMO_0,
  382. DA830_SPI0_CLK,
  383. DA830_NSPI0_ENA,
  384. DA830_NSPI0_SCS_0,
  385. DA830_EQEP0I,
  386. DA830_EQEP0S,
  387. DA830_EQEP1I,
  388. DA830_NUART0_CTS,
  389. DA830_NUART0_RTS,
  390. DA830_EQEP0A,
  391. DA830_EQEP0B,
  392. DA830_GPIO6_15,
  393. DA830_GPIO5_14,
  394. DA830_GPIO5_15,
  395. DA830_GPIO5_0,
  396. DA830_GPIO5_1,
  397. DA830_GPIO5_2,
  398. DA830_GPIO5_3,
  399. DA830_GPIO5_4,
  400. DA830_SPI1_SOMI_0,
  401. DA830_SPI1_SIMO_0,
  402. DA830_SPI1_CLK,
  403. DA830_UART0_RXD,
  404. DA830_UART0_TXD,
  405. DA830_AXR1_10,
  406. DA830_AXR1_11,
  407. DA830_NSPI1_ENA,
  408. DA830_I2C1_SCL,
  409. DA830_I2C1_SDA,
  410. DA830_EQEP1S,
  411. DA830_I2C0_SDA,
  412. DA830_I2C0_SCL,
  413. DA830_UART2_RXD,
  414. DA830_TM64P0_IN12,
  415. DA830_TM64P0_OUT12,
  416. DA830_GPIO5_5,
  417. DA830_GPIO5_6,
  418. DA830_GPIO5_7,
  419. DA830_GPIO5_8,
  420. DA830_GPIO5_9,
  421. DA830_GPIO5_10,
  422. DA830_GPIO5_11,
  423. DA830_GPIO5_12,
  424. DA830_NSPI1_SCS_0,
  425. DA830_USB0_DRVVBUS,
  426. DA830_AHCLKX0,
  427. DA830_ACLKX0,
  428. DA830_AFSX0,
  429. DA830_AHCLKR0,
  430. DA830_ACLKR0,
  431. DA830_AFSR0,
  432. DA830_UART2_TXD,
  433. DA830_AHCLKX2,
  434. DA830_ECAP0_APWM0,
  435. DA830_RMII_MHZ_50_CLK,
  436. DA830_ECAP1_APWM1,
  437. DA830_USB_REFCLKIN,
  438. DA830_GPIO5_13,
  439. DA830_GPIO4_15,
  440. DA830_GPIO2_11,
  441. DA830_GPIO2_12,
  442. DA830_GPIO2_13,
  443. DA830_GPIO2_14,
  444. DA830_GPIO2_15,
  445. DA830_GPIO3_12,
  446. DA830_AMUTE0,
  447. DA830_AXR0_0,
  448. DA830_AXR0_1,
  449. DA830_AXR0_2,
  450. DA830_AXR0_3,
  451. DA830_AXR0_4,
  452. DA830_AXR0_5,
  453. DA830_AXR0_6,
  454. DA830_RMII_TXD_0,
  455. DA830_RMII_TXD_1,
  456. DA830_RMII_TXEN,
  457. DA830_RMII_CRS_DV,
  458. DA830_RMII_RXD_0,
  459. DA830_RMII_RXD_1,
  460. DA830_RMII_RXER,
  461. DA830_AFSR2,
  462. DA830_ACLKX2,
  463. DA830_AXR2_3,
  464. DA830_AXR2_2,
  465. DA830_AXR2_1,
  466. DA830_AFSX2,
  467. DA830_ACLKR2,
  468. DA830_NRESETOUT,
  469. DA830_GPIO3_0,
  470. DA830_GPIO3_1,
  471. DA830_GPIO3_2,
  472. DA830_GPIO3_3,
  473. DA830_GPIO3_4,
  474. DA830_GPIO3_5,
  475. DA830_GPIO3_6,
  476. DA830_AXR0_7,
  477. DA830_AXR0_8,
  478. DA830_UART1_RXD,
  479. DA830_UART1_TXD,
  480. DA830_AXR0_11,
  481. DA830_AHCLKX1,
  482. DA830_ACLKX1,
  483. DA830_AFSX1,
  484. DA830_MDIO_CLK,
  485. DA830_MDIO_D,
  486. DA830_AXR0_9,
  487. DA830_AXR0_10,
  488. DA830_EPWM0B,
  489. DA830_EPWM0A,
  490. DA830_EPWMSYNCI,
  491. DA830_AXR2_0,
  492. DA830_EPWMSYNC0,
  493. DA830_GPIO3_7,
  494. DA830_GPIO3_8,
  495. DA830_GPIO3_9,
  496. DA830_GPIO3_10,
  497. DA830_GPIO3_11,
  498. DA830_GPIO3_14,
  499. DA830_GPIO3_15,
  500. DA830_GPIO4_10,
  501. DA830_AHCLKR1,
  502. DA830_ACLKR1,
  503. DA830_AFSR1,
  504. DA830_AMUTE1,
  505. DA830_AXR1_0,
  506. DA830_AXR1_1,
  507. DA830_AXR1_2,
  508. DA830_AXR1_3,
  509. DA830_ECAP2_APWM2,
  510. DA830_EHRPWMGLUETZ,
  511. DA830_EQEP1A,
  512. DA830_GPIO4_11,
  513. DA830_GPIO4_12,
  514. DA830_GPIO4_13,
  515. DA830_GPIO4_14,
  516. DA830_GPIO4_0,
  517. DA830_GPIO4_1,
  518. DA830_GPIO4_2,
  519. DA830_GPIO4_3,
  520. DA830_AXR1_4,
  521. DA830_AXR1_5,
  522. DA830_AXR1_6,
  523. DA830_AXR1_7,
  524. DA830_AXR1_8,
  525. DA830_AXR1_9,
  526. DA830_EMA_D_0,
  527. DA830_EMA_D_1,
  528. DA830_EQEP1B,
  529. DA830_EPWM2B,
  530. DA830_EPWM2A,
  531. DA830_EPWM1B,
  532. DA830_EPWM1A,
  533. DA830_MMCSD_DAT_0,
  534. DA830_MMCSD_DAT_1,
  535. DA830_UHPI_HD_0,
  536. DA830_UHPI_HD_1,
  537. DA830_GPIO4_4,
  538. DA830_GPIO4_5,
  539. DA830_GPIO4_6,
  540. DA830_GPIO4_7,
  541. DA830_GPIO4_8,
  542. DA830_GPIO4_9,
  543. DA830_GPIO0_0,
  544. DA830_GPIO0_1,
  545. DA830_EMA_D_2,
  546. DA830_EMA_D_3,
  547. DA830_EMA_D_4,
  548. DA830_EMA_D_5,
  549. DA830_EMA_D_6,
  550. DA830_EMA_D_7,
  551. DA830_EMA_D_8,
  552. DA830_EMA_D_9,
  553. DA830_MMCSD_DAT_2,
  554. DA830_MMCSD_DAT_3,
  555. DA830_MMCSD_DAT_4,
  556. DA830_MMCSD_DAT_5,
  557. DA830_MMCSD_DAT_6,
  558. DA830_MMCSD_DAT_7,
  559. DA830_UHPI_HD_8,
  560. DA830_UHPI_HD_9,
  561. DA830_UHPI_HD_2,
  562. DA830_UHPI_HD_3,
  563. DA830_UHPI_HD_4,
  564. DA830_UHPI_HD_5,
  565. DA830_UHPI_HD_6,
  566. DA830_UHPI_HD_7,
  567. DA830_LCD_D_8,
  568. DA830_LCD_D_9,
  569. DA830_GPIO0_2,
  570. DA830_GPIO0_3,
  571. DA830_GPIO0_4,
  572. DA830_GPIO0_5,
  573. DA830_GPIO0_6,
  574. DA830_GPIO0_7,
  575. DA830_GPIO0_8,
  576. DA830_GPIO0_9,
  577. DA830_EMA_D_10,
  578. DA830_EMA_D_11,
  579. DA830_EMA_D_12,
  580. DA830_EMA_D_13,
  581. DA830_EMA_D_14,
  582. DA830_EMA_D_15,
  583. DA830_EMA_A_0,
  584. DA830_EMA_A_1,
  585. DA830_UHPI_HD_10,
  586. DA830_UHPI_HD_11,
  587. DA830_UHPI_HD_12,
  588. DA830_UHPI_HD_13,
  589. DA830_UHPI_HD_14,
  590. DA830_UHPI_HD_15,
  591. DA830_LCD_D_7,
  592. DA830_MMCSD_CLK,
  593. DA830_LCD_D_10,
  594. DA830_LCD_D_11,
  595. DA830_LCD_D_12,
  596. DA830_LCD_D_13,
  597. DA830_LCD_D_14,
  598. DA830_LCD_D_15,
  599. DA830_UHPI_HCNTL0,
  600. DA830_GPIO0_10,
  601. DA830_GPIO0_11,
  602. DA830_GPIO0_12,
  603. DA830_GPIO0_13,
  604. DA830_GPIO0_14,
  605. DA830_GPIO0_15,
  606. DA830_GPIO1_0,
  607. DA830_GPIO1_1,
  608. DA830_EMA_A_2,
  609. DA830_EMA_A_3,
  610. DA830_EMA_A_4,
  611. DA830_EMA_A_5,
  612. DA830_EMA_A_6,
  613. DA830_EMA_A_7,
  614. DA830_EMA_A_8,
  615. DA830_EMA_A_9,
  616. DA830_MMCSD_CMD,
  617. DA830_LCD_D_6,
  618. DA830_LCD_D_3,
  619. DA830_LCD_D_2,
  620. DA830_LCD_D_1,
  621. DA830_LCD_D_0,
  622. DA830_LCD_PCLK,
  623. DA830_LCD_HSYNC,
  624. DA830_UHPI_HCNTL1,
  625. DA830_GPIO1_2,
  626. DA830_GPIO1_3,
  627. DA830_GPIO1_4,
  628. DA830_GPIO1_5,
  629. DA830_GPIO1_6,
  630. DA830_GPIO1_7,
  631. DA830_GPIO1_8,
  632. DA830_GPIO1_9,
  633. DA830_EMA_A_10,
  634. DA830_EMA_A_11,
  635. DA830_EMA_A_12,
  636. DA830_EMA_BA_1,
  637. DA830_EMA_BA_0,
  638. DA830_EMA_CLK,
  639. DA830_EMA_SDCKE,
  640. DA830_NEMA_CAS,
  641. DA830_LCD_VSYNC,
  642. DA830_NLCD_AC_ENB_CS,
  643. DA830_LCD_MCLK,
  644. DA830_LCD_D_5,
  645. DA830_LCD_D_4,
  646. DA830_OBSCLK,
  647. DA830_NEMA_CS_4,
  648. DA830_UHPI_HHWIL,
  649. DA830_AHCLKR2,
  650. DA830_GPIO1_10,
  651. DA830_GPIO1_11,
  652. DA830_GPIO1_12,
  653. DA830_GPIO1_13,
  654. DA830_GPIO1_14,
  655. DA830_GPIO1_15,
  656. DA830_GPIO2_0,
  657. DA830_GPIO2_1,
  658. DA830_NEMA_RAS,
  659. DA830_NEMA_WE,
  660. DA830_NEMA_CS_0,
  661. DA830_NEMA_CS_2,
  662. DA830_NEMA_CS_3,
  663. DA830_NEMA_OE,
  664. DA830_NEMA_WE_DQM_1,
  665. DA830_NEMA_WE_DQM_0,
  666. DA830_NEMA_CS_5,
  667. DA830_UHPI_HRNW,
  668. DA830_NUHPI_HAS,
  669. DA830_NUHPI_HCS,
  670. DA830_NUHPI_HDS1,
  671. DA830_NUHPI_HDS2,
  672. DA830_NUHPI_HINT,
  673. DA830_AXR0_12,
  674. DA830_AMUTE2,
  675. DA830_AXR0_13,
  676. DA830_AXR0_14,
  677. DA830_AXR0_15,
  678. DA830_GPIO2_2,
  679. DA830_GPIO2_3,
  680. DA830_GPIO2_4,
  681. DA830_GPIO2_5,
  682. DA830_GPIO2_6,
  683. DA830_GPIO2_7,
  684. DA830_GPIO2_8,
  685. DA830_GPIO2_9,
  686. DA830_EMA_WAIT_0,
  687. DA830_NUHPI_HRDY,
  688. DA830_GPIO2_10,
  689. };
  690. enum davinci_da850_index {
  691. /* UART0 function */
  692. DA850_NUART0_CTS,
  693. DA850_NUART0_RTS,
  694. DA850_UART0_RXD,
  695. DA850_UART0_TXD,
  696. /* UART1 function */
  697. DA850_NUART1_CTS,
  698. DA850_NUART1_RTS,
  699. DA850_UART1_RXD,
  700. DA850_UART1_TXD,
  701. /* UART2 function */
  702. DA850_NUART2_CTS,
  703. DA850_NUART2_RTS,
  704. DA850_UART2_RXD,
  705. DA850_UART2_TXD,
  706. /* I2C1 function */
  707. DA850_I2C1_SCL,
  708. DA850_I2C1_SDA,
  709. /* I2C0 function */
  710. DA850_I2C0_SDA,
  711. DA850_I2C0_SCL,
  712. /* EMAC function */
  713. DA850_MII_TXEN,
  714. DA850_MII_TXCLK,
  715. DA850_MII_COL,
  716. DA850_MII_TXD_3,
  717. DA850_MII_TXD_2,
  718. DA850_MII_TXD_1,
  719. DA850_MII_TXD_0,
  720. DA850_MII_RXER,
  721. DA850_MII_CRS,
  722. DA850_MII_RXCLK,
  723. DA850_MII_RXDV,
  724. DA850_MII_RXD_3,
  725. DA850_MII_RXD_2,
  726. DA850_MII_RXD_1,
  727. DA850_MII_RXD_0,
  728. DA850_MDIO_CLK,
  729. DA850_MDIO_D,
  730. DA850_RMII_TXD_0,
  731. DA850_RMII_TXD_1,
  732. DA850_RMII_TXEN,
  733. DA850_RMII_CRS_DV,
  734. DA850_RMII_RXD_0,
  735. DA850_RMII_RXD_1,
  736. DA850_RMII_RXER,
  737. DA850_RMII_MHZ_50_CLK,
  738. /* McASP function */
  739. DA850_ACLKR,
  740. DA850_ACLKX,
  741. DA850_AFSR,
  742. DA850_AFSX,
  743. DA850_AHCLKR,
  744. DA850_AHCLKX,
  745. DA850_AMUTE,
  746. DA850_AXR_15,
  747. DA850_AXR_14,
  748. DA850_AXR_13,
  749. DA850_AXR_12,
  750. DA850_AXR_11,
  751. DA850_AXR_10,
  752. DA850_AXR_9,
  753. DA850_AXR_8,
  754. DA850_AXR_7,
  755. DA850_AXR_6,
  756. DA850_AXR_5,
  757. DA850_AXR_4,
  758. DA850_AXR_3,
  759. DA850_AXR_2,
  760. DA850_AXR_1,
  761. DA850_AXR_0,
  762. /* LCD function */
  763. DA850_LCD_D_7,
  764. DA850_LCD_D_6,
  765. DA850_LCD_D_5,
  766. DA850_LCD_D_4,
  767. DA850_LCD_D_3,
  768. DA850_LCD_D_2,
  769. DA850_LCD_D_1,
  770. DA850_LCD_D_0,
  771. DA850_LCD_D_15,
  772. DA850_LCD_D_14,
  773. DA850_LCD_D_13,
  774. DA850_LCD_D_12,
  775. DA850_LCD_D_11,
  776. DA850_LCD_D_10,
  777. DA850_LCD_D_9,
  778. DA850_LCD_D_8,
  779. DA850_LCD_PCLK,
  780. DA850_LCD_HSYNC,
  781. DA850_LCD_VSYNC,
  782. DA850_NLCD_AC_ENB_CS,
  783. /* MMC/SD0 function */
  784. DA850_MMCSD0_DAT_0,
  785. DA850_MMCSD0_DAT_1,
  786. DA850_MMCSD0_DAT_2,
  787. DA850_MMCSD0_DAT_3,
  788. DA850_MMCSD0_CLK,
  789. DA850_MMCSD0_CMD,
  790. /* MMC/SD1 function */
  791. DA850_MMCSD1_DAT_0,
  792. DA850_MMCSD1_DAT_1,
  793. DA850_MMCSD1_DAT_2,
  794. DA850_MMCSD1_DAT_3,
  795. DA850_MMCSD1_CLK,
  796. DA850_MMCSD1_CMD,
  797. /* EMIF2.5/EMIFA function */
  798. DA850_EMA_D_7,
  799. DA850_EMA_D_6,
  800. DA850_EMA_D_5,
  801. DA850_EMA_D_4,
  802. DA850_EMA_D_3,
  803. DA850_EMA_D_2,
  804. DA850_EMA_D_1,
  805. DA850_EMA_D_0,
  806. DA850_EMA_A_1,
  807. DA850_EMA_A_2,
  808. DA850_NEMA_CS_3,
  809. DA850_NEMA_CS_4,
  810. DA850_NEMA_WE,
  811. DA850_NEMA_OE,
  812. DA850_EMA_D_15,
  813. DA850_EMA_D_14,
  814. DA850_EMA_D_13,
  815. DA850_EMA_D_12,
  816. DA850_EMA_D_11,
  817. DA850_EMA_D_10,
  818. DA850_EMA_D_9,
  819. DA850_EMA_D_8,
  820. DA850_EMA_A_0,
  821. DA850_EMA_A_3,
  822. DA850_EMA_A_4,
  823. DA850_EMA_A_5,
  824. DA850_EMA_A_6,
  825. DA850_EMA_A_7,
  826. DA850_EMA_A_8,
  827. DA850_EMA_A_9,
  828. DA850_EMA_A_10,
  829. DA850_EMA_A_11,
  830. DA850_EMA_A_12,
  831. DA850_EMA_A_13,
  832. DA850_EMA_A_14,
  833. DA850_EMA_A_15,
  834. DA850_EMA_A_16,
  835. DA850_EMA_A_17,
  836. DA850_EMA_A_18,
  837. DA850_EMA_A_19,
  838. DA850_EMA_A_20,
  839. DA850_EMA_A_21,
  840. DA850_EMA_A_22,
  841. DA850_EMA_A_23,
  842. DA850_EMA_BA_1,
  843. DA850_EMA_CLK,
  844. DA850_EMA_WAIT_1,
  845. DA850_NEMA_CS_2,
  846. /* GPIO function */
  847. DA850_GPIO2_4,
  848. DA850_GPIO2_6,
  849. DA850_GPIO2_8,
  850. DA850_GPIO2_15,
  851. DA850_GPIO3_12,
  852. DA850_GPIO3_13,
  853. DA850_GPIO4_0,
  854. DA850_GPIO4_1,
  855. DA850_GPIO6_9,
  856. DA850_GPIO6_10,
  857. DA850_GPIO6_13,
  858. DA850_RTC_ALARM,
  859. /* VPIF Capture */
  860. DA850_VPIF_DIN0,
  861. DA850_VPIF_DIN1,
  862. DA850_VPIF_DIN2,
  863. DA850_VPIF_DIN3,
  864. DA850_VPIF_DIN4,
  865. DA850_VPIF_DIN5,
  866. DA850_VPIF_DIN6,
  867. DA850_VPIF_DIN7,
  868. DA850_VPIF_DIN8,
  869. DA850_VPIF_DIN9,
  870. DA850_VPIF_DIN10,
  871. DA850_VPIF_DIN11,
  872. DA850_VPIF_DIN12,
  873. DA850_VPIF_DIN13,
  874. DA850_VPIF_DIN14,
  875. DA850_VPIF_DIN15,
  876. DA850_VPIF_CLKIN0,
  877. DA850_VPIF_CLKIN1,
  878. DA850_VPIF_CLKIN2,
  879. DA850_VPIF_CLKIN3,
  880. /* VPIF Display */
  881. DA850_VPIF_DOUT0,
  882. DA850_VPIF_DOUT1,
  883. DA850_VPIF_DOUT2,
  884. DA850_VPIF_DOUT3,
  885. DA850_VPIF_DOUT4,
  886. DA850_VPIF_DOUT5,
  887. DA850_VPIF_DOUT6,
  888. DA850_VPIF_DOUT7,
  889. DA850_VPIF_DOUT8,
  890. DA850_VPIF_DOUT9,
  891. DA850_VPIF_DOUT10,
  892. DA850_VPIF_DOUT11,
  893. DA850_VPIF_DOUT12,
  894. DA850_VPIF_DOUT13,
  895. DA850_VPIF_DOUT14,
  896. DA850_VPIF_DOUT15,
  897. DA850_VPIF_CLKO2,
  898. DA850_VPIF_CLKO3,
  899. };
  900. #define PINMUX(x) (4 * (x))
  901. #ifdef CONFIG_DAVINCI_MUX
  902. /* setup pin muxing */
  903. extern int davinci_cfg_reg(unsigned long reg_cfg);
  904. extern int davinci_cfg_reg_list(const short pins[]);
  905. #else
  906. /* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
  907. static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
  908. static inline int davinci_cfg_reg_list(const short pins[])
  909. {
  910. return 0;
  911. }
  912. #endif
  913. #define MUX_CFG(soc, desc, muxreg, mode_offset, mode_mask, mux_mode, dbg)\
  914. [soc##_##desc] = { \
  915. .name = #desc, \
  916. .debug = dbg, \
  917. .mux_reg_name = "PINMUX"#muxreg, \
  918. .mux_reg = PINMUX(muxreg), \
  919. .mask_offset = mode_offset, \
  920. .mask = mode_mask, \
  921. .mode = mux_mode, \
  922. },
  923. #define INT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg) \
  924. [soc##_##desc] = { \
  925. .name = #desc, \
  926. .debug = dbg, \
  927. .mux_reg_name = "INTMUX", \
  928. .mux_reg = INTMUX, \
  929. .mask_offset = mode_offset, \
  930. .mask = mode_mask, \
  931. .mode = mux_mode, \
  932. },
  933. #define EVT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg) \
  934. [soc##_##desc] = { \
  935. .name = #desc, \
  936. .debug = dbg, \
  937. .mux_reg_name = "EVTMUX", \
  938. .mux_reg = EVTMUX, \
  939. .mask_offset = mode_offset, \
  940. .mask = mode_mask, \
  941. .mode = mux_mode, \
  942. },
  943. #endif /* _MACH_DAVINCI_MUX_H */