pinctrl-rtd1315e.c 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Realtek DHC 1315E pin controller driver
  4. *
  5. * Copyright (c) 2023 Realtek Semiconductor Corp.
  6. *
  7. */
  8. #include <linux/module.h>
  9. #include <linux/of.h>
  10. #include <linux/platform_device.h>
  11. #include <linux/pinctrl/pinctrl.h>
  12. #include "pinctrl-rtd.h"
  13. enum rtd13xxe_iso_pins {
  14. RTD1315E_ISO_GPIO_0 = 0,
  15. RTD1315E_ISO_GPIO_1,
  16. RTD1315E_ISO_EMMC_RST_N,
  17. RTD1315E_ISO_EMMC_DD_SB,
  18. RTD1315E_ISO_EMMC_CLK,
  19. RTD1315E_ISO_EMMC_CMD,
  20. RTD1315E_ISO_GPIO_6,
  21. RTD1315E_ISO_GPIO_7,
  22. RTD1315E_ISO_GPIO_8,
  23. RTD1315E_ISO_GPIO_9,
  24. RTD1315E_ISO_GPIO_10,
  25. RTD1315E_ISO_GPIO_11,
  26. RTD1315E_ISO_GPIO_12,
  27. RTD1315E_ISO_GPIO_13,
  28. RTD1315E_ISO_GPIO_14,
  29. RTD1315E_ISO_GPIO_15,
  30. RTD1315E_ISO_GPIO_16,
  31. RTD1315E_ISO_GPIO_17,
  32. RTD1315E_ISO_GPIO_18,
  33. RTD1315E_ISO_GPIO_19,
  34. RTD1315E_ISO_GPIO_20,
  35. RTD1315E_ISO_EMMC_DATA_0,
  36. RTD1315E_ISO_EMMC_DATA_1,
  37. RTD1315E_ISO_EMMC_DATA_2,
  38. RTD1315E_ISO_USB_CC2,
  39. RTD1315E_ISO_GPIO_25,
  40. RTD1315E_ISO_GPIO_26,
  41. RTD1315E_ISO_GPIO_27,
  42. RTD1315E_ISO_GPIO_28,
  43. RTD1315E_ISO_GPIO_29,
  44. RTD1315E_ISO_GPIO_30,
  45. RTD1315E_ISO_GPIO_31,
  46. RTD1315E_ISO_GPIO_32,
  47. RTD1315E_ISO_GPIO_33,
  48. RTD1315E_ISO_GPIO_34,
  49. RTD1315E_ISO_GPIO_35,
  50. RTD1315E_ISO_HIF_DATA,
  51. RTD1315E_ISO_HIF_EN,
  52. RTD1315E_ISO_HIF_RDY,
  53. RTD1315E_ISO_HIF_CLK,
  54. RTD1315E_ISO_GPIO_DUMMY_40,
  55. RTD1315E_ISO_GPIO_DUMMY_41,
  56. RTD1315E_ISO_GPIO_DUMMY_42,
  57. RTD1315E_ISO_GPIO_DUMMY_43,
  58. RTD1315E_ISO_GPIO_DUMMY_44,
  59. RTD1315E_ISO_GPIO_DUMMY_45,
  60. RTD1315E_ISO_GPIO_46,
  61. RTD1315E_ISO_GPIO_47,
  62. RTD1315E_ISO_GPIO_48,
  63. RTD1315E_ISO_GPIO_49,
  64. RTD1315E_ISO_GPIO_50,
  65. RTD1315E_ISO_USB_CC1,
  66. RTD1315E_ISO_EMMC_DATA_3,
  67. RTD1315E_ISO_EMMC_DATA_4,
  68. RTD1315E_ISO_IR_RX,
  69. RTD1315E_ISO_UR0_RX,
  70. RTD1315E_ISO_UR0_TX,
  71. RTD1315E_ISO_GPIO_57,
  72. RTD1315E_ISO_GPIO_58,
  73. RTD1315E_ISO_GPIO_59,
  74. RTD1315E_ISO_GPIO_60,
  75. RTD1315E_ISO_GPIO_61,
  76. RTD1315E_ISO_GPIO_62,
  77. RTD1315E_ISO_GPIO_DUMMY_63,
  78. RTD1315E_ISO_GPIO_DUMMY_64,
  79. RTD1315E_ISO_GPIO_DUMMY_65,
  80. RTD1315E_ISO_GPIO_66,
  81. RTD1315E_ISO_GPIO_67,
  82. RTD1315E_ISO_GPIO_68,
  83. RTD1315E_ISO_GPIO_69,
  84. RTD1315E_ISO_GPIO_70,
  85. RTD1315E_ISO_GPIO_71,
  86. RTD1315E_ISO_GPIO_72,
  87. RTD1315E_ISO_GPIO_DUMMY_73,
  88. RTD1315E_ISO_EMMC_DATA_5,
  89. RTD1315E_ISO_EMMC_DATA_6,
  90. RTD1315E_ISO_EMMC_DATA_7,
  91. RTD1315E_ISO_GPIO_DUMMY_77,
  92. RTD1315E_ISO_GPIO_78,
  93. RTD1315E_ISO_GPIO_79,
  94. RTD1315E_ISO_GPIO_80,
  95. RTD1315E_ISO_GPIO_81,
  96. RTD1315E_ISO_UR2_LOC,
  97. RTD1315E_ISO_GSPI_LOC,
  98. RTD1315E_ISO_HI_WIDTH,
  99. RTD1315E_ISO_SF_EN,
  100. RTD1315E_ISO_ARM_TRACE_DBG_EN,
  101. RTD1315E_ISO_EJTAG_AUCPU_LOC,
  102. RTD1315E_ISO_EJTAG_ACPU_LOC,
  103. RTD1315E_ISO_EJTAG_VCPU_LOC,
  104. RTD1315E_ISO_EJTAG_SCPU_LOC,
  105. RTD1315E_ISO_DMIC_LOC,
  106. RTD1315E_ISO_VTC_DMIC_LOC,
  107. RTD1315E_ISO_VTC_TDM_LOC,
  108. RTD1315E_ISO_VTC_I2SI_LOC,
  109. RTD1315E_ISO_TDM_AI_LOC,
  110. RTD1315E_ISO_AI_LOC,
  111. RTD1315E_ISO_SPDIF_LOC,
  112. RTD1315E_ISO_HIF_EN_LOC,
  113. RTD1315E_ISO_SCAN_SWITCH,
  114. RTD1315E_ISO_WD_RSET,
  115. RTD1315E_ISO_BOOT_SEL,
  116. RTD1315E_ISO_RESET_N,
  117. RTD1315E_ISO_TESTMODE,
  118. };
  119. static const struct pinctrl_pin_desc rtd1315e_iso_pins[] = {
  120. PINCTRL_PIN(RTD1315E_ISO_GPIO_0, "gpio_0"),
  121. PINCTRL_PIN(RTD1315E_ISO_GPIO_1, "gpio_1"),
  122. PINCTRL_PIN(RTD1315E_ISO_EMMC_RST_N, "emmc_rst_n"),
  123. PINCTRL_PIN(RTD1315E_ISO_EMMC_DD_SB, "emmc_dd_sb"),
  124. PINCTRL_PIN(RTD1315E_ISO_EMMC_CLK, "emmc_clk"),
  125. PINCTRL_PIN(RTD1315E_ISO_EMMC_CMD, "emmc_cmd"),
  126. PINCTRL_PIN(RTD1315E_ISO_GPIO_6, "gpio_6"),
  127. PINCTRL_PIN(RTD1315E_ISO_GPIO_7, "gpio_7"),
  128. PINCTRL_PIN(RTD1315E_ISO_GPIO_8, "gpio_8"),
  129. PINCTRL_PIN(RTD1315E_ISO_GPIO_9, "gpio_9"),
  130. PINCTRL_PIN(RTD1315E_ISO_GPIO_10, "gpio_10"),
  131. PINCTRL_PIN(RTD1315E_ISO_GPIO_11, "gpio_11"),
  132. PINCTRL_PIN(RTD1315E_ISO_GPIO_12, "gpio_12"),
  133. PINCTRL_PIN(RTD1315E_ISO_GPIO_13, "gpio_13"),
  134. PINCTRL_PIN(RTD1315E_ISO_GPIO_14, "gpio_14"),
  135. PINCTRL_PIN(RTD1315E_ISO_GPIO_15, "gpio_15"),
  136. PINCTRL_PIN(RTD1315E_ISO_GPIO_16, "gpio_16"),
  137. PINCTRL_PIN(RTD1315E_ISO_GPIO_17, "gpio_17"),
  138. PINCTRL_PIN(RTD1315E_ISO_GPIO_18, "gpio_18"),
  139. PINCTRL_PIN(RTD1315E_ISO_GPIO_19, "gpio_19"),
  140. PINCTRL_PIN(RTD1315E_ISO_GPIO_20, "gpio_20"),
  141. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_0, "emmc_data_0"),
  142. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_1, "emmc_data_1"),
  143. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_2, "emmc_data_2"),
  144. PINCTRL_PIN(RTD1315E_ISO_USB_CC2, "usb_cc2"),
  145. PINCTRL_PIN(RTD1315E_ISO_GPIO_25, "gpio_25"),
  146. PINCTRL_PIN(RTD1315E_ISO_GPIO_26, "gpio_26"),
  147. PINCTRL_PIN(RTD1315E_ISO_GPIO_27, "gpio_27"),
  148. PINCTRL_PIN(RTD1315E_ISO_GPIO_28, "gpio_28"),
  149. PINCTRL_PIN(RTD1315E_ISO_GPIO_29, "gpio_29"),
  150. PINCTRL_PIN(RTD1315E_ISO_GPIO_30, "gpio_30"),
  151. PINCTRL_PIN(RTD1315E_ISO_GPIO_31, "gpio_31"),
  152. PINCTRL_PIN(RTD1315E_ISO_GPIO_32, "gpio_32"),
  153. PINCTRL_PIN(RTD1315E_ISO_GPIO_33, "gpio_33"),
  154. PINCTRL_PIN(RTD1315E_ISO_GPIO_34, "gpio_34"),
  155. PINCTRL_PIN(RTD1315E_ISO_GPIO_35, "gpio_35"),
  156. PINCTRL_PIN(RTD1315E_ISO_HIF_DATA, "hif_data"),
  157. PINCTRL_PIN(RTD1315E_ISO_HIF_EN, "hif_en"),
  158. PINCTRL_PIN(RTD1315E_ISO_HIF_RDY, "hif_rdy"),
  159. PINCTRL_PIN(RTD1315E_ISO_HIF_CLK, "hif_clk"),
  160. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_40, "gpio_dummy_40"),
  161. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_41, "gpio_dummy_41"),
  162. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_42, "gpio_dummy_42"),
  163. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_43, "gpio_dummy_43"),
  164. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_44, "gpio_dummy_44"),
  165. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_45, "gpio_dummy_45"),
  166. PINCTRL_PIN(RTD1315E_ISO_GPIO_46, "gpio_46"),
  167. PINCTRL_PIN(RTD1315E_ISO_GPIO_47, "gpio_47"),
  168. PINCTRL_PIN(RTD1315E_ISO_GPIO_48, "gpio_48"),
  169. PINCTRL_PIN(RTD1315E_ISO_GPIO_49, "gpio_49"),
  170. PINCTRL_PIN(RTD1315E_ISO_GPIO_50, "gpio_50"),
  171. PINCTRL_PIN(RTD1315E_ISO_USB_CC1, "usb_cc1"),
  172. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_3, "emmc_data_3"),
  173. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_4, "emmc_data_4"),
  174. PINCTRL_PIN(RTD1315E_ISO_IR_RX, "ir_rx"),
  175. PINCTRL_PIN(RTD1315E_ISO_UR0_RX, "ur0_rx"),
  176. PINCTRL_PIN(RTD1315E_ISO_UR0_TX, "ur0_tx"),
  177. PINCTRL_PIN(RTD1315E_ISO_GPIO_57, "gpio_57"),
  178. PINCTRL_PIN(RTD1315E_ISO_GPIO_58, "gpio_58"),
  179. PINCTRL_PIN(RTD1315E_ISO_GPIO_59, "gpio_59"),
  180. PINCTRL_PIN(RTD1315E_ISO_GPIO_60, "gpio_60"),
  181. PINCTRL_PIN(RTD1315E_ISO_GPIO_61, "gpio_61"),
  182. PINCTRL_PIN(RTD1315E_ISO_GPIO_62, "gpio_62"),
  183. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_63, "gpio_dummy_63"),
  184. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_64, "gpio_dummy_64"),
  185. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_65, "gpio_dummy_65"),
  186. PINCTRL_PIN(RTD1315E_ISO_GPIO_66, "gpio_66"),
  187. PINCTRL_PIN(RTD1315E_ISO_GPIO_67, "gpio_67"),
  188. PINCTRL_PIN(RTD1315E_ISO_GPIO_68, "gpio_68"),
  189. PINCTRL_PIN(RTD1315E_ISO_GPIO_69, "gpio_69"),
  190. PINCTRL_PIN(RTD1315E_ISO_GPIO_70, "gpio_70"),
  191. PINCTRL_PIN(RTD1315E_ISO_GPIO_71, "gpio_71"),
  192. PINCTRL_PIN(RTD1315E_ISO_GPIO_72, "gpio_72"),
  193. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_73, "gpio_dummy_73"),
  194. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_5, "emmc_data_5"),
  195. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_6, "emmc_data_6"),
  196. PINCTRL_PIN(RTD1315E_ISO_EMMC_DATA_7, "emmc_data_7"),
  197. PINCTRL_PIN(RTD1315E_ISO_GPIO_DUMMY_77, "gpio_dummy_77"),
  198. PINCTRL_PIN(RTD1315E_ISO_GPIO_78, "gpio_78"),
  199. PINCTRL_PIN(RTD1315E_ISO_GPIO_79, "gpio_79"),
  200. PINCTRL_PIN(RTD1315E_ISO_GPIO_80, "gpio_80"),
  201. PINCTRL_PIN(RTD1315E_ISO_GPIO_81, "gpio_81"),
  202. PINCTRL_PIN(RTD1315E_ISO_UR2_LOC, "ur2_loc"),
  203. PINCTRL_PIN(RTD1315E_ISO_GSPI_LOC, "gspi_loc"),
  204. PINCTRL_PIN(RTD1315E_ISO_HI_WIDTH, "hi_width"),
  205. PINCTRL_PIN(RTD1315E_ISO_SF_EN, "sf_en"),
  206. PINCTRL_PIN(RTD1315E_ISO_ARM_TRACE_DBG_EN, "arm_trace_dbg_en"),
  207. PINCTRL_PIN(RTD1315E_ISO_EJTAG_AUCPU_LOC, "ejtag_aucpu_loc"),
  208. PINCTRL_PIN(RTD1315E_ISO_EJTAG_ACPU_LOC, "ejtag_acpu_loc"),
  209. PINCTRL_PIN(RTD1315E_ISO_EJTAG_VCPU_LOC, "ejtag_vcpu_loc"),
  210. PINCTRL_PIN(RTD1315E_ISO_EJTAG_SCPU_LOC, "ejtag_scpu_loc"),
  211. PINCTRL_PIN(RTD1315E_ISO_DMIC_LOC, "dmic_loc"),
  212. PINCTRL_PIN(RTD1315E_ISO_VTC_DMIC_LOC, "vtc_dmic_loc"),
  213. PINCTRL_PIN(RTD1315E_ISO_VTC_TDM_LOC, "vtc_tdm_loc"),
  214. PINCTRL_PIN(RTD1315E_ISO_VTC_I2SI_LOC, "vtc_i2si_loc"),
  215. PINCTRL_PIN(RTD1315E_ISO_TDM_AI_LOC, "tdm_ai_loc"),
  216. PINCTRL_PIN(RTD1315E_ISO_AI_LOC, "ai_loc"),
  217. PINCTRL_PIN(RTD1315E_ISO_SPDIF_LOC, "spdif_loc"),
  218. PINCTRL_PIN(RTD1315E_ISO_HIF_EN_LOC, "hif_en_loc"),
  219. PINCTRL_PIN(RTD1315E_ISO_SCAN_SWITCH, "scan_switch"),
  220. PINCTRL_PIN(RTD1315E_ISO_WD_RSET, "wd_rset"),
  221. PINCTRL_PIN(RTD1315E_ISO_BOOT_SEL, "boot_sel"),
  222. PINCTRL_PIN(RTD1315E_ISO_RESET_N, "reset_n"),
  223. PINCTRL_PIN(RTD1315E_ISO_TESTMODE, "testmode"),
  224. };
  225. /* Tagged as __maybe_unused since there are pins we may use in the future */
  226. #define DECLARE_RTD1315E_PIN(_pin, _name) \
  227. static const unsigned int rtd1315e_## _name ##_pins[] __maybe_unused = { _pin }
  228. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_0, gpio_0);
  229. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_1, gpio_1);
  230. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_RST_N, emmc_rst_n);
  231. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DD_SB, emmc_dd_sb);
  232. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_CLK, emmc_clk);
  233. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_CMD, emmc_cmd);
  234. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_6, gpio_6);
  235. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_7, gpio_7);
  236. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_8, gpio_8);
  237. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_9, gpio_9);
  238. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_10, gpio_10);
  239. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_11, gpio_11);
  240. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_12, gpio_12);
  241. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_13, gpio_13);
  242. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_14, gpio_14);
  243. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_15, gpio_15);
  244. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_16, gpio_16);
  245. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_17, gpio_17);
  246. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_18, gpio_18);
  247. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_19, gpio_19);
  248. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_20, gpio_20);
  249. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_0, emmc_data_0);
  250. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_1, emmc_data_1);
  251. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_2, emmc_data_2);
  252. DECLARE_RTD1315E_PIN(RTD1315E_ISO_USB_CC2, usb_cc2);
  253. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_25, gpio_25);
  254. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_26, gpio_26);
  255. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_27, gpio_27);
  256. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_28, gpio_28);
  257. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_29, gpio_29);
  258. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_30, gpio_30);
  259. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_31, gpio_31);
  260. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_32, gpio_32);
  261. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_33, gpio_33);
  262. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_34, gpio_34);
  263. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_35, gpio_35);
  264. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_DATA, hif_data);
  265. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_EN, hif_en);
  266. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_RDY, hif_rdy);
  267. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_CLK, hif_clk);
  268. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_40, gpio_dummy_40);
  269. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_41, gpio_dummy_41);
  270. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_42, gpio_dummy_42);
  271. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_43, gpio_dummy_43);
  272. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_44, gpio_dummy_44);
  273. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_45, gpio_dummy_45);
  274. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_46, gpio_46);
  275. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_47, gpio_47);
  276. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_48, gpio_48);
  277. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_49, gpio_49);
  278. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_50, gpio_50);
  279. DECLARE_RTD1315E_PIN(RTD1315E_ISO_USB_CC1, usb_cc1);
  280. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_3, emmc_data_3);
  281. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_4, emmc_data_4);
  282. DECLARE_RTD1315E_PIN(RTD1315E_ISO_IR_RX, ir_rx);
  283. DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR0_RX, ur0_rx);
  284. DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR0_TX, ur0_tx);
  285. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_57, gpio_57);
  286. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_58, gpio_58);
  287. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_59, gpio_59);
  288. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_60, gpio_60);
  289. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_61, gpio_61);
  290. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_62, gpio_62);
  291. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_63, gpio_dummy_63);
  292. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_64, gpio_dummy_64);
  293. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_65, gpio_dummy_65);
  294. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_66, gpio_66);
  295. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_67, gpio_67);
  296. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_68, gpio_68);
  297. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_69, gpio_69);
  298. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_70, gpio_70);
  299. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_71, gpio_71);
  300. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_72, gpio_72);
  301. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_73, gpio_dummy_73);
  302. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_5, emmc_data_5);
  303. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_6, emmc_data_6);
  304. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EMMC_DATA_7, emmc_data_7);
  305. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_DUMMY_77, gpio_dummy_77);
  306. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_78, gpio_78);
  307. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_79, gpio_79);
  308. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_80, gpio_80);
  309. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GPIO_81, gpio_81);
  310. DECLARE_RTD1315E_PIN(RTD1315E_ISO_UR2_LOC, ur2_loc);
  311. DECLARE_RTD1315E_PIN(RTD1315E_ISO_GSPI_LOC, gspi_loc);
  312. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HI_WIDTH, hi_width);
  313. DECLARE_RTD1315E_PIN(RTD1315E_ISO_SF_EN, sf_en);
  314. DECLARE_RTD1315E_PIN(RTD1315E_ISO_ARM_TRACE_DBG_EN, arm_trace_dbg_en);
  315. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_AUCPU_LOC, ejtag_aucpu_loc);
  316. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_ACPU_LOC, ejtag_acpu_loc);
  317. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_VCPU_LOC, ejtag_vcpu_loc);
  318. DECLARE_RTD1315E_PIN(RTD1315E_ISO_EJTAG_SCPU_LOC, ejtag_scpu_loc);
  319. DECLARE_RTD1315E_PIN(RTD1315E_ISO_DMIC_LOC, dmic_loc);
  320. DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_DMIC_LOC, vtc_dmic_loc);
  321. DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_TDM_LOC, vtc_tdm_loc);
  322. DECLARE_RTD1315E_PIN(RTD1315E_ISO_VTC_I2SI_LOC, vtc_i2si_loc);
  323. DECLARE_RTD1315E_PIN(RTD1315E_ISO_TDM_AI_LOC, tdm_ai_loc);
  324. DECLARE_RTD1315E_PIN(RTD1315E_ISO_AI_LOC, ai_loc);
  325. DECLARE_RTD1315E_PIN(RTD1315E_ISO_SPDIF_LOC, spdif_loc);
  326. DECLARE_RTD1315E_PIN(RTD1315E_ISO_HIF_EN_LOC, hif_en_loc);
  327. DECLARE_RTD1315E_PIN(RTD1315E_ISO_SCAN_SWITCH, scan_switch);
  328. DECLARE_RTD1315E_PIN(RTD1315E_ISO_WD_RSET, wd_rset);
  329. DECLARE_RTD1315E_PIN(RTD1315E_ISO_BOOT_SEL, boot_sel);
  330. DECLARE_RTD1315E_PIN(RTD1315E_ISO_RESET_N, reset_n);
  331. DECLARE_RTD1315E_PIN(RTD1315E_ISO_TESTMODE, testmode);
  332. #define RTD1315E_GROUP(_name) \
  333. { \
  334. .name = # _name, \
  335. .pins = rtd1315e_ ## _name ## _pins, \
  336. .num_pins = ARRAY_SIZE(rtd1315e_ ## _name ## _pins), \
  337. }
  338. static const struct rtd_pin_group_desc rtd1315e_pin_groups[] = {
  339. RTD1315E_GROUP(gpio_0),
  340. RTD1315E_GROUP(gpio_1),
  341. RTD1315E_GROUP(emmc_rst_n),
  342. RTD1315E_GROUP(emmc_dd_sb),
  343. RTD1315E_GROUP(emmc_clk),
  344. RTD1315E_GROUP(emmc_cmd),
  345. RTD1315E_GROUP(gpio_6),
  346. RTD1315E_GROUP(gpio_7),
  347. RTD1315E_GROUP(gpio_8),
  348. RTD1315E_GROUP(gpio_9),
  349. RTD1315E_GROUP(gpio_10),
  350. RTD1315E_GROUP(gpio_11),
  351. RTD1315E_GROUP(gpio_12),
  352. RTD1315E_GROUP(gpio_13),
  353. RTD1315E_GROUP(gpio_14),
  354. RTD1315E_GROUP(gpio_15),
  355. RTD1315E_GROUP(gpio_16),
  356. RTD1315E_GROUP(gpio_17),
  357. RTD1315E_GROUP(gpio_18),
  358. RTD1315E_GROUP(gpio_19),
  359. RTD1315E_GROUP(gpio_20),
  360. RTD1315E_GROUP(emmc_data_0),
  361. RTD1315E_GROUP(emmc_data_1),
  362. RTD1315E_GROUP(emmc_data_2),
  363. RTD1315E_GROUP(usb_cc2),
  364. RTD1315E_GROUP(gpio_25),
  365. RTD1315E_GROUP(gpio_26),
  366. RTD1315E_GROUP(gpio_27),
  367. RTD1315E_GROUP(gpio_28),
  368. RTD1315E_GROUP(gpio_29),
  369. RTD1315E_GROUP(gpio_30),
  370. RTD1315E_GROUP(gpio_31),
  371. RTD1315E_GROUP(gpio_32),
  372. RTD1315E_GROUP(gpio_33),
  373. RTD1315E_GROUP(gpio_34),
  374. RTD1315E_GROUP(gpio_35),
  375. RTD1315E_GROUP(hif_data),
  376. RTD1315E_GROUP(hif_en),
  377. RTD1315E_GROUP(hif_rdy),
  378. RTD1315E_GROUP(hif_clk),
  379. RTD1315E_GROUP(gpio_dummy_40),
  380. RTD1315E_GROUP(gpio_dummy_41),
  381. RTD1315E_GROUP(gpio_dummy_42),
  382. RTD1315E_GROUP(gpio_dummy_43),
  383. RTD1315E_GROUP(gpio_dummy_44),
  384. RTD1315E_GROUP(gpio_dummy_45),
  385. RTD1315E_GROUP(gpio_46),
  386. RTD1315E_GROUP(gpio_47),
  387. RTD1315E_GROUP(gpio_48),
  388. RTD1315E_GROUP(gpio_49),
  389. RTD1315E_GROUP(gpio_50),
  390. RTD1315E_GROUP(usb_cc1),
  391. RTD1315E_GROUP(emmc_data_3),
  392. RTD1315E_GROUP(emmc_data_4),
  393. RTD1315E_GROUP(ir_rx),
  394. RTD1315E_GROUP(ur0_rx),
  395. RTD1315E_GROUP(ur0_tx),
  396. RTD1315E_GROUP(gpio_57),
  397. RTD1315E_GROUP(gpio_58),
  398. RTD1315E_GROUP(gpio_59),
  399. RTD1315E_GROUP(gpio_60),
  400. RTD1315E_GROUP(gpio_61),
  401. RTD1315E_GROUP(gpio_62),
  402. RTD1315E_GROUP(gpio_dummy_63),
  403. RTD1315E_GROUP(gpio_dummy_64),
  404. RTD1315E_GROUP(gpio_dummy_65),
  405. RTD1315E_GROUP(gpio_66),
  406. RTD1315E_GROUP(gpio_67),
  407. RTD1315E_GROUP(gpio_68),
  408. RTD1315E_GROUP(gpio_69),
  409. RTD1315E_GROUP(gpio_70),
  410. RTD1315E_GROUP(gpio_71),
  411. RTD1315E_GROUP(gpio_72),
  412. RTD1315E_GROUP(gpio_dummy_73),
  413. RTD1315E_GROUP(emmc_data_5),
  414. RTD1315E_GROUP(emmc_data_6),
  415. RTD1315E_GROUP(emmc_data_7),
  416. RTD1315E_GROUP(gpio_dummy_77),
  417. RTD1315E_GROUP(gpio_78),
  418. RTD1315E_GROUP(gpio_79),
  419. RTD1315E_GROUP(gpio_80),
  420. RTD1315E_GROUP(gpio_81),
  421. RTD1315E_GROUP(ur2_loc),
  422. RTD1315E_GROUP(gspi_loc),
  423. RTD1315E_GROUP(hi_width),
  424. RTD1315E_GROUP(sf_en),
  425. RTD1315E_GROUP(arm_trace_dbg_en),
  426. RTD1315E_GROUP(ejtag_aucpu_loc),
  427. RTD1315E_GROUP(ejtag_acpu_loc),
  428. RTD1315E_GROUP(ejtag_vcpu_loc),
  429. RTD1315E_GROUP(ejtag_scpu_loc),
  430. RTD1315E_GROUP(dmic_loc),
  431. RTD1315E_GROUP(vtc_dmic_loc),
  432. RTD1315E_GROUP(vtc_tdm_loc),
  433. RTD1315E_GROUP(vtc_i2si_loc),
  434. RTD1315E_GROUP(tdm_ai_loc),
  435. RTD1315E_GROUP(ai_loc),
  436. RTD1315E_GROUP(spdif_loc),
  437. RTD1315E_GROUP(hif_en_loc),
  438. };
  439. static const char * const rtd1315e_gpio_groups[] = {
  440. "gpio_0", "gpio_1", "emmc_rst_n", "emmc_dd_sb", "emmc_clk",
  441. "emmc_cmd", "gpio_6", "gpio_7", "gpio_8", "gpio_9",
  442. "gpio_10", "gpio_11", "gpio_12", "gpio_13", "gpio_14",
  443. "gpio_15", "gpio_16", "gpio_17", "gpio_18", "gpio_19",
  444. "gpio_20", "emmc_data_0", "emmc_data_1", "emmc_data_2", "usb_cc2",
  445. "gpio_25", "gpio_26", "gpio_27", "gpio_28", "gpio_29",
  446. "gpio_30", "gpio_31", "gpio_32", "gpio_33", "gpio_34",
  447. "gpio_35", "hif_data", "hif_en", "hif_rdy", "hif_clk",
  448. "gpio_46", "gpio_47", "gpio_48", "gpio_49",
  449. "gpio_50", "usb_cc1", "emmc_data_3", "emmc_data_4", "ir_rx",
  450. "ur0_rx", "ur0_tx", "gpio_57", "gpio_58", "gpio_59",
  451. "gpio_60", "gpio_61", "gpio_62", "gpio_66", "gpio_67",
  452. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72",
  453. "emmc_data_5", "emmc_data_6", "emmc_data_7",
  454. "gpio_78", "gpio_79", "gpio_80", "gpio_81" };
  455. static const char * const rtd1315e_nf_groups[] = {
  456. "emmc_rst_n", "emmc_clk", "emmc_cmd", "emmc_data_0",
  457. "emmc_data_1", "emmc_data_2", "emmc_data_3", "emmc_data_4",
  458. "emmc_data_5", "emmc_data_6", "emmc_data_7",
  459. "gpio_78", "gpio_79", "gpio_80", "gpio_81" };
  460. static const char * const rtd1315e_emmc_groups[] = {
  461. "emmc_rst_n", "emmc_dd_sb", "emmc_clk", "emmc_cmd",
  462. "emmc_data_0", "emmc_data_1", "emmc_data_2", "emmc_data_3",
  463. "emmc_data_4", "emmc_data_5", "emmc_data_6", "emmc_data_7" };
  464. static const char * const rtd1315e_ao_groups[] = {
  465. "gpio_66", "gpio_67", "gpio_68", "gpio_69", "gpio_70",
  466. "gpio_71", "gpio_72" };
  467. static const char * const rtd1315e_gspi_loc0_groups[] = {
  468. "gpio_18", "gpio_19", "gpio_20", "gpio_31", "gspi_loc" };
  469. static const char * const rtd1315e_gspi_loc1_groups[] = {
  470. "gpio_8", "gpio_9", "gpio_10", "gpio_11", "gspi_loc" };
  471. static const char * const rtd1315e_uart0_groups[] = { "ur0_rx", "ur0_tx"};
  472. static const char * const rtd1315e_uart1_groups[] = {
  473. "gpio_8", "gpio_9", "gpio_10", "gpio_11" };
  474. static const char * const rtd1315e_uart2_loc0_groups[] = {
  475. "gpio_18", "gpio_19", "gpio_20", "gpio_31", "ur2_loc" };
  476. static const char * const rtd1315e_uart2_loc1_groups[] = {
  477. "gpio_25", "gpio_26", "gpio_27", "gpio_28", "ur2_loc" };
  478. static const char * const rtd1315e_i2c0_groups[] = { "gpio_12", "gpio_13" };
  479. static const char * const rtd1315e_i2c1_groups[] = { "gpio_16", "gpio_17" };
  480. static const char * const rtd1315e_i2c4_groups[] = { "gpio_34", "gpio_35" };
  481. static const char * const rtd1315e_i2c5_groups[] = { "gpio_29", "gpio_46" };
  482. static const char * const rtd1315e_pcie1_groups[] = { "gpio_25" };
  483. static const char * const rtd1315e_etn_led_groups[] = { "gpio_14", "gpio_15" };
  484. static const char * const rtd1315e_etn_phy_groups[] = { "gpio_14", "gpio_15" };
  485. static const char * const rtd1315e_spi_groups[] = {
  486. "gpio_78", "gpio_79", "gpio_80", "gpio_81" };
  487. static const char * const rtd1315e_pwm0_loc0_groups[] = { "gpio_26" };
  488. static const char * const rtd1315e_pwm0_loc1_groups[] = { "gpio_20" };
  489. static const char * const rtd1315e_pwm1_loc0_groups[] = { "gpio_27" };
  490. static const char * const rtd1315e_pwm1_loc1_groups[] = { "gpio_29" };
  491. static const char * const rtd1315e_pwm2_loc0_groups[] = { "gpio_28" };
  492. static const char * const rtd1315e_pwm2_loc1_groups[] = { "gpio_30" };
  493. static const char * const rtd1315e_pwm3_loc0_groups[] = { "gpio_47" };
  494. static const char * const rtd1315e_pwm3_loc1_groups[] = { "gpio_31" };
  495. static const char * const rtd1315e_spdif_optical_loc0_groups[] = { "gpio_20", "spdif_loc" };
  496. static const char * const rtd1315e_spdif_optical_loc1_groups[] = { "gpio_6", "spdif_loc" };
  497. static const char * const rtd1315e_usb_cc1_groups[] = { "usb_cc1" };
  498. static const char * const rtd1315e_usb_cc2_groups[] = { "usb_cc2" };
  499. static const char * const rtd1315e_sd_groups[] = {
  500. "gpio_32", "gpio_33", "gpio_34", "gpio_35",
  501. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  502. static const char * const rtd1315e_dmic_loc0_groups[] = {
  503. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  504. "gpio_62", "gpio_1", "gpio_6", "dmic_loc" };
  505. static const char * const rtd1315e_dmic_loc1_groups[] = {
  506. "gpio_32", "gpio_33", "gpio_34", "gpio_35",
  507. "hif_data", "hif_en", "hif_rdy", "hif_clk",
  508. "dmic_loc" };
  509. static const char * const rtd1315e_ai_loc0_groups[] = {
  510. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  511. "gpio_62", "gpio_1", "ai_loc" };
  512. static const char * const rtd1315e_ai_loc1_groups[] = {
  513. "gpio_32", "gpio_33", "gpio_34", "hif_data",
  514. "hif_en", "hif_rdy", "hif_clk", "ai_loc" };
  515. static const char * const rtd1315e_tdm_ai_loc0_groups[] = {
  516. "gpio_57", "gpio_58", "gpio_59",
  517. "gpio_60", "tdm_ai_loc" };
  518. static const char * const rtd1315e_tdm_ai_loc1_groups[] = {
  519. "hif_data", "hif_en", "hif_rdy", "hif_clk", "tdm_ai_loc" };
  520. static const char * const rtd1315e_hi_loc0_groups[] = {
  521. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  522. static const char * const rtd1315e_hi_m_groups[] = {
  523. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  524. static const char * const rtd1315e_vtc_i2so_groups[] = {
  525. "gpio_67", "gpio_68", "gpio_69", "gpio_70"};
  526. static const char * const rtd1315e_vtc_i2si_loc0_groups[] = {
  527. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  528. "vtc_i2si_loc" };
  529. static const char * const rtd1315e_vtc_i2si_loc1_groups[] = {
  530. "gpio_32", "hif_data", "hif_en", "hif_rdy", "hif_clk",
  531. "vtc_i2si_loc" };
  532. static const char * const rtd1315e_vtc_dmic_loc0_groups[] = {
  533. "gpio_57", "gpio_58", "gpio_59", "gpio_60",
  534. "vtc_dmic_loc" };
  535. static const char * const rtd1315e_vtc_dmic_loc1_groups[] = {
  536. "hif_data", "hif_en", "hif_rdy", "hif_clk",
  537. "vtc_dmic_loc" };
  538. static const char * const rtd1315e_vtc_tdm_loc0_groups[] = {
  539. "gpio_57", "gpio_58", "gpio_59", "gpio_60",
  540. "vtc_tdm_loc" };
  541. static const char * const rtd1315e_vtc_tdm_loc1_groups[] = {
  542. "hif_data", "hif_en", "hif_rdy", "hif_clk",
  543. "vtc_tdm_loc" };
  544. static const char * const rtd1315e_dc_fan_groups[] = { "gpio_47" };
  545. static const char * const rtd1315e_pll_test_loc0_groups[] = { "gpio_0", "gpio_1" };
  546. static const char * const rtd1315e_pll_test_loc1_groups[] = { "gpio_48", "gpio_49" };
  547. static const char * const rtd1315e_spdif_groups[] = { "gpio_50" };
  548. static const char * const rtd1315e_ir_rx_groups[] = { "ir_rx" };
  549. static const char * const rtd1315e_uart2_disable_groups[] = { "ur2_loc" };
  550. static const char * const rtd1315e_gspi_disable_groups[] = { "gspi_loc" };
  551. static const char * const rtd1315e_hi_width_disable_groups[] = { "hi_width" };
  552. static const char * const rtd1315e_hi_width_1bit_groups[] = { "hi_width" };
  553. static const char * const rtd1315e_sf_disable_groups[] = { "sf_en" };
  554. static const char * const rtd1315e_sf_enable_groups[] = { "sf_en" };
  555. static const char * const rtd1315e_scpu_ejtag_loc0_groups[] = {
  556. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72",
  557. "ejtag_scpu_loc" };
  558. static const char * const rtd1315e_scpu_ejtag_loc1_groups[] = {
  559. "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk",
  560. "ejtag_scpu_loc" };
  561. static const char * const rtd1315e_scpu_ejtag_loc2_groups[] = {
  562. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  563. "ejtag_scpu_loc" };
  564. static const char * const rtd1315e_scpu_ejtag_loc3_groups[] = {
  565. "hif_data" };
  566. static const char * const rtd1315e_acpu_ejtag_loc0_groups[] = {
  567. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72",
  568. "ejtag_acpu_loc" };
  569. static const char * const rtd1315e_acpu_ejtag_loc1_groups[] = {
  570. "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk",
  571. "ejtag_acpu_loc" };
  572. static const char * const rtd1315e_acpu_ejtag_loc2_groups[] = {
  573. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  574. "ejtag_acpu_loc" };
  575. static const char * const rtd1315e_vcpu_ejtag_loc0_groups[] = {
  576. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72",
  577. "ejtag_vcpu_loc" };
  578. static const char * const rtd1315e_vcpu_ejtag_loc1_groups[] = {
  579. "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk",
  580. "ejtag_vcpu_loc" };
  581. static const char * const rtd1315e_vcpu_ejtag_loc2_groups[] = {
  582. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  583. "ejtag_vcpu_loc" };
  584. static const char * const rtd1315e_aucpu_ejtag_loc0_groups[] = {
  585. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72",
  586. "ejtag_aucpu_loc" };
  587. static const char * const rtd1315e_aucpu_ejtag_loc1_groups[] = {
  588. "gpio_32", "gpio_33", "hif_data", "hif_en", "hif_clk",
  589. "ejtag_aucpu_loc" };
  590. static const char * const rtd1315e_aucpu_ejtag_loc2_groups[] = {
  591. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  592. "ejtag_aucpu_loc" };
  593. static const char * const rtd1315e_gpu_ejtag_groups[] = {
  594. "gpio_68", "gpio_69", "gpio_70", "gpio_71", "gpio_72" };
  595. static const char * const rtd1315e_iso_tristate_groups[] = {
  596. "emmc_rst_n", "emmc_dd_sb", "emmc_clk", "emmc_cmd",
  597. "emmc_data_0", "emmc_data_1", "emmc_data_2", "emmc_data_3",
  598. "emmc_data_4", "emmc_data_5", "emmc_data_6", "emmc_data_7",
  599. "gpio_1", "gpio_7", "gpio_8", "gpio_9", "gpio_10",
  600. "gpio_11", "usb_cc2", "gpio_32", "gpio_33", "hif_data",
  601. "hif_en", "hif_rdy", "hif_clk", "ir_rx", "ur0_rx",
  602. "ur0_tx", "gpio_66", "gpio_67", "gpio_68", "gpio_69", "gpio_70",
  603. "gpio_71", "gpio_72", "gpio_78", "gpio_79", "gpio_80", "gpio_81" };
  604. static const char * const rtd1315e_dbg_out0_groups[] = {
  605. "gpio_0", "gpio_12", "gpio_13", "gpio_16", "gpio_17", "gpio_26",
  606. "gpio_27", "gpio_28", "gpio_29", "gpio_30", "gpio_34", "gpio_35",
  607. "gpio_46", "gpio_48", "gpio_49", "usb_cc1", "gpio_57", "gpio_58", "gpio_59", "gpio_60" };
  608. static const char * const rtd1315e_dbg_out1_groups[] = {
  609. "gpio_6", "gpio_14", "gpio_15", "gpio_18", "gpio_19", "gpio_20",
  610. "gpio_25", "gpio_31", "gpio_47", "gpio_50", "gpio_59", "gpio_61",
  611. "gpio_62" };
  612. static const char * const rtd1315e_standby_dbg_groups[] = {
  613. "gpio_1", "gpio_6", "ir_rx" };
  614. static const char * const rtd1315e_arm_trace_debug_disable_groups[] = { "arm_trace_dbg_en" };
  615. static const char * const rtd1315e_arm_trace_debug_enable_groups[] = { "arm_trace_dbg_en" };
  616. static const char * const rtd1315e_aucpu_ejtag_disable_groups[] = { "ejtag_aucpu_loc" };
  617. static const char * const rtd1315e_acpu_ejtag_disable_groups[] = { "ejtag_acpu_loc" };
  618. static const char * const rtd1315e_vcpu_ejtag_disable_groups[] = { "ejtag_vcpu_loc" };
  619. static const char * const rtd1315e_scpu_ejtag_disable_groups[] = { "ejtag_scpu_loc" };
  620. static const char * const rtd1315e_vtc_dmic_loc_disable_groups[] = { "vtc_dmic_loc" };
  621. static const char * const rtd1315e_vtc_tdm_disable_groups[] = { "vtc_tdm_loc" };
  622. static const char * const rtd1315e_vtc_i2si_disable_groups[] = { "vtc_i2si_loc" };
  623. static const char * const rtd1315e_tdm_ai_disable_groups[] = { "tdm_ai_loc" };
  624. static const char * const rtd1315e_ai_disable_groups[] = { "ai_loc" };
  625. static const char * const rtd1315e_spdif_disable_groups[] = { "spdif_loc" };
  626. static const char * const rtd1315e_hif_disable_groups[] = { "hif_en_loc" };
  627. static const char * const rtd1315e_hif_enable_groups[] = { "hif_en_loc" };
  628. static const char * const rtd1315e_test_loop_groups[] = { "gpio_50" };
  629. static const char * const rtd1315e_pmic_pwrup_groups[] = { "gpio_78" };
  630. #define RTD1315E_FUNC(_name) \
  631. { \
  632. .name = # _name, \
  633. .groups = rtd1315e_ ## _name ## _groups, \
  634. .num_groups = ARRAY_SIZE(rtd1315e_ ## _name ## _groups), \
  635. }
  636. static const struct rtd_pin_func_desc rtd1315e_pin_functions[] = {
  637. RTD1315E_FUNC(gpio),
  638. RTD1315E_FUNC(nf),
  639. RTD1315E_FUNC(emmc),
  640. RTD1315E_FUNC(ao),
  641. RTD1315E_FUNC(gspi_loc0),
  642. RTD1315E_FUNC(gspi_loc1),
  643. RTD1315E_FUNC(uart0),
  644. RTD1315E_FUNC(uart1),
  645. RTD1315E_FUNC(uart2_loc0),
  646. RTD1315E_FUNC(uart2_loc1),
  647. RTD1315E_FUNC(i2c0),
  648. RTD1315E_FUNC(i2c1),
  649. RTD1315E_FUNC(i2c4),
  650. RTD1315E_FUNC(i2c5),
  651. RTD1315E_FUNC(pcie1),
  652. RTD1315E_FUNC(etn_led),
  653. RTD1315E_FUNC(etn_phy),
  654. RTD1315E_FUNC(spi),
  655. RTD1315E_FUNC(pwm0_loc0),
  656. RTD1315E_FUNC(pwm0_loc1),
  657. RTD1315E_FUNC(pwm1_loc0),
  658. RTD1315E_FUNC(pwm1_loc1),
  659. RTD1315E_FUNC(pwm2_loc0),
  660. RTD1315E_FUNC(pwm2_loc1),
  661. RTD1315E_FUNC(pwm3_loc0),
  662. RTD1315E_FUNC(pwm3_loc1),
  663. RTD1315E_FUNC(spdif_optical_loc0),
  664. RTD1315E_FUNC(spdif_optical_loc1),
  665. RTD1315E_FUNC(usb_cc1),
  666. RTD1315E_FUNC(usb_cc2),
  667. RTD1315E_FUNC(sd),
  668. RTD1315E_FUNC(dmic_loc0),
  669. RTD1315E_FUNC(dmic_loc1),
  670. RTD1315E_FUNC(ai_loc0),
  671. RTD1315E_FUNC(ai_loc1),
  672. RTD1315E_FUNC(tdm_ai_loc0),
  673. RTD1315E_FUNC(tdm_ai_loc1),
  674. RTD1315E_FUNC(hi_loc0),
  675. RTD1315E_FUNC(hi_m),
  676. RTD1315E_FUNC(vtc_i2so),
  677. RTD1315E_FUNC(vtc_i2si_loc0),
  678. RTD1315E_FUNC(vtc_i2si_loc1),
  679. RTD1315E_FUNC(vtc_dmic_loc0),
  680. RTD1315E_FUNC(vtc_dmic_loc1),
  681. RTD1315E_FUNC(vtc_tdm_loc0),
  682. RTD1315E_FUNC(vtc_tdm_loc1),
  683. RTD1315E_FUNC(dc_fan),
  684. RTD1315E_FUNC(pll_test_loc0),
  685. RTD1315E_FUNC(pll_test_loc1),
  686. RTD1315E_FUNC(ir_rx),
  687. RTD1315E_FUNC(uart2_disable),
  688. RTD1315E_FUNC(gspi_disable),
  689. RTD1315E_FUNC(hi_width_disable),
  690. RTD1315E_FUNC(hi_width_1bit),
  691. RTD1315E_FUNC(sf_disable),
  692. RTD1315E_FUNC(sf_enable),
  693. RTD1315E_FUNC(scpu_ejtag_loc0),
  694. RTD1315E_FUNC(scpu_ejtag_loc1),
  695. RTD1315E_FUNC(scpu_ejtag_loc2),
  696. RTD1315E_FUNC(scpu_ejtag_loc3),
  697. RTD1315E_FUNC(acpu_ejtag_loc0),
  698. RTD1315E_FUNC(acpu_ejtag_loc1),
  699. RTD1315E_FUNC(acpu_ejtag_loc2),
  700. RTD1315E_FUNC(vcpu_ejtag_loc0),
  701. RTD1315E_FUNC(vcpu_ejtag_loc1),
  702. RTD1315E_FUNC(vcpu_ejtag_loc2),
  703. RTD1315E_FUNC(aucpu_ejtag_loc0),
  704. RTD1315E_FUNC(aucpu_ejtag_loc1),
  705. RTD1315E_FUNC(aucpu_ejtag_loc2),
  706. RTD1315E_FUNC(gpu_ejtag),
  707. RTD1315E_FUNC(iso_tristate),
  708. RTD1315E_FUNC(dbg_out0),
  709. RTD1315E_FUNC(dbg_out1),
  710. RTD1315E_FUNC(standby_dbg),
  711. RTD1315E_FUNC(spdif),
  712. RTD1315E_FUNC(arm_trace_debug_disable),
  713. RTD1315E_FUNC(arm_trace_debug_enable),
  714. RTD1315E_FUNC(aucpu_ejtag_disable),
  715. RTD1315E_FUNC(acpu_ejtag_disable),
  716. RTD1315E_FUNC(vcpu_ejtag_disable),
  717. RTD1315E_FUNC(scpu_ejtag_disable),
  718. RTD1315E_FUNC(vtc_dmic_loc_disable),
  719. RTD1315E_FUNC(vtc_tdm_disable),
  720. RTD1315E_FUNC(vtc_i2si_disable),
  721. RTD1315E_FUNC(tdm_ai_disable),
  722. RTD1315E_FUNC(ai_disable),
  723. RTD1315E_FUNC(spdif_disable),
  724. RTD1315E_FUNC(hif_disable),
  725. RTD1315E_FUNC(hif_enable),
  726. RTD1315E_FUNC(test_loop),
  727. RTD1315E_FUNC(pmic_pwrup),
  728. };
  729. #undef RTD1315E_FUNC
  730. static const struct rtd_pin_desc rtd1315e_iso_muxes[ARRAY_SIZE(rtd1315e_iso_pins)] = {
  731. [RTD1315E_ISO_EMMC_RST_N] = RTK_PIN_MUX(emmc_rst_n, 0x0, GENMASK(3, 0),
  732. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  733. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "nf"),
  734. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "emmc"),
  735. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")),
  736. [RTD1315E_ISO_EMMC_DD_SB] = RTK_PIN_MUX(emmc_dd_sb, 0x0, GENMASK(7, 4),
  737. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  738. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "emmc"),
  739. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")),
  740. [RTD1315E_ISO_EMMC_CLK] = RTK_PIN_MUX(emmc_clk, 0x0, GENMASK(11, 8),
  741. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  742. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "nf"),
  743. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "emmc"),
  744. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")),
  745. [RTD1315E_ISO_EMMC_CMD] = RTK_PIN_MUX(emmc_cmd, 0x0, GENMASK(15, 12),
  746. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  747. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"),
  748. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "emmc"),
  749. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  750. [RTD1315E_ISO_EMMC_DATA_0] = RTK_PIN_MUX(emmc_data_0, 0x0, GENMASK(19, 16),
  751. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  752. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "nf"),
  753. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "emmc"),
  754. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")),
  755. [RTD1315E_ISO_EMMC_DATA_1] = RTK_PIN_MUX(emmc_data_1, 0x0, GENMASK(23, 20),
  756. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  757. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "nf"),
  758. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "emmc"),
  759. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  760. [RTD1315E_ISO_EMMC_DATA_2] = RTK_PIN_MUX(emmc_data_2, 0x0, GENMASK(27, 24),
  761. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  762. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "nf"),
  763. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "emmc"),
  764. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")),
  765. [RTD1315E_ISO_EMMC_DATA_3] = RTK_PIN_MUX(emmc_data_3, 0x0, GENMASK(31, 28),
  766. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  767. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "nf"),
  768. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "emmc"),
  769. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")),
  770. [RTD1315E_ISO_EMMC_DATA_4] = RTK_PIN_MUX(emmc_data_4, 0x4, GENMASK(3, 0),
  771. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  772. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "nf"),
  773. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "emmc"),
  774. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")),
  775. [RTD1315E_ISO_EMMC_DATA_5] = RTK_PIN_MUX(emmc_data_5, 0x4, GENMASK(7, 4),
  776. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  777. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "nf"),
  778. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "emmc"),
  779. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")),
  780. [RTD1315E_ISO_EMMC_DATA_6] = RTK_PIN_MUX(emmc_data_6, 0x4, GENMASK(11, 8),
  781. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  782. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "nf"),
  783. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "emmc"),
  784. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")),
  785. [RTD1315E_ISO_EMMC_DATA_7] = RTK_PIN_MUX(emmc_data_7, 0x4, GENMASK(15, 12),
  786. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  787. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"),
  788. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "emmc"),
  789. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  790. [RTD1315E_ISO_GPIO_0] = RTK_PIN_MUX(gpio_0, 0x4, GENMASK(19, 16),
  791. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  792. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pll_test_loc0"),
  793. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out0")),
  794. [RTD1315E_ISO_GPIO_1] = RTK_PIN_MUX(gpio_1, 0x4, GENMASK(23, 20),
  795. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  796. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "standby_dbg"),
  797. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "pll_test_loc0"),
  798. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 20), "dmic_loc0"),
  799. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "ai_loc0"),
  800. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  801. [RTD1315E_ISO_GPIO_6] = RTK_PIN_MUX(gpio_6, 0x4, GENMASK(27, 24),
  802. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  803. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "standby_dbg"),
  804. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc0"),
  805. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "spdif_optical_loc1"),
  806. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")),
  807. [RTD1315E_ISO_GPIO_7] = RTK_PIN_MUX(gpio_7, 0x4, GENMASK(31, 28),
  808. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  809. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")),
  810. [RTD1315E_ISO_GPIO_8] = RTK_PIN_MUX(gpio_8, 0x8, GENMASK(3, 0),
  811. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  812. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart1"),
  813. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "gspi_loc1"),
  814. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")),
  815. [RTD1315E_ISO_GPIO_9] = RTK_PIN_MUX(gpio_9, 0x8, GENMASK(7, 4),
  816. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  817. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "uart1"),
  818. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "gspi_loc1"),
  819. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")),
  820. [RTD1315E_ISO_GPIO_10] = RTK_PIN_MUX(gpio_10, 0x8, GENMASK(11, 8),
  821. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  822. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "uart1"),
  823. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "gspi_loc1"),
  824. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")),
  825. [RTD1315E_ISO_GPIO_11] = RTK_PIN_MUX(gpio_11, 0x8, GENMASK(15, 12),
  826. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  827. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "uart1"),
  828. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "gspi_loc1"),
  829. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  830. [RTD1315E_ISO_GPIO_12] = RTK_PIN_MUX(gpio_12, 0x8, GENMASK(19, 16),
  831. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  832. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "i2c0"),
  833. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out0")),
  834. [RTD1315E_ISO_GPIO_13] = RTK_PIN_MUX(gpio_13, 0x8, GENMASK(23, 20),
  835. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  836. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "i2c0"),
  837. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "dbg_out0")),
  838. [RTD1315E_ISO_GPIO_14] = RTK_PIN_MUX(gpio_14, 0x8, GENMASK(27, 24),
  839. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  840. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "etn_led"),
  841. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "etn_phy"),
  842. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")),
  843. [RTD1315E_ISO_GPIO_15] = RTK_PIN_MUX(gpio_15, 0x8, GENMASK(31, 28),
  844. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  845. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "etn_led"),
  846. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "etn_phy"),
  847. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out1")),
  848. [RTD1315E_ISO_GPIO_16] = RTK_PIN_MUX(gpio_16, 0xc, GENMASK(3, 0),
  849. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  850. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "i2c1"),
  851. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")),
  852. [RTD1315E_ISO_GPIO_17] = RTK_PIN_MUX(gpio_17, 0xc, GENMASK(7, 4),
  853. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  854. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "i2c1"),
  855. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")),
  856. [RTD1315E_ISO_GPIO_18] = RTK_PIN_MUX(gpio_18, 0xc, GENMASK(11, 8),
  857. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  858. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "uart2_loc0"),
  859. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "gspi_loc0"),
  860. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out1")),
  861. [RTD1315E_ISO_GPIO_19] = RTK_PIN_MUX(gpio_19, 0xc, GENMASK(15, 12),
  862. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  863. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "uart2_loc0"),
  864. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "gspi_loc0"),
  865. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out1")),
  866. [RTD1315E_ISO_GPIO_20] = RTK_PIN_MUX(gpio_20, 0xc, GENMASK(19, 16),
  867. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  868. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart2_loc0"),
  869. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pwm0_loc1"),
  870. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "gspi_loc0"),
  871. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 16), "spdif_optical_loc0"),
  872. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out1")),
  873. [RTD1315E_ISO_USB_CC2] = RTK_PIN_MUX(usb_cc2, 0xc, GENMASK(23, 20),
  874. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  875. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "usb_cc2"),
  876. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  877. [RTD1315E_ISO_GPIO_25] = RTK_PIN_MUX(gpio_25, 0xc, GENMASK(27, 24),
  878. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  879. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "uart2_loc1"),
  880. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "pcie1"),
  881. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")),
  882. [RTD1315E_ISO_GPIO_26] = RTK_PIN_MUX(gpio_26, 0xc, GENMASK(31, 28),
  883. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  884. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "uart2_loc1"),
  885. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "pwm0_loc0"),
  886. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")),
  887. [RTD1315E_ISO_GPIO_27] = RTK_PIN_MUX(gpio_27, 0x10, GENMASK(3, 0),
  888. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  889. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc1"),
  890. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "pwm1_loc0"),
  891. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")),
  892. [RTD1315E_ISO_GPIO_28] = RTK_PIN_MUX(gpio_28, 0x10, GENMASK(7, 4),
  893. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  894. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "uart2_loc1"),
  895. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "pwm2_loc0"),
  896. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")),
  897. [RTD1315E_ISO_GPIO_29] = RTK_PIN_MUX(gpio_29, 0x10, GENMASK(11, 8),
  898. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  899. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "i2c5"),
  900. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "pwm1_loc1"),
  901. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out0")),
  902. [RTD1315E_ISO_GPIO_30] = RTK_PIN_MUX(gpio_30, 0x10, GENMASK(15, 12),
  903. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  904. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "pwm2_loc1"),
  905. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out0")),
  906. [RTD1315E_ISO_GPIO_31] = RTK_PIN_MUX(gpio_31, 0x10, GENMASK(19, 16),
  907. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  908. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart2_loc0"),
  909. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "pwm3_loc1"),
  910. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "gspi_loc0"),
  911. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "dbg_out1")),
  912. [RTD1315E_ISO_GPIO_32] = RTK_PIN_MUX(gpio_32, 0x10, GENMASK(23, 20),
  913. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  914. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "sd"),
  915. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "aucpu_ejtag_loc1"),
  916. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 20), "dmic_loc1"),
  917. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 20), "scpu_ejtag_loc1"),
  918. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 20), "acpu_ejtag_loc1"),
  919. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 20), "vcpu_ejtag_loc1"),
  920. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 20), "ai_loc1"),
  921. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 20), "vtc_i2si_loc1"),
  922. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  923. [RTD1315E_ISO_GPIO_33] = RTK_PIN_MUX(gpio_33, 0x10, GENMASK(27, 24),
  924. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  925. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "sd"),
  926. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "aucpu_ejtag_loc1"),
  927. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc1"),
  928. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "scpu_ejtag_loc1"),
  929. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc1"),
  930. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc1"),
  931. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 24), "ai_loc1"),
  932. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")),
  933. [RTD1315E_ISO_GPIO_34] = RTK_PIN_MUX(gpio_34, 0x10, GENMASK(31, 28),
  934. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  935. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "sd"),
  936. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "dmic_loc1"),
  937. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 28), "i2c4"),
  938. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 28), "ai_loc1"),
  939. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")),
  940. [RTD1315E_ISO_GPIO_35] = RTK_PIN_MUX(gpio_35, 0x14, GENMASK(3, 0),
  941. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  942. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "sd"),
  943. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc1"),
  944. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "i2c4"),
  945. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")),
  946. [RTD1315E_ISO_HIF_DATA] = RTK_PIN_MUX(hif_data, 0x14, GENMASK(7, 4),
  947. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  948. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "sd"),
  949. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "aucpu_ejtag_loc1"),
  950. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "dmic_loc1"),
  951. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 4), "tdm_ai_loc1"),
  952. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "scpu_ejtag_loc1"),
  953. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc1"),
  954. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc1"),
  955. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 4), "ai_loc1"),
  956. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 4), "hi_loc0"),
  957. RTK_PIN_FUNC(SHIFT_LEFT(0xa, 4), "hi_m"),
  958. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 4), "vtc_i2si_loc1"),
  959. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "vtc_tdm_loc1"),
  960. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 4), "vtc_dmic_loc1"),
  961. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 4), "scpu_ejtag_loc3"),
  962. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")),
  963. [RTD1315E_ISO_HIF_EN] = RTK_PIN_MUX(hif_en, 0x14, GENMASK(11, 8),
  964. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  965. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "sd"),
  966. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "aucpu_ejtag_loc1"),
  967. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "dmic_loc1"),
  968. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 8), "tdm_ai_loc1"),
  969. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "scpu_ejtag_loc1"),
  970. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc1"),
  971. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc1"),
  972. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 8), "ai_loc1"),
  973. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 8), "hi_loc0"),
  974. RTK_PIN_FUNC(SHIFT_LEFT(0xa, 8), "hi_m"),
  975. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 8), "vtc_i2si_loc1"),
  976. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 8), "vtc_tdm_loc1"),
  977. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 8), "vtc_dmic_loc1"),
  978. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")),
  979. [RTD1315E_ISO_HIF_RDY] = RTK_PIN_MUX(hif_rdy, 0x14, GENMASK(15, 12),
  980. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  981. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "sd"),
  982. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "dmic_loc1"),
  983. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 12), "tdm_ai_loc1"),
  984. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 12), "ai_loc1"),
  985. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 12), "hi_loc0"),
  986. RTK_PIN_FUNC(SHIFT_LEFT(0xa, 12), "hi_m"),
  987. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 12), "vtc_i2si_loc1"),
  988. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 12), "vtc_tdm_loc1"),
  989. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 12), "vtc_dmic_loc1"),
  990. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  991. [RTD1315E_ISO_HIF_CLK] = RTK_PIN_MUX(hif_clk, 0x14, GENMASK(19, 16),
  992. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  993. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "sd"),
  994. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "aucpu_ejtag_loc1"),
  995. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "dmic_loc1"),
  996. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 16), "tdm_ai_loc1"),
  997. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 16), "scpu_ejtag_loc1"),
  998. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 16), "acpu_ejtag_loc1"),
  999. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 16), "vcpu_ejtag_loc1"),
  1000. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 16), "ai_loc1"),
  1001. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 16), "hi_loc0"),
  1002. RTK_PIN_FUNC(SHIFT_LEFT(0xa, 16), "hi_m"),
  1003. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 16), "vtc_i2si_loc1"),
  1004. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 16), "vtc_tdm_loc1"),
  1005. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 16), "vtc_dmic_loc1"),
  1006. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")),
  1007. [RTD1315E_ISO_GPIO_46] = RTK_PIN_MUX(gpio_46, 0x14, GENMASK(23, 20),
  1008. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  1009. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "i2c5"),
  1010. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "dbg_out0")),
  1011. [RTD1315E_ISO_GPIO_47] = RTK_PIN_MUX(gpio_47, 0x14, GENMASK(27, 24),
  1012. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  1013. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "dc_fan"),
  1014. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "pwm3_loc0"),
  1015. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out1")),
  1016. [RTD1315E_ISO_GPIO_48] = RTK_PIN_MUX(gpio_48, 0x14, GENMASK(31, 28),
  1017. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  1018. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "pll_test_loc1"),
  1019. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")),
  1020. [RTD1315E_ISO_GPIO_49] = RTK_PIN_MUX(gpio_49, 0x18, GENMASK(3, 0),
  1021. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1022. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "pll_test_loc1"),
  1023. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out0")),
  1024. [RTD1315E_ISO_GPIO_50] = RTK_PIN_MUX(gpio_50, 0x18, GENMASK(7, 4),
  1025. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1026. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "spdif"),
  1027. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "test_loop"),
  1028. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out1")),
  1029. [RTD1315E_ISO_USB_CC1] = RTK_PIN_MUX(usb_cc1, 0x18, GENMASK(11, 8),
  1030. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  1031. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "usb_cc1"),
  1032. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out0")),
  1033. [RTD1315E_ISO_IR_RX] = RTK_PIN_MUX(ir_rx, 0x18, GENMASK(15, 12),
  1034. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  1035. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "ir_rx"),
  1036. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "standby_dbg"),
  1037. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  1038. [RTD1315E_ISO_UR0_RX] = RTK_PIN_MUX(ur0_rx, 0x18, GENMASK(19, 16),
  1039. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  1040. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "uart0"),
  1041. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")),
  1042. [RTD1315E_ISO_UR0_TX] = RTK_PIN_MUX(ur0_tx, 0x18, GENMASK(23, 20),
  1043. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  1044. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "uart0"),
  1045. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  1046. [RTD1315E_ISO_GPIO_57] = RTK_PIN_MUX(gpio_57, 0x18, GENMASK(27, 24),
  1047. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  1048. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "tdm_ai_loc0"),
  1049. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "ai_loc0"),
  1050. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "dmic_loc0"),
  1051. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc2"),
  1052. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc2"),
  1053. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 24), "aucpu_ejtag_loc2"),
  1054. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 24), "vtc_i2si_loc0"),
  1055. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 24), "vtc_tdm_loc0"),
  1056. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 24), "vtc_dmic_loc0"),
  1057. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 24), "scpu_ejtag_loc2"),
  1058. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "dbg_out0")),
  1059. [RTD1315E_ISO_GPIO_58] = RTK_PIN_MUX(gpio_58, 0x18, GENMASK(31, 28),
  1060. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  1061. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "tdm_ai_loc0"),
  1062. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "ai_loc0"),
  1063. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "dmic_loc0"),
  1064. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 28), "acpu_ejtag_loc2"),
  1065. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 28), "vcpu_ejtag_loc2"),
  1066. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 28), "aucpu_ejtag_loc2"),
  1067. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 28), "vtc_i2si_loc0"),
  1068. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 28), "vtc_tdm_loc0"),
  1069. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 28), "vtc_dmic_loc0"),
  1070. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 28), "scpu_ejtag_loc2"),
  1071. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "dbg_out0")),
  1072. [RTD1315E_ISO_GPIO_59] = RTK_PIN_MUX(gpio_59, 0x1c, GENMASK(3, 0),
  1073. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1074. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "tdm_ai_loc0"),
  1075. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "ai_loc0"),
  1076. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc0"),
  1077. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc2"),
  1078. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc2"),
  1079. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 0), "aucpu_ejtag_loc2"),
  1080. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 0), "vtc_i2si_loc0"),
  1081. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 0), "vtc_tdm_loc0"),
  1082. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 0), "vtc_dmic_loc0"),
  1083. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 0), "scpu_ejtag_loc2"),
  1084. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "dbg_out1")),
  1085. [RTD1315E_ISO_GPIO_60] = RTK_PIN_MUX(gpio_60, 0x1c, GENMASK(7, 4),
  1086. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1087. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "tdm_ai_loc0"),
  1088. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "ai_loc0"),
  1089. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "dmic_loc0"),
  1090. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc2"),
  1091. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc2"),
  1092. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 4), "aucpu_ejtag_loc2"),
  1093. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 4), "vtc_i2si_loc0"),
  1094. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "vtc_tdm_loc0"),
  1095. RTK_PIN_FUNC(SHIFT_LEFT(0xd, 4), "vtc_dmic_loc0"),
  1096. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 4), "scpu_ejtag_loc2"),
  1097. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "dbg_out0")),
  1098. [RTD1315E_ISO_GPIO_61] = RTK_PIN_MUX(gpio_61, 0x1c, GENMASK(11, 8),
  1099. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  1100. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "ai_loc0"),
  1101. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "dmic_loc0"),
  1102. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc2"),
  1103. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc2"),
  1104. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 8), "aucpu_ejtag_loc2"),
  1105. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 8), "vtc_i2si_loc0"),
  1106. RTK_PIN_FUNC(SHIFT_LEFT(0xe, 8), "scpu_ejtag_loc2"),
  1107. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "dbg_out1")),
  1108. [RTD1315E_ISO_GPIO_62] = RTK_PIN_MUX(gpio_62, 0x1c, GENMASK(15, 12),
  1109. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  1110. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "ai_loc0"),
  1111. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "dmic_loc0"),
  1112. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "dbg_out1")),
  1113. [RTD1315E_ISO_GPIO_66] = RTK_PIN_MUX(gpio_66, 0x1c, GENMASK(19, 16),
  1114. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  1115. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 16), "ao"),
  1116. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")),
  1117. [RTD1315E_ISO_GPIO_67] = RTK_PIN_MUX(gpio_67, 0x1c, GENMASK(23, 20),
  1118. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  1119. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 20), "vtc_i2so"),
  1120. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 20), "ao"),
  1121. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  1122. [RTD1315E_ISO_GPIO_68] = RTK_PIN_MUX(gpio_68, 0x1c, GENMASK(27, 24),
  1123. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  1124. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "aucpu_ejtag_loc0"),
  1125. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "gpu_ejtag"),
  1126. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "scpu_ejtag_loc0"),
  1127. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 24), "acpu_ejtag_loc0"),
  1128. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 24), "vcpu_ejtag_loc0"),
  1129. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 24), "vtc_i2so"),
  1130. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 24), "ao"),
  1131. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")),
  1132. [RTD1315E_ISO_GPIO_69] = RTK_PIN_MUX(gpio_69, 0x1c, GENMASK(31, 28),
  1133. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  1134. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "aucpu_ejtag_loc0"),
  1135. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 28), "gpu_ejtag"),
  1136. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 28), "scpu_ejtag_loc0"),
  1137. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 28), "acpu_ejtag_loc0"),
  1138. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 28), "vcpu_ejtag_loc0"),
  1139. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 28), "vtc_i2so"),
  1140. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 28), "ao"),
  1141. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 28), "iso_tristate")),
  1142. [RTD1315E_ISO_GPIO_70] = RTK_PIN_MUX(gpio_70, 0x20, GENMASK(3, 0),
  1143. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1144. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "aucpu_ejtag_loc0"),
  1145. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 0), "gpu_ejtag"),
  1146. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "scpu_ejtag_loc0"),
  1147. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc0"),
  1148. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc0"),
  1149. RTK_PIN_FUNC(SHIFT_LEFT(0xb, 0), "vtc_i2so"),
  1150. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 0), "ao"),
  1151. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 0), "iso_tristate")),
  1152. [RTD1315E_ISO_GPIO_71] = RTK_PIN_MUX(gpio_71, 0x20, GENMASK(7, 4),
  1153. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1154. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "aucpu_ejtag_loc0"),
  1155. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 4), "gpu_ejtag"),
  1156. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "scpu_ejtag_loc0"),
  1157. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc0"),
  1158. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc0"),
  1159. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 4), "ao"),
  1160. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 4), "iso_tristate")),
  1161. [RTD1315E_ISO_GPIO_72] = RTK_PIN_MUX(gpio_72, 0x20, GENMASK(11, 8),
  1162. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  1163. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "aucpu_ejtag_loc0"),
  1164. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 8), "gpu_ejtag"),
  1165. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "scpu_ejtag_loc0"),
  1166. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc0"),
  1167. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc0"),
  1168. RTK_PIN_FUNC(SHIFT_LEFT(0xc, 8), "ao"),
  1169. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 8), "iso_tristate")),
  1170. [RTD1315E_ISO_GPIO_78] = RTK_PIN_MUX(gpio_78, 0x20, GENMASK(15, 12),
  1171. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  1172. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"),
  1173. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "pmic_pwrup"),
  1174. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 12), "spi"),
  1175. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 12), "iso_tristate")),
  1176. [RTD1315E_ISO_GPIO_79] = RTK_PIN_MUX(gpio_79, 0x20, GENMASK(19, 16),
  1177. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  1178. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "nf"),
  1179. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 16), "spi"),
  1180. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 16), "iso_tristate")),
  1181. [RTD1315E_ISO_GPIO_80] = RTK_PIN_MUX(gpio_80, 0x20, GENMASK(23, 20),
  1182. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  1183. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "nf"),
  1184. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 20), "spi"),
  1185. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 20), "iso_tristate")),
  1186. [RTD1315E_ISO_GPIO_81] = RTK_PIN_MUX(gpio_81, 0x20, GENMASK(27, 24),
  1187. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  1188. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "nf"),
  1189. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "spi"),
  1190. RTK_PIN_FUNC(SHIFT_LEFT(0xf, 24), "iso_tristate")),
  1191. [RTD1315E_ISO_UR2_LOC] = RTK_PIN_MUX(ur2_loc, 0x120, GENMASK(1, 0),
  1192. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "uart2_disable"),
  1193. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc0"),
  1194. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "uart2_loc1")),
  1195. [RTD1315E_ISO_GSPI_LOC] = RTK_PIN_MUX(gspi_loc, 0x120, GENMASK(3, 2),
  1196. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "gspi_disable"),
  1197. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "gspi_loc0"),
  1198. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "gspi_loc1")),
  1199. [RTD1315E_ISO_HI_WIDTH] = RTK_PIN_MUX(hi_width, 0x120, GENMASK(9, 8),
  1200. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "hi_width_disable"),
  1201. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "hi_width_1bit")),
  1202. [RTD1315E_ISO_SF_EN] = RTK_PIN_MUX(sf_en, 0x120, GENMASK(11, 11),
  1203. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "sf_disable"),
  1204. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 11), "sf_enable")),
  1205. [RTD1315E_ISO_ARM_TRACE_DBG_EN] = RTK_PIN_MUX(arm_trace_dbg_en, 0x120, GENMASK(12, 12),
  1206. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "arm_trace_debug_disable"),
  1207. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "arm_trace_debug_enable")),
  1208. [RTD1315E_ISO_EJTAG_AUCPU_LOC] = RTK_PIN_MUX(ejtag_aucpu_loc, 0x120, GENMASK(16, 14),
  1209. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "aucpu_ejtag_disable"),
  1210. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "aucpu_ejtag_loc0"),
  1211. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 14), "aucpu_ejtag_loc1"),
  1212. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 14), "aucpu_ejtag_loc2")),
  1213. [RTD1315E_ISO_EJTAG_ACPU_LOC] = RTK_PIN_MUX(ejtag_acpu_loc, 0x120, GENMASK(19, 17),
  1214. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 17), "acpu_ejtag_disable"),
  1215. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 17), "acpu_ejtag_loc0"),
  1216. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 17), "acpu_ejtag_loc1"),
  1217. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 17), "acpu_ejtag_loc2")),
  1218. [RTD1315E_ISO_EJTAG_VCPU_LOC] = RTK_PIN_MUX(ejtag_vcpu_loc, 0x120, GENMASK(22, 20),
  1219. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "vcpu_ejtag_disable"),
  1220. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "vcpu_ejtag_loc0"),
  1221. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "vcpu_ejtag_loc1"),
  1222. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "vcpu_ejtag_loc2")),
  1223. [RTD1315E_ISO_EJTAG_SCPU_LOC] = RTK_PIN_MUX(ejtag_scpu_loc, 0x120, GENMASK(25, 23),
  1224. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "scpu_ejtag_disable"),
  1225. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 23), "scpu_ejtag_loc0"),
  1226. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 23), "scpu_ejtag_loc1"),
  1227. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 23), "scpu_ejtag_loc2")),
  1228. [RTD1315E_ISO_DMIC_LOC] = RTK_PIN_MUX(dmic_loc, 0x120, GENMASK(27, 26),
  1229. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "dmic_loc0"),
  1230. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 26), "dmic_loc1")),
  1231. [RTD1315E_ISO_VTC_DMIC_LOC] = RTK_PIN_MUX(vtc_dmic_loc, 0x128, GENMASK(1, 0),
  1232. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "vtc_dmic_loc_disable"),
  1233. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "vtc_dmic_loc0"),
  1234. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "vtc_dmic_loc1")),
  1235. [RTD1315E_ISO_VTC_TDM_LOC] = RTK_PIN_MUX(vtc_tdm_loc, 0x128, GENMASK(3, 2),
  1236. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "vtc_tdm_disable"),
  1237. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "vtc_tdm_loc0"),
  1238. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "vtc_tdm_loc1")),
  1239. [RTD1315E_ISO_VTC_I2SI_LOC] = RTK_PIN_MUX(vtc_i2si_loc, 0x128, GENMASK(5, 4),
  1240. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "vtc_i2si_disable"),
  1241. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "vtc_i2si_loc0"),
  1242. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "vtc_i2si_loc1")),
  1243. [RTD1315E_ISO_TDM_AI_LOC] = RTK_PIN_MUX(tdm_ai_loc, 0x128, GENMASK(7, 6),
  1244. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "tdm_ai_disable"),
  1245. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "tdm_ai_loc0"),
  1246. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 6), "tdm_ai_loc1")),
  1247. [RTD1315E_ISO_AI_LOC] = RTK_PIN_MUX(ai_loc, 0x128, GENMASK(9, 8),
  1248. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "ai_disable"),
  1249. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "ai_loc0"),
  1250. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "ai_loc1")),
  1251. [RTD1315E_ISO_SPDIF_LOC] = RTK_PIN_MUX(spdif_loc, 0x128, GENMASK(11, 10),
  1252. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "spdif_disable"),
  1253. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "spdif_optical_loc0"),
  1254. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "spdif_optical_loc1")),
  1255. [RTD1315E_ISO_HIF_EN_LOC] = RTK_PIN_MUX(hif_en_loc, 0x12c, GENMASK(2, 0),
  1256. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "hif_disable"),
  1257. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "hif_enable")),
  1258. };
  1259. static const struct rtd_pin_config_desc rtd1315e_iso_configs[ARRAY_SIZE(rtd1315e_iso_pins)] = {
  1260. [RTD1315E_ISO_BOOT_SEL] = RTK_PIN_CONFIG(boot_sel, 0x24, 0, 0, 1, NA, 2, 3, NA),
  1261. [RTD1315E_ISO_EMMC_CLK] = RTK_PIN_CONFIG(emmc_clk, 0x24, 4, 0, 1, NA, 2, 12, NA),
  1262. [RTD1315E_ISO_EMMC_CMD] = RTK_PIN_CONFIG(emmc_cmd, 0x24, 17, 0, 1, NA, 2, 13, NA),
  1263. [RTD1315E_ISO_EMMC_DATA_0] = RTK_PIN_CONFIG(emmc_data_0, 0x28, 0, 0, 1, NA, 2, 12, NA),
  1264. [RTD1315E_ISO_EMMC_DATA_1] = RTK_PIN_CONFIG(emmc_data_1, 0x28, 13, 0, 1, NA, 2, 12, NA),
  1265. [RTD1315E_ISO_EMMC_DATA_2] = RTK_PIN_CONFIG(emmc_data_2, 0x2c, 0, 0, 1, NA, 2, 12, NA),
  1266. [RTD1315E_ISO_EMMC_DATA_3] = RTK_PIN_CONFIG(emmc_data_3, 0x2c, 13, 0, 1, NA, 2, 12, NA),
  1267. [RTD1315E_ISO_EMMC_DATA_4] = RTK_PIN_CONFIG(emmc_data_4, 0x30, 0, 0, 1, NA, 2, 12, NA),
  1268. [RTD1315E_ISO_EMMC_DATA_5] = RTK_PIN_CONFIG(emmc_data_5, 0x30, 13, 0, 1, NA, 2, 12, NA),
  1269. [RTD1315E_ISO_EMMC_DATA_6] = RTK_PIN_CONFIG(emmc_data_6, 0x34, 0, 0, 1, NA, 2, 12, NA),
  1270. [RTD1315E_ISO_EMMC_DATA_7] = RTK_PIN_CONFIG(emmc_data_7, 0x34, 13, 0, 1, NA, 2, 12, NA),
  1271. [RTD1315E_ISO_EMMC_DD_SB] = RTK_PIN_CONFIG(emmc_dd_sb, 0x38, 0, 0, 1, NA, 2, 12, NA),
  1272. [RTD1315E_ISO_EMMC_RST_N] = RTK_PIN_CONFIG(emmc_rst_n, 0x38, 13, 0, 1, NA, 2, 12, NA),
  1273. [RTD1315E_ISO_GPIO_1] = RTK_PIN_CONFIG(gpio_1, 0x3c, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1274. [RTD1315E_ISO_GPIO_6] = RTK_PIN_CONFIG(gpio_6, 0x3c, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1275. [RTD1315E_ISO_GPIO_7] = RTK_PIN_CONFIG(gpio_7, 0x3c, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1276. [RTD1315E_ISO_GPIO_8] = RTK_PIN_CONFIG(gpio_8, 0x3c, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1277. [RTD1315E_ISO_GPIO_9] = RTK_PIN_CONFIG(gpio_9, 0x3c, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1278. [RTD1315E_ISO_GPIO_10] = RTK_PIN_CONFIG(gpio_10, 0x3c, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1279. [RTD1315E_ISO_GPIO_11] = RTK_PIN_CONFIG(gpio_11, 0x40, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1280. [RTD1315E_ISO_GPIO_12] = RTK_PIN_CONFIG(gpio_12, 0x40, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1281. [RTD1315E_ISO_GPIO_13] = RTK_PIN_CONFIG(gpio_13, 0x40, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1282. [RTD1315E_ISO_GPIO_14] = RTK_PIN_CONFIG(gpio_14, 0x40, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1283. [RTD1315E_ISO_GPIO_15] = RTK_PIN_CONFIG(gpio_15, 0x40, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1284. [RTD1315E_ISO_GPIO_16] = RTK_PIN_CONFIG(gpio_16, 0x40, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1285. [RTD1315E_ISO_GPIO_17] = RTK_PIN_CONFIG(gpio_17, 0x44, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1286. [RTD1315E_ISO_GPIO_18] = RTK_PIN_CONFIG(gpio_18, 0x44, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1287. [RTD1315E_ISO_GPIO_19] = RTK_PIN_CONFIG(gpio_19, 0x44, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1288. [RTD1315E_ISO_GPIO_20] = RTK_PIN_CONFIG(gpio_20, 0x44, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1289. [RTD1315E_ISO_GPIO_25] = RTK_PIN_CONFIG(gpio_25, 0x44, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1290. [RTD1315E_ISO_GPIO_26] = RTK_PIN_CONFIG(gpio_26, 0x44, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1291. [RTD1315E_ISO_GPIO_27] = RTK_PIN_CONFIG(gpio_27, 0x48, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1292. [RTD1315E_ISO_GPIO_28] = RTK_PIN_CONFIG(gpio_28, 0x48, 6, 1, 2, 0, 3, 4, PADDRI_4_8),
  1293. [RTD1315E_ISO_GPIO_29] = RTK_PIN_CONFIG(gpio_29, 0x48, 12, 1, 2, 0, 3, 4, PADDRI_4_8),
  1294. [RTD1315E_ISO_GPIO_30] = RTK_PIN_CONFIG(gpio_30, 0x48, 17, 1, 2, 0, 3, 4, PADDRI_4_8),
  1295. [RTD1315E_ISO_GPIO_31] = RTK_PIN_CONFIG(gpio_31, 0x4c, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1296. [RTD1315E_ISO_GPIO_32] = RTK_PIN_CONFIG(gpio_32, 0x4c, 5, 0, 1, NA, 2, 12, NA),
  1297. [RTD1315E_ISO_GPIO_33] = RTK_PIN_CONFIG(gpio_33, 0x4c, 18, 0, 1, NA, 2, 12, NA),
  1298. [RTD1315E_ISO_GPIO_34] = RTK_PIN_CONFIG(gpio_34, 0x50, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1299. [RTD1315E_ISO_GPIO_35] = RTK_PIN_CONFIG(gpio_35, 0x50, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1300. [RTD1315E_ISO_GPIO_46] = RTK_PIN_CONFIG(gpio_46, 0x50, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1301. [RTD1315E_ISO_GPIO_47] = RTK_PIN_CONFIG(gpio_47, 0x50, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1302. [RTD1315E_ISO_GPIO_48] = RTK_PIN_CONFIG(gpio_48, 0x50, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1303. [RTD1315E_ISO_GPIO_49] = RTK_PIN_CONFIG(gpio_49, 0x50, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1304. [RTD1315E_ISO_GPIO_50] = RTK_PIN_CONFIG(gpio_50, 0x54, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1305. [RTD1315E_ISO_GPIO_57] = RTK_PIN_CONFIG(gpio_57, 0x54, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1306. [RTD1315E_ISO_GPIO_58] = RTK_PIN_CONFIG(gpio_58, 0x54, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1307. [RTD1315E_ISO_GPIO_59] = RTK_PIN_CONFIG(gpio_59, 0x54, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1308. [RTD1315E_ISO_GPIO_60] = RTK_PIN_CONFIG(gpio_60, 0x54, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1309. [RTD1315E_ISO_GPIO_61] = RTK_PIN_CONFIG(gpio_61, 0x54, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1310. [RTD1315E_ISO_GPIO_62] = RTK_PIN_CONFIG(gpio_62, 0x58, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1311. [RTD1315E_ISO_GPIO_66] = RTK_PIN_CONFIG(gpio_66, 0x58, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1312. [RTD1315E_ISO_GPIO_67] = RTK_PIN_CONFIG(gpio_67, 0x58, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1313. [RTD1315E_ISO_GPIO_68] = RTK_PIN_CONFIG(gpio_68, 0x58, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1314. [RTD1315E_ISO_GPIO_69] = RTK_PIN_CONFIG(gpio_69, 0x58, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1315. [RTD1315E_ISO_GPIO_70] = RTK_PIN_CONFIG(gpio_70, 0x58, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1316. [RTD1315E_ISO_GPIO_71] = RTK_PIN_CONFIG(gpio_71, 0x5c, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1317. [RTD1315E_ISO_GPIO_72] = RTK_PIN_CONFIG(gpio_72, 0x5c, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1318. [RTD1315E_ISO_GPIO_78] = RTK_PIN_CONFIG(gpio_78, 0x5c, 10, 0, 1, NA, 2, 12, NA),
  1319. [RTD1315E_ISO_GPIO_79] = RTK_PIN_CONFIG(gpio_79, 0x60, 0, 0, 1, NA, 2, 12, NA),
  1320. [RTD1315E_ISO_GPIO_80] = RTK_PIN_CONFIG(gpio_80, 0x60, 13, 0, 1, NA, 2, 12, NA),
  1321. [RTD1315E_ISO_GPIO_81] = RTK_PIN_CONFIG(gpio_81, 0x64, 0, 0, 1, NA, 2, 12, NA),
  1322. [RTD1315E_ISO_HIF_CLK] = RTK_PIN_CONFIG(hif_clk, 0x64, 13, 0, 1, NA, 2, 12, NA),
  1323. [RTD1315E_ISO_HIF_DATA] = RTK_PIN_CONFIG(hif_data, 0x68, 0, 0, 1, NA, 2, 12, NA),
  1324. [RTD1315E_ISO_HIF_EN] = RTK_PIN_CONFIG(hif_en, 0x68, 13, 0, 1, NA, 2, 12, NA),
  1325. [RTD1315E_ISO_HIF_RDY] = RTK_PIN_CONFIG(hif_rdy, 0x68, 26, 0, 1, NA, 2, 12, NA),
  1326. [RTD1315E_ISO_IR_RX] = RTK_PIN_CONFIG(ir_rx, 0x6c, 7, 1, 2, 0, 3, 4, PADDRI_4_8),
  1327. [RTD1315E_ISO_RESET_N] = RTK_PIN_CONFIG(reset_n, 0x6c, 12, 0, 1, NA, 2, 3, PADDRI_4_8),
  1328. [RTD1315E_ISO_SCAN_SWITCH] = RTK_PIN_CONFIG(scan_switch, 0x6c, 16, NA, NA, 0, 1, 2, PADDRI_4_8),
  1329. [RTD1315E_ISO_TESTMODE] = RTK_PIN_CONFIG(testmode, 0x6c, 19, 0, 1, NA, 2, 3, PADDRI_4_8),
  1330. [RTD1315E_ISO_UR0_RX] = RTK_PIN_CONFIG(ur0_rx, 0x6c, 23, 1, 2, 0, 3, 4, PADDRI_4_8),
  1331. [RTD1315E_ISO_UR0_TX] = RTK_PIN_CONFIG(ur0_tx, 0x6c, 28, 1, 2, 0, 3, 4, PADDRI_4_8),
  1332. [RTD1315E_ISO_USB_CC1] = RTK_PIN_CONFIG(usb_cc1, 0x70, 1, NA, NA, 0, 1, 2, PADDRI_4_8),
  1333. [RTD1315E_ISO_USB_CC2] = RTK_PIN_CONFIG(usb_cc2, 0x70, 4, NA, NA, 0, 1, 2, PADDRI_4_8),
  1334. [RTD1315E_ISO_WD_RSET] = RTK_PIN_CONFIG(wd_rset, 0x70, 7, 1, 2, 0, 3, 4, PADDRI_4_8),
  1335. };
  1336. static const struct rtd_pin_sconfig_desc rtd1315e_iso_sconfigs[] = {
  1337. RTK_PIN_SCONFIG(emmc_clk, 0x24, 7, 3, 10, 3, 13, 3),
  1338. RTK_PIN_SCONFIG(emmc_cmd, 0x24, 20, 3, 23, 3, 26, 3),
  1339. RTK_PIN_SCONFIG(emmc_data_0, 0x28, 3, 3, 6, 3, 9, 3),
  1340. RTK_PIN_SCONFIG(emmc_data_1, 0x28, 16, 3, 19, 3, 22, 3),
  1341. RTK_PIN_SCONFIG(emmc_data_2, 0x2c, 3, 3, 6, 3, 9, 3),
  1342. RTK_PIN_SCONFIG(emmc_data_3, 0x2c, 16, 3, 19, 3, 22, 3),
  1343. RTK_PIN_SCONFIG(emmc_data_4, 0x30, 3, 3, 6, 3, 9, 3),
  1344. RTK_PIN_SCONFIG(emmc_data_5, 0x30, 16, 3, 19, 3, 22, 3),
  1345. RTK_PIN_SCONFIG(emmc_data_6, 0x34, 3, 3, 6, 3, 9, 3),
  1346. RTK_PIN_SCONFIG(emmc_data_7, 0x34, 16, 3, 19, 3, 22, 3),
  1347. RTK_PIN_SCONFIG(emmc_dd_sb, 0x38, 3, 3, 6, 3, 9, 3),
  1348. RTK_PIN_SCONFIG(emmc_rst_n, 0x38, 16, 3, 19, 3, 22, 3),
  1349. RTK_PIN_SCONFIG(gpio_32, 0x4c, 8, 3, 11, 3, 14, 3),
  1350. RTK_PIN_SCONFIG(gpio_33, 0x4c, 21, 3, 24, 3, 27, 3),
  1351. RTK_PIN_SCONFIG(gpio_78, 0x5c, 13, 3, 16, 3, 19, 3),
  1352. RTK_PIN_SCONFIG(gpio_79, 0x60, 3, 3, 6, 3, 9, 3),
  1353. RTK_PIN_SCONFIG(gpio_80, 0x60, 16, 3, 19, 3, 22, 3),
  1354. RTK_PIN_SCONFIG(gpio_81, 0x64, 3, 3, 6, 3, 9, 3),
  1355. RTK_PIN_SCONFIG(hif_clk, 0x64, 16, 3, 19, 3, 22, 3),
  1356. RTK_PIN_SCONFIG(hif_data, 0x68, 3, 3, 6, 3, 9, 3),
  1357. RTK_PIN_SCONFIG(hif_en, 0x68, 16, 3, 19, 3, 22, 3),
  1358. RTK_PIN_SCONFIG(hif_rdy, 0x68, 29, 3, 32, 3, 35, 3),
  1359. };
  1360. static const struct rtd_pinctrl_desc rtd1315e_iso_pinctrl_desc = {
  1361. .pins = rtd1315e_iso_pins,
  1362. .num_pins = ARRAY_SIZE(rtd1315e_iso_pins),
  1363. .groups = rtd1315e_pin_groups,
  1364. .num_groups = ARRAY_SIZE(rtd1315e_pin_groups),
  1365. .functions = rtd1315e_pin_functions,
  1366. .num_functions = ARRAY_SIZE(rtd1315e_pin_functions),
  1367. .muxes = rtd1315e_iso_muxes,
  1368. .num_muxes = ARRAY_SIZE(rtd1315e_iso_muxes),
  1369. .configs = rtd1315e_iso_configs,
  1370. .num_configs = ARRAY_SIZE(rtd1315e_iso_configs),
  1371. .sconfigs = rtd1315e_iso_sconfigs,
  1372. .num_sconfigs = ARRAY_SIZE(rtd1315e_iso_sconfigs),
  1373. };
  1374. static int rtd1315e_pinctrl_probe(struct platform_device *pdev)
  1375. {
  1376. return rtd_pinctrl_probe(pdev, &rtd1315e_iso_pinctrl_desc);
  1377. }
  1378. static const struct of_device_id rtd1315e_pinctrl_of_match[] = {
  1379. { .compatible = "realtek,rtd1315e-pinctrl", },
  1380. {},
  1381. };
  1382. MODULE_DEVICE_TABLE(of, rtd1315e_pinctrl_of_match);
  1383. static struct platform_driver rtd1315e_pinctrl_driver = {
  1384. .driver = {
  1385. .name = "rtd1315e-pinctrl",
  1386. .of_match_table = rtd1315e_pinctrl_of_match,
  1387. },
  1388. .probe = rtd1315e_pinctrl_probe,
  1389. };
  1390. static int __init rtd1315e_pinctrl_init(void)
  1391. {
  1392. return platform_driver_register(&rtd1315e_pinctrl_driver);
  1393. }
  1394. arch_initcall(rtd1315e_pinctrl_init);
  1395. static void __exit rtd1315e_pinctrl_exit(void)
  1396. {
  1397. platform_driver_unregister(&rtd1315e_pinctrl_driver);
  1398. }
  1399. module_exit(rtd1315e_pinctrl_exit);
  1400. MODULE_LICENSE("GPL");
  1401. MODULE_AUTHOR("Realtek Semiconductor Corporation");
  1402. MODULE_DESCRIPTION("Realtek DHC SoC RTD1315E pinctrl driver");