pinctrl-rtd1619b.c 75 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Realtek DHC 1619B 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 rtd16xxb_iso_pins {
  14. RTD1619B_ISO_GPIO_0 = 0,
  15. RTD1619B_ISO_GPIO_1,
  16. RTD1619B_ISO_GPIO_2,
  17. RTD1619B_ISO_GPIO_3,
  18. RTD1619B_ISO_GPIO_4,
  19. RTD1619B_ISO_GPIO_5,
  20. RTD1619B_ISO_GPIO_6,
  21. RTD1619B_ISO_GPIO_7,
  22. RTD1619B_ISO_GPIO_8,
  23. RTD1619B_ISO_GPIO_9,
  24. RTD1619B_ISO_GPIO_10,
  25. RTD1619B_ISO_GPIO_11,
  26. RTD1619B_ISO_GPIO_12,
  27. RTD1619B_ISO_GPIO_13,
  28. RTD1619B_ISO_GPIO_14,
  29. RTD1619B_ISO_GPIO_15,
  30. RTD1619B_ISO_GPIO_16,
  31. RTD1619B_ISO_GPIO_17,
  32. RTD1619B_ISO_GPIO_18,
  33. RTD1619B_ISO_GPIO_19,
  34. RTD1619B_ISO_GPIO_20,
  35. RTD1619B_ISO_GPIO_21,
  36. RTD1619B_ISO_GPIO_22,
  37. RTD1619B_ISO_GPIO_23,
  38. RTD1619B_ISO_USB_CC2,
  39. RTD1619B_ISO_GPIO_25,
  40. RTD1619B_ISO_GPIO_26,
  41. RTD1619B_ISO_GPIO_27,
  42. RTD1619B_ISO_GPIO_28,
  43. RTD1619B_ISO_GPIO_29,
  44. RTD1619B_ISO_GPIO_30,
  45. RTD1619B_ISO_GPIO_31,
  46. RTD1619B_ISO_GPIO_32,
  47. RTD1619B_ISO_GPIO_33,
  48. RTD1619B_ISO_GPIO_34,
  49. RTD1619B_ISO_GPIO_35,
  50. RTD1619B_ISO_HIF_DATA,
  51. RTD1619B_ISO_HIF_EN,
  52. RTD1619B_ISO_HIF_RDY,
  53. RTD1619B_ISO_HIF_CLK,
  54. RTD1619B_ISO_GPIO_40,
  55. RTD1619B_ISO_GPIO_41,
  56. RTD1619B_ISO_GPIO_42,
  57. RTD1619B_ISO_GPIO_43,
  58. RTD1619B_ISO_GPIO_44,
  59. RTD1619B_ISO_GPIO_45,
  60. RTD1619B_ISO_GPIO_46,
  61. RTD1619B_ISO_GPIO_47,
  62. RTD1619B_ISO_GPIO_48,
  63. RTD1619B_ISO_GPIO_49,
  64. RTD1619B_ISO_GPIO_50,
  65. RTD1619B_ISO_USB_CC1,
  66. RTD1619B_ISO_GPIO_52,
  67. RTD1619B_ISO_GPIO_53,
  68. RTD1619B_ISO_IR_RX,
  69. RTD1619B_ISO_UR0_RX,
  70. RTD1619B_ISO_UR0_TX,
  71. RTD1619B_ISO_GPIO_57,
  72. RTD1619B_ISO_GPIO_58,
  73. RTD1619B_ISO_GPIO_59,
  74. RTD1619B_ISO_GPIO_60,
  75. RTD1619B_ISO_GPIO_61,
  76. RTD1619B_ISO_GPIO_62,
  77. RTD1619B_ISO_GPIO_63,
  78. RTD1619B_ISO_GPIO_64,
  79. RTD1619B_ISO_GPIO_65,
  80. RTD1619B_ISO_GPIO_66,
  81. RTD1619B_ISO_GPIO_67,
  82. RTD1619B_ISO_GPIO_68,
  83. RTD1619B_ISO_GPIO_69,
  84. RTD1619B_ISO_GPIO_70,
  85. RTD1619B_ISO_GPIO_71,
  86. RTD1619B_ISO_GPIO_72,
  87. RTD1619B_ISO_GPIO_73,
  88. RTD1619B_ISO_GPIO_74,
  89. RTD1619B_ISO_GPIO_75,
  90. RTD1619B_ISO_GPIO_76,
  91. RTD1619B_ISO_EMMC_CMD,
  92. RTD1619B_ISO_SPI_CE_N,
  93. RTD1619B_ISO_SPI_SCK,
  94. RTD1619B_ISO_SPI_SO,
  95. RTD1619B_ISO_SPI_SI,
  96. RTD1619B_ISO_EMMC_RST_N,
  97. RTD1619B_ISO_EMMC_DD_SB,
  98. RTD1619B_ISO_EMMC_CLK,
  99. RTD1619B_ISO_EMMC_DATA_0,
  100. RTD1619B_ISO_EMMC_DATA_1,
  101. RTD1619B_ISO_EMMC_DATA_2,
  102. RTD1619B_ISO_EMMC_DATA_3,
  103. RTD1619B_ISO_EMMC_DATA_4,
  104. RTD1619B_ISO_EMMC_DATA_5,
  105. RTD1619B_ISO_EMMC_DATA_6,
  106. RTD1619B_ISO_EMMC_DATA_7,
  107. RTD1619B_ISO_UR2_LOC,
  108. RTD1619B_ISO_GSPI_LOC,
  109. RTD1619B_ISO_SDIO_LOC,
  110. RTD1619B_ISO_HI_LOC,
  111. RTD1619B_ISO_HI_WIDTH,
  112. RTD1619B_ISO_SF_EN,
  113. RTD1619B_ISO_ARM_TRACE_DBG_EN,
  114. RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC0,
  115. RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC0,
  116. RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC1,
  117. RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC1,
  118. RTD1619B_ISO_EJTAG_ACPU_LOC,
  119. RTD1619B_ISO_EJTAG_VCPU_LOC,
  120. RTD1619B_ISO_EJTAG_SCPU_LOC,
  121. RTD1619B_ISO_DMIC_LOC,
  122. RTD1619B_ISO_ISO_GSPI_LOC,
  123. RTD1619B_ISO_EJTAG_VE3_LOC,
  124. RTD1619B_ISO_EJTAG_AUCPU0_LOC,
  125. RTD1619B_ISO_EJTAG_AUCPU1_LOC,
  126. };
  127. static const struct pinctrl_pin_desc rtd1619b_iso_pins[] = {
  128. PINCTRL_PIN(RTD1619B_ISO_GPIO_0, "gpio_0"),
  129. PINCTRL_PIN(RTD1619B_ISO_GPIO_1, "gpio_1"),
  130. PINCTRL_PIN(RTD1619B_ISO_GPIO_2, "gpio_2"),
  131. PINCTRL_PIN(RTD1619B_ISO_GPIO_3, "gpio_3"),
  132. PINCTRL_PIN(RTD1619B_ISO_GPIO_4, "gpio_4"),
  133. PINCTRL_PIN(RTD1619B_ISO_GPIO_5, "gpio_5"),
  134. PINCTRL_PIN(RTD1619B_ISO_GPIO_6, "gpio_6"),
  135. PINCTRL_PIN(RTD1619B_ISO_GPIO_7, "gpio_7"),
  136. PINCTRL_PIN(RTD1619B_ISO_GPIO_8, "gpio_8"),
  137. PINCTRL_PIN(RTD1619B_ISO_GPIO_9, "gpio_9"),
  138. PINCTRL_PIN(RTD1619B_ISO_GPIO_10, "gpio_10"),
  139. PINCTRL_PIN(RTD1619B_ISO_GPIO_11, "gpio_11"),
  140. PINCTRL_PIN(RTD1619B_ISO_GPIO_12, "gpio_12"),
  141. PINCTRL_PIN(RTD1619B_ISO_GPIO_13, "gpio_13"),
  142. PINCTRL_PIN(RTD1619B_ISO_GPIO_14, "gpio_14"),
  143. PINCTRL_PIN(RTD1619B_ISO_GPIO_15, "gpio_15"),
  144. PINCTRL_PIN(RTD1619B_ISO_GPIO_16, "gpio_16"),
  145. PINCTRL_PIN(RTD1619B_ISO_GPIO_17, "gpio_17"),
  146. PINCTRL_PIN(RTD1619B_ISO_GPIO_18, "gpio_18"),
  147. PINCTRL_PIN(RTD1619B_ISO_GPIO_19, "gpio_19"),
  148. PINCTRL_PIN(RTD1619B_ISO_GPIO_20, "gpio_20"),
  149. PINCTRL_PIN(RTD1619B_ISO_GPIO_21, "gpio_21"),
  150. PINCTRL_PIN(RTD1619B_ISO_GPIO_22, "gpio_22"),
  151. PINCTRL_PIN(RTD1619B_ISO_GPIO_23, "gpio_23"),
  152. PINCTRL_PIN(RTD1619B_ISO_USB_CC2, "usb_cc2"),
  153. PINCTRL_PIN(RTD1619B_ISO_GPIO_25, "gpio_25"),
  154. PINCTRL_PIN(RTD1619B_ISO_GPIO_26, "gpio_26"),
  155. PINCTRL_PIN(RTD1619B_ISO_GPIO_27, "gpio_27"),
  156. PINCTRL_PIN(RTD1619B_ISO_GPIO_28, "gpio_28"),
  157. PINCTRL_PIN(RTD1619B_ISO_GPIO_29, "gpio_29"),
  158. PINCTRL_PIN(RTD1619B_ISO_GPIO_30, "gpio_30"),
  159. PINCTRL_PIN(RTD1619B_ISO_GPIO_31, "gpio_31"),
  160. PINCTRL_PIN(RTD1619B_ISO_GPIO_32, "gpio_32"),
  161. PINCTRL_PIN(RTD1619B_ISO_GPIO_33, "gpio_33"),
  162. PINCTRL_PIN(RTD1619B_ISO_GPIO_34, "gpio_34"),
  163. PINCTRL_PIN(RTD1619B_ISO_GPIO_35, "gpio_35"),
  164. PINCTRL_PIN(RTD1619B_ISO_HIF_DATA, "hif_data"),
  165. PINCTRL_PIN(RTD1619B_ISO_HIF_EN, "hif_en"),
  166. PINCTRL_PIN(RTD1619B_ISO_HIF_RDY, "hif_rdy"),
  167. PINCTRL_PIN(RTD1619B_ISO_HIF_CLK, "hif_clk"),
  168. PINCTRL_PIN(RTD1619B_ISO_GPIO_40, "gpio_40"),
  169. PINCTRL_PIN(RTD1619B_ISO_GPIO_41, "gpio_41"),
  170. PINCTRL_PIN(RTD1619B_ISO_GPIO_42, "gpio_42"),
  171. PINCTRL_PIN(RTD1619B_ISO_GPIO_43, "gpio_43"),
  172. PINCTRL_PIN(RTD1619B_ISO_GPIO_44, "gpio_44"),
  173. PINCTRL_PIN(RTD1619B_ISO_GPIO_45, "gpio_45"),
  174. PINCTRL_PIN(RTD1619B_ISO_GPIO_46, "gpio_46"),
  175. PINCTRL_PIN(RTD1619B_ISO_GPIO_47, "gpio_47"),
  176. PINCTRL_PIN(RTD1619B_ISO_GPIO_48, "gpio_48"),
  177. PINCTRL_PIN(RTD1619B_ISO_GPIO_49, "gpio_49"),
  178. PINCTRL_PIN(RTD1619B_ISO_GPIO_50, "gpio_50"),
  179. PINCTRL_PIN(RTD1619B_ISO_USB_CC1, "usb_cc1"),
  180. PINCTRL_PIN(RTD1619B_ISO_GPIO_52, "gpio_52"),
  181. PINCTRL_PIN(RTD1619B_ISO_GPIO_53, "gpio_53"),
  182. PINCTRL_PIN(RTD1619B_ISO_IR_RX, "ir_rx"),
  183. PINCTRL_PIN(RTD1619B_ISO_UR0_RX, "ur0_rx"),
  184. PINCTRL_PIN(RTD1619B_ISO_UR0_TX, "ur0_tx"),
  185. PINCTRL_PIN(RTD1619B_ISO_GPIO_57, "gpio_57"),
  186. PINCTRL_PIN(RTD1619B_ISO_GPIO_58, "gpio_58"),
  187. PINCTRL_PIN(RTD1619B_ISO_GPIO_59, "gpio_59"),
  188. PINCTRL_PIN(RTD1619B_ISO_GPIO_60, "gpio_60"),
  189. PINCTRL_PIN(RTD1619B_ISO_GPIO_61, "gpio_61"),
  190. PINCTRL_PIN(RTD1619B_ISO_GPIO_62, "gpio_62"),
  191. PINCTRL_PIN(RTD1619B_ISO_GPIO_63, "gpio_63"),
  192. PINCTRL_PIN(RTD1619B_ISO_GPIO_64, "gpio_64"),
  193. PINCTRL_PIN(RTD1619B_ISO_GPIO_65, "gpio_65"),
  194. PINCTRL_PIN(RTD1619B_ISO_GPIO_66, "gpio_66"),
  195. PINCTRL_PIN(RTD1619B_ISO_GPIO_67, "gpio_67"),
  196. PINCTRL_PIN(RTD1619B_ISO_GPIO_68, "gpio_68"),
  197. PINCTRL_PIN(RTD1619B_ISO_GPIO_69, "gpio_69"),
  198. PINCTRL_PIN(RTD1619B_ISO_GPIO_70, "gpio_70"),
  199. PINCTRL_PIN(RTD1619B_ISO_GPIO_71, "gpio_71"),
  200. PINCTRL_PIN(RTD1619B_ISO_GPIO_72, "gpio_72"),
  201. PINCTRL_PIN(RTD1619B_ISO_GPIO_73, "gpio_73"),
  202. PINCTRL_PIN(RTD1619B_ISO_GPIO_74, "gpio_74"),
  203. PINCTRL_PIN(RTD1619B_ISO_GPIO_75, "gpio_75"),
  204. PINCTRL_PIN(RTD1619B_ISO_GPIO_76, "gpio_76"),
  205. PINCTRL_PIN(RTD1619B_ISO_EMMC_CMD, "emmc_cmd"),
  206. PINCTRL_PIN(RTD1619B_ISO_SPI_CE_N, "spi_ce_n"),
  207. PINCTRL_PIN(RTD1619B_ISO_SPI_SCK, "spi_sck"),
  208. PINCTRL_PIN(RTD1619B_ISO_SPI_SO, "spi_so"),
  209. PINCTRL_PIN(RTD1619B_ISO_SPI_SI, "spi_si"),
  210. PINCTRL_PIN(RTD1619B_ISO_EMMC_RST_N, "emmc_rst_n"),
  211. PINCTRL_PIN(RTD1619B_ISO_EMMC_DD_SB, "emmc_dd_sb"),
  212. PINCTRL_PIN(RTD1619B_ISO_EMMC_CLK, "emmc_clk"),
  213. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_0, "emmc_data_0"),
  214. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_1, "emmc_data_1"),
  215. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_2, "emmc_data_2"),
  216. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_3, "emmc_data_3"),
  217. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_4, "emmc_data_4"),
  218. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_5, "emmc_data_5"),
  219. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_6, "emmc_data_6"),
  220. PINCTRL_PIN(RTD1619B_ISO_EMMC_DATA_7, "emmc_data_7"),
  221. PINCTRL_PIN(RTD1619B_ISO_UR2_LOC, "ur2_loc"),
  222. PINCTRL_PIN(RTD1619B_ISO_GSPI_LOC, "gspi_loc"),
  223. PINCTRL_PIN(RTD1619B_ISO_SDIO_LOC, "sdio_loc"),
  224. PINCTRL_PIN(RTD1619B_ISO_HI_LOC, "hi_loc"),
  225. PINCTRL_PIN(RTD1619B_ISO_HI_WIDTH, "hi_width"),
  226. PINCTRL_PIN(RTD1619B_ISO_SF_EN, "sf_en"),
  227. PINCTRL_PIN(RTD1619B_ISO_ARM_TRACE_DBG_EN, "arm_trace_dbg_en"),
  228. PINCTRL_PIN(RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC0, "pwm_01_open_drain_en_loc0"),
  229. PINCTRL_PIN(RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC0, "pwm_23_open_drain_en_loc0"),
  230. PINCTRL_PIN(RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC1, "pwm_01_open_drain_en_loc1"),
  231. PINCTRL_PIN(RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC1, "pwm_23_open_drain_en_loc1"),
  232. PINCTRL_PIN(RTD1619B_ISO_EJTAG_ACPU_LOC, "ejtag_acpu_loc"),
  233. PINCTRL_PIN(RTD1619B_ISO_EJTAG_VCPU_LOC, "ejtag_vcpu_loc"),
  234. PINCTRL_PIN(RTD1619B_ISO_EJTAG_SCPU_LOC, "ejtag_scpu_loc"),
  235. PINCTRL_PIN(RTD1619B_ISO_DMIC_LOC, "dmic_loc"),
  236. PINCTRL_PIN(RTD1619B_ISO_ISO_GSPI_LOC, "iso_gspi_loc"),
  237. PINCTRL_PIN(RTD1619B_ISO_EJTAG_VE3_LOC, "ejtag_ve3_loc"),
  238. PINCTRL_PIN(RTD1619B_ISO_EJTAG_AUCPU0_LOC, "ejtag_aucpu0_loc"),
  239. PINCTRL_PIN(RTD1619B_ISO_EJTAG_AUCPU1_LOC, "ejtag_aucpu1_loc"),
  240. };
  241. #define DECLARE_RTD1619B_PIN(_pin, _name) \
  242. static const unsigned int rtd1619b_## _name ##_pins[] = { _pin }
  243. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_0, gpio_0);
  244. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_1, gpio_1);
  245. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_2, gpio_2);
  246. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_3, gpio_3);
  247. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_4, gpio_4);
  248. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_5, gpio_5);
  249. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_6, gpio_6);
  250. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_7, gpio_7);
  251. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_8, gpio_8);
  252. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_9, gpio_9);
  253. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_10, gpio_10);
  254. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_11, gpio_11);
  255. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_12, gpio_12);
  256. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_13, gpio_13);
  257. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_14, gpio_14);
  258. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_15, gpio_15);
  259. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_16, gpio_16);
  260. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_17, gpio_17);
  261. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_18, gpio_18);
  262. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_19, gpio_19);
  263. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_20, gpio_20);
  264. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_21, gpio_21);
  265. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_22, gpio_22);
  266. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_23, gpio_23);
  267. DECLARE_RTD1619B_PIN(RTD1619B_ISO_USB_CC2, usb_cc2);
  268. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_25, gpio_25);
  269. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_26, gpio_26);
  270. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_27, gpio_27);
  271. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_28, gpio_28);
  272. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_29, gpio_29);
  273. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_30, gpio_30);
  274. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_31, gpio_31);
  275. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_32, gpio_32);
  276. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_33, gpio_33);
  277. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_34, gpio_34);
  278. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_35, gpio_35);
  279. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HIF_DATA, hif_data);
  280. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HIF_EN, hif_en);
  281. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HIF_RDY, hif_rdy);
  282. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HIF_CLK, hif_clk);
  283. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_40, gpio_40);
  284. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_41, gpio_41);
  285. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_42, gpio_42);
  286. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_43, gpio_43);
  287. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_44, gpio_44);
  288. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_45, gpio_45);
  289. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_46, gpio_46);
  290. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_47, gpio_47);
  291. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_48, gpio_48);
  292. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_49, gpio_49);
  293. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_50, gpio_50);
  294. DECLARE_RTD1619B_PIN(RTD1619B_ISO_USB_CC1, usb_cc1);
  295. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_52, gpio_52);
  296. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_53, gpio_53);
  297. DECLARE_RTD1619B_PIN(RTD1619B_ISO_IR_RX, ir_rx);
  298. DECLARE_RTD1619B_PIN(RTD1619B_ISO_UR0_RX, ur0_rx);
  299. DECLARE_RTD1619B_PIN(RTD1619B_ISO_UR0_TX, ur0_tx);
  300. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_57, gpio_57);
  301. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_58, gpio_58);
  302. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_59, gpio_59);
  303. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_60, gpio_60);
  304. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_61, gpio_61);
  305. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_62, gpio_62);
  306. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_63, gpio_63);
  307. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_64, gpio_64);
  308. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_65, gpio_65);
  309. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_66, gpio_66);
  310. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_67, gpio_67);
  311. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_68, gpio_68);
  312. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_69, gpio_69);
  313. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_70, gpio_70);
  314. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_71, gpio_71);
  315. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_72, gpio_72);
  316. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_73, gpio_73);
  317. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_74, gpio_74);
  318. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_75, gpio_75);
  319. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GPIO_76, gpio_76);
  320. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_CMD, emmc_cmd);
  321. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SPI_CE_N, spi_ce_n);
  322. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SPI_SCK, spi_sck);
  323. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SPI_SO, spi_so);
  324. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SPI_SI, spi_si);
  325. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_RST_N, emmc_rst_n);
  326. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DD_SB, emmc_dd_sb);
  327. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_CLK, emmc_clk);
  328. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_0, emmc_data_0);
  329. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_1, emmc_data_1);
  330. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_2, emmc_data_2);
  331. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_3, emmc_data_3);
  332. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_4, emmc_data_4);
  333. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_5, emmc_data_5);
  334. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_6, emmc_data_6);
  335. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EMMC_DATA_7, emmc_data_7);
  336. DECLARE_RTD1619B_PIN(RTD1619B_ISO_UR2_LOC, ur2_loc);
  337. DECLARE_RTD1619B_PIN(RTD1619B_ISO_GSPI_LOC, gspi_loc);
  338. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SDIO_LOC, sdio_loc);
  339. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HI_LOC, hi_loc);
  340. DECLARE_RTD1619B_PIN(RTD1619B_ISO_HI_WIDTH, hi_width);
  341. DECLARE_RTD1619B_PIN(RTD1619B_ISO_SF_EN, sf_en);
  342. DECLARE_RTD1619B_PIN(RTD1619B_ISO_ARM_TRACE_DBG_EN, arm_trace_dbg_en);
  343. DECLARE_RTD1619B_PIN(RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC0, pwm_01_open_drain_en_loc0);
  344. DECLARE_RTD1619B_PIN(RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC0, pwm_23_open_drain_en_loc0);
  345. DECLARE_RTD1619B_PIN(RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC1, pwm_01_open_drain_en_loc1);
  346. DECLARE_RTD1619B_PIN(RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC1, pwm_23_open_drain_en_loc1);
  347. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_ACPU_LOC, ejtag_acpu_loc);
  348. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_VCPU_LOC, ejtag_vcpu_loc);
  349. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_SCPU_LOC, ejtag_scpu_loc);
  350. DECLARE_RTD1619B_PIN(RTD1619B_ISO_DMIC_LOC, dmic_loc);
  351. DECLARE_RTD1619B_PIN(RTD1619B_ISO_ISO_GSPI_LOC, iso_gspi_loc);
  352. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_VE3_LOC, ejtag_ve3_loc);
  353. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_AUCPU0_LOC, ejtag_aucpu0_loc);
  354. DECLARE_RTD1619B_PIN(RTD1619B_ISO_EJTAG_AUCPU1_LOC, ejtag_aucpu1_loc);
  355. #define RTD1619B_GROUP(_name) \
  356. { \
  357. .name = # _name, \
  358. .pins = rtd1619b_ ## _name ## _pins, \
  359. .num_pins = ARRAY_SIZE(rtd1619b_ ## _name ## _pins), \
  360. }
  361. static const struct rtd_pin_group_desc rtd1619b_pin_groups[] = {
  362. RTD1619B_GROUP(gpio_0),
  363. RTD1619B_GROUP(gpio_1),
  364. RTD1619B_GROUP(gpio_2),
  365. RTD1619B_GROUP(gpio_3),
  366. RTD1619B_GROUP(gpio_4),
  367. RTD1619B_GROUP(gpio_5),
  368. RTD1619B_GROUP(gpio_6),
  369. RTD1619B_GROUP(gpio_7),
  370. RTD1619B_GROUP(gpio_8),
  371. RTD1619B_GROUP(gpio_9),
  372. RTD1619B_GROUP(gpio_10),
  373. RTD1619B_GROUP(gpio_11),
  374. RTD1619B_GROUP(gpio_12),
  375. RTD1619B_GROUP(gpio_13),
  376. RTD1619B_GROUP(gpio_14),
  377. RTD1619B_GROUP(gpio_15),
  378. RTD1619B_GROUP(gpio_16),
  379. RTD1619B_GROUP(gpio_17),
  380. RTD1619B_GROUP(gpio_18),
  381. RTD1619B_GROUP(gpio_19),
  382. RTD1619B_GROUP(gpio_20),
  383. RTD1619B_GROUP(gpio_21),
  384. RTD1619B_GROUP(gpio_22),
  385. RTD1619B_GROUP(gpio_23),
  386. RTD1619B_GROUP(usb_cc2),
  387. RTD1619B_GROUP(gpio_25),
  388. RTD1619B_GROUP(gpio_26),
  389. RTD1619B_GROUP(gpio_27),
  390. RTD1619B_GROUP(gpio_28),
  391. RTD1619B_GROUP(gpio_29),
  392. RTD1619B_GROUP(gpio_30),
  393. RTD1619B_GROUP(gpio_31),
  394. RTD1619B_GROUP(gpio_32),
  395. RTD1619B_GROUP(gpio_33),
  396. RTD1619B_GROUP(gpio_34),
  397. RTD1619B_GROUP(gpio_35),
  398. RTD1619B_GROUP(hif_data),
  399. RTD1619B_GROUP(hif_en),
  400. RTD1619B_GROUP(hif_rdy),
  401. RTD1619B_GROUP(hif_clk),
  402. RTD1619B_GROUP(gpio_40),
  403. RTD1619B_GROUP(gpio_41),
  404. RTD1619B_GROUP(gpio_42),
  405. RTD1619B_GROUP(gpio_43),
  406. RTD1619B_GROUP(gpio_44),
  407. RTD1619B_GROUP(gpio_45),
  408. RTD1619B_GROUP(gpio_46),
  409. RTD1619B_GROUP(gpio_47),
  410. RTD1619B_GROUP(gpio_48),
  411. RTD1619B_GROUP(gpio_49),
  412. RTD1619B_GROUP(gpio_50),
  413. RTD1619B_GROUP(usb_cc1),
  414. RTD1619B_GROUP(gpio_52),
  415. RTD1619B_GROUP(gpio_53),
  416. RTD1619B_GROUP(ir_rx),
  417. RTD1619B_GROUP(ur0_rx),
  418. RTD1619B_GROUP(ur0_tx),
  419. RTD1619B_GROUP(gpio_57),
  420. RTD1619B_GROUP(gpio_58),
  421. RTD1619B_GROUP(gpio_59),
  422. RTD1619B_GROUP(gpio_60),
  423. RTD1619B_GROUP(gpio_61),
  424. RTD1619B_GROUP(gpio_62),
  425. RTD1619B_GROUP(gpio_63),
  426. RTD1619B_GROUP(gpio_64),
  427. RTD1619B_GROUP(gpio_65),
  428. RTD1619B_GROUP(gpio_66),
  429. RTD1619B_GROUP(gpio_67),
  430. RTD1619B_GROUP(gpio_68),
  431. RTD1619B_GROUP(gpio_69),
  432. RTD1619B_GROUP(gpio_70),
  433. RTD1619B_GROUP(gpio_71),
  434. RTD1619B_GROUP(gpio_72),
  435. RTD1619B_GROUP(gpio_73),
  436. RTD1619B_GROUP(gpio_74),
  437. RTD1619B_GROUP(gpio_75),
  438. RTD1619B_GROUP(gpio_76),
  439. RTD1619B_GROUP(emmc_cmd),
  440. RTD1619B_GROUP(spi_ce_n),
  441. RTD1619B_GROUP(spi_sck),
  442. RTD1619B_GROUP(spi_so),
  443. RTD1619B_GROUP(spi_si),
  444. RTD1619B_GROUP(emmc_rst_n),
  445. RTD1619B_GROUP(emmc_dd_sb),
  446. RTD1619B_GROUP(emmc_clk),
  447. RTD1619B_GROUP(emmc_data_0),
  448. RTD1619B_GROUP(emmc_data_1),
  449. RTD1619B_GROUP(emmc_data_2),
  450. RTD1619B_GROUP(emmc_data_3),
  451. RTD1619B_GROUP(emmc_data_4),
  452. RTD1619B_GROUP(emmc_data_5),
  453. RTD1619B_GROUP(emmc_data_6),
  454. RTD1619B_GROUP(emmc_data_7),
  455. RTD1619B_GROUP(ur2_loc),
  456. RTD1619B_GROUP(gspi_loc),
  457. RTD1619B_GROUP(sdio_loc),
  458. RTD1619B_GROUP(hi_loc),
  459. RTD1619B_GROUP(hi_width),
  460. RTD1619B_GROUP(sf_en),
  461. RTD1619B_GROUP(arm_trace_dbg_en),
  462. RTD1619B_GROUP(pwm_01_open_drain_en_loc0),
  463. RTD1619B_GROUP(pwm_23_open_drain_en_loc0),
  464. RTD1619B_GROUP(pwm_01_open_drain_en_loc1),
  465. RTD1619B_GROUP(pwm_23_open_drain_en_loc1),
  466. RTD1619B_GROUP(ejtag_acpu_loc),
  467. RTD1619B_GROUP(ejtag_vcpu_loc),
  468. RTD1619B_GROUP(ejtag_scpu_loc),
  469. RTD1619B_GROUP(dmic_loc),
  470. RTD1619B_GROUP(iso_gspi_loc),
  471. RTD1619B_GROUP(ejtag_ve3_loc),
  472. RTD1619B_GROUP(ejtag_aucpu0_loc),
  473. RTD1619B_GROUP(ejtag_aucpu1_loc),
  474. };
  475. static const char * const rtd1619b_gpio_groups[] = {
  476. "gpio_0", "gpio_1", "gpio_2", "gpio_3", "gpio_4",
  477. "gpio_5", "gpio_6", "gpio_7", "gpio_8", "gpio_9",
  478. "gpio_10", "gpio_11", "gpio_12", "gpio_13", "gpio_14",
  479. "gpio_15", "gpio_16", "gpio_17", "gpio_18", "gpio_19",
  480. "gpio_20", "gpio_21", "gpio_22", "gpio_23", "usb_cc2",
  481. "gpio_25", "gpio_26", "gpio_27", "gpio_28", "gpio_29",
  482. "gpio_30", "gpio_31", "gpio_32", "gpio_33", "gpio_34",
  483. "gpio_35", "hif_data", "hif_en", "hif_rdy", "hif_clk",
  484. "gpio_40", "gpio_41", "gpio_42", "gpio_43", "gpio_44",
  485. "gpio_45", "gpio_46", "gpio_47", "gpio_48", "gpio_49",
  486. "gpio_50", "usb_cc1", "gpio_52", "gpio_53", "ir_rx",
  487. "ur0_rx", "ur0_tx", "gpio_57", "gpio_58", "gpio_59",
  488. "gpio_60", "gpio_61", "gpio_62", "gpio_63", "gpio_64",
  489. "gpio_65", "gpio_66", "gpio_67", "gpio_68", "gpio_69",
  490. "gpio_70", "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  491. "gpio_75", "gpio_76", "emmc_cmd", "spi_ce_n", "spi_sck",
  492. "spi_so", "spi_si"};
  493. static const char * const rtd1619b_nf_groups[] = {
  494. "emmc_rst_n", "emmc_clk", "emmc_cmd", "emmc_data_0", "emmc_data_1",
  495. "emmc_data_2", "emmc_data_3", "emmc_data_4",
  496. "emmc_data_5", "emmc_data_6", "emmc_data_7", "spi_ce_n",
  497. "spi_sck", "spi_so", "spi_si" };
  498. static const char * const rtd1619b_nf_spi_groups[] = {
  499. "emmc_data_0", "emmc_data_1",
  500. "emmc_data_2", "emmc_data_3", "emmc_data_4",
  501. "emmc_data_5" };
  502. static const char * const rtd1619b_spi_groups[] = {
  503. "spi_ce_n", "spi_sck", "spi_so", "spi_si" };
  504. static const char * const rtd1619b_emmc_groups[] = {
  505. "emmc_rst_n", "emmc_clk", "emmc_data_0", "emmc_data_1",
  506. "emmc_data_2", "emmc_data_3", "emmc_data_4",
  507. "emmc_data_5", "emmc_data_6", "emmc_data_7",
  508. "emmc_dd_sb", "emmc_cmd"};
  509. static const char * const rtd1619b_pmic_groups[] = { "spi_ce_n" };
  510. static const char * const rtd1619b_spdif_groups[] = { "gpio_50" };
  511. static const char * const rtd1619b_spdif_coaxial_groups[] = { "gpio_1" };
  512. static const char * const rtd1619b_spdif_optical_loc0_groups[] = { "gpio_6" };
  513. static const char * const rtd1619b_spdif_optical_loc1_groups[] = { "gpio_21" };
  514. static const char * const rtd1619b_emmc_spi_groups[] = {
  515. "gpio_1", "gpio_2", "gpio_3", "gpio_4", "gpio_5", "gpio_6" };
  516. static const char * const rtd1619b_sc1_groups[] = {
  517. "gpio_2", "gpio_3", "gpio_4", "gpio_5" };
  518. static const char * const rtd1619b_uart0_groups[] = { "ur0_rx", "ur0_tx" };
  519. static const char * const rtd1619b_uart1_groups[] = {
  520. "gpio_8", "gpio_9", "gpio_10", "gpio_11" };
  521. static const char * const rtd1619b_uart2_loc0_groups[] = {
  522. "gpio_18", "gpio_19", "gpio_20", "gpio_31", "ur2_loc" };
  523. static const char * const rtd1619b_uart2_loc1_groups[] = {
  524. "gpio_25", "gpio_26", "gpio_27", "gpio_28", "ur2_loc" };
  525. static const char * const rtd1619b_gspi_loc1_groups[] = {
  526. "gpio_8", "gpio_9", "gpio_10", "gpio_11", "gspi_loc" };
  527. static const char * const rtd1619b_iso_gspi_loc1_groups[] = {
  528. "gpio_8", "gpio_9", "gpio_10", "gpio_11", "iso_gspi_loc" };
  529. static const char * const rtd1619b_i2c0_groups[] = { "gpio_12", "gpio_13" };
  530. static const char * const rtd1619b_i2c1_groups[] = { "gpio_16", "gpio_17" };
  531. static const char * const rtd1619b_i2c3_groups[] = { "gpio_63", "gpio_64" };
  532. static const char * const rtd1619b_i2c4_groups[] = { "gpio_34", "gpio_35" };
  533. static const char * const rtd1619b_i2c5_groups[] = { "gpio_29", "gpio_46" };
  534. static const char * const rtd1619b_pwm0_groups[] = { "gpio_20", "gpio_26" };
  535. static const char * const rtd1619b_pwm1_groups[] = { "gpio_21", "gpio_27" };
  536. static const char * const rtd1619b_pwm2_groups[] = { "gpio_22", "gpio_28" };
  537. static const char * const rtd1619b_pwm3_groups[] = { "gpio_23", "gpio_47" };
  538. static const char * const rtd1619b_etn_led_groups[] = { "gpio_14", "gpio_15", "gpio_23" };
  539. static const char * const rtd1619b_etn_phy_groups[] = { "gpio_14", "gpio_15" };
  540. static const char * const rtd1619b_etn_clk_groups[] = { "gpio_14" };
  541. static const char * const rtd1619b_sc0_groups[] = {
  542. "gpio_18", "gpio_19", "gpio_20", "gpio_31" };
  543. static const char * const rtd1619b_vfd_groups[] = {
  544. "gpio_26", "gpio_27", "gpio_28" };
  545. static const char * const rtd1619b_gspi_loc0_groups[] = {
  546. "gpio_18", "gpio_19", "gpio_20", "gpio_31", "gspi_loc" };
  547. static const char * const rtd1619b_iso_gspi_loc0_groups[] = {
  548. "gpio_18", "gpio_19", "gpio_20", "gpio_31", "iso_gspi_loc" };
  549. static const char * const rtd1619b_pcie1_groups[] = { "gpio_25" };
  550. static const char * const rtd1619b_pcie2_groups[] = { "gpio_52" };
  551. static const char * const rtd1619b_sd_groups[] = {
  552. "gpio_32", "gpio_33", "gpio_34", "gpio_35", "hif_data",
  553. "hif_en", "hif_rdy", "hif_clk" };
  554. static const char * const rtd1619b_sdio_loc0_groups[] = {
  555. "gpio_32", "gpio_33", "hif_data", "hif_en",
  556. "hif_rdy", "hif_clk", "sdio_loc" };
  557. static const char * const rtd1619b_sdio_loc1_groups[] = {
  558. "gpio_40", "gpio_41", "gpio_42", "gpio_43", "gpio_44",
  559. "gpio_45", "sdio_loc" };
  560. static const char * const rtd1619b_hi_groups[] = {
  561. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  562. static const char * const rtd1619b_hi_m_groups[] = {
  563. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  564. static const char * const rtd1619b_dc_fan_groups[] = { "gpio_47" };
  565. static const char * const rtd1619b_pll_test_loc0_groups[] = { "gpio_52", "gpio_53" };
  566. static const char * const rtd1619b_pll_test_loc1_groups[] = { "gpio_48", "gpio_49" };
  567. static const char * const rtd1619b_tdm_ai_loc0_groups[] = {
  568. "gpio_57", "gpio_58", "gpio_59", "gpio_60" };
  569. static const char * const rtd1619b_tdm_ai_loc1_groups[] = {
  570. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  571. static const char * const rtd1619b_dmic_loc0_groups[] = {
  572. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  573. "gpio_62", "gpio_63", "gpio_64", "dmic_loc"};
  574. static const char * const rtd1619b_dmic_loc1_groups[] = {
  575. "gpio_32", "gpio_33", "gpio_34", "gpio_35", "hif_data",
  576. "hif_en", "hif_rdy", "hif_clk", "dmic_loc" };
  577. static const char * const rtd1619b_ai_loc0_groups[] = {
  578. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61",
  579. "gpio_62", "gpio_63" };
  580. static const char * const rtd1619b_ai_loc1_groups[] = {
  581. "gpio_32", "gpio_33", "gpio_34", "hif_data",
  582. "hif_en", "hif_rdy", "hif_clk"};
  583. static const char * const rtd1619b_tp0_groups[] = {
  584. "gpio_66", "gpio_67", "gpio_68", "gpio_69",
  585. "gpio_70", "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  586. "gpio_75", "gpio_76" };
  587. static const char * const rtd1619b_tp1_groups[] = {
  588. "gpio_69", "gpio_70", "gpio_71", "gpio_72" };
  589. static const char * const rtd1619b_ao_groups[] = {
  590. "gpio_66", "gpio_67", "gpio_68", "gpio_69",
  591. "gpio_70", "gpio_71", "gpio_72" };
  592. static const char * const rtd1619b_uart2_disable_groups[] = { "ur2_loc" };
  593. static const char * const rtd1619b_gspi_disable_groups[] = { "gspi_loc" };
  594. static const char * const rtd1619b_sdio_disable_groups[] = { "sdio_loc" };
  595. static const char * const rtd1619b_hi_loc_disable_groups[] = { "hi_loc" };
  596. static const char * const rtd1619b_hi_loc0_groups[] = { "hi_loc" };
  597. static const char * const rtd1619b_hi_width_disable_groups[] = { "hi_width" };
  598. static const char * const rtd1619b_hi_width_1bit_groups[] = { "hi_width" };
  599. static const char * const rtd1619b_vtc_i2si_loc0_groups[] = {
  600. "gpio_32", "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  601. static const char * const rtd1619b_vtc_tdm_loc0_groups[] = {
  602. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  603. static const char * const rtd1619b_vtc_dmic_loc0_groups[] = {
  604. "hif_data", "hif_en", "hif_rdy", "hif_clk" };
  605. static const char * const rtd1619b_vtc_i2si_loc1_groups[] = {
  606. "gpio_57", "gpio_58", "gpio_59", "gpio_60", "gpio_61" };
  607. static const char * const rtd1619b_vtc_tdm_loc1_groups[] = {
  608. "gpio_57", "gpio_58", "gpio_59", "gpio_60" };
  609. static const char * const rtd1619b_vtc_dmic_loc1_groups[] = {
  610. "gpio_57", "gpio_58", "gpio_59", "gpio_60" };
  611. static const char * const rtd1619b_vtc_i2so_groups[] = {
  612. "gpio_66", "gpio_67", "gpio_68", "gpio_69" };
  613. static const char * const rtd1619b_ve3_ejtag_loc0_groups[] = {
  614. "gpio_2", "gpio_3", "gpio_4",
  615. "gpio_5", "gpio_6", "ejtag_ve3_loc" };
  616. static const char * const rtd1619b_aucpu0_ejtag_loc0_groups[] = {
  617. "gpio_2", "gpio_3", "gpio_4",
  618. "gpio_5", "gpio_6", "ejtag_aucpu0_loc" };
  619. static const char * const rtd1619b_aucpu1_ejtag_loc0_groups[] = {
  620. "gpio_2", "gpio_3", "gpio_4",
  621. "gpio_5", "gpio_6", "ejtag_aucpu1_loc" };
  622. static const char * const rtd1619b_ve3_ejtag_loc1_groups[] = {
  623. "gpio_32", "gpio_33", "hif_data", "hif_en",
  624. "hif_clk", "ejtag_ve3_loc" };
  625. static const char * const rtd1619b_aucpu0_ejtag_loc1_groups[] = {
  626. "gpio_32", "gpio_33", "hif_data", "hif_en",
  627. "hif_clk", "ejtag_aucpu0_loc" };
  628. static const char * const rtd1619b_aucpu1_ejtag_loc1_groups[] = {
  629. "gpio_32", "gpio_33", "hif_data", "hif_en",
  630. "hif_clk", "ejtag_aucpu1_loc" };
  631. static const char * const rtd1619b_ve3_ejtag_loc2_groups[] = {
  632. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  633. "gpio_75", "gpio_76", "ejtag_ve3_loc" };
  634. static const char * const rtd1619b_aucpu0_ejtag_loc2_groups[] = {
  635. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  636. "gpio_75", "gpio_76", "ejtag_aucpu0_loc" };
  637. static const char * const rtd1619b_aucpu1_ejtag_loc2_groups[] = {
  638. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  639. "gpio_75", "gpio_76", "ejtag_aucpu1_loc" };
  640. static const char * const rtd1619b_scpu_ejtag_loc0_groups[] = {
  641. "gpio_2", "gpio_3", "gpio_4",
  642. "gpio_5", "gpio_6", "ejtag_scpu_loc" };
  643. static const char * const rtd1619b_acpu_ejtag_loc0_groups[] = {
  644. "gpio_2", "gpio_3", "gpio_4",
  645. "gpio_5", "gpio_6", "ejtag_acpu_loc" };
  646. static const char * const rtd1619b_vcpu_ejtag_loc0_groups[] = {
  647. "gpio_2", "gpio_3", "gpio_4",
  648. "gpio_5", "gpio_6", "ejtag_vcpu_loc" };
  649. static const char * const rtd1619b_scpu_ejtag_loc1_groups[] = {
  650. "gpio_32", "gpio_33", "hif_data", "hif_en",
  651. "hif_clk", "ejtag_scpu_loc" };
  652. static const char * const rtd1619b_acpu_ejtag_loc1_groups[] = {
  653. "gpio_32", "gpio_33", "hif_data", "hif_en",
  654. "hif_clk", "ejtag_acpu_loc" };
  655. static const char * const rtd1619b_vcpu_ejtag_loc1_groups[] = {
  656. "gpio_32", "gpio_33", "hif_data", "hif_en",
  657. "hif_clk", "ejtag_vcpu_loc" };
  658. static const char * const rtd1619b_scpu_ejtag_loc2_groups[] = {
  659. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  660. "gpio_75", "gpio_76", "ejtag_scpu_loc" };
  661. static const char * const rtd1619b_acpu_ejtag_loc2_groups[] = {
  662. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  663. "gpio_75", "gpio_76", "ejtag_acpu_loc" };
  664. static const char * const rtd1619b_vcpu_ejtag_loc2_groups[] = {
  665. "gpio_71", "gpio_72", "gpio_73", "gpio_74",
  666. "gpio_75", "gpio_76", "ejtag_vcpu_loc"};
  667. static const char * const rtd1619b_ve3_ejtag_disable_groups[] = { "ejtag_ve3_loc" };
  668. static const char * const rtd1619b_aucpu0_ejtag_disable_groups[] = { "ejtag_aucpu0_loc" };
  669. static const char * const rtd1619b_aucpu1_ejtag_disable_groups[] = { "ejtag_aucpu1_loc" };
  670. static const char * const rtd1619b_acpu_ejtag_disable_groups[] = { "ejtag_acpu_loc" };
  671. static const char * const rtd1619b_vcpu_ejtag_disable_groups[] = { "ejtag_vcpu_loc" };
  672. static const char * const rtd1619b_scpu_ejtag_disable_groups[] = { "ejtag_scpu_loc" };
  673. static const char * const rtd1619b_sf_disable_groups[] = { "sf_en" };
  674. static const char * const rtd1619b_sf_enable_groups[] = { "sf_en" };
  675. static const char * const rtd1619b_iso_gspi_disable_groups[] = { "iso_gspi_loc" };
  676. static const char * const rtd1619b_arm_trace_debug_disable_groups[] = { "arm_trace_dbg_en" };
  677. static const char * const rtd1619b_arm_trace_debug_enable_groups[] = { "arm_trace_dbg_en" };
  678. static const char * const rtd1619b_pwm_normal_groups[] = {
  679. "pwm_01_open_drain_en_loc0", "pwm_23_open_drain_en_loc0",
  680. "pwm_01_open_drain_en_loc1", "pwm_23_open_drain_en_loc1" };
  681. static const char * const rtd1619b_pwm_open_drain_groups[] = {
  682. "pwm_01_open_drain_en_loc0", "pwm_23_open_drain_en_loc0",
  683. "pwm_01_open_drain_en_loc1", "pwm_23_open_drain_en_loc1" };
  684. static const char * const rtd1619b_standby_dbg_groups[] = {
  685. "gpio_2", "gpio_3", "ir_rx" };
  686. static const char * const rtd1619b_usb_cc1_groups[] = { "usb_cc1" };
  687. static const char * const rtd1619b_usb_cc2_groups[] = { "usb_cc2" };
  688. static const char * const rtd1619b_ir_rx_groups[] = { "ir_rx" };
  689. static const char * const rtd1619b_test_loop_dis_groups[] = { "gpio_50" };
  690. #define RTD1619B_FUNC(_name) \
  691. { \
  692. .name = # _name, \
  693. .groups = rtd1619b_ ## _name ## _groups, \
  694. .num_groups = ARRAY_SIZE(rtd1619b_ ## _name ## _groups), \
  695. }
  696. static const struct rtd_pin_func_desc rtd1619b_pin_functions[] = {
  697. RTD1619B_FUNC(gpio),
  698. RTD1619B_FUNC(nf),
  699. RTD1619B_FUNC(nf_spi),
  700. RTD1619B_FUNC(spi),
  701. RTD1619B_FUNC(pmic),
  702. RTD1619B_FUNC(spdif),
  703. RTD1619B_FUNC(spdif_coaxial),
  704. RTD1619B_FUNC(spdif_optical_loc0),
  705. RTD1619B_FUNC(spdif_optical_loc1),
  706. RTD1619B_FUNC(emmc_spi),
  707. RTD1619B_FUNC(emmc),
  708. RTD1619B_FUNC(sc1),
  709. RTD1619B_FUNC(uart0),
  710. RTD1619B_FUNC(uart1),
  711. RTD1619B_FUNC(uart2_loc0),
  712. RTD1619B_FUNC(uart2_loc1),
  713. RTD1619B_FUNC(gspi_loc1),
  714. RTD1619B_FUNC(iso_gspi_loc1),
  715. RTD1619B_FUNC(i2c0),
  716. RTD1619B_FUNC(i2c1),
  717. RTD1619B_FUNC(i2c3),
  718. RTD1619B_FUNC(i2c4),
  719. RTD1619B_FUNC(i2c5),
  720. RTD1619B_FUNC(pwm0),
  721. RTD1619B_FUNC(pwm1),
  722. RTD1619B_FUNC(pwm2),
  723. RTD1619B_FUNC(pwm3),
  724. RTD1619B_FUNC(etn_led),
  725. RTD1619B_FUNC(etn_phy),
  726. RTD1619B_FUNC(etn_clk),
  727. RTD1619B_FUNC(sc0),
  728. RTD1619B_FUNC(vfd),
  729. RTD1619B_FUNC(gspi_loc0),
  730. RTD1619B_FUNC(iso_gspi_loc0),
  731. RTD1619B_FUNC(pcie1),
  732. RTD1619B_FUNC(pcie2),
  733. RTD1619B_FUNC(sd),
  734. RTD1619B_FUNC(sdio_loc0),
  735. RTD1619B_FUNC(sdio_loc1),
  736. RTD1619B_FUNC(hi),
  737. RTD1619B_FUNC(hi_m),
  738. RTD1619B_FUNC(dc_fan),
  739. RTD1619B_FUNC(pll_test_loc0),
  740. RTD1619B_FUNC(pll_test_loc1),
  741. RTD1619B_FUNC(usb_cc1),
  742. RTD1619B_FUNC(usb_cc2),
  743. RTD1619B_FUNC(ir_rx),
  744. RTD1619B_FUNC(tdm_ai_loc0),
  745. RTD1619B_FUNC(tdm_ai_loc1),
  746. RTD1619B_FUNC(dmic_loc0),
  747. RTD1619B_FUNC(dmic_loc1),
  748. RTD1619B_FUNC(ai_loc0),
  749. RTD1619B_FUNC(ai_loc1),
  750. RTD1619B_FUNC(tp0),
  751. RTD1619B_FUNC(tp1),
  752. RTD1619B_FUNC(ao),
  753. RTD1619B_FUNC(uart2_disable),
  754. RTD1619B_FUNC(gspi_disable),
  755. RTD1619B_FUNC(sdio_disable),
  756. RTD1619B_FUNC(hi_loc_disable),
  757. RTD1619B_FUNC(hi_loc0),
  758. RTD1619B_FUNC(hi_width_disable),
  759. RTD1619B_FUNC(hi_width_1bit),
  760. RTD1619B_FUNC(vtc_i2si_loc0),
  761. RTD1619B_FUNC(vtc_tdm_loc0),
  762. RTD1619B_FUNC(vtc_dmic_loc0),
  763. RTD1619B_FUNC(vtc_i2si_loc1),
  764. RTD1619B_FUNC(vtc_tdm_loc1),
  765. RTD1619B_FUNC(vtc_dmic_loc1),
  766. RTD1619B_FUNC(vtc_i2so),
  767. RTD1619B_FUNC(ve3_ejtag_loc0),
  768. RTD1619B_FUNC(aucpu0_ejtag_loc0),
  769. RTD1619B_FUNC(aucpu1_ejtag_loc0),
  770. RTD1619B_FUNC(ve3_ejtag_loc1),
  771. RTD1619B_FUNC(aucpu0_ejtag_loc1),
  772. RTD1619B_FUNC(aucpu1_ejtag_loc1),
  773. RTD1619B_FUNC(ve3_ejtag_loc2),
  774. RTD1619B_FUNC(aucpu0_ejtag_loc2),
  775. RTD1619B_FUNC(aucpu1_ejtag_loc2),
  776. RTD1619B_FUNC(scpu_ejtag_loc0),
  777. RTD1619B_FUNC(acpu_ejtag_loc0),
  778. RTD1619B_FUNC(vcpu_ejtag_loc0),
  779. RTD1619B_FUNC(scpu_ejtag_loc1),
  780. RTD1619B_FUNC(acpu_ejtag_loc1),
  781. RTD1619B_FUNC(vcpu_ejtag_loc1),
  782. RTD1619B_FUNC(scpu_ejtag_loc2),
  783. RTD1619B_FUNC(acpu_ejtag_loc2),
  784. RTD1619B_FUNC(vcpu_ejtag_loc2),
  785. RTD1619B_FUNC(ve3_ejtag_disable),
  786. RTD1619B_FUNC(aucpu0_ejtag_disable),
  787. RTD1619B_FUNC(aucpu1_ejtag_disable),
  788. RTD1619B_FUNC(acpu_ejtag_disable),
  789. RTD1619B_FUNC(vcpu_ejtag_disable),
  790. RTD1619B_FUNC(scpu_ejtag_disable),
  791. RTD1619B_FUNC(iso_gspi_disable),
  792. RTD1619B_FUNC(sf_disable),
  793. RTD1619B_FUNC(sf_enable),
  794. RTD1619B_FUNC(arm_trace_debug_disable),
  795. RTD1619B_FUNC(arm_trace_debug_enable),
  796. RTD1619B_FUNC(pwm_normal),
  797. RTD1619B_FUNC(pwm_open_drain),
  798. RTD1619B_FUNC(standby_dbg),
  799. RTD1619B_FUNC(test_loop_dis),
  800. };
  801. #undef RTD1619B_FUNC
  802. static const struct rtd_pin_desc rtd1619b_iso_muxes[] = {
  803. [RTD1619B_ISO_EMMC_RST_N] = RTK_PIN_MUX(emmc_rst_n, 0x0, GENMASK(1, 0),
  804. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "nf"),
  805. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "emmc")),
  806. [RTD1619B_ISO_EMMC_DD_SB] = RTK_PIN_MUX(emmc_dd_sb, 0x0, GENMASK(3, 2),
  807. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "emmc")),
  808. [RTD1619B_ISO_EMMC_CLK] = RTK_PIN_MUX(emmc_clk, 0x0, GENMASK(5, 4),
  809. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "nf"),
  810. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "emmc")),
  811. [RTD1619B_ISO_EMMC_CMD] = RTK_PIN_MUX(emmc_cmd, 0x0, GENMASK(7, 6),
  812. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "gpio"),
  813. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "nf"),
  814. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 6), "emmc")),
  815. [RTD1619B_ISO_EMMC_DATA_0] = RTK_PIN_MUX(emmc_data_0, 0x0, GENMASK(9, 8),
  816. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "nf"),
  817. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "emmc"),
  818. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "nf_spi")),
  819. [RTD1619B_ISO_EMMC_DATA_1] = RTK_PIN_MUX(emmc_data_1, 0x0, GENMASK(11, 10),
  820. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "nf"),
  821. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "emmc"),
  822. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 10), "nf_spi")),
  823. [RTD1619B_ISO_EMMC_DATA_2] = RTK_PIN_MUX(emmc_data_2, 0x0, GENMASK(13, 12),
  824. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "nf"),
  825. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 12), "emmc"),
  826. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "nf_spi")),
  827. [RTD1619B_ISO_EMMC_DATA_3] = RTK_PIN_MUX(emmc_data_3, 0x0, GENMASK(15, 14),
  828. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "nf"),
  829. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 14), "emmc"),
  830. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 14), "nf_spi")),
  831. [RTD1619B_ISO_EMMC_DATA_4] = RTK_PIN_MUX(emmc_data_4, 0x0, GENMASK(17, 16),
  832. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "nf"),
  833. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 16), "emmc"),
  834. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "nf_spi")),
  835. [RTD1619B_ISO_EMMC_DATA_5] = RTK_PIN_MUX(emmc_data_5, 0x0, GENMASK(19, 18),
  836. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 18), "nf"),
  837. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 18), "emmc"),
  838. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 18), "nf_spi")),
  839. [RTD1619B_ISO_EMMC_DATA_6] = RTK_PIN_MUX(emmc_data_6, 0x0, GENMASK(21, 20),
  840. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "nf"),
  841. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "emmc")),
  842. [RTD1619B_ISO_EMMC_DATA_7] = RTK_PIN_MUX(emmc_data_7, 0x0, GENMASK(23, 22),
  843. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 22), "nf"),
  844. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 22), "emmc")),
  845. [RTD1619B_ISO_SPI_CE_N] = RTK_PIN_MUX(spi_ce_n, 0x0, GENMASK(25, 24),
  846. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  847. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "nf"),
  848. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "spi"),
  849. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 24), "pmic")),
  850. [RTD1619B_ISO_SPI_SCK] = RTK_PIN_MUX(spi_sck, 0x0, GENMASK(27, 26),
  851. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 26), "gpio"),
  852. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "nf"),
  853. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 26), "spi")),
  854. [RTD1619B_ISO_SPI_SO] = RTK_PIN_MUX(spi_so, 0x0, GENMASK(29, 28),
  855. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  856. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "nf"),
  857. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "spi")),
  858. [RTD1619B_ISO_SPI_SI] = RTK_PIN_MUX(spi_si, 0x0, GENMASK(31, 30),
  859. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 30), "gpio"),
  860. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 30), "nf"),
  861. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 30), "spi")),
  862. [RTD1619B_ISO_GPIO_0] = RTK_PIN_MUX(gpio_0, 0x4, GENMASK(0, 0),
  863. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio")),
  864. [RTD1619B_ISO_GPIO_1] = RTK_PIN_MUX(gpio_1, 0x4, GENMASK(3, 1),
  865. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 1), "gpio"),
  866. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 1), "emmc_spi"),
  867. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 1), "spdif_coaxial")),
  868. [RTD1619B_ISO_GPIO_2] = RTK_PIN_MUX(gpio_2, 0x4, GENMASK(7, 4),
  869. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  870. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "standby_dbg"),
  871. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "emmc_spi"),
  872. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 4), "sc1"),
  873. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 4), "scpu_ejtag_loc0"),
  874. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 4), "acpu_ejtag_loc0"),
  875. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 4), "vcpu_ejtag_loc0"),
  876. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 4), "ve3_ejtag_loc0"),
  877. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 4), "aucpu0_ejtag_loc0"),
  878. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 4), "aucpu1_ejtag_loc0")),
  879. [RTD1619B_ISO_GPIO_3] = RTK_PIN_MUX(gpio_3, 0x4, GENMASK(11, 8),
  880. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  881. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "standby_dbg"),
  882. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "emmc_spi"),
  883. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 8), "sc1"),
  884. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "scpu_ejtag_loc0"),
  885. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 8), "acpu_ejtag_loc0"),
  886. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 8), "vcpu_ejtag_loc0"),
  887. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 8), "ve3_ejtag_loc0"),
  888. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 8), "aucpu0_ejtag_loc0"),
  889. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 8), "aucpu1_ejtag_loc0")),
  890. [RTD1619B_ISO_GPIO_4] = RTK_PIN_MUX(gpio_4, 0x4, GENMASK(15, 12),
  891. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  892. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 12), "emmc_spi"),
  893. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 12), "sc1"),
  894. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 12), "scpu_ejtag_loc0"),
  895. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 12), "acpu_ejtag_loc0"),
  896. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 12), "vcpu_ejtag_loc0"),
  897. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 12), "ve3_ejtag_loc0"),
  898. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 12), "aucpu0_ejtag_loc0"),
  899. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 12), "aucpu1_ejtag_loc0")),
  900. [RTD1619B_ISO_GPIO_5] = RTK_PIN_MUX(gpio_5, 0x4, GENMASK(19, 16),
  901. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "gpio"),
  902. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 16), "emmc_spi"),
  903. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 16), "sc1"),
  904. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 16), "scpu_ejtag_loc0"),
  905. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 16), "acpu_ejtag_loc0"),
  906. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 16), "vcpu_ejtag_loc0"),
  907. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 16), "ve3_ejtag_loc0"),
  908. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 16), "aucpu0_ejtag_loc0"),
  909. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 16), "aucpu1_ejtag_loc0")),
  910. [RTD1619B_ISO_GPIO_6] = RTK_PIN_MUX(gpio_6, 0x4, GENMASK(23, 20),
  911. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "gpio"),
  912. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 20), "emmc_spi"),
  913. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "spdif_optical_loc0"),
  914. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 20), "scpu_ejtag_loc0"),
  915. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 20), "acpu_ejtag_loc0"),
  916. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 20), "vcpu_ejtag_loc0"),
  917. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 20), "ve3_ejtag_loc0"),
  918. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 20), "aucpu0_ejtag_loc0"),
  919. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 20), "aucpu1_ejtag_loc0")),
  920. [RTD1619B_ISO_GPIO_7] = RTK_PIN_MUX(gpio_7, 0x4, GENMASK(24, 24),
  921. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio")),
  922. [RTD1619B_ISO_GPIO_8] = RTK_PIN_MUX(gpio_8, 0x4, GENMASK(27, 25),
  923. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 25), "gpio"),
  924. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 25), "uart1"),
  925. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 25), "gspi_loc1"),
  926. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 25), "iso_gspi_loc1")),
  927. [RTD1619B_ISO_GPIO_9] = RTK_PIN_MUX(gpio_9, 0x4, GENMASK(30, 28),
  928. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "gpio"),
  929. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "uart1"),
  930. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 28), "gspi_loc1"),
  931. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 28), "iso_gspi_loc1")),
  932. [RTD1619B_ISO_GPIO_10] = RTK_PIN_MUX(gpio_10, 0x8, GENMASK(2, 0),
  933. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  934. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart1"),
  935. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "gspi_loc1"),
  936. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "iso_gspi_loc1")),
  937. [RTD1619B_ISO_GPIO_11] = RTK_PIN_MUX(gpio_11, 0x8, GENMASK(5, 3),
  938. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 3), "gpio"),
  939. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 3), "uart1"),
  940. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 3), "gspi_loc1"),
  941. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 3), "iso_gspi_loc1")),
  942. [RTD1619B_ISO_GPIO_12] = RTK_PIN_MUX(gpio_12, 0x8, GENMASK(6, 6),
  943. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "gpio"),
  944. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "i2c0")),
  945. [RTD1619B_ISO_GPIO_13] = RTK_PIN_MUX(gpio_13, 0x8, GENMASK(7, 7),
  946. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 7), "gpio"),
  947. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 7), "i2c0")),
  948. [RTD1619B_ISO_GPIO_14] = RTK_PIN_MUX(gpio_14, 0x8, GENMASK(10, 8),
  949. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  950. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "etn_led"),
  951. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "etn_phy"),
  952. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 8), "etn_clk")),
  953. [RTD1619B_ISO_GPIO_15] = RTK_PIN_MUX(gpio_15, 0x8, GENMASK(12, 11),
  954. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "gpio"),
  955. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 11), "etn_led"),
  956. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 11), "etn_phy")),
  957. [RTD1619B_ISO_GPIO_16] = RTK_PIN_MUX(gpio_16, 0x8, GENMASK(13, 13),
  958. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 13), "gpio"),
  959. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 13), "i2c1")),
  960. [RTD1619B_ISO_GPIO_17] = RTK_PIN_MUX(gpio_17, 0x8, GENMASK(14, 14),
  961. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "gpio"),
  962. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "i2c1")),
  963. [RTD1619B_ISO_GPIO_18] = RTK_PIN_MUX(gpio_18, 0x8, GENMASK(17, 15),
  964. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 15), "gpio"),
  965. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 15), "uart2_loc0"),
  966. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 15), "sc0"),
  967. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 15), "gspi_loc0"),
  968. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 15), "iso_gspi_loc0")),
  969. [RTD1619B_ISO_GPIO_19] = RTK_PIN_MUX(gpio_19, 0x8, GENMASK(20, 18),
  970. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 18), "gpio"),
  971. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 18), "uart2_loc0"),
  972. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 18), "sc0"),
  973. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 18), "gspi_loc0"),
  974. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 18), "iso_gspi_loc0")),
  975. [RTD1619B_ISO_GPIO_20] = RTK_PIN_MUX(gpio_20, 0x8, GENMASK(23, 21),
  976. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 21), "gpio"),
  977. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 21), "uart2_loc0"),
  978. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 21), "pwm0"),
  979. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 21), "gspi_loc0"),
  980. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 21), "sc0"),
  981. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 21), "iso_gspi_loc0")),
  982. [RTD1619B_ISO_GPIO_21] = RTK_PIN_MUX(gpio_21, 0x8, GENMASK(26, 24),
  983. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "gpio"),
  984. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "pwm1"),
  985. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 24), "spdif_optical_loc1")),
  986. [RTD1619B_ISO_GPIO_22] = RTK_PIN_MUX(gpio_22, 0x8, GENMASK(28, 27),
  987. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 27), "gpio"),
  988. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 27), "pwm2")),
  989. [RTD1619B_ISO_GPIO_23] = RTK_PIN_MUX(gpio_23, 0x8, GENMASK(30, 29),
  990. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 29), "gpio"),
  991. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 29), "etn_led"),
  992. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 29), "pwm3")),
  993. [RTD1619B_ISO_USB_CC2] = RTK_PIN_MUX(usb_cc2, 0x8, GENMASK(31, 31),
  994. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 31), "gpio"),
  995. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 31), "usb_cc2")),
  996. [RTD1619B_ISO_GPIO_25] = RTK_PIN_MUX(gpio_25, 0xc, GENMASK(1, 0),
  997. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  998. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc1"),
  999. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "pcie1")),
  1000. [RTD1619B_ISO_GPIO_26] = RTK_PIN_MUX(gpio_26, 0xc, GENMASK(3, 2),
  1001. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "gpio"),
  1002. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "uart2_loc1"),
  1003. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "vfd"),
  1004. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 2), "pwm0")),
  1005. [RTD1619B_ISO_GPIO_27] = RTK_PIN_MUX(gpio_27, 0xc, GENMASK(5, 4),
  1006. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1007. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "uart2_loc1"),
  1008. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "vfd"),
  1009. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "pwm1")),
  1010. [RTD1619B_ISO_GPIO_28] = RTK_PIN_MUX(gpio_28, 0xc, GENMASK(7, 6),
  1011. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "gpio"),
  1012. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "uart2_loc1"),
  1013. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 6), "vfd"),
  1014. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 6), "pwm2")),
  1015. [RTD1619B_ISO_GPIO_29] = RTK_PIN_MUX(gpio_29, 0xc, GENMASK(8, 8),
  1016. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  1017. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "i2c5")),
  1018. [RTD1619B_ISO_GPIO_30] = RTK_PIN_MUX(gpio_30, 0xc, GENMASK(9, 9),
  1019. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 9), "gpio")),
  1020. [RTD1619B_ISO_GPIO_31] = RTK_PIN_MUX(gpio_31, 0xc, GENMASK(12, 10),
  1021. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "gpio"),
  1022. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "uart2_loc0"),
  1023. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "sc0"),
  1024. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 10), "gspi_loc0"),
  1025. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 10), "iso_gspi_loc0")),
  1026. [RTD1619B_ISO_GPIO_32] = RTK_PIN_MUX(gpio_32, 0xc, GENMASK(17, 13),
  1027. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 13), "gpio"),
  1028. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 13), "sd"),
  1029. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 13), "sdio_loc0"),
  1030. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 13), "dmic_loc1"),
  1031. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 13), "ai_loc1"),
  1032. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 13), "scpu_ejtag_loc1"),
  1033. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 13), "acpu_ejtag_loc1"),
  1034. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 13), "vcpu_ejtag_loc1"),
  1035. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 13), "vtc_i2si_loc0"),
  1036. RTK_PIN_FUNC(SHIFT_LEFT(0x14, 13), "ve3_ejtag_loc1"),
  1037. RTK_PIN_FUNC(SHIFT_LEFT(0x15, 13), "aucpu0_ejtag_loc1"),
  1038. RTK_PIN_FUNC(SHIFT_LEFT(0x16, 13), "aucpu1_ejtag_loc1")),
  1039. [RTD1619B_ISO_GPIO_33] = RTK_PIN_MUX(gpio_33, 0xc, GENMASK(22, 18),
  1040. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 18), "gpio"),
  1041. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 18), "sd"),
  1042. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 18), "sdio_loc0"),
  1043. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 18), "dmic_loc1"),
  1044. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 18), "ai_loc1"),
  1045. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 18), "scpu_ejtag_loc1"),
  1046. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 18), "acpu_ejtag_loc1"),
  1047. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 18), "vcpu_ejtag_loc1"),
  1048. RTK_PIN_FUNC(SHIFT_LEFT(0x14, 18), "ve3_ejtag_loc1"),
  1049. RTK_PIN_FUNC(SHIFT_LEFT(0x15, 18), "aucpu0_ejtag_loc1"),
  1050. RTK_PIN_FUNC(SHIFT_LEFT(0x16, 18), "aucpu1_ejtag_loc1")),
  1051. [RTD1619B_ISO_GPIO_34] = RTK_PIN_MUX(gpio_34, 0xc, GENMASK(25, 23),
  1052. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "gpio"),
  1053. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 23), "sd"),
  1054. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 23), "dmic_loc1"),
  1055. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 23), "ai_loc1"),
  1056. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 23), "i2c4")),
  1057. [RTD1619B_ISO_GPIO_35] = RTK_PIN_MUX(gpio_35, 0xc, GENMASK(28, 26),
  1058. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 26), "gpio"),
  1059. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "sd"),
  1060. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 26), "dmic_loc1"),
  1061. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 26), "i2c4")),
  1062. [RTD1619B_ISO_HIF_DATA] = RTK_PIN_MUX(hif_data, 0x10, GENMASK(4, 0),
  1063. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1064. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "sd"),
  1065. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "sdio_loc0"),
  1066. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc1"),
  1067. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 0), "tdm_ai_loc1"),
  1068. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "scpu_ejtag_loc1"),
  1069. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc1"),
  1070. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc1"),
  1071. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 0), "ai_loc1"),
  1072. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 0), "hi"),
  1073. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 0), "hi_m"),
  1074. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 0), "vtc_i2si_loc0"),
  1075. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 0), "vtc_tdm_loc0"),
  1076. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 0), "vtc_dmic_loc0"),
  1077. RTK_PIN_FUNC(SHIFT_LEFT(0x14, 0), "ve3_ejtag_loc1"),
  1078. RTK_PIN_FUNC(SHIFT_LEFT(0x15, 0), "aucpu0_ejtag_loc1"),
  1079. RTK_PIN_FUNC(SHIFT_LEFT(0x16, 0), "aucpu1_ejtag_loc1")),
  1080. [RTD1619B_ISO_HIF_EN] = RTK_PIN_MUX(hif_en, 0x10, GENMASK(9, 5),
  1081. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 5), "gpio"),
  1082. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 5), "sd"),
  1083. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 5), "sdio_loc0"),
  1084. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 5), "dmic_loc1"),
  1085. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 5), "tdm_ai_loc1"),
  1086. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 5), "scpu_ejtag_loc1"),
  1087. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 5), "acpu_ejtag_loc1"),
  1088. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 5), "vcpu_ejtag_loc1"),
  1089. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 5), "ai_loc1"),
  1090. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 5), "hi"),
  1091. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 5), "hi_m"),
  1092. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 5), "vtc_i2si_loc0"),
  1093. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 5), "vtc_tdm_loc0"),
  1094. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 5), "vtc_dmic_loc0"),
  1095. RTK_PIN_FUNC(SHIFT_LEFT(0x14, 5), "ve3_ejtag_loc1"),
  1096. RTK_PIN_FUNC(SHIFT_LEFT(0x15, 5), "aucpu0_ejtag_loc1"),
  1097. RTK_PIN_FUNC(SHIFT_LEFT(0x16, 5), "aucpu1_ejtag_loc1")),
  1098. [RTD1619B_ISO_HIF_RDY] = RTK_PIN_MUX(hif_rdy, 0x10, GENMASK(13, 10),
  1099. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "gpio"),
  1100. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "sd"),
  1101. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "sdio_loc0"),
  1102. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 10), "dmic_loc1"),
  1103. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 10), "tdm_ai_loc1"),
  1104. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 10), "ai_loc1"),
  1105. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 10), "hi"),
  1106. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 10), "hi_m"),
  1107. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 10), "vtc_i2si_loc0"),
  1108. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 10), "vtc_tdm_loc0"),
  1109. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 10), "vtc_dmic_loc0")),
  1110. [RTD1619B_ISO_HIF_CLK] = RTK_PIN_MUX(hif_clk, 0x10, GENMASK(18, 14),
  1111. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "gpio"),
  1112. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "sd"),
  1113. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 14), "sdio_loc0"),
  1114. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 14), "dmic_loc1"),
  1115. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 14), "tdm_ai_loc1"),
  1116. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 14), "scpu_ejtag_loc1"),
  1117. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 14), "acpu_ejtag_loc1"),
  1118. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 14), "vcpu_ejtag_loc1"),
  1119. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 14), "ai_loc1"),
  1120. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 14), "hi"),
  1121. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 14), "hi_m"),
  1122. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 14), "vtc_i2si_loc0"),
  1123. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 14), "vtc_tdm_loc0"),
  1124. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 14), "vtc_dmic_loc0"),
  1125. RTK_PIN_FUNC(SHIFT_LEFT(0x14, 14), "ve3_ejtag_loc1"),
  1126. RTK_PIN_FUNC(SHIFT_LEFT(0x15, 14), "aucpu0_ejtag_loc1"),
  1127. RTK_PIN_FUNC(SHIFT_LEFT(0x16, 14), "aucpu1_ejtag_loc1")),
  1128. [RTD1619B_ISO_GPIO_40] = RTK_PIN_MUX(gpio_40, 0x10, GENMASK(20, 19),
  1129. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 19), "gpio"),
  1130. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 19), "sdio_loc1")),
  1131. [RTD1619B_ISO_GPIO_41] = RTK_PIN_MUX(gpio_41, 0x10, GENMASK(22, 21),
  1132. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 21), "gpio"),
  1133. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 21), "sdio_loc1")),
  1134. [RTD1619B_ISO_GPIO_42] = RTK_PIN_MUX(gpio_42, 0x10, GENMASK(24, 23),
  1135. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "gpio"),
  1136. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 23), "sdio_loc1")),
  1137. [RTD1619B_ISO_GPIO_43] = RTK_PIN_MUX(gpio_43, 0x10, GENMASK(26, 25),
  1138. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 25), "gpio"),
  1139. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 25), "sdio_loc1")),
  1140. [RTD1619B_ISO_GPIO_44] = RTK_PIN_MUX(gpio_44, 0x10, GENMASK(28, 27),
  1141. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 27), "gpio"),
  1142. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 27), "sdio_loc1")),
  1143. [RTD1619B_ISO_GPIO_45] = RTK_PIN_MUX(gpio_45, 0x10, GENMASK(30, 29),
  1144. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 29), "gpio"),
  1145. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 29), "sdio_loc1")),
  1146. [RTD1619B_ISO_GPIO_46] = RTK_PIN_MUX(gpio_46, 0x10, GENMASK(31, 31),
  1147. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 31), "gpio"),
  1148. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 31), "i2c5")),
  1149. [RTD1619B_ISO_GPIO_47] = RTK_PIN_MUX(gpio_47, 0x14, GENMASK(1, 0),
  1150. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1151. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "dc_fan"),
  1152. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "pwm3")),
  1153. [RTD1619B_ISO_GPIO_48] = RTK_PIN_MUX(gpio_48, 0x14, GENMASK(2, 2),
  1154. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "gpio"),
  1155. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "pll_test_loc1")),
  1156. [RTD1619B_ISO_GPIO_49] = RTK_PIN_MUX(gpio_49, 0x14, GENMASK(3, 3),
  1157. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 3), "gpio"),
  1158. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 3), "pll_test_loc1")),
  1159. [RTD1619B_ISO_GPIO_50] = RTK_PIN_MUX(gpio_50, 0x14, GENMASK(5, 4),
  1160. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1161. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "spdif"),
  1162. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "test_loop_dis")),
  1163. [RTD1619B_ISO_USB_CC1] = RTK_PIN_MUX(usb_cc1, 0x14, GENMASK(6, 6),
  1164. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "gpio"),
  1165. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "usb_cc1")),
  1166. [RTD1619B_ISO_GPIO_52] = RTK_PIN_MUX(gpio_52, 0x14, GENMASK(8, 7),
  1167. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 7), "gpio"),
  1168. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 7), "pll_test_loc0"),
  1169. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 7), "pcie2")),
  1170. [RTD1619B_ISO_GPIO_53] = RTK_PIN_MUX(gpio_53, 0x14, GENMASK(9, 9),
  1171. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 9), "gpio"),
  1172. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 9), "pll_test_loc0")),
  1173. [RTD1619B_ISO_IR_RX] = RTK_PIN_MUX(ir_rx, 0x14, GENMASK(11, 10),
  1174. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "gpio"),
  1175. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 10), "ir_rx"),
  1176. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 10), "standby_dbg")),
  1177. [RTD1619B_ISO_UR0_RX] = RTK_PIN_MUX(ur0_rx, 0x14, GENMASK(12, 12),
  1178. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "gpio"),
  1179. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "uart0")),
  1180. [RTD1619B_ISO_UR0_TX] = RTK_PIN_MUX(ur0_tx, 0x14, GENMASK(13, 13),
  1181. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 13), "gpio"),
  1182. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 13), "uart0")),
  1183. [RTD1619B_ISO_GPIO_57] = RTK_PIN_MUX(gpio_57, 0x14, GENMASK(17, 14),
  1184. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "gpio"),
  1185. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "tdm_ai_loc0"),
  1186. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 14), "ai_loc0"),
  1187. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 14), "dmic_loc0"),
  1188. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 14), "vtc_i2si_loc1"),
  1189. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 14), "vtc_tdm_loc1"),
  1190. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 14), "vtc_dmic_loc1")),
  1191. [RTD1619B_ISO_GPIO_58] = RTK_PIN_MUX(gpio_58, 0x14, GENMASK(21, 18),
  1192. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 18), "gpio"),
  1193. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 18), "tdm_ai_loc0"),
  1194. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 18), "ai_loc0"),
  1195. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 18), "dmic_loc0"),
  1196. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 18), "vtc_i2si_loc1"),
  1197. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 18), "vtc_tdm_loc1"),
  1198. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 18), "vtc_dmic_loc1")),
  1199. [RTD1619B_ISO_GPIO_59] = RTK_PIN_MUX(gpio_59, 0x14, GENMASK(25, 22),
  1200. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 22), "gpio"),
  1201. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 22), "tdm_ai_loc0"),
  1202. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 22), "ai_loc0"),
  1203. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 22), "dmic_loc0"),
  1204. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 22), "vtc_i2si_loc1"),
  1205. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 22), "vtc_tdm_loc1"),
  1206. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 22), "vtc_dmic_loc1")),
  1207. [RTD1619B_ISO_GPIO_60] = RTK_PIN_MUX(gpio_60, 0x14, GENMASK(29, 26),
  1208. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 26), "gpio"),
  1209. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "tdm_ai_loc0"),
  1210. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 26), "ai_loc0"),
  1211. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 26), "dmic_loc0"),
  1212. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 26), "vtc_i2si_loc1"),
  1213. RTK_PIN_FUNC(SHIFT_LEFT(0x12, 26), "vtc_tdm_loc1"),
  1214. RTK_PIN_FUNC(SHIFT_LEFT(0x13, 26), "vtc_dmic_loc1")),
  1215. [RTD1619B_ISO_GPIO_61] = RTK_PIN_MUX(gpio_61, 0x18, GENMASK(3, 0),
  1216. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1217. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "ai_loc0"),
  1218. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "dmic_loc0"),
  1219. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 0), "vtc_i2si_loc1")),
  1220. [RTD1619B_ISO_GPIO_62] = RTK_PIN_MUX(gpio_62, 0x18, GENMASK(5, 4),
  1221. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "gpio"),
  1222. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "ai_loc0"),
  1223. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 4), "dmic_loc0")),
  1224. [RTD1619B_ISO_GPIO_63] = RTK_PIN_MUX(gpio_63, 0x18, GENMASK(7, 6),
  1225. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "gpio"),
  1226. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "ai_loc0"),
  1227. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 6), "i2c3"),
  1228. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 6), "dmic_loc0")),
  1229. [RTD1619B_ISO_GPIO_64] = RTK_PIN_MUX(gpio_64, 0x18, GENMASK(9, 8),
  1230. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "gpio"),
  1231. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 8), "i2c3"),
  1232. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 8), "dmic_loc0")),
  1233. [RTD1619B_ISO_GPIO_65] = RTK_PIN_MUX(gpio_65, 0x18, GENMASK(10, 10),
  1234. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 10), "gpio")),
  1235. [RTD1619B_ISO_GPIO_66] = RTK_PIN_MUX(gpio_66, 0x18, GENMASK(14, 11),
  1236. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "gpio"),
  1237. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 11), "tp0"),
  1238. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 11), "ao"),
  1239. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 11), "vtc_i2so")),
  1240. [RTD1619B_ISO_GPIO_67] = RTK_PIN_MUX(gpio_67, 0x18, GENMASK(18, 15),
  1241. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 15), "gpio"),
  1242. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 15), "tp0"),
  1243. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 15), "ao"),
  1244. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 15), "vtc_i2so")),
  1245. [RTD1619B_ISO_GPIO_68] = RTK_PIN_MUX(gpio_68, 0x18, GENMASK(22, 19),
  1246. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 19), "gpio"),
  1247. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 19), "tp0"),
  1248. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 19), "ao"),
  1249. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 19), "vtc_i2so")),
  1250. [RTD1619B_ISO_GPIO_69] = RTK_PIN_MUX(gpio_69, 0x18, GENMASK(26, 23),
  1251. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "gpio"),
  1252. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 23), "tp0"),
  1253. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 23), "tp1"),
  1254. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 23), "ao"),
  1255. RTK_PIN_FUNC(SHIFT_LEFT(0x11, 23), "vtc_i2so")),
  1256. [RTD1619B_ISO_GPIO_70] = RTK_PIN_MUX(gpio_70, 0x18, GENMASK(29, 27),
  1257. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 27), "gpio"),
  1258. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 27), "tp0"),
  1259. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 27), "tp1"),
  1260. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 27), "ao")),
  1261. [RTD1619B_ISO_GPIO_71] = RTK_PIN_MUX(gpio_71, 0x1c, GENMASK(2, 0),
  1262. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "gpio"),
  1263. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "tp0"),
  1264. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 0), "tp1"),
  1265. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 0), "ao"),
  1266. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 0), "scpu_ejtag_loc2"),
  1267. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 0), "acpu_ejtag_loc2"),
  1268. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 0), "vcpu_ejtag_loc2"),
  1269. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 0), "ve3_ejtag_loc2"),
  1270. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 0), "aucpu0_ejtag_loc2"),
  1271. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 0), "aucpu1_ejtag_loc2")),
  1272. [RTD1619B_ISO_GPIO_72] = RTK_PIN_MUX(gpio_72, 0x1c, GENMASK(6, 3),
  1273. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 3), "gpio"),
  1274. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 3), "tp0"),
  1275. RTK_PIN_FUNC(SHIFT_LEFT(0x3, 3), "tp1"),
  1276. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 3), "ao"),
  1277. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 3), "scpu_ejtag_loc2"),
  1278. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 3), "acpu_ejtag_loc2"),
  1279. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 3), "vcpu_ejtag_loc2"),
  1280. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 3), "ve3_ejtag_loc2"),
  1281. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 3), "aucpu0_ejtag_loc2"),
  1282. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 3), "aucpu1_ejtag_loc2")),
  1283. [RTD1619B_ISO_GPIO_73] = RTK_PIN_MUX(gpio_73, 0x1c, GENMASK(10, 7),
  1284. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 7), "gpio"),
  1285. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 7), "tp0"),
  1286. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 7), "scpu_ejtag_loc2"),
  1287. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 7), "acpu_ejtag_loc2"),
  1288. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 7), "vcpu_ejtag_loc2"),
  1289. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 7), "ve3_ejtag_loc2"),
  1290. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 7), "aucpu0_ejtag_loc2"),
  1291. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 7), "aucpu1_ejtag_loc2")),
  1292. [RTD1619B_ISO_GPIO_74] = RTK_PIN_MUX(gpio_74, 0x1c, GENMASK(14, 11),
  1293. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "gpio"),
  1294. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 11), "tp0"),
  1295. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 11), "scpu_ejtag_loc2"),
  1296. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 11), "acpu_ejtag_loc2"),
  1297. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 11), "vcpu_ejtag_loc2"),
  1298. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 11), "ve3_ejtag_loc2"),
  1299. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 11), "aucpu0_ejtag_loc2"),
  1300. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 11), "aucpu1_ejtag_loc2")),
  1301. [RTD1619B_ISO_GPIO_75] = RTK_PIN_MUX(gpio_75, 0x1c, GENMASK(18, 15),
  1302. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 15), "gpio"),
  1303. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 15), "tp0"),
  1304. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 15), "scpu_ejtag_loc2"),
  1305. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 15), "acpu_ejtag_loc2"),
  1306. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 15), "vcpu_ejtag_loc2"),
  1307. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 15), "ve3_ejtag_loc2"),
  1308. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 15), "aucpu0_ejtag_loc2"),
  1309. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 15), "aucpu1_ejtag_loc2")),
  1310. [RTD1619B_ISO_GPIO_76] = RTK_PIN_MUX(gpio_76, 0x1c, GENMASK(22, 19),
  1311. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 19), "gpio"),
  1312. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 19), "tp0"),
  1313. RTK_PIN_FUNC(SHIFT_LEFT(0x5, 19), "scpu_ejtag_loc2"),
  1314. RTK_PIN_FUNC(SHIFT_LEFT(0x6, 19), "acpu_ejtag_loc2"),
  1315. RTK_PIN_FUNC(SHIFT_LEFT(0x7, 19), "vcpu_ejtag_loc2"),
  1316. RTK_PIN_FUNC(SHIFT_LEFT(0x8, 19), "ve3_ejtag_loc2"),
  1317. RTK_PIN_FUNC(SHIFT_LEFT(0x9, 19), "aucpu0_ejtag_loc2"),
  1318. RTK_PIN_FUNC(SHIFT_LEFT(0x10, 19), "aucpu1_ejtag_loc2")),
  1319. [RTD1619B_ISO_UR2_LOC] = RTK_PIN_MUX(ur2_loc, 0x120, GENMASK(1, 0),
  1320. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 0), "uart2_disable"),
  1321. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 0), "uart2_loc0"),
  1322. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 0), "uart2_loc1")),
  1323. [RTD1619B_ISO_GSPI_LOC] = RTK_PIN_MUX(gspi_loc, 0x120, GENMASK(3, 2),
  1324. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 2), "gspi_disable"),
  1325. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 2), "gspi_loc0"),
  1326. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 2), "gspi_loc1")),
  1327. [RTD1619B_ISO_SDIO_LOC] = RTK_PIN_MUX(sdio_loc, 0x120, GENMASK(5, 4),
  1328. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 4), "sdio_disable"),
  1329. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 4), "sdio_loc0"),
  1330. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 4), "sdio_loc1")),
  1331. [RTD1619B_ISO_HI_LOC] = RTK_PIN_MUX(hi_loc, 0x120, GENMASK(7, 6),
  1332. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 6), "hi_loc_disable"),
  1333. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 6), "hi_loc0")),
  1334. [RTD1619B_ISO_HI_WIDTH] = RTK_PIN_MUX(hi_width, 0x120, GENMASK(9, 8),
  1335. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 8), "hi_width_disable"),
  1336. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 8), "hi_width_1bit")),
  1337. [RTD1619B_ISO_SF_EN] = RTK_PIN_MUX(sf_en, 0x120, GENMASK(11, 11),
  1338. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 11), "sf_disable"),
  1339. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 11), "sf_enable")),
  1340. [RTD1619B_ISO_ARM_TRACE_DBG_EN] = RTK_PIN_MUX(arm_trace_dbg_en, 0x120, GENMASK(12, 12),
  1341. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 12), "arm_trace_debug_disable"),
  1342. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 12), "arm_trace_debug_enable")),
  1343. [RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC0] = RTK_PIN_MUX(pwm_01_open_drain_en_loc0, 0x120,
  1344. GENMASK(13, 13),
  1345. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 13), "pwm_normal"),
  1346. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 13), "pwm_open_drain")),
  1347. [RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC0] = RTK_PIN_MUX(pwm_23_open_drain_en_loc0, 0x120,
  1348. GENMASK(14, 14),
  1349. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 14), "pwm_normal"),
  1350. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 14), "pwm_open_drain")),
  1351. [RTD1619B_ISO_PWM_01_OPEN_DRAIN_EN_LOC1] = RTK_PIN_MUX(pwm_01_open_drain_en_loc1, 0x120,
  1352. GENMASK(15, 15),
  1353. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 15), "pwm_normal"),
  1354. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 15), "pwm_open_drain")),
  1355. [RTD1619B_ISO_PWM_23_OPEN_DRAIN_EN_LOC1] = RTK_PIN_MUX(pwm_23_open_drain_en_loc1, 0x120,
  1356. GENMASK(16, 16),
  1357. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 16), "pwm_normal"),
  1358. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 16), "pwm_open_drain")),
  1359. [RTD1619B_ISO_EJTAG_ACPU_LOC] = RTK_PIN_MUX(ejtag_acpu_loc, 0x120, GENMASK(19, 17),
  1360. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 17), "acpu_ejtag_disable"),
  1361. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 17), "acpu_ejtag_loc0"),
  1362. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 17), "acpu_ejtag_loc1"),
  1363. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 17), "acpu_ejtag_loc2")),
  1364. [RTD1619B_ISO_EJTAG_VCPU_LOC] = RTK_PIN_MUX(ejtag_vcpu_loc, 0x120, GENMASK(22, 20),
  1365. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 20), "vcpu_ejtag_disable"),
  1366. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 20), "vcpu_ejtag_loc0"),
  1367. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 20), "vcpu_ejtag_loc1"),
  1368. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 20), "vcpu_ejtag_loc2")),
  1369. [RTD1619B_ISO_EJTAG_SCPU_LOC] = RTK_PIN_MUX(ejtag_scpu_loc, 0x120, GENMASK(25, 23),
  1370. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 23), "scpu_ejtag_disable"),
  1371. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 23), "scpu_ejtag_loc0"),
  1372. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 23), "scpu_ejtag_loc1"),
  1373. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 23), "scpu_ejtag_loc2")),
  1374. [RTD1619B_ISO_DMIC_LOC] = RTK_PIN_MUX(dmic_loc, 0x120, GENMASK(27, 26),
  1375. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 26), "dmic_loc0"),
  1376. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 26), "dmic_loc1")),
  1377. [RTD1619B_ISO_ISO_GSPI_LOC] = RTK_PIN_MUX(iso_gspi_loc, 0x120, GENMASK(29, 28),
  1378. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 28), "iso_gspi_disable"),
  1379. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 28), "iso_gspi_loc0"),
  1380. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 28), "iso_gspi_loc1")),
  1381. [RTD1619B_ISO_EJTAG_VE3_LOC] = RTK_PIN_MUX(ejtag_ve3_loc, 0x124, GENMASK(20, 18),
  1382. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 18), "ve3_ejtag_disable"),
  1383. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 18), "ve3_ejtag_loc0"),
  1384. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 18), "ve3_ejtag_loc1"),
  1385. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 18), "ve3_ejtag_loc2")),
  1386. [RTD1619B_ISO_EJTAG_AUCPU1_LOC] = RTK_PIN_MUX(ejtag_aucpu1_loc, 0x124, GENMASK(23, 21),
  1387. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 21), "aucpu1_ejtag_disable"),
  1388. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 21), "aucpu1_ejtag_loc0"),
  1389. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 21), "aucpu1_ejtag_loc1"),
  1390. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 21), "aucpu1_ejtag_loc2")),
  1391. [RTD1619B_ISO_EJTAG_AUCPU0_LOC] = RTK_PIN_MUX(ejtag_aucpu0_loc, 0x124, GENMASK(26, 24),
  1392. RTK_PIN_FUNC(SHIFT_LEFT(0x0, 24), "aucpu0_ejtag_disable"),
  1393. RTK_PIN_FUNC(SHIFT_LEFT(0x1, 24), "aucpu0_ejtag_loc0"),
  1394. RTK_PIN_FUNC(SHIFT_LEFT(0x2, 24), "aucpu0_ejtag_loc1"),
  1395. RTK_PIN_FUNC(SHIFT_LEFT(0x4, 24), "aucpu0_ejtag_loc2")),
  1396. };
  1397. static const struct rtd_pin_config_desc rtd1619b_iso_configs[] = {
  1398. [RTD1619B_ISO_GPIO_17] = RTK_PIN_CONFIG(gpio_17, 0x20, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1399. [RTD1619B_ISO_GPIO_19] = RTK_PIN_CONFIG(gpio_19, 0x20, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1400. [RTD1619B_ISO_GPIO_50] = RTK_PIN_CONFIG(gpio_50, 0x20, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1401. [RTD1619B_ISO_GPIO_21] = RTK_PIN_CONFIG(gpio_21, 0x20, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1402. [RTD1619B_ISO_GPIO_66] = RTK_PIN_CONFIG(gpio_66, 0x20, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1403. [RTD1619B_ISO_GPIO_67] = RTK_PIN_CONFIG(gpio_67, 0x20, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1404. [RTD1619B_ISO_GPIO_68] = RTK_PIN_CONFIG(gpio_68, 0x24, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1405. [RTD1619B_ISO_GPIO_69] = RTK_PIN_CONFIG(gpio_69, 0x24, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1406. [RTD1619B_ISO_GPIO_70] = RTK_PIN_CONFIG(gpio_70, 0x24, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1407. [RTD1619B_ISO_GPIO_71] = RTK_PIN_CONFIG(gpio_71, 0x24, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1408. [RTD1619B_ISO_GPIO_72] = RTK_PIN_CONFIG(gpio_72, 0x24, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1409. [RTD1619B_ISO_GPIO_73] = RTK_PIN_CONFIG(gpio_73, 0x24, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1410. [RTD1619B_ISO_GPIO_74] = RTK_PIN_CONFIG(gpio_74, 0x28, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1411. [RTD1619B_ISO_GPIO_75] = RTK_PIN_CONFIG(gpio_75, 0x28, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1412. [RTD1619B_ISO_GPIO_76] = RTK_PIN_CONFIG(gpio_76, 0x28, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1413. [RTD1619B_ISO_SPI_SI] = RTK_PIN_CONFIG(spi_si, 0x28, 15, 0, 1, 3, 2, 12, NA),
  1414. [RTD1619B_ISO_SPI_SCK] = RTK_PIN_CONFIG(spi_sck, 0x2c, 0, 0, 1, 3, 2, 12, NA),
  1415. [RTD1619B_ISO_SPI_CE_N] = RTK_PIN_CONFIG(spi_ce_n, 0x2c, 13, 0, 1, 3, 2, 12, NA),
  1416. [RTD1619B_ISO_SPI_SO] = RTK_PIN_CONFIG(spi_so, 0x2c, 26, 0, 1, 3, 2, 12, NA),
  1417. [RTD1619B_ISO_EMMC_CLK] = RTK_PIN_CONFIG(emmc_clk, 0x30, 7, 0, 1, 3, 2, 12, NA),
  1418. [RTD1619B_ISO_EMMC_CMD] = RTK_PIN_CONFIG(emmc_cmd, 0x34, 0, 0, 1, 3, 2, 13, NA),
  1419. [RTD1619B_ISO_EMMC_RST_N] = RTK_PIN_CONFIG(emmc_rst_n, 0x34, 14, 0, 1, 3, 2, 12, NA),
  1420. [RTD1619B_ISO_EMMC_DD_SB] = RTK_PIN_CONFIG(emmc_dd_sb, 0x34, 27, 0, 1, 3, 2, 12, NA),
  1421. [RTD1619B_ISO_EMMC_DATA_5] = RTK_PIN_CONFIG(emmc_data_5, 0x38, 8, 0, 1, 3, 2, 12, NA),
  1422. [RTD1619B_ISO_EMMC_DATA_3] = RTK_PIN_CONFIG(emmc_data_3, 0x3c, 0, 0, 1, 3, 2, 12, NA),
  1423. [RTD1619B_ISO_EMMC_DATA_4] = RTK_PIN_CONFIG(emmc_data_4, 0x3c, 13, 0, 1, 3, 2, 12, NA),
  1424. [RTD1619B_ISO_EMMC_DATA_0] = RTK_PIN_CONFIG(emmc_data_0, 0x3c, 26, 0, 1, 3, 2, 12, NA),
  1425. [RTD1619B_ISO_EMMC_DATA_1] = RTK_PIN_CONFIG(emmc_data_1, 0x40, 7, 0, 1, 3, 2, 12, NA),
  1426. [RTD1619B_ISO_EMMC_DATA_2] = RTK_PIN_CONFIG(emmc_data_2, 0x44, 0, 0, 1, 3, 2, 12, NA),
  1427. [RTD1619B_ISO_EMMC_DATA_7] = RTK_PIN_CONFIG(emmc_data_7, 0x44, 13, 0, 1, 3, 2, 12, NA),
  1428. [RTD1619B_ISO_EMMC_DATA_6] = RTK_PIN_CONFIG(emmc_data_6, 0x44, 26, 0, 1, 3, 2, 12, NA),
  1429. [RTD1619B_ISO_USB_CC1] = RTK_PIN_CONFIG(usb_cc1, 0x48, 7, NA, NA, 0, 1, 9, PADDRI_4_8),
  1430. [RTD1619B_ISO_USB_CC2] = RTK_PIN_CONFIG(usb_cc2, 0x48, 10, NA, NA, 0, 1, 9, PADDRI_4_8),
  1431. [RTD1619B_ISO_GPIO_26] = RTK_PIN_CONFIG(gpio_26, 0x48, 13, 1, 2, 0, 3, 4, PADDRI_4_8),
  1432. [RTD1619B_ISO_GPIO_27] = RTK_PIN_CONFIG(gpio_27, 0x48, 18, 1, 2, 0, 3, 4, PADDRI_4_8),
  1433. [RTD1619B_ISO_GPIO_28] = RTK_PIN_CONFIG(gpio_28, 0x48, 23, 1, 2, 0, 3, 4, PADDRI_4_8),
  1434. [RTD1619B_ISO_GPIO_29] = RTK_PIN_CONFIG(gpio_29, 0x4c, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1435. [RTD1619B_ISO_GPIO_46] = RTK_PIN_CONFIG(gpio_46, 0x4c, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1436. [RTD1619B_ISO_GPIO_48] = RTK_PIN_CONFIG(gpio_48, 0x4c, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1437. [RTD1619B_ISO_GPIO_49] = RTK_PIN_CONFIG(gpio_49, 0x4c, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1438. [RTD1619B_ISO_GPIO_53] = RTK_PIN_CONFIG(gpio_53, 0x4c, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1439. [RTD1619B_ISO_GPIO_65] = RTK_PIN_CONFIG(gpio_65, 0x4c, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1440. [RTD1619B_ISO_GPIO_14] = RTK_PIN_CONFIG(gpio_14, 0x50, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1441. [RTD1619B_ISO_GPIO_15] = RTK_PIN_CONFIG(gpio_15, 0x50, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1442. [RTD1619B_ISO_GPIO_23] = RTK_PIN_CONFIG(gpio_23, 0x50, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1443. [RTD1619B_ISO_IR_RX] = RTK_PIN_CONFIG(ir_rx, 0x50, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1444. [RTD1619B_ISO_GPIO_57] = RTK_PIN_CONFIG(gpio_57, 0x50, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1445. [RTD1619B_ISO_GPIO_58] = RTK_PIN_CONFIG(gpio_58, 0x50, 30, 1, 2, 0, 3, 4, PADDRI_4_8),
  1446. [RTD1619B_ISO_GPIO_59] = RTK_PIN_CONFIG(gpio_59, 0x54, 3, 1, 2, 0, 3, 4, PADDRI_4_8),
  1447. [RTD1619B_ISO_GPIO_60] = RTK_PIN_CONFIG(gpio_60, 0x54, 8, 1, 2, 0, 3, 4, PADDRI_4_8),
  1448. [RTD1619B_ISO_GPIO_61] = RTK_PIN_CONFIG(gpio_61, 0x54, 13, 1, 2, 0, 3, 4, PADDRI_4_8),
  1449. [RTD1619B_ISO_GPIO_62] = RTK_PIN_CONFIG(gpio_62, 0x54, 18, 1, 2, 0, 3, 4, PADDRI_4_8),
  1450. [RTD1619B_ISO_GPIO_63] = RTK_PIN_CONFIG(gpio_63, 0x54, 23, 1, 2, 0, 3, 4, PADDRI_4_8),
  1451. [RTD1619B_ISO_GPIO_64] = RTK_PIN_CONFIG(gpio_64, 0x58, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1452. [RTD1619B_ISO_UR0_TX] = RTK_PIN_CONFIG(ur0_tx, 0x58, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1453. [RTD1619B_ISO_UR0_RX] = RTK_PIN_CONFIG(ur0_rx, 0x58, 13, 1, 2, 0, 3, 4, PADDRI_4_8),
  1454. [RTD1619B_ISO_GPIO_12] = RTK_PIN_CONFIG(gpio_12, 0x58, 18, 1, 2, 0, 3, 4, PADDRI_4_8),
  1455. [RTD1619B_ISO_GPIO_13] = RTK_PIN_CONFIG(gpio_13, 0x58, 23, 1, 2, 0, 3, 4, PADDRI_4_8),
  1456. [RTD1619B_ISO_GPIO_30] = RTK_PIN_CONFIG(gpio_30, 0x58, 28, 1, 2, 0, 3, 4, PADDRI_4_8),
  1457. [RTD1619B_ISO_GPIO_7] = RTK_PIN_CONFIG(gpio_7, 0x5c, 1, 1, 2, 0, 3, 4, PADDRI_4_8),
  1458. [RTD1619B_ISO_GPIO_16] = RTK_PIN_CONFIG(gpio_16, 0x5c, 6, 1, 2, 0, 3, 4, PADDRI_4_8),
  1459. [RTD1619B_ISO_GPIO_18] = RTK_PIN_CONFIG(gpio_18, 0x5c, 11, 1, 2, 0, 3, 4, PADDRI_4_8),
  1460. [RTD1619B_ISO_GPIO_20] = RTK_PIN_CONFIG(gpio_20, 0x5c, 16, 1, 2, 0, 3, 4, PADDRI_4_8),
  1461. [RTD1619B_ISO_GPIO_22] = RTK_PIN_CONFIG(gpio_22, 0x5c, 21, 1, 2, 0, 3, 4, PADDRI_4_8),
  1462. [RTD1619B_ISO_GPIO_31] = RTK_PIN_CONFIG(gpio_31, 0x5c, 26, 1, 2, 0, 3, 4, PADDRI_4_8),
  1463. [RTD1619B_ISO_GPIO_47] = RTK_PIN_CONFIG(gpio_47, 0x60, 12, 1, 2, 0, 3, 4, PADDRI_4_8),
  1464. [RTD1619B_ISO_GPIO_25] = RTK_PIN_CONFIG(gpio_25, 0x60, 17, 1, 2, 0, 3, 4, PADDRI_4_8),
  1465. [RTD1619B_ISO_GPIO_6] = RTK_PIN_CONFIG(gpio_6, 0x60, 22, 1, 2, 0, 3, 4, PADDRI_4_8),
  1466. [RTD1619B_ISO_GPIO_5] = RTK_PIN_CONFIG(gpio_5, 0x60, 27, 1, 2, 0, 3, 4, PADDRI_4_8),
  1467. [RTD1619B_ISO_GPIO_4] = RTK_PIN_CONFIG(gpio_4, 0x64, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1468. [RTD1619B_ISO_GPIO_3] = RTK_PIN_CONFIG(gpio_3, 0x64, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1469. [RTD1619B_ISO_GPIO_2] = RTK_PIN_CONFIG(gpio_2, 0x64, 10, 1, 2, 0, 3, 4, PADDRI_4_8),
  1470. [RTD1619B_ISO_GPIO_1] = RTK_PIN_CONFIG(gpio_1, 0x64, 15, 1, 2, 0, 3, 4, PADDRI_4_8),
  1471. [RTD1619B_ISO_GPIO_0] = RTK_PIN_CONFIG(gpio_0, 0x64, 20, 1, 2, 0, 3, 4, PADDRI_4_8),
  1472. [RTD1619B_ISO_GPIO_52] = RTK_PIN_CONFIG(gpio_52, 0x64, 25, 1, 2, 0, 3, 4, PADDRI_4_8),
  1473. [RTD1619B_ISO_GPIO_35] = RTK_PIN_CONFIG(gpio_35, 0x68, 0, 1, 2, 0, 3, 4, PADDRI_4_8),
  1474. [RTD1619B_ISO_GPIO_34] = RTK_PIN_CONFIG(gpio_34, 0x68, 5, 1, 2, 0, 3, 4, PADDRI_4_8),
  1475. [RTD1619B_ISO_GPIO_40] = RTK_PIN_CONFIG(gpio_40, 0x68, 10, 0, 1, 3, 2, 12, NA),
  1476. [RTD1619B_ISO_GPIO_41] = RTK_PIN_CONFIG(gpio_41, 0x6c, 0, 0, 1, 3, 2, 12, NA),
  1477. [RTD1619B_ISO_GPIO_42] = RTK_PIN_CONFIG(gpio_42, 0x6c, 13, 0, 1, 3, 2, 12, NA),
  1478. [RTD1619B_ISO_GPIO_43] = RTK_PIN_CONFIG(gpio_43, 0x70, 0, 0, 1, 3, 2, 12, NA),
  1479. [RTD1619B_ISO_GPIO_44] = RTK_PIN_CONFIG(gpio_44, 0x70, 13, 0, 1, 3, 2, 12, NA),
  1480. [RTD1619B_ISO_GPIO_45] = RTK_PIN_CONFIG(gpio_45, 0x70, 26, 0, 1, 3, 2, 12, NA),
  1481. [RTD1619B_ISO_GPIO_8] = RTK_PIN_CONFIG(gpio_8, 0x74, 7, 1, 2, 0, 3, 4, PADDRI_4_8),
  1482. [RTD1619B_ISO_GPIO_9] = RTK_PIN_CONFIG(gpio_9, 0x74, 12, 1, 2, 0, 3, 4, PADDRI_4_8),
  1483. [RTD1619B_ISO_GPIO_10] = RTK_PIN_CONFIG(gpio_10, 0x74, 17, 1, 2, 0, 3, 4, PADDRI_4_8),
  1484. [RTD1619B_ISO_GPIO_11] = RTK_PIN_CONFIG(gpio_11, 0x74, 22, 1, 2, 0, 3, 4, PADDRI_4_8),
  1485. [RTD1619B_ISO_HIF_RDY] = RTK_PIN_CONFIG(hif_rdy, 0x78, 0, 0, 1, 3, 2, 12, NA),
  1486. [RTD1619B_ISO_HIF_CLK] = RTK_PIN_CONFIG(hif_clk, 0x78, 13, 0, 1, 3, 2, 12, NA),
  1487. [RTD1619B_ISO_GPIO_32] = RTK_PIN_CONFIG(gpio_32, 0x78, 26, 0, 1, 3, 2, 12, NA),
  1488. [RTD1619B_ISO_GPIO_33] = RTK_PIN_CONFIG(gpio_33, 0x7c, 7, 0, 1, 3, 2, 12, NA),
  1489. [RTD1619B_ISO_HIF_DATA] = RTK_PIN_CONFIG(hif_data, 0x80, 0, 0, 1, 3, 2, 12, NA),
  1490. [RTD1619B_ISO_HIF_EN] = RTK_PIN_CONFIG(hif_en, 0x80, 13, 0, 1, 3, 2, 12, NA),
  1491. };
  1492. static const struct rtd_pin_sconfig_desc rtd1619b_iso_sconfigs[] = {
  1493. RTK_PIN_SCONFIG(spi_si, 0x28, 18, 3, 21, 3, 24, 3),
  1494. RTK_PIN_SCONFIG(spi_sck, 0x2c, 3, 3, 6, 3, 9, 3),
  1495. RTK_PIN_SCONFIG(spi_ce_n, 0x2c, 16, 3, 19, 3, 22, 3),
  1496. RTK_PIN_SCONFIG(spi_so, 0x2c, 29, 3, 32, 3, 35, 3),
  1497. RTK_PIN_SCONFIG(emmc_clk, 0x30, 10, 3, 13, 3, 16, 3),
  1498. RTK_PIN_SCONFIG(emmc_cmd, 0x34, 3, 3, 6, 3, 9, 3),
  1499. RTK_PIN_SCONFIG(emmc_rst_n, 0x34, 17, 3, 20, 3, 23, 3),
  1500. RTK_PIN_SCONFIG(emmc_dd_sb, 0x34, 30, 3, 33, 3, 36, 3),
  1501. RTK_PIN_SCONFIG(emmc_data_5, 0x38, 11, 3, 14, 3, 17, 3),
  1502. RTK_PIN_SCONFIG(emmc_data_3, 0x3c, 3, 3, 6, 3, 9, 3),
  1503. RTK_PIN_SCONFIG(emmc_data_4, 0x3c, 16, 3, 19, 3, 22, 3),
  1504. RTK_PIN_SCONFIG(emmc_data_0, 0x3c, 29, 3, 32, 3, 35, 3),
  1505. RTK_PIN_SCONFIG(emmc_data_1, 0x40, 10, 3, 13, 3, 16, 3),
  1506. RTK_PIN_SCONFIG(emmc_data_2, 0x44, 3, 3, 6, 3, 9, 3),
  1507. RTK_PIN_SCONFIG(emmc_data_7, 0x44, 16, 3, 19, 3, 22, 3),
  1508. RTK_PIN_SCONFIG(emmc_data_6, 0x44, 29, 3, 32, 3, 35, 3),
  1509. RTK_PIN_SCONFIG(gpio_40, 0x68, 13, 3, 16, 3, 19, 3),
  1510. RTK_PIN_SCONFIG(gpio_41, 0x6c, 3, 3, 6, 3, 9, 3),
  1511. RTK_PIN_SCONFIG(gpio_42, 0x6c, 16, 3, 19, 3, 22, 3),
  1512. RTK_PIN_SCONFIG(gpio_43, 0x70, 3, 3, 6, 3, 9, 3),
  1513. RTK_PIN_SCONFIG(gpio_44, 0x70, 16, 3, 19, 3, 22, 3),
  1514. RTK_PIN_SCONFIG(gpio_45, 0x70, 29, 3, 32, 3, 35, 3),
  1515. RTK_PIN_SCONFIG(hif_rdy, 0x78, 3, 3, 6, 3, 9, 3),
  1516. RTK_PIN_SCONFIG(hif_clk, 0x78, 16, 3, 19, 3, 22, 3),
  1517. RTK_PIN_SCONFIG(gpio_32, 0x78, 29, 3, 32, 3, 35, 3),
  1518. RTK_PIN_SCONFIG(gpio_33, 0x7c, 10, 3, 13, 3, 16, 3),
  1519. RTK_PIN_SCONFIG(hif_data, 0x80, 3, 3, 6, 3, 9, 3),
  1520. RTK_PIN_SCONFIG(hif_en, 0x80, 16, 3, 19, 3, 22, 3),
  1521. };
  1522. static const struct rtd_pinctrl_desc rtd1619b_iso_pinctrl_desc = {
  1523. .pins = rtd1619b_iso_pins,
  1524. .num_pins = ARRAY_SIZE(rtd1619b_iso_pins),
  1525. .groups = rtd1619b_pin_groups,
  1526. .num_groups = ARRAY_SIZE(rtd1619b_pin_groups),
  1527. .functions = rtd1619b_pin_functions,
  1528. .num_functions = ARRAY_SIZE(rtd1619b_pin_functions),
  1529. .muxes = rtd1619b_iso_muxes,
  1530. .num_muxes = ARRAY_SIZE(rtd1619b_iso_muxes),
  1531. .configs = rtd1619b_iso_configs,
  1532. .num_configs = ARRAY_SIZE(rtd1619b_iso_configs),
  1533. .sconfigs = rtd1619b_iso_sconfigs,
  1534. .num_sconfigs = ARRAY_SIZE(rtd1619b_iso_sconfigs),
  1535. };
  1536. static int rtd1619b_pinctrl_probe(struct platform_device *pdev)
  1537. {
  1538. return rtd_pinctrl_probe(pdev, &rtd1619b_iso_pinctrl_desc);
  1539. }
  1540. static const struct of_device_id rtd1619b_pinctrl_of_match[] = {
  1541. { .compatible = "realtek,rtd1619b-pinctrl", },
  1542. {},
  1543. };
  1544. static struct platform_driver rtd1619b_pinctrl_driver = {
  1545. .driver = {
  1546. .name = "rtd1619b-pinctrl",
  1547. .of_match_table = rtd1619b_pinctrl_of_match,
  1548. },
  1549. .probe = rtd1619b_pinctrl_probe,
  1550. };
  1551. static int __init rtd1619b_pinctrl_init(void)
  1552. {
  1553. return platform_driver_register(&rtd1619b_pinctrl_driver);
  1554. }
  1555. arch_initcall(rtd1619b_pinctrl_init);
  1556. static void __exit rtd1619b_pinctrl_exit(void)
  1557. {
  1558. platform_driver_unregister(&rtd1619b_pinctrl_driver);
  1559. }
  1560. module_exit(rtd1619b_pinctrl_exit);
  1561. MODULE_LICENSE("GPL");
  1562. MODULE_AUTHOR("Realtek Semiconductor Corporation");
  1563. MODULE_DESCRIPTION("Realtek DHC SoC RTD1619B pinctrl driver");