pinctrl-aspeed-g4.c 93 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (C) 2016 IBM Corp.
  4. */
  5. #include <linux/bitops.h>
  6. #include <linux/init.h>
  7. #include <linux/io.h>
  8. #include <linux/kernel.h>
  9. #include <linux/mutex.h>
  10. #include <linux/of.h>
  11. #include <linux/platform_device.h>
  12. #include <linux/pinctrl/pinctrl.h>
  13. #include <linux/pinctrl/pinmux.h>
  14. #include <linux/pinctrl/pinconf.h>
  15. #include <linux/pinctrl/pinconf-generic.h>
  16. #include <linux/string.h>
  17. #include <linux/types.h>
  18. #include "../core.h"
  19. #include "../pinctrl-utils.h"
  20. #include "pinmux-aspeed.h"
  21. #include "pinctrl-aspeed.h"
  22. /* Wrap some of the common macros for clarity */
  23. #define SIG_EXPR_DECL_SINGLE(sig, func, ...) \
  24. SIG_EXPR_DECL(sig, func, func, __VA_ARGS__)
  25. #define SIG_EXPR_LIST_DECL_SINGLE SIG_EXPR_LIST_DECL_SESG
  26. #define SIG_EXPR_LIST_DECL_DUAL SIG_EXPR_LIST_DECL_DESG
  27. /*
  28. * The "Multi-function Pins Mapping and Control" table in the SoC datasheet
  29. * references registers by the device/offset mnemonic. The register macros
  30. * below are named the same way to ease transcription and verification (as
  31. * opposed to naming them e.g. PINMUX_CTRL_[0-9]). Further, signal expressions
  32. * reference registers beyond those dedicated to pinmux, such as the system
  33. * reset control and MAC clock configuration registers.
  34. */
  35. #define SCU2C 0x2C /* Misc. Control Register */
  36. #define SCU3C 0x3C /* System Reset Control/Status Register */
  37. #define SCU48 0x48 /* MAC Interface Clock Delay Setting */
  38. #define HW_STRAP1 0x70 /* AST2400 strapping is 33 bits, is split */
  39. #define HW_REVISION_ID 0x7C /* Silicon revision ID register */
  40. #define SCU80 0x80 /* Multi-function Pin Control #1 */
  41. #define SCU84 0x84 /* Multi-function Pin Control #2 */
  42. #define SCU88 0x88 /* Multi-function Pin Control #3 */
  43. #define SCU8C 0x8C /* Multi-function Pin Control #4 */
  44. #define SCU90 0x90 /* Multi-function Pin Control #5 */
  45. #define SCU94 0x94 /* Multi-function Pin Control #6 */
  46. #define SCUA0 0xA0 /* Multi-function Pin Control #7 */
  47. #define SCUA4 0xA4 /* Multi-function Pin Control #8 */
  48. #define SCUA8 0xA8 /* Multi-function Pin Control #9 */
  49. #define SCUAC 0xAC /* Multi-function Pin Control #10 */
  50. #define HW_STRAP2 0xD0 /* Strapping */
  51. /*
  52. * Uses undefined macros for symbol naming and references, eg GPIOA0, MAC1LINK,
  53. * TIMER3 etc.
  54. *
  55. * Pins are defined in GPIO bank order:
  56. *
  57. * GPIOA0: 0
  58. * ...
  59. * GPIOA7: 7
  60. * GPIOB0: 8
  61. * ...
  62. * GPIOZ7: 207
  63. * GPIOAA0: 208
  64. * ...
  65. * GPIOAB3: 219
  66. *
  67. * Not all pins have their signals defined (yet).
  68. */
  69. #define D6 0
  70. SSSF_PIN_DECL(D6, GPIOA0, MAC1LINK, SIG_DESC_SET(SCU80, 0));
  71. #define B5 1
  72. SSSF_PIN_DECL(B5, GPIOA1, MAC2LINK, SIG_DESC_SET(SCU80, 1));
  73. #define A4 2
  74. SSSF_PIN_DECL(A4, GPIOA2, TIMER3, SIG_DESC_SET(SCU80, 2));
  75. #define E6 3
  76. SSSF_PIN_DECL(E6, GPIOA3, TIMER4, SIG_DESC_SET(SCU80, 3));
  77. #define I2C9_DESC SIG_DESC_SET(SCU90, 22)
  78. #define C5 4
  79. SIG_EXPR_LIST_DECL_SINGLE(C5, SCL9, I2C9, I2C9_DESC);
  80. SIG_EXPR_LIST_DECL_SINGLE(C5, TIMER5, TIMER5, SIG_DESC_SET(SCU80, 4));
  81. PIN_DECL_2(C5, GPIOA4, SCL9, TIMER5);
  82. FUNC_GROUP_DECL(TIMER5, C5);
  83. #define B4 5
  84. SIG_EXPR_LIST_DECL_SINGLE(B4, SDA9, I2C9, I2C9_DESC);
  85. SIG_EXPR_LIST_DECL_SINGLE(B4, TIMER6, TIMER6, SIG_DESC_SET(SCU80, 5));
  86. PIN_DECL_2(B4, GPIOA5, SDA9, TIMER6);
  87. FUNC_GROUP_DECL(TIMER6, B4);
  88. FUNC_GROUP_DECL(I2C9, C5, B4);
  89. #define MDIO2_DESC SIG_DESC_SET(SCU90, 2)
  90. #define A3 6
  91. SIG_EXPR_LIST_DECL_SINGLE(A3, MDC2, MDIO2, MDIO2_DESC);
  92. SIG_EXPR_LIST_DECL_SINGLE(A3, TIMER7, TIMER7, SIG_DESC_SET(SCU80, 6));
  93. PIN_DECL_2(A3, GPIOA6, MDC2, TIMER7);
  94. FUNC_GROUP_DECL(TIMER7, A3);
  95. #define D5 7
  96. SIG_EXPR_LIST_DECL_SINGLE(D5, MDIO2, MDIO2, MDIO2_DESC);
  97. SIG_EXPR_LIST_DECL_SINGLE(D5, TIMER8, TIMER8, SIG_DESC_SET(SCU80, 7));
  98. PIN_DECL_2(D5, GPIOA7, MDIO2, TIMER8);
  99. FUNC_GROUP_DECL(TIMER8, D5);
  100. FUNC_GROUP_DECL(MDIO2, A3, D5);
  101. #define J21 8
  102. SSSF_PIN_DECL(J21, GPIOB0, SALT1, SIG_DESC_SET(SCU80, 8));
  103. #define J20 9
  104. SSSF_PIN_DECL(J20, GPIOB1, SALT2, SIG_DESC_SET(SCU80, 9));
  105. #define H18 10
  106. SSSF_PIN_DECL(H18, GPIOB2, SALT3, SIG_DESC_SET(SCU80, 10));
  107. #define F18 11
  108. SSSF_PIN_DECL(F18, GPIOB3, SALT4, SIG_DESC_SET(SCU80, 11));
  109. #define E19 12
  110. SIG_EXPR_DECL_SINGLE(LPCRST, LPCRST, SIG_DESC_SET(SCU80, 12));
  111. SIG_EXPR_DECL_SINGLE(LPCRST, LPCRSTS, SIG_DESC_SET(HW_STRAP1, 14));
  112. SIG_EXPR_LIST_DECL_DUAL(E19, LPCRST, LPCRST, LPCRSTS);
  113. PIN_DECL_1(E19, GPIOB4, LPCRST);
  114. FUNC_GROUP_DECL(LPCRST, E19);
  115. #define H19 13
  116. #define H19_DESC SIG_DESC_SET(SCU80, 13)
  117. SIG_EXPR_LIST_DECL_SINGLE(H19, LPCPD, LPCPD, H19_DESC);
  118. SIG_EXPR_LIST_DECL_SINGLE(H19, LPCSMI, LPCSMI, H19_DESC);
  119. PIN_DECL_2(H19, GPIOB5, LPCPD, LPCSMI);
  120. FUNC_GROUP_DECL(LPCPD, H19);
  121. FUNC_GROUP_DECL(LPCSMI, H19);
  122. #define H20 14
  123. SSSF_PIN_DECL(H20, GPIOB6, LPCPME, SIG_DESC_SET(SCU80, 14));
  124. #define E18 15
  125. SIG_EXPR_LIST_DECL_SINGLE(E18, EXTRST, EXTRST,
  126. SIG_DESC_SET(SCU80, 15),
  127. SIG_DESC_BIT(SCU90, 31, 0),
  128. SIG_DESC_SET(SCU3C, 3));
  129. SIG_EXPR_LIST_DECL_SINGLE(E18, SPICS1, SPICS1,
  130. SIG_DESC_SET(SCU80, 15),
  131. SIG_DESC_SET(SCU90, 31));
  132. PIN_DECL_2(E18, GPIOB7, EXTRST, SPICS1);
  133. FUNC_GROUP_DECL(EXTRST, E18);
  134. FUNC_GROUP_DECL(SPICS1, E18);
  135. #define SD1_DESC SIG_DESC_SET(SCU90, 0)
  136. #define I2C10_DESC SIG_DESC_SET(SCU90, 23)
  137. #define C4 16
  138. SIG_EXPR_LIST_DECL_SINGLE(C4, SD1CLK, SD1, SD1_DESC);
  139. SIG_EXPR_LIST_DECL_SINGLE(C4, SCL10, I2C10, I2C10_DESC);
  140. PIN_DECL_2(C4, GPIOC0, SD1CLK, SCL10);
  141. #define B3 17
  142. SIG_EXPR_LIST_DECL_SINGLE(B3, SD1CMD, SD1, SD1_DESC);
  143. SIG_EXPR_LIST_DECL_SINGLE(B3, SDA10, I2C10, I2C10_DESC);
  144. PIN_DECL_2(B3, GPIOC1, SD1CMD, SDA10);
  145. FUNC_GROUP_DECL(I2C10, C4, B3);
  146. #define I2C11_DESC SIG_DESC_SET(SCU90, 24)
  147. #define A2 18
  148. SIG_EXPR_LIST_DECL_SINGLE(A2, SD1DAT0, SD1, SD1_DESC);
  149. SIG_EXPR_LIST_DECL_SINGLE(A2, SCL11, I2C11, I2C11_DESC);
  150. PIN_DECL_2(A2, GPIOC2, SD1DAT0, SCL11);
  151. #define E5 19
  152. SIG_EXPR_LIST_DECL_SINGLE(E5, SD1DAT1, SD1, SD1_DESC);
  153. SIG_EXPR_LIST_DECL_SINGLE(E5, SDA11, I2C11, I2C11_DESC);
  154. PIN_DECL_2(E5, GPIOC3, SD1DAT1, SDA11);
  155. FUNC_GROUP_DECL(I2C11, A2, E5);
  156. #define I2C12_DESC SIG_DESC_SET(SCU90, 25)
  157. #define D4 20
  158. SIG_EXPR_LIST_DECL_SINGLE(D4, SD1DAT2, SD1, SD1_DESC);
  159. SIG_EXPR_LIST_DECL_SINGLE(D4, SCL12, I2C12, I2C12_DESC);
  160. PIN_DECL_2(D4, GPIOC4, SD1DAT2, SCL12);
  161. #define C3 21
  162. SIG_EXPR_LIST_DECL_SINGLE(C3, SD1DAT3, SD1, SD1_DESC);
  163. SIG_EXPR_LIST_DECL_SINGLE(C3, SDA12, I2C12, I2C12_DESC);
  164. PIN_DECL_2(C3, GPIOC5, SD1DAT3, SDA12);
  165. FUNC_GROUP_DECL(I2C12, D4, C3);
  166. #define I2C13_DESC SIG_DESC_SET(SCU90, 26)
  167. #define B2 22
  168. SIG_EXPR_LIST_DECL_SINGLE(B2, SD1CD, SD1, SD1_DESC);
  169. SIG_EXPR_LIST_DECL_SINGLE(B2, SCL13, I2C13, I2C13_DESC);
  170. PIN_DECL_2(B2, GPIOC6, SD1CD, SCL13);
  171. #define A1 23
  172. SIG_EXPR_LIST_DECL_SINGLE(A1, SD1WP, SD1, SD1_DESC);
  173. SIG_EXPR_LIST_DECL_SINGLE(A1, SDA13, I2C13, I2C13_DESC);
  174. PIN_DECL_2(A1, GPIOC7, SD1WP, SDA13);
  175. FUNC_GROUP_DECL(I2C13, B2, A1);
  176. FUNC_GROUP_DECL(SD1, C4, B3, A2, E5, D4, C3, B2, A1);
  177. #define SD2_DESC SIG_DESC_SET(SCU90, 1)
  178. #define GPID_DESC SIG_DESC_SET(HW_STRAP1, 21)
  179. #define GPID0_DESC SIG_DESC_SET(SCU8C, 8)
  180. #define A18 24
  181. SIG_EXPR_LIST_DECL_SINGLE(A18, SD2CLK, SD2, SD2_DESC);
  182. SIG_EXPR_DECL_SINGLE(GPID0IN, GPID0, GPID0_DESC);
  183. SIG_EXPR_DECL_SINGLE(GPID0IN, GPID, GPID_DESC);
  184. SIG_EXPR_LIST_DECL_DUAL(A18, GPID0IN, GPID0, GPID);
  185. PIN_DECL_2(A18, GPIOD0, SD2CLK, GPID0IN);
  186. #define D16 25
  187. SIG_EXPR_LIST_DECL_SINGLE(D16, SD2CMD, SD2, SD2_DESC);
  188. SIG_EXPR_DECL_SINGLE(GPID0OUT, GPID0, GPID0_DESC);
  189. SIG_EXPR_DECL_SINGLE(GPID0OUT, GPID, GPID_DESC);
  190. SIG_EXPR_LIST_DECL_DUAL(D16, GPID0OUT, GPID0, GPID);
  191. PIN_DECL_2(D16, GPIOD1, SD2CMD, GPID0OUT);
  192. FUNC_GROUP_DECL(GPID0, A18, D16);
  193. #define GPID2_DESC SIG_DESC_SET(SCU8C, 9)
  194. #define B17 26
  195. SIG_EXPR_LIST_DECL_SINGLE(B17, SD2DAT0, SD2, SD2_DESC);
  196. SIG_EXPR_DECL_SINGLE(GPID2IN, GPID2, GPID2_DESC);
  197. SIG_EXPR_DECL_SINGLE(GPID2IN, GPID, GPID_DESC);
  198. SIG_EXPR_LIST_DECL_DUAL(B17, GPID2IN, GPID2, GPID);
  199. PIN_DECL_2(B17, GPIOD2, SD2DAT0, GPID2IN);
  200. #define A17 27
  201. SIG_EXPR_LIST_DECL_SINGLE(A17, SD2DAT1, SD2, SD2_DESC);
  202. SIG_EXPR_DECL_SINGLE(GPID2OUT, GPID2, GPID2_DESC);
  203. SIG_EXPR_DECL_SINGLE(GPID2OUT, GPID, GPID_DESC);
  204. SIG_EXPR_LIST_DECL_DUAL(A17, GPID2OUT, GPID2, GPID);
  205. PIN_DECL_2(A17, GPIOD3, SD2DAT1, GPID2OUT);
  206. FUNC_GROUP_DECL(GPID2, B17, A17);
  207. #define GPID4_DESC SIG_DESC_SET(SCU8C, 10)
  208. #define C16 28
  209. SIG_EXPR_LIST_DECL_SINGLE(C16, SD2DAT2, SD2, SD2_DESC);
  210. SIG_EXPR_DECL_SINGLE(GPID4IN, GPID4, GPID4_DESC);
  211. SIG_EXPR_DECL_SINGLE(GPID4IN, GPID, GPID_DESC);
  212. SIG_EXPR_LIST_DECL_DUAL(C16, GPID4IN, GPID4, GPID);
  213. PIN_DECL_2(C16, GPIOD4, SD2DAT2, GPID4IN);
  214. #define B16 29
  215. SIG_EXPR_LIST_DECL_SINGLE(B16, SD2DAT3, SD2, SD2_DESC);
  216. SIG_EXPR_DECL_SINGLE(GPID4OUT, GPID4, GPID4_DESC);
  217. SIG_EXPR_DECL_SINGLE(GPID4OUT, GPID, GPID_DESC);
  218. SIG_EXPR_LIST_DECL_DUAL(B16, GPID4OUT, GPID4, GPID);
  219. PIN_DECL_2(B16, GPIOD5, SD2DAT3, GPID4OUT);
  220. FUNC_GROUP_DECL(GPID4, C16, B16);
  221. #define GPID6_DESC SIG_DESC_SET(SCU8C, 11)
  222. #define A16 30
  223. SIG_EXPR_LIST_DECL_SINGLE(A16, SD2CD, SD2, SD2_DESC);
  224. SIG_EXPR_DECL_SINGLE(GPID6IN, GPID6, GPID6_DESC);
  225. SIG_EXPR_DECL_SINGLE(GPID6IN, GPID, GPID_DESC);
  226. SIG_EXPR_LIST_DECL_DUAL(A16, GPID6IN, GPID6, GPID);
  227. PIN_DECL_2(A16, GPIOD6, SD2CD, GPID6IN);
  228. #define E15 31
  229. SIG_EXPR_LIST_DECL_SINGLE(E15, SD2WP, SD2, SD2_DESC);
  230. SIG_EXPR_DECL_SINGLE(GPID6OUT, GPID6, GPID6_DESC);
  231. SIG_EXPR_DECL_SINGLE(GPID6OUT, GPID, GPID_DESC);
  232. SIG_EXPR_LIST_DECL_DUAL(E15, GPID6OUT, GPID6, GPID);
  233. PIN_DECL_2(E15, GPIOD7, SD2WP, GPID6OUT);
  234. FUNC_GROUP_DECL(GPID6, A16, E15);
  235. FUNC_GROUP_DECL(SD2, A18, D16, B17, A17, C16, B16, A16, E15);
  236. FUNC_GROUP_DECL(GPID, A18, D16, B17, A17, C16, B16, A16, E15);
  237. #define GPIE_DESC SIG_DESC_SET(HW_STRAP1, 22)
  238. #define GPIE0_DESC SIG_DESC_SET(SCU8C, 12)
  239. #define GPIE2_DESC SIG_DESC_SET(SCU8C, 13)
  240. #define GPIE4_DESC SIG_DESC_SET(SCU8C, 14)
  241. #define GPIE6_DESC SIG_DESC_SET(SCU8C, 15)
  242. #define D15 32
  243. SIG_EXPR_LIST_DECL_SINGLE(D15, NCTS3, NCTS3, SIG_DESC_SET(SCU80, 16));
  244. SIG_EXPR_DECL_SINGLE(GPIE0IN, GPIE0, GPIE0_DESC);
  245. SIG_EXPR_DECL_SINGLE(GPIE0IN, GPIE, GPIE_DESC);
  246. SIG_EXPR_LIST_DECL_DUAL(D15, GPIE0IN, GPIE0, GPIE);
  247. PIN_DECL_2(D15, GPIOE0, NCTS3, GPIE0IN);
  248. FUNC_GROUP_DECL(NCTS3, D15);
  249. #define C15 33
  250. SIG_EXPR_LIST_DECL_SINGLE(C15, NDCD3, NDCD3, SIG_DESC_SET(SCU80, 17));
  251. SIG_EXPR_DECL_SINGLE(GPIE0OUT, GPIE0, GPIE0_DESC);
  252. SIG_EXPR_DECL_SINGLE(GPIE0OUT, GPIE, GPIE_DESC);
  253. SIG_EXPR_LIST_DECL_DUAL(C15, GPIE0OUT, GPIE0, GPIE);
  254. PIN_DECL_2(C15, GPIOE1, NDCD3, GPIE0OUT);
  255. FUNC_GROUP_DECL(NDCD3, C15);
  256. FUNC_GROUP_DECL(GPIE0, D15, C15);
  257. #define B15 34
  258. SIG_EXPR_LIST_DECL_SINGLE(B15, NDSR3, NDSR3, SIG_DESC_SET(SCU80, 18));
  259. SIG_EXPR_DECL_SINGLE(GPIE2IN, GPIE2, GPIE2_DESC);
  260. SIG_EXPR_DECL_SINGLE(GPIE2IN, GPIE, GPIE_DESC);
  261. SIG_EXPR_LIST_DECL_DUAL(B15, GPIE2IN, GPIE2, GPIE);
  262. PIN_DECL_2(B15, GPIOE2, NDSR3, GPIE2IN);
  263. FUNC_GROUP_DECL(NDSR3, B15);
  264. #define A15 35
  265. SIG_EXPR_LIST_DECL_SINGLE(A15, NRI3, NRI3, SIG_DESC_SET(SCU80, 19));
  266. SIG_EXPR_DECL_SINGLE(GPIE2OUT, GPIE2, GPIE2_DESC);
  267. SIG_EXPR_DECL_SINGLE(GPIE2OUT, GPIE, GPIE_DESC);
  268. SIG_EXPR_LIST_DECL_DUAL(A15, GPIE2OUT, GPIE2, GPIE);
  269. PIN_DECL_2(A15, GPIOE3, NRI3, GPIE2OUT);
  270. FUNC_GROUP_DECL(NRI3, A15);
  271. FUNC_GROUP_DECL(GPIE2, B15, A15);
  272. #define E14 36
  273. SIG_EXPR_LIST_DECL_SINGLE(E14, NDTR3, NDTR3, SIG_DESC_SET(SCU80, 20));
  274. SIG_EXPR_DECL_SINGLE(GPIE4IN, GPIE4, GPIE4_DESC);
  275. SIG_EXPR_DECL_SINGLE(GPIE4IN, GPIE, GPIE_DESC);
  276. SIG_EXPR_LIST_DECL_DUAL(E14, GPIE4IN, GPIE4, GPIE);
  277. PIN_DECL_2(E14, GPIOE4, NDTR3, GPIE4IN);
  278. FUNC_GROUP_DECL(NDTR3, E14);
  279. #define D14 37
  280. SIG_EXPR_LIST_DECL_SINGLE(D14, NRTS3, NRTS3, SIG_DESC_SET(SCU80, 21));
  281. SIG_EXPR_DECL_SINGLE(GPIE4OUT, GPIE4, GPIE4_DESC);
  282. SIG_EXPR_DECL_SINGLE(GPIE4OUT, GPIE, GPIE_DESC);
  283. SIG_EXPR_LIST_DECL_DUAL(D14, GPIE4OUT, GPIE4, GPIE);
  284. PIN_DECL_2(D14, GPIOE5, NRTS3, GPIE4OUT);
  285. FUNC_GROUP_DECL(NRTS3, D14);
  286. FUNC_GROUP_DECL(GPIE4, E14, D14);
  287. #define C14 38
  288. SIG_EXPR_LIST_DECL_SINGLE(C14, TXD3, TXD3, SIG_DESC_SET(SCU80, 22));
  289. SIG_EXPR_DECL_SINGLE(GPIE6IN, GPIE6, GPIE6_DESC);
  290. SIG_EXPR_DECL_SINGLE(GPIE6IN, GPIE, GPIE_DESC);
  291. SIG_EXPR_LIST_DECL_DUAL(C14, GPIE6IN, GPIE6, GPIE);
  292. PIN_DECL_2(C14, GPIOE6, TXD3, GPIE6IN);
  293. FUNC_GROUP_DECL(TXD3, C14);
  294. #define B14 39
  295. SIG_EXPR_LIST_DECL_SINGLE(B14, RXD3, RXD3, SIG_DESC_SET(SCU80, 23));
  296. SIG_EXPR_DECL_SINGLE(GPIE6OUT, GPIE6, GPIE6_DESC);
  297. SIG_EXPR_DECL_SINGLE(GPIE6OUT, GPIE, GPIE_DESC);
  298. SIG_EXPR_LIST_DECL_DUAL(B14, GPIE6OUT, GPIE6, GPIE);
  299. PIN_DECL_2(B14, GPIOE7, RXD3, GPIE6OUT);
  300. FUNC_GROUP_DECL(RXD3, B14);
  301. FUNC_GROUP_DECL(GPIE6, C14, B14);
  302. #define D18 40
  303. SSSF_PIN_DECL(D18, GPIOF0, NCTS4, SIG_DESC_SET(SCU80, 24));
  304. #define ACPI_DESC SIG_DESC_BIT(HW_STRAP1, 19, 0)
  305. #define B19 41
  306. SIG_EXPR_LIST_DECL_SINGLE(B19, NDCD4, NDCD4, SIG_DESC_SET(SCU80, 25));
  307. SIG_EXPR_DECL_SINGLE(SIOPBI, SIOPBI, SIG_DESC_SET(SCUA4, 12));
  308. SIG_EXPR_DECL_SINGLE(SIOPBI, ACPI, ACPI_DESC);
  309. SIG_EXPR_LIST_DECL_DUAL(B19, SIOPBI, SIOPBI, ACPI);
  310. PIN_DECL_2(B19, GPIOF1, NDCD4, SIOPBI);
  311. FUNC_GROUP_DECL(NDCD4, B19);
  312. FUNC_GROUP_DECL(SIOPBI, B19);
  313. #define A20 42
  314. SIG_EXPR_LIST_DECL_SINGLE(A20, NDSR4, NDSR4, SIG_DESC_SET(SCU80, 26));
  315. SIG_EXPR_DECL_SINGLE(SIOPWRGD, SIOPWRGD, SIG_DESC_SET(SCUA4, 12));
  316. SIG_EXPR_DECL_SINGLE(SIOPWRGD, ACPI, ACPI_DESC);
  317. SIG_EXPR_LIST_DECL_DUAL(A20, SIOPWRGD, SIOPWRGD, ACPI);
  318. PIN_DECL_2(A20, GPIOF2, NDSR4, SIOPWRGD);
  319. FUNC_GROUP_DECL(NDSR4, A20);
  320. FUNC_GROUP_DECL(SIOPWRGD, A20);
  321. #define D17 43
  322. SIG_EXPR_LIST_DECL_SINGLE(D17, NRI4, NRI4, SIG_DESC_SET(SCU80, 27));
  323. SIG_EXPR_DECL_SINGLE(SIOPBO, SIOPBO, SIG_DESC_SET(SCUA4, 14));
  324. SIG_EXPR_DECL_SINGLE(SIOPBO, ACPI, ACPI_DESC);
  325. SIG_EXPR_LIST_DECL_DUAL(D17, SIOPBO, SIOPBO, ACPI);
  326. PIN_DECL_2(D17, GPIOF3, NRI4, SIOPBO);
  327. FUNC_GROUP_DECL(NRI4, D17);
  328. FUNC_GROUP_DECL(SIOPBO, D17);
  329. #define B18 44
  330. SSSF_PIN_DECL(B18, GPIOF4, NDTR4, SIG_DESC_SET(SCU80, 28));
  331. #define A19 45
  332. SIG_EXPR_LIST_DECL_SINGLE(A19, NDTS4, NDTS4, SIG_DESC_SET(SCU80, 29));
  333. SIG_EXPR_DECL_SINGLE(SIOSCI, SIOSCI, SIG_DESC_SET(SCUA4, 15));
  334. SIG_EXPR_DECL_SINGLE(SIOSCI, ACPI, ACPI_DESC);
  335. SIG_EXPR_LIST_DECL_DUAL(A19, SIOSCI, SIOSCI, ACPI);
  336. PIN_DECL_2(A19, GPIOF5, NDTS4, SIOSCI);
  337. FUNC_GROUP_DECL(NDTS4, A19);
  338. FUNC_GROUP_DECL(SIOSCI, A19);
  339. #define E16 46
  340. SSSF_PIN_DECL(E16, GPIOF6, TXD4, SIG_DESC_SET(SCU80, 30));
  341. #define C17 47
  342. SSSF_PIN_DECL(C17, GPIOF7, RXD4, SIG_DESC_SET(SCU80, 31));
  343. #define A14 48
  344. SSSF_PIN_DECL(A14, GPIOG0, SGPSCK, SIG_DESC_SET(SCU84, 0));
  345. #define E13 49
  346. SSSF_PIN_DECL(E13, GPIOG1, SGPSLD, SIG_DESC_SET(SCU84, 1));
  347. #define D13 50
  348. SSSF_PIN_DECL(D13, GPIOG2, SGPSI0, SIG_DESC_SET(SCU84, 2));
  349. #define C13 51
  350. SSSF_PIN_DECL(C13, GPIOG3, SGPSI1, SIG_DESC_SET(SCU84, 3));
  351. #define B13 52
  352. SIG_EXPR_LIST_DECL_SINGLE(B13, OSCCLK, OSCCLK, SIG_DESC_SET(SCU2C, 1));
  353. SIG_EXPR_LIST_DECL_SINGLE(B13, WDTRST1, WDTRST1, SIG_DESC_SET(SCU84, 4));
  354. PIN_DECL_2(B13, GPIOG4, OSCCLK, WDTRST1);
  355. FUNC_GROUP_DECL(OSCCLK, B13);
  356. FUNC_GROUP_DECL(WDTRST1, B13);
  357. #define Y21 53
  358. SIG_EXPR_LIST_DECL_SINGLE(Y21, USBCKI, USBCKI, SIG_DESC_SET(HW_STRAP1, 23));
  359. SIG_EXPR_LIST_DECL_SINGLE(Y21, WDTRST2, WDTRST2, SIG_DESC_SET(SCU84, 5));
  360. PIN_DECL_2(Y21, GPIOG5, USBCKI, WDTRST2);
  361. FUNC_GROUP_DECL(USBCKI, Y21);
  362. FUNC_GROUP_DECL(WDTRST2, Y21);
  363. #define AA22 54
  364. SSSF_PIN_DECL(AA22, GPIOG6, FLBUSY, SIG_DESC_SET(SCU84, 6));
  365. #define U18 55
  366. SSSF_PIN_DECL(U18, GPIOG7, FLWP, SIG_DESC_SET(SCU84, 7));
  367. #define UART6_DESC SIG_DESC_SET(SCU90, 7)
  368. #define ROM16_DESC SIG_DESC_SET(SCU90, 6)
  369. #define FLASH_WIDE SIG_DESC_SET(HW_STRAP1, 4)
  370. #define BOOT_SRC_NOR { ASPEED_IP_SCU, HW_STRAP1, GENMASK(1, 0), 0, 0 }
  371. #define A8 56
  372. SIG_EXPR_DECL_SINGLE(ROMD8, ROM16, ROM16_DESC);
  373. SIG_EXPR_DECL_SINGLE(ROMD8, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  374. SIG_EXPR_LIST_DECL_DUAL(A8, ROMD8, ROM16, ROM16S);
  375. SIG_EXPR_LIST_DECL_SINGLE(A8, NCTS6, NCTS6, UART6_DESC);
  376. PIN_DECL_2(A8, GPIOH0, ROMD8, NCTS6);
  377. #define C7 57
  378. SIG_EXPR_DECL_SINGLE(ROMD9, ROM16, ROM16_DESC);
  379. SIG_EXPR_DECL_SINGLE(ROMD9, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  380. SIG_EXPR_LIST_DECL_DUAL(C7, ROMD9, ROM16, ROM16S);
  381. SIG_EXPR_LIST_DECL_SINGLE(C7, NDCD6, NDCD6, UART6_DESC);
  382. PIN_DECL_2(C7, GPIOH1, ROMD9, NDCD6);
  383. #define B7 58
  384. SIG_EXPR_DECL_SINGLE(ROMD10, ROM16, ROM16_DESC);
  385. SIG_EXPR_DECL_SINGLE(ROMD10, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  386. SIG_EXPR_LIST_DECL_DUAL(B7, ROMD10, ROM16, ROM16S);
  387. SIG_EXPR_LIST_DECL_SINGLE(B7, NDSR6, NDSR6, UART6_DESC);
  388. PIN_DECL_2(B7, GPIOH2, ROMD10, NDSR6);
  389. #define A7 59
  390. SIG_EXPR_DECL_SINGLE(ROMD11, ROM16, ROM16_DESC);
  391. SIG_EXPR_DECL_SINGLE(ROMD11, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  392. SIG_EXPR_LIST_DECL_DUAL(A7, ROMD11, ROM16, ROM16S);
  393. SIG_EXPR_LIST_DECL_SINGLE(A7, NRI6, NRI6, UART6_DESC);
  394. PIN_DECL_2(A7, GPIOH3, ROMD11, NRI6);
  395. #define D7 60
  396. SIG_EXPR_DECL_SINGLE(ROMD12, ROM16, ROM16_DESC);
  397. SIG_EXPR_DECL_SINGLE(ROMD12, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  398. SIG_EXPR_LIST_DECL_DUAL(D7, ROMD12, ROM16, ROM16S);
  399. SIG_EXPR_LIST_DECL_SINGLE(D7, NDTR6, NDTR6, UART6_DESC);
  400. PIN_DECL_2(D7, GPIOH4, ROMD12, NDTR6);
  401. #define B6 61
  402. SIG_EXPR_DECL_SINGLE(ROMD13, ROM16, ROM16_DESC);
  403. SIG_EXPR_DECL_SINGLE(ROMD13, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  404. SIG_EXPR_LIST_DECL_DUAL(B6, ROMD13, ROM16, ROM16S);
  405. SIG_EXPR_LIST_DECL_SINGLE(B6, NRTS6, NRTS6, UART6_DESC);
  406. PIN_DECL_2(B6, GPIOH5, ROMD13, NRTS6);
  407. #define A6 62
  408. SIG_EXPR_DECL_SINGLE(ROMD14, ROM16, ROM16_DESC);
  409. SIG_EXPR_DECL_SINGLE(ROMD14, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  410. SIG_EXPR_LIST_DECL_DUAL(A6, ROMD14, ROM16, ROM16S);
  411. SIG_EXPR_LIST_DECL_SINGLE(A6, TXD6, TXD6, UART6_DESC);
  412. PIN_DECL_2(A6, GPIOH6, ROMD14, TXD6);
  413. #define E7 63
  414. SIG_EXPR_DECL_SINGLE(ROMD15, ROM16, ROM16_DESC);
  415. SIG_EXPR_DECL_SINGLE(ROMD15, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
  416. SIG_EXPR_LIST_DECL_DUAL(E7, ROMD15, ROM16, ROM16S);
  417. SIG_EXPR_LIST_DECL_SINGLE(E7, RXD6, RXD6, UART6_DESC);
  418. PIN_DECL_2(E7, GPIOH7, ROMD15, RXD6);
  419. FUNC_GROUP_DECL(UART6, A8, C7, B7, A7, D7, B6, A6, E7);
  420. #define SPI1_DESC \
  421. { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 1, 0 }
  422. #define SPI1DEBUG_DESC \
  423. { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 2, 0 }
  424. #define SPI1PASSTHRU_DESC \
  425. { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 3, 0 }
  426. #define C22 64
  427. SIG_EXPR_DECL_SINGLE(SYSCS, SPI1DEBUG, SPI1DEBUG_DESC);
  428. SIG_EXPR_DECL_SINGLE(SYSCS, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  429. SIG_EXPR_LIST_DECL_DUAL(C22, SYSCS, SPI1DEBUG, SPI1PASSTHRU);
  430. PIN_DECL_1(C22, GPIOI0, SYSCS);
  431. #define G18 65
  432. SIG_EXPR_DECL_SINGLE(SYSCK, SPI1DEBUG, SPI1DEBUG_DESC);
  433. SIG_EXPR_DECL_SINGLE(SYSCK, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  434. SIG_EXPR_LIST_DECL_DUAL(G18, SYSCK, SPI1DEBUG, SPI1PASSTHRU);
  435. PIN_DECL_1(G18, GPIOI1, SYSCK);
  436. #define D19 66
  437. SIG_EXPR_DECL_SINGLE(SYSDO, SPI1DEBUG, SPI1DEBUG_DESC);
  438. SIG_EXPR_DECL_SINGLE(SYSDO, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  439. SIG_EXPR_LIST_DECL_DUAL(D19, SYSDO, SPI1DEBUG, SPI1PASSTHRU);
  440. PIN_DECL_1(D19, GPIOI2, SYSDO);
  441. #define C20 67
  442. SIG_EXPR_DECL_SINGLE(SYSDI, SPI1DEBUG, SPI1DEBUG_DESC);
  443. SIG_EXPR_DECL_SINGLE(SYSDI, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  444. SIG_EXPR_LIST_DECL_DUAL(C20, SYSDI, SPI1DEBUG, SPI1PASSTHRU);
  445. PIN_DECL_1(C20, GPIOI3, SYSDI);
  446. #define VB_DESC SIG_DESC_SET(HW_STRAP1, 5)
  447. #define B22 68
  448. SIG_EXPR_DECL_SINGLE(SPI1CS0, SPI1, SPI1_DESC);
  449. SIG_EXPR_DECL_SINGLE(SPI1CS0, SPI1DEBUG, SPI1DEBUG_DESC);
  450. SIG_EXPR_DECL_SINGLE(SPI1CS0, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  451. SIG_EXPR_LIST_DECL(SPI1CS0, SPI1,
  452. SIG_EXPR_PTR(SPI1CS0, SPI1),
  453. SIG_EXPR_PTR(SPI1CS0, SPI1DEBUG),
  454. SIG_EXPR_PTR(SPI1CS0, SPI1PASSTHRU));
  455. SIG_EXPR_LIST_ALIAS(B22, SPI1CS0, SPI1);
  456. SIG_EXPR_LIST_DECL_SINGLE(B22, VBCS, VGABIOS_ROM, VB_DESC);
  457. PIN_DECL_2(B22, GPIOI4, SPI1CS0, VBCS);
  458. #define G19 69
  459. SIG_EXPR_DECL_SINGLE(SPI1CK, SPI1, SPI1_DESC);
  460. SIG_EXPR_DECL_SINGLE(SPI1CK, SPI1DEBUG, SPI1DEBUG_DESC);
  461. SIG_EXPR_DECL_SINGLE(SPI1CK, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  462. SIG_EXPR_LIST_DECL(SPI1CK, SPI1,
  463. SIG_EXPR_PTR(SPI1CK, SPI1),
  464. SIG_EXPR_PTR(SPI1CK, SPI1DEBUG),
  465. SIG_EXPR_PTR(SPI1CK, SPI1PASSTHRU));
  466. SIG_EXPR_LIST_ALIAS(G19, SPI1CK, SPI1);
  467. SIG_EXPR_LIST_DECL_SINGLE(G19, VBCK, VGABIOS_ROM, VB_DESC);
  468. PIN_DECL_2(G19, GPIOI5, SPI1CK, VBCK);
  469. #define C18 70
  470. SIG_EXPR_DECL_SINGLE(SPI1DO, SPI1, SPI1_DESC);
  471. SIG_EXPR_DECL_SINGLE(SPI1DO, SPI1DEBUG, SPI1DEBUG_DESC);
  472. SIG_EXPR_DECL_SINGLE(SPI1DO, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  473. SIG_EXPR_LIST_DECL(SPI1DO, SPI1,
  474. SIG_EXPR_PTR(SPI1DO, SPI1),
  475. SIG_EXPR_PTR(SPI1DO, SPI1DEBUG),
  476. SIG_EXPR_PTR(SPI1DO, SPI1PASSTHRU));
  477. SIG_EXPR_LIST_ALIAS(C18, SPI1DO, SPI1);
  478. SIG_EXPR_LIST_DECL_SINGLE(C18, VBDO, VGABIOS_ROM, VB_DESC);
  479. PIN_DECL_2(C18, GPIOI6, SPI1DO, VBDO);
  480. #define E20 71
  481. SIG_EXPR_DECL_SINGLE(SPI1DI, SPI1, SPI1_DESC);
  482. SIG_EXPR_DECL_SINGLE(SPI1DI, SPI1DEBUG, SPI1DEBUG_DESC);
  483. SIG_EXPR_DECL_SINGLE(SPI1DI, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
  484. SIG_EXPR_LIST_DECL(SPI1DI, SPI1,
  485. SIG_EXPR_PTR(SPI1DI, SPI1),
  486. SIG_EXPR_PTR(SPI1DI, SPI1DEBUG),
  487. SIG_EXPR_PTR(SPI1DI, SPI1PASSTHRU));
  488. SIG_EXPR_LIST_ALIAS(E20, SPI1DI, SPI1);
  489. SIG_EXPR_LIST_DECL_SINGLE(E20, VBDI, VGABIOS_ROM, VB_DESC);
  490. PIN_DECL_2(E20, GPIOI7, SPI1DI, VBDI);
  491. FUNC_GROUP_DECL(SPI1, B22, G19, C18, E20);
  492. FUNC_GROUP_DECL(SPI1DEBUG, C22, G18, D19, C20, B22, G19, C18, E20);
  493. FUNC_GROUP_DECL(SPI1PASSTHRU, C22, G18, D19, C20, B22, G19, C18, E20);
  494. FUNC_GROUP_DECL(VGABIOS_ROM, B22, G19, C18, E20);
  495. #define J5 72
  496. SSSF_PIN_DECL(J5, GPIOJ0, SGPMCK, SIG_DESC_SET(SCU84, 8));
  497. #define J4 73
  498. SSSF_PIN_DECL(J4, GPIOJ1, SGPMLD, SIG_DESC_SET(SCU84, 9));
  499. #define K5 74
  500. SSSF_PIN_DECL(K5, GPIOJ2, SGPMO, SIG_DESC_SET(SCU84, 10));
  501. #define J3 75
  502. SSSF_PIN_DECL(J3, GPIOJ3, SGPMI, SIG_DESC_SET(SCU84, 11));
  503. #define T4 76
  504. SSSF_PIN_DECL(T4, GPIOJ4, VGAHS, SIG_DESC_SET(SCU84, 12));
  505. #define U2 77
  506. SSSF_PIN_DECL(U2, GPIOJ5, VGAVS, SIG_DESC_SET(SCU84, 13));
  507. #define T2 78
  508. SSSF_PIN_DECL(T2, GPIOJ6, DDCCLK, SIG_DESC_SET(SCU84, 14));
  509. #define T1 79
  510. SSSF_PIN_DECL(T1, GPIOJ7, DDCDAT, SIG_DESC_SET(SCU84, 15));
  511. #define I2C5_DESC SIG_DESC_SET(SCU90, 18)
  512. #define E3 80
  513. SIG_EXPR_LIST_DECL_SINGLE(E3, SCL5, I2C5, I2C5_DESC);
  514. PIN_DECL_1(E3, GPIOK0, SCL5);
  515. #define D2 81
  516. SIG_EXPR_LIST_DECL_SINGLE(D2, SDA5, I2C5, I2C5_DESC);
  517. PIN_DECL_1(D2, GPIOK1, SDA5);
  518. FUNC_GROUP_DECL(I2C5, E3, D2);
  519. #define I2C6_DESC SIG_DESC_SET(SCU90, 19)
  520. #define C1 82
  521. SIG_EXPR_LIST_DECL_SINGLE(C1, SCL6, I2C6, I2C6_DESC);
  522. PIN_DECL_1(C1, GPIOK2, SCL6);
  523. #define F4 83
  524. SIG_EXPR_LIST_DECL_SINGLE(F4, SDA6, I2C6, I2C6_DESC);
  525. PIN_DECL_1(F4, GPIOK3, SDA6);
  526. FUNC_GROUP_DECL(I2C6, C1, F4);
  527. #define I2C7_DESC SIG_DESC_SET(SCU90, 20)
  528. #define E2 84
  529. SIG_EXPR_LIST_DECL_SINGLE(E2, SCL7, I2C7, I2C7_DESC);
  530. PIN_DECL_1(E2, GPIOK4, SCL7);
  531. #define D1 85
  532. SIG_EXPR_LIST_DECL_SINGLE(D1, SDA7, I2C7, I2C7_DESC);
  533. PIN_DECL_1(D1, GPIOK5, SDA7);
  534. FUNC_GROUP_DECL(I2C7, E2, D1);
  535. #define I2C8_DESC SIG_DESC_SET(SCU90, 21)
  536. #define G5 86
  537. SIG_EXPR_LIST_DECL_SINGLE(G5, SCL8, I2C8, I2C8_DESC);
  538. PIN_DECL_1(G5, GPIOK6, SCL8);
  539. #define F3 87
  540. SIG_EXPR_LIST_DECL_SINGLE(F3, SDA8, I2C8, I2C8_DESC);
  541. PIN_DECL_1(F3, GPIOK7, SDA8);
  542. FUNC_GROUP_DECL(I2C8, G5, F3);
  543. #define U1 88
  544. SSSF_PIN_DECL(U1, GPIOL0, NCTS1, SIG_DESC_SET(SCU84, 16));
  545. #define VPI18_DESC { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 1, 0 }
  546. #define VPI24_DESC { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 2, 0 }
  547. #define VPI30_DESC { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 3, 0 }
  548. #define T5 89
  549. #define T5_DESC SIG_DESC_SET(SCU84, 17)
  550. SIG_EXPR_DECL_SINGLE(VPIDE, VPI18, VPI18_DESC, T5_DESC);
  551. SIG_EXPR_DECL_SINGLE(VPIDE, VPI24, VPI24_DESC, T5_DESC);
  552. SIG_EXPR_DECL_SINGLE(VPIDE, VPI30, VPI30_DESC, T5_DESC);
  553. SIG_EXPR_LIST_DECL(VPIDE, VPI,
  554. SIG_EXPR_PTR(VPIDE, VPI18),
  555. SIG_EXPR_PTR(VPIDE, VPI24),
  556. SIG_EXPR_PTR(VPIDE, VPI30));
  557. SIG_EXPR_LIST_ALIAS(T5, VPIDE, VPI);
  558. SIG_EXPR_LIST_DECL_SINGLE(T5, NDCD1, NDCD1, T5_DESC);
  559. PIN_DECL_2(T5, GPIOL1, VPIDE, NDCD1);
  560. FUNC_GROUP_DECL(NDCD1, T5);
  561. #define U3 90
  562. #define U3_DESC SIG_DESC_SET(SCU84, 18)
  563. SIG_EXPR_DECL_SINGLE(VPIODD, VPI18, VPI18_DESC, U3_DESC);
  564. SIG_EXPR_DECL_SINGLE(VPIODD, VPI24, VPI24_DESC, U3_DESC);
  565. SIG_EXPR_DECL_SINGLE(VPIODD, VPI30, VPI30_DESC, U3_DESC);
  566. SIG_EXPR_LIST_DECL(VPIODD, VPI,
  567. SIG_EXPR_PTR(VPIODD, VPI18),
  568. SIG_EXPR_PTR(VPIODD, VPI24),
  569. SIG_EXPR_PTR(VPIODD, VPI30));
  570. SIG_EXPR_LIST_ALIAS(U3, VPIODD, VPI);
  571. SIG_EXPR_LIST_DECL_SINGLE(U3, NDSR1, NDSR1, U3_DESC);
  572. PIN_DECL_2(U3, GPIOL2, VPIODD, NDSR1);
  573. FUNC_GROUP_DECL(NDSR1, U3);
  574. #define V1 91
  575. #define V1_DESC SIG_DESC_SET(SCU84, 19)
  576. SIG_EXPR_DECL_SINGLE(VPIHS, VPI18, VPI18_DESC, V1_DESC);
  577. SIG_EXPR_DECL_SINGLE(VPIHS, VPI24, VPI24_DESC, V1_DESC);
  578. SIG_EXPR_DECL_SINGLE(VPIHS, VPI30, VPI30_DESC, V1_DESC);
  579. SIG_EXPR_LIST_DECL(VPIHS, VPI,
  580. SIG_EXPR_PTR(VPIHS, VPI18),
  581. SIG_EXPR_PTR(VPIHS, VPI24),
  582. SIG_EXPR_PTR(VPIHS, VPI30));
  583. SIG_EXPR_LIST_ALIAS(V1, VPIHS, VPI);
  584. SIG_EXPR_LIST_DECL_SINGLE(V1, NRI1, NRI1, V1_DESC);
  585. PIN_DECL_2(V1, GPIOL3, VPIHS, NRI1);
  586. FUNC_GROUP_DECL(NRI1, V1);
  587. #define U4 92
  588. #define U4_DESC SIG_DESC_SET(SCU84, 20)
  589. SIG_EXPR_DECL_SINGLE(VPIVS, VPI18, VPI18_DESC, U4_DESC);
  590. SIG_EXPR_DECL_SINGLE(VPIVS, VPI24, VPI24_DESC, U4_DESC);
  591. SIG_EXPR_DECL_SINGLE(VPIVS, VPI30, VPI30_DESC, U4_DESC);
  592. SIG_EXPR_LIST_DECL(VPIVS, VPI,
  593. SIG_EXPR_PTR(VPIVS, VPI18),
  594. SIG_EXPR_PTR(VPIVS, VPI24),
  595. SIG_EXPR_PTR(VPIVS, VPI30));
  596. SIG_EXPR_LIST_ALIAS(U4, VPIVS, VPI);
  597. SIG_EXPR_LIST_DECL_SINGLE(U4, NDTR1, NDTR1, U4_DESC);
  598. PIN_DECL_2(U4, GPIOL4, VPIVS, NDTR1);
  599. FUNC_GROUP_DECL(NDTR1, U4);
  600. #define V2 93
  601. #define V2_DESC SIG_DESC_SET(SCU84, 21)
  602. SIG_EXPR_DECL_SINGLE(VPICLK, VPI18, VPI18_DESC, V2_DESC);
  603. SIG_EXPR_DECL_SINGLE(VPICLK, VPI24, VPI24_DESC, V2_DESC);
  604. SIG_EXPR_DECL_SINGLE(VPICLK, VPI30, VPI30_DESC, V2_DESC);
  605. SIG_EXPR_LIST_DECL(VPICLK, VPI,
  606. SIG_EXPR_PTR(VPICLK, VPI18),
  607. SIG_EXPR_PTR(VPICLK, VPI24),
  608. SIG_EXPR_PTR(VPICLK, VPI30));
  609. SIG_EXPR_LIST_ALIAS(V2, VPICLK, VPI);
  610. SIG_EXPR_LIST_DECL_SINGLE(V2, NRTS1, NRTS1, V2_DESC);
  611. PIN_DECL_2(V2, GPIOL5, VPICLK, NRTS1);
  612. FUNC_GROUP_DECL(NRTS1, V2);
  613. #define W1 94
  614. #define W1_DESC SIG_DESC_SET(SCU84, 22)
  615. SIG_EXPR_LIST_DECL_SINGLE(W1, VPIB0, VPI30, VPI30_DESC, W1_DESC);
  616. SIG_EXPR_LIST_DECL_SINGLE(W1, TXD1, TXD1, W1_DESC);
  617. PIN_DECL_2(W1, GPIOL6, VPIB0, TXD1);
  618. FUNC_GROUP_DECL(TXD1, W1);
  619. #define U5 95
  620. #define U5_DESC SIG_DESC_SET(SCU84, 23)
  621. SIG_EXPR_LIST_DECL_SINGLE(U5, VPIB1, VPI30, VPI30_DESC, U5_DESC);
  622. SIG_EXPR_LIST_DECL_SINGLE(U5, RXD1, RXD1, U5_DESC);
  623. PIN_DECL_2(U5, GPIOL7, VPIB1, RXD1);
  624. FUNC_GROUP_DECL(RXD1, U5);
  625. #define V3 96
  626. #define V3_DESC SIG_DESC_SET(SCU84, 24)
  627. SIG_EXPR_DECL_SINGLE(VPIOB2, VPI18, VPI18_DESC, V3_DESC);
  628. SIG_EXPR_DECL_SINGLE(VPIOB2, VPI24, VPI24_DESC, V3_DESC);
  629. SIG_EXPR_DECL_SINGLE(VPIOB2, VPI30, VPI30_DESC, V3_DESC);
  630. SIG_EXPR_LIST_DECL(VPIOB2, VPI,
  631. SIG_EXPR_PTR(VPIOB2, VPI18),
  632. SIG_EXPR_PTR(VPIOB2, VPI24),
  633. SIG_EXPR_PTR(VPIOB2, VPI30));
  634. SIG_EXPR_LIST_ALIAS(V3, VPIOB2, VPI);
  635. SIG_EXPR_LIST_DECL_SINGLE(V3, NCTS2, NCTS2, V3_DESC);
  636. PIN_DECL_2(V3, GPIOM0, VPIOB2, NCTS2);
  637. FUNC_GROUP_DECL(NCTS2, V3);
  638. #define W2 97
  639. #define W2_DESC SIG_DESC_SET(SCU84, 25)
  640. SIG_EXPR_DECL_SINGLE(VPIOB3, VPI18, VPI18_DESC, W2_DESC);
  641. SIG_EXPR_DECL_SINGLE(VPIOB3, VPI24, VPI24_DESC, W2_DESC);
  642. SIG_EXPR_DECL_SINGLE(VPIOB3, VPI30, VPI30_DESC, W2_DESC);
  643. SIG_EXPR_LIST_DECL(VPIOB3, VPI,
  644. SIG_EXPR_PTR(VPIOB3, VPI18),
  645. SIG_EXPR_PTR(VPIOB3, VPI24),
  646. SIG_EXPR_PTR(VPIOB3, VPI30));
  647. SIG_EXPR_LIST_ALIAS(W2, VPIOB3, VPI);
  648. SIG_EXPR_LIST_DECL_SINGLE(W2, NDCD2, NDCD2, W2_DESC);
  649. PIN_DECL_2(W2, GPIOM1, VPIOB3, NDCD2);
  650. FUNC_GROUP_DECL(NDCD2, W2);
  651. #define Y1 98
  652. #define Y1_DESC SIG_DESC_SET(SCU84, 26)
  653. SIG_EXPR_DECL_SINGLE(VPIOB4, VPI18, VPI18_DESC, Y1_DESC);
  654. SIG_EXPR_DECL_SINGLE(VPIOB4, VPI24, VPI24_DESC, Y1_DESC);
  655. SIG_EXPR_DECL_SINGLE(VPIOB4, VPI30, VPI30_DESC, Y1_DESC);
  656. SIG_EXPR_LIST_DECL(VPIOB4, VPI,
  657. SIG_EXPR_PTR(VPIOB4, VPI18),
  658. SIG_EXPR_PTR(VPIOB4, VPI24),
  659. SIG_EXPR_PTR(VPIOB4, VPI30));
  660. SIG_EXPR_LIST_ALIAS(Y1, VPIOB4, VPI);
  661. SIG_EXPR_LIST_DECL_SINGLE(Y1, NDSR2, NDSR2, Y1_DESC);
  662. PIN_DECL_2(Y1, GPIOM2, VPIOB4, NDSR2);
  663. FUNC_GROUP_DECL(NDSR2, Y1);
  664. #define V4 99
  665. #define V4_DESC SIG_DESC_SET(SCU84, 27)
  666. SIG_EXPR_DECL_SINGLE(VPIOB5, VPI18, VPI18_DESC, V4_DESC);
  667. SIG_EXPR_DECL_SINGLE(VPIOB5, VPI24, VPI24_DESC, V4_DESC);
  668. SIG_EXPR_DECL_SINGLE(VPIOB5, VPI30, VPI30_DESC, V4_DESC);
  669. SIG_EXPR_LIST_DECL(VPIOB5, VPI,
  670. SIG_EXPR_PTR(VPIOB5, VPI18),
  671. SIG_EXPR_PTR(VPIOB5, VPI24),
  672. SIG_EXPR_PTR(VPIOB5, VPI30));
  673. SIG_EXPR_LIST_ALIAS(V4, VPIOB5, VPI);
  674. SIG_EXPR_LIST_DECL_SINGLE(V4, NRI2, NRI2, V4_DESC);
  675. PIN_DECL_2(V4, GPIOM3, VPIOB5, NRI2);
  676. FUNC_GROUP_DECL(NRI2, V4);
  677. #define W3 100
  678. #define W3_DESC SIG_DESC_SET(SCU84, 28)
  679. SIG_EXPR_DECL_SINGLE(VPIOB6, VPI18, VPI18_DESC, W3_DESC);
  680. SIG_EXPR_DECL_SINGLE(VPIOB6, VPI24, VPI24_DESC, W3_DESC);
  681. SIG_EXPR_DECL_SINGLE(VPIOB6, VPI30, VPI30_DESC, W3_DESC);
  682. SIG_EXPR_LIST_DECL(VPIOB6, VPI,
  683. SIG_EXPR_PTR(VPIOB6, VPI18),
  684. SIG_EXPR_PTR(VPIOB6, VPI24),
  685. SIG_EXPR_PTR(VPIOB6, VPI30));
  686. SIG_EXPR_LIST_ALIAS(W3, VPIOB6, VPI);
  687. SIG_EXPR_LIST_DECL_SINGLE(W3, NDTR2, NDTR2, W3_DESC);
  688. PIN_DECL_2(W3, GPIOM4, VPIOB6, NDTR2);
  689. FUNC_GROUP_DECL(NDTR2, W3);
  690. #define Y2 101
  691. #define Y2_DESC SIG_DESC_SET(SCU84, 29)
  692. SIG_EXPR_DECL_SINGLE(VPIOB7, VPI18, VPI18_DESC, Y2_DESC);
  693. SIG_EXPR_DECL_SINGLE(VPIOB7, VPI24, VPI24_DESC, Y2_DESC);
  694. SIG_EXPR_DECL_SINGLE(VPIOB7, VPI30, VPI30_DESC, Y2_DESC);
  695. SIG_EXPR_LIST_DECL(VPIOB7, VPI,
  696. SIG_EXPR_PTR(VPIOB7, VPI18),
  697. SIG_EXPR_PTR(VPIOB7, VPI24),
  698. SIG_EXPR_PTR(VPIOB7, VPI30));
  699. SIG_EXPR_LIST_ALIAS(Y2, VPIOB7, VPI);
  700. SIG_EXPR_LIST_DECL_SINGLE(Y2, NRTS2, NRTS2, Y2_DESC);
  701. PIN_DECL_2(Y2, GPIOM5, VPIOB7, NRTS2);
  702. FUNC_GROUP_DECL(NRTS2, Y2);
  703. #define AA1 102
  704. #define AA1_DESC SIG_DESC_SET(SCU84, 30)
  705. SIG_EXPR_DECL_SINGLE(VPIOB8, VPI18, VPI18_DESC, AA1_DESC);
  706. SIG_EXPR_DECL_SINGLE(VPIOB8, VPI24, VPI24_DESC, AA1_DESC);
  707. SIG_EXPR_DECL_SINGLE(VPIOB8, VPI30, VPI30_DESC, AA1_DESC);
  708. SIG_EXPR_LIST_DECL(VPIOB8, VPI,
  709. SIG_EXPR_PTR(VPIOB8, VPI18),
  710. SIG_EXPR_PTR(VPIOB8, VPI24),
  711. SIG_EXPR_PTR(VPIOB8, VPI30));
  712. SIG_EXPR_LIST_ALIAS(AA1, VPIOB8, VPI);
  713. SIG_EXPR_LIST_DECL_SINGLE(AA1, TXD2, TXD2, AA1_DESC);
  714. PIN_DECL_2(AA1, GPIOM6, VPIOB8, TXD2);
  715. FUNC_GROUP_DECL(TXD2, AA1);
  716. #define V5 103
  717. #define V5_DESC SIG_DESC_SET(SCU84, 31)
  718. SIG_EXPR_DECL_SINGLE(VPIOB9, VPI18, VPI18_DESC, V5_DESC);
  719. SIG_EXPR_DECL_SINGLE(VPIOB9, VPI24, VPI24_DESC, V5_DESC);
  720. SIG_EXPR_DECL_SINGLE(VPIOB9, VPI30, VPI30_DESC, V5_DESC);
  721. SIG_EXPR_LIST_DECL(VPIOB9, VPI,
  722. SIG_EXPR_PTR(VPIOB9, VPI18),
  723. SIG_EXPR_PTR(VPIOB9, VPI24),
  724. SIG_EXPR_PTR(VPIOB9, VPI30));
  725. SIG_EXPR_LIST_ALIAS(V5, VPIOB9, VPI);
  726. SIG_EXPR_LIST_DECL_SINGLE(V5, RXD2, RXD2, V5_DESC);
  727. PIN_DECL_2(V5, GPIOM7, VPIOB9, RXD2);
  728. FUNC_GROUP_DECL(RXD2, V5);
  729. #define W4 104
  730. #define W4_DESC SIG_DESC_SET(SCU88, 0)
  731. SIG_EXPR_LIST_DECL_SINGLE(W4, VPIG0, VPI30, VPI30_DESC, W4_DESC);
  732. SIG_EXPR_LIST_DECL_SINGLE(W4, PWM0, PWM0, W4_DESC);
  733. PIN_DECL_2(W4, GPION0, VPIG0, PWM0);
  734. FUNC_GROUP_DECL(PWM0, W4);
  735. #define Y3 105
  736. #define Y3_DESC SIG_DESC_SET(SCU88, 1)
  737. SIG_EXPR_LIST_DECL_SINGLE(Y3, VPIG1, VPI30, VPI30_DESC, Y3_DESC);
  738. SIG_EXPR_LIST_DECL_SINGLE(Y3, PWM1, PWM1, Y3_DESC);
  739. PIN_DECL_2(Y3, GPION1, VPIG1, PWM1);
  740. FUNC_GROUP_DECL(PWM1, Y3);
  741. #define AA2 106
  742. #define AA2_DESC SIG_DESC_SET(SCU88, 2)
  743. SIG_EXPR_DECL_SINGLE(VPIG2, VPI18, VPI18_DESC, AA2_DESC);
  744. SIG_EXPR_DECL_SINGLE(VPIG2, VPI24, VPI24_DESC, AA2_DESC);
  745. SIG_EXPR_DECL_SINGLE(VPIG2, VPI30, VPI30_DESC, AA2_DESC);
  746. SIG_EXPR_LIST_DECL(VPIG2, VPI,
  747. SIG_EXPR_PTR(VPIG2, VPI18),
  748. SIG_EXPR_PTR(VPIG2, VPI24),
  749. SIG_EXPR_PTR(VPIG2, VPI30));
  750. SIG_EXPR_LIST_ALIAS(AA2, VPIG2, VPI);
  751. SIG_EXPR_LIST_DECL_SINGLE(AA2, PWM2, PWM2, AA2_DESC);
  752. PIN_DECL_2(AA2, GPION2, VPIG2, PWM2);
  753. FUNC_GROUP_DECL(PWM2, AA2);
  754. #define AB1 107
  755. #define AB1_DESC SIG_DESC_SET(SCU88, 3)
  756. SIG_EXPR_DECL_SINGLE(VPIG3, VPI18, VPI18_DESC, AB1_DESC);
  757. SIG_EXPR_DECL_SINGLE(VPIG3, VPI24, VPI24_DESC, AB1_DESC);
  758. SIG_EXPR_DECL_SINGLE(VPIG3, VPI30, VPI30_DESC, AB1_DESC);
  759. SIG_EXPR_LIST_DECL(VPIG3, VPI,
  760. SIG_EXPR_PTR(VPIG3, VPI18),
  761. SIG_EXPR_PTR(VPIG3, VPI24),
  762. SIG_EXPR_PTR(VPIG3, VPI30));
  763. SIG_EXPR_LIST_ALIAS(AB1, VPIG3, VPI);
  764. SIG_EXPR_LIST_DECL_SINGLE(AB1, PWM3, PWM3, AB1_DESC);
  765. PIN_DECL_2(AB1, GPION3, VPIG3, PWM3);
  766. FUNC_GROUP_DECL(PWM3, AB1);
  767. #define W5 108
  768. #define W5_DESC SIG_DESC_SET(SCU88, 4)
  769. SIG_EXPR_DECL_SINGLE(VPIG4, VPI18, VPI18_DESC, W5_DESC);
  770. SIG_EXPR_DECL_SINGLE(VPIG4, VPI24, VPI24_DESC, W5_DESC);
  771. SIG_EXPR_DECL_SINGLE(VPIG4, VPI30, VPI30_DESC, W5_DESC);
  772. SIG_EXPR_LIST_DECL(VPIG4, VPI,
  773. SIG_EXPR_PTR(VPIG4, VPI18),
  774. SIG_EXPR_PTR(VPIG4, VPI24),
  775. SIG_EXPR_PTR(VPIG4, VPI30));
  776. SIG_EXPR_LIST_ALIAS(W5, VPIG4, VPI);
  777. SIG_EXPR_LIST_DECL_SINGLE(W5, PWM4, PWM4, W5_DESC);
  778. PIN_DECL_2(W5, GPION4, VPIG4, PWM4);
  779. FUNC_GROUP_DECL(PWM4, W5);
  780. #define Y4 109
  781. #define Y4_DESC SIG_DESC_SET(SCU88, 5)
  782. SIG_EXPR_DECL_SINGLE(VPIG5, VPI18, VPI18_DESC, Y4_DESC);
  783. SIG_EXPR_DECL_SINGLE(VPIG5, VPI24, VPI24_DESC, Y4_DESC);
  784. SIG_EXPR_DECL_SINGLE(VPIG5, VPI30, VPI30_DESC, Y4_DESC);
  785. SIG_EXPR_LIST_DECL(VPIG5, VPI,
  786. SIG_EXPR_PTR(VPIG5, VPI18),
  787. SIG_EXPR_PTR(VPIG5, VPI24),
  788. SIG_EXPR_PTR(VPIG5, VPI30));
  789. SIG_EXPR_LIST_ALIAS(Y4, VPIG5, VPI);
  790. SIG_EXPR_LIST_DECL_SINGLE(Y4, PWM5, PWM5, Y4_DESC);
  791. PIN_DECL_2(Y4, GPION5, VPIG5, PWM5);
  792. FUNC_GROUP_DECL(PWM5, Y4);
  793. #define AA3 110
  794. #define AA3_DESC SIG_DESC_SET(SCU88, 6)
  795. SIG_EXPR_LIST_DECL_SINGLE(AA3, VPIG6, VPI30, VPI30_DESC, AA3_DESC);
  796. SIG_EXPR_LIST_DECL_SINGLE(AA3, PWM6, PWM6, AA3_DESC);
  797. PIN_DECL_2(AA3, GPION6, VPIG6, PWM6);
  798. FUNC_GROUP_DECL(PWM6, AA3);
  799. #define AB2 111
  800. #define AB2_DESC SIG_DESC_SET(SCU88, 7)
  801. SIG_EXPR_LIST_DECL_SINGLE(AB2, VPIG7, VPI30, VPI30_DESC, AB2_DESC);
  802. SIG_EXPR_LIST_DECL_SINGLE(AB2, PWM7, PWM7, AB2_DESC);
  803. PIN_DECL_2(AB2, GPION7, VPIG7, PWM7);
  804. FUNC_GROUP_DECL(PWM7, AB2);
  805. #define V6 112
  806. SIG_EXPR_LIST_DECL_SINGLE(V6, VPIG8, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 8));
  807. PIN_DECL_1(V6, GPIOO0, VPIG8);
  808. #define Y5 113
  809. SIG_EXPR_LIST_DECL_SINGLE(Y5, VPIG9, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 9));
  810. PIN_DECL_1(Y5, GPIOO1, VPIG9);
  811. #define AA4 114
  812. SIG_EXPR_LIST_DECL_SINGLE(AA4, VPIR0, VPI30, VPI30_DESC,
  813. SIG_DESC_SET(SCU88, 10));
  814. PIN_DECL_1(AA4, GPIOO2, VPIR0);
  815. #define AB3 115
  816. SIG_EXPR_LIST_DECL_SINGLE(AB3, VPIR1, VPI30, VPI30_DESC,
  817. SIG_DESC_SET(SCU88, 11));
  818. PIN_DECL_1(AB3, GPIOO3, VPIR1);
  819. #define W6 116
  820. SIG_EXPR_LIST_DECL_SINGLE(W6, VPIR2, VPI24, VPI24_DESC,
  821. SIG_DESC_SET(SCU88, 12));
  822. PIN_DECL_1(W6, GPIOO4, VPIR2);
  823. #define AA5 117
  824. SIG_EXPR_LIST_DECL_SINGLE(AA5, VPIR3, VPI24, VPI24_DESC,
  825. SIG_DESC_SET(SCU88, 13));
  826. PIN_DECL_1(AA5, GPIOO5, VPIR3);
  827. #define AB4 118
  828. SIG_EXPR_LIST_DECL_SINGLE(AB4, VPIR4, VPI24, VPI24_DESC,
  829. SIG_DESC_SET(SCU88, 14));
  830. PIN_DECL_1(AB4, GPIOO6, VPIR4);
  831. #define V7 119
  832. SIG_EXPR_LIST_DECL_SINGLE(V7, VPIR5, VPI24, VPI24_DESC,
  833. SIG_DESC_SET(SCU88, 15));
  834. PIN_DECL_1(V7, GPIOO7, VPIR5);
  835. #define Y6 120
  836. SIG_EXPR_LIST_DECL_SINGLE(Y6, VPIR6, VPI24, VPI24_DESC,
  837. SIG_DESC_SET(SCU88, 16));
  838. PIN_DECL_1(Y6, GPIOP0, VPIR6);
  839. #define AB5 121
  840. SIG_EXPR_LIST_DECL_SINGLE(AB5, VPIR7, VPI24, VPI24_DESC,
  841. SIG_DESC_SET(SCU88, 17));
  842. PIN_DECL_1(AB5, GPIOP1, VPIR7);
  843. #define W7 122
  844. SIG_EXPR_LIST_DECL_SINGLE(W7, VPIR8, VPI24, VPI24_DESC,
  845. SIG_DESC_SET(SCU88, 18));
  846. PIN_DECL_1(W7, GPIOP2, VPIR8);
  847. #define AA6 123
  848. SIG_EXPR_LIST_DECL_SINGLE(AA6, VPIR9, VPI24, VPI24_DESC,
  849. SIG_DESC_SET(SCU88, 19));
  850. PIN_DECL_1(AA6, GPIOP3, VPIR9);
  851. FUNC_GROUP_DECL(VPI18, T5, U3, V1, U4, V2, V3, W2, Y1, V4, W3, Y2, AA1, V5,
  852. AA22, W5, Y4, AA3, AB2);
  853. FUNC_GROUP_DECL(VPI24, T5, U3, V1, U4, V2, V3, W2, Y1, V4, W3, Y2, AA1, V5,
  854. AA22, W5, Y4, AA3, AB2, V6, Y5, W6, AA5, AB4, V7, Y6, AB5, W7,
  855. AA6);
  856. FUNC_GROUP_DECL(VPI30, T5, U3, V1, U4, V2, W1, U5, V3, W2, Y1, V4, W3, Y2, AA1,
  857. V5, W4, Y3, AA22, W5, Y4, AA3, AB2, AA4, AB3);
  858. #define AB6 124
  859. SIG_EXPR_LIST_DECL_SINGLE(AB6, GPIOP4, GPIOP4);
  860. PIN_DECL_(AB6, SIG_EXPR_LIST_PTR(AB6, GPIOP4));
  861. #define Y7 125
  862. SIG_EXPR_LIST_DECL_SINGLE(Y7, GPIOP5, GPIOP5);
  863. PIN_DECL_(Y7, SIG_EXPR_LIST_PTR(Y7, GPIOP5));
  864. #define AA7 126
  865. SSSF_PIN_DECL(AA7, GPIOP6, BMCINT, SIG_DESC_SET(SCU88, 22));
  866. #define AB7 127
  867. SSSF_PIN_DECL(AB7, GPIOP7, FLACK, SIG_DESC_SET(SCU88, 23));
  868. #define I2C3_DESC SIG_DESC_SET(SCU90, 16)
  869. #define D3 128
  870. SIG_EXPR_LIST_DECL_SINGLE(D3, SCL3, I2C3, I2C3_DESC);
  871. PIN_DECL_1(D3, GPIOQ0, SCL3);
  872. #define C2 129
  873. SIG_EXPR_LIST_DECL_SINGLE(C2, SDA3, I2C3, I2C3_DESC);
  874. PIN_DECL_1(C2, GPIOQ1, SDA3);
  875. FUNC_GROUP_DECL(I2C3, D3, C2);
  876. #define I2C4_DESC SIG_DESC_SET(SCU90, 17)
  877. #define B1 130
  878. SIG_EXPR_LIST_DECL_SINGLE(B1, SCL4, I2C4, I2C4_DESC);
  879. PIN_DECL_1(B1, GPIOQ2, SCL4);
  880. #define F5 131
  881. SIG_EXPR_LIST_DECL_SINGLE(F5, SDA4, I2C4, I2C4_DESC);
  882. PIN_DECL_1(F5, GPIOQ3, SDA4);
  883. FUNC_GROUP_DECL(I2C4, B1, F5);
  884. #define I2C14_DESC SIG_DESC_SET(SCU90, 27)
  885. #define H4 132
  886. SIG_EXPR_LIST_DECL_SINGLE(H4, SCL14, I2C14, I2C14_DESC);
  887. PIN_DECL_1(H4, GPIOQ4, SCL14);
  888. #define H3 133
  889. SIG_EXPR_LIST_DECL_SINGLE(H3, SDA14, I2C14, I2C14_DESC);
  890. PIN_DECL_1(H3, GPIOQ5, SDA14);
  891. FUNC_GROUP_DECL(I2C14, H4, H3);
  892. /*
  893. * There are several opportunities to document USB port 4 in the datasheet, but
  894. * it is only mentioned in one location. Particularly, the Multi-function Pins
  895. * Mapping and Control table in the datasheet elides the signal names,
  896. * suggesting that port 4 may not actually be functional. As such we define the
  897. * signal names and control bit, but don't export the capability's function or
  898. * group.
  899. */
  900. #define USB11H3_DESC SIG_DESC_SET(SCU90, 28)
  901. #define H2 134
  902. SIG_EXPR_LIST_DECL_SINGLE(H2, USB11HDP3, USB11H3, USB11H3_DESC);
  903. PIN_DECL_1(H2, GPIOQ6, USB11HDP3);
  904. #define H1 135
  905. SIG_EXPR_LIST_DECL_SINGLE(H1, USB11HDN3, USB11H3, USB11H3_DESC);
  906. PIN_DECL_1(H1, GPIOQ7, USB11HDN3);
  907. #define V20 136
  908. SSSF_PIN_DECL(V20, GPIOR0, ROMCS1, SIG_DESC_SET(SCU88, 24));
  909. #define W21 137
  910. SSSF_PIN_DECL(W21, GPIOR1, ROMCS2, SIG_DESC_SET(SCU88, 25));
  911. #define Y22 138
  912. SSSF_PIN_DECL(Y22, GPIOR2, ROMCS3, SIG_DESC_SET(SCU88, 26));
  913. #define U19 139
  914. SSSF_PIN_DECL(U19, GPIOR3, ROMCS4, SIG_DESC_SET(SCU88, 27));
  915. #define VPOOFF0_DESC { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 0, 0 }
  916. #define VPO12_DESC { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 1, 0 }
  917. #define VPO24_DESC { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 2, 0 }
  918. #define VPOOFF1_DESC { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 3, 0 }
  919. #define VPO_OFF_12 { ASPEED_IP_SCU, SCU94, 0x2, 0, 0 }
  920. #define VPO_24_OFF SIG_DESC_SET(SCU94, 1)
  921. #define V21 140
  922. #define V21_DESC SIG_DESC_SET(SCU88, 28)
  923. SIG_EXPR_DECL_SINGLE(ROMA24, ROM8, V21_DESC, VPO_OFF_12);
  924. SIG_EXPR_DECL_SINGLE(ROMA24, ROM16, V21_DESC, VPO_OFF_12);
  925. SIG_EXPR_DECL_SINGLE(ROMA24, ROM16S, V21_DESC, VPO_OFF_12);
  926. SIG_EXPR_LIST_DECL(ROMA24, ROM,
  927. SIG_EXPR_PTR(ROMA24, ROM8),
  928. SIG_EXPR_PTR(ROMA24, ROM16),
  929. SIG_EXPR_PTR(ROMA24, ROM16S));
  930. SIG_EXPR_LIST_ALIAS(V21, ROMA24, ROM);
  931. SIG_EXPR_LIST_DECL_SINGLE(V21, VPOR6, VPO24, V21_DESC, VPO_24_OFF);
  932. PIN_DECL_2(V21, GPIOR4, ROMA24, VPOR6);
  933. #define W22 141
  934. #define W22_DESC SIG_DESC_SET(SCU88, 29)
  935. SIG_EXPR_DECL_SINGLE(ROMA25, ROM8, W22_DESC, VPO_OFF_12);
  936. SIG_EXPR_DECL_SINGLE(ROMA25, ROM16, W22_DESC, VPO_OFF_12);
  937. SIG_EXPR_DECL_SINGLE(ROMA25, ROM16S, W22_DESC, VPO_OFF_12);
  938. SIG_EXPR_LIST_DECL(ROMA25, ROM,
  939. SIG_EXPR_PTR(ROMA25, ROM8),
  940. SIG_EXPR_PTR(ROMA25, ROM16),
  941. SIG_EXPR_PTR(ROMA25, ROM16S));
  942. SIG_EXPR_LIST_ALIAS(W22, ROMA25, ROM);
  943. SIG_EXPR_LIST_DECL_SINGLE(W22, VPOR7, VPO24, W22_DESC, VPO_24_OFF);
  944. PIN_DECL_2(W22, GPIOR5, ROMA25, VPOR7);
  945. #define C6 142
  946. SIG_EXPR_LIST_DECL_SINGLE(C6, MDC1, MDIO1, SIG_DESC_SET(SCU88, 30));
  947. PIN_DECL_1(C6, GPIOR6, MDC1);
  948. #define A5 143
  949. SIG_EXPR_LIST_DECL_SINGLE(A5, MDIO1, MDIO1, SIG_DESC_SET(SCU88, 31));
  950. PIN_DECL_1(A5, GPIOR7, MDIO1);
  951. FUNC_GROUP_DECL(MDIO1, C6, A5);
  952. #define U21 144
  953. #define U21_DESC SIG_DESC_SET(SCU8C, 0)
  954. SIG_EXPR_DECL_SINGLE(ROMD4, ROM8, U21_DESC, VPOOFF0_DESC);
  955. SIG_EXPR_DECL_SINGLE(ROMD4, ROM16, U21_DESC, VPOOFF0_DESC);
  956. SIG_EXPR_DECL_SINGLE(ROMD4, ROM16S, U21_DESC, VPOOFF0_DESC);
  957. SIG_EXPR_LIST_DECL(ROMD4, ROM,
  958. SIG_EXPR_PTR(ROMD4, ROM8),
  959. SIG_EXPR_PTR(ROMD4, ROM16),
  960. SIG_EXPR_PTR(ROMD4, ROM16S));
  961. SIG_EXPR_LIST_ALIAS(U21, ROMD4, ROM);
  962. SIG_EXPR_DECL_SINGLE(VPODE, VPO12, U21_DESC, VPO12_DESC);
  963. SIG_EXPR_DECL_SINGLE(VPODE, VPO24, U21_DESC, VPO12_DESC);
  964. SIG_EXPR_LIST_DECL_DUAL(U21, VPODE, VPO12, VPO24);
  965. PIN_DECL_2(U21, GPIOS0, ROMD4, VPODE);
  966. #define T19 145
  967. #define T19_DESC SIG_DESC_SET(SCU8C, 1)
  968. SIG_EXPR_DECL_SINGLE(ROMD5, ROM8, T19_DESC, VPOOFF0_DESC);
  969. SIG_EXPR_DECL_SINGLE(ROMD5, ROM16, T19_DESC, VPOOFF0_DESC);
  970. SIG_EXPR_DECL_SINGLE(ROMD5, ROM16S, T19_DESC, VPOOFF0_DESC);
  971. SIG_EXPR_LIST_DECL(ROMD5, ROM,
  972. SIG_EXPR_PTR(ROMD5, ROM8),
  973. SIG_EXPR_PTR(ROMD5, ROM16),
  974. SIG_EXPR_PTR(ROMD5, ROM16S));
  975. SIG_EXPR_LIST_ALIAS(T19, ROMD5, ROM);
  976. SIG_EXPR_DECL_SINGLE(VPOHS, VPO12, T19_DESC, VPO12_DESC);
  977. SIG_EXPR_DECL_SINGLE(VPOHS, VPO24, T19_DESC, VPO24_DESC);
  978. SIG_EXPR_LIST_DECL_DUAL(T19, VPOHS, VPO12, VPO24);
  979. PIN_DECL_2(T19, GPIOS1, ROMD5, VPOHS);
  980. #define V22 146
  981. #define V22_DESC SIG_DESC_SET(SCU8C, 2)
  982. SIG_EXPR_DECL_SINGLE(ROMD6, ROM8, V22_DESC, VPOOFF0_DESC);
  983. SIG_EXPR_DECL_SINGLE(ROMD6, ROM16, V22_DESC, VPOOFF0_DESC);
  984. SIG_EXPR_DECL_SINGLE(ROMD6, ROM16S, V22_DESC, VPOOFF0_DESC);
  985. SIG_EXPR_LIST_DECL(ROMD6, ROM,
  986. SIG_EXPR_PTR(ROMD6, ROM8),
  987. SIG_EXPR_PTR(ROMD6, ROM16),
  988. SIG_EXPR_PTR(ROMD6, ROM16S));
  989. SIG_EXPR_LIST_ALIAS(V22, ROMD6, ROM);
  990. SIG_EXPR_DECL_SINGLE(VPOVS, VPO12, V22_DESC, VPO12_DESC);
  991. SIG_EXPR_DECL_SINGLE(VPOVS, VPO24, V22_DESC, VPO24_DESC);
  992. SIG_EXPR_LIST_DECL_DUAL(V22, VPOVS, VPO12, VPO24);
  993. PIN_DECL_2(V22, GPIOS2, ROMD6, VPOVS);
  994. #define U20 147
  995. #define U20_DESC SIG_DESC_SET(SCU8C, 3)
  996. SIG_EXPR_DECL_SINGLE(ROMD7, ROM8, U20_DESC, VPOOFF0_DESC);
  997. SIG_EXPR_DECL_SINGLE(ROMD7, ROM16, U20_DESC, VPOOFF0_DESC);
  998. SIG_EXPR_DECL_SINGLE(ROMD7, ROM16S, U20_DESC, VPOOFF0_DESC);
  999. SIG_EXPR_LIST_DECL(ROMD7, ROM,
  1000. SIG_EXPR_PTR(ROMD7, ROM8),
  1001. SIG_EXPR_PTR(ROMD7, ROM16),
  1002. SIG_EXPR_PTR(ROMD7, ROM16S));
  1003. SIG_EXPR_LIST_ALIAS(U20, ROMD7, ROM);
  1004. SIG_EXPR_DECL_SINGLE(VPOCLK, VPO12, U20_DESC, VPO12_DESC);
  1005. SIG_EXPR_DECL_SINGLE(VPOCLK, VPO24, U20_DESC, VPO24_DESC);
  1006. SIG_EXPR_LIST_DECL_DUAL(U20, VPOCLK, VPO12, VPO24);
  1007. PIN_DECL_2(U20, GPIOS3, ROMD7, VPOCLK);
  1008. #define R18 148
  1009. #define ROMOE_DESC SIG_DESC_SET(SCU8C, 4)
  1010. SIG_EXPR_LIST_DECL_SINGLE(R18, GPIOS4, GPIOS4);
  1011. SIG_EXPR_DECL_SINGLE(ROMOE, ROM8, ROMOE_DESC);
  1012. SIG_EXPR_DECL_SINGLE(ROMOE, ROM16, ROMOE_DESC);
  1013. SIG_EXPR_DECL_SINGLE(ROMOE, ROM16S, ROMOE_DESC);
  1014. SIG_EXPR_LIST_DECL(ROMOE, ROM,
  1015. SIG_EXPR_PTR(ROMOE, ROM8),
  1016. SIG_EXPR_PTR(ROMOE, ROM16),
  1017. SIG_EXPR_PTR(ROMOE, ROM16S));
  1018. SIG_EXPR_LIST_ALIAS(R18, ROMOE, ROM);
  1019. PIN_DECL_(R18, SIG_EXPR_LIST_PTR(R18, ROMOE), SIG_EXPR_LIST_PTR(R18, GPIOS4));
  1020. #define N21 149
  1021. #define ROMWE_DESC SIG_DESC_SET(SCU8C, 5)
  1022. SIG_EXPR_LIST_DECL_SINGLE(N21, GPIOS5, GPIOS5);
  1023. SIG_EXPR_DECL_SINGLE(ROMWE, ROM8, ROMWE_DESC);
  1024. SIG_EXPR_DECL_SINGLE(ROMWE, ROM16, ROMWE_DESC);
  1025. SIG_EXPR_DECL_SINGLE(ROMWE, ROM16S, ROMWE_DESC);
  1026. SIG_EXPR_LIST_DECL(ROMWE, ROM,
  1027. SIG_EXPR_PTR(ROMWE, ROM8),
  1028. SIG_EXPR_PTR(ROMWE, ROM16),
  1029. SIG_EXPR_PTR(ROMWE, ROM16S));
  1030. SIG_EXPR_LIST_ALIAS(N21, ROMWE, ROM);
  1031. PIN_DECL_(N21, SIG_EXPR_LIST_PTR(N21, ROMWE), SIG_EXPR_LIST_PTR(N21, GPIOS5));
  1032. #define L22 150
  1033. #define L22_DESC SIG_DESC_SET(SCU8C, 6)
  1034. SIG_EXPR_DECL_SINGLE(ROMA22, ROM8, L22_DESC, VPO_OFF_12);
  1035. SIG_EXPR_DECL_SINGLE(ROMA22, ROM16, L22_DESC, VPO_OFF_12);
  1036. SIG_EXPR_DECL_SINGLE(ROMA22, ROM16S, L22_DESC, VPO_OFF_12);
  1037. SIG_EXPR_LIST_DECL(ROMA22, ROM,
  1038. SIG_EXPR_PTR(ROMA22, ROM8),
  1039. SIG_EXPR_PTR(ROMA22, ROM16),
  1040. SIG_EXPR_PTR(ROMA22, ROM16S));
  1041. SIG_EXPR_LIST_ALIAS(L22, ROMA22, ROM);
  1042. SIG_EXPR_LIST_DECL_SINGLE(L22, VPOR4, VPO24, L22_DESC, VPO_24_OFF);
  1043. PIN_DECL_2(L22, GPIOS6, ROMA22, VPOR4);
  1044. #define K18 151
  1045. #define K18_DESC SIG_DESC_SET(SCU8C, 7)
  1046. SIG_EXPR_DECL_SINGLE(ROMA23, ROM8, K18_DESC, VPO_OFF_12);
  1047. SIG_EXPR_DECL_SINGLE(ROMA23, ROM16, K18_DESC, VPO_OFF_12);
  1048. SIG_EXPR_DECL_SINGLE(ROMA23, ROM16S, K18_DESC, VPO_OFF_12);
  1049. SIG_EXPR_LIST_DECL(ROMA23, ROM,
  1050. SIG_EXPR_PTR(ROMA23, ROM8),
  1051. SIG_EXPR_PTR(ROMA23, ROM16),
  1052. SIG_EXPR_PTR(ROMA23, ROM16S));
  1053. SIG_EXPR_LIST_ALIAS(K18, ROMA23, ROM);
  1054. SIG_EXPR_LIST_DECL_SINGLE(K18, VPOR5, VPO24, K18_DESC, VPO_24_OFF);
  1055. PIN_DECL_2(K18, GPIOS7, ROMA23, VPOR5);
  1056. #define RMII1_DESC SIG_DESC_BIT(HW_STRAP1, 6, 0)
  1057. #define A12 152
  1058. SIG_EXPR_LIST_DECL_SINGLE(A12, GPIOT0, GPIOT0, SIG_DESC_SET(SCUA0, 0));
  1059. SIG_EXPR_LIST_DECL_SINGLE(A12, RMII1TXEN, RMII1, RMII1_DESC);
  1060. SIG_EXPR_LIST_DECL_SINGLE(A12, RGMII1TXCK, RGMII1);
  1061. PIN_DECL_(A12, SIG_EXPR_LIST_PTR(A12, GPIOT0),
  1062. SIG_EXPR_LIST_PTR(A12, RMII1TXEN),
  1063. SIG_EXPR_LIST_PTR(A12, RGMII1TXCK));
  1064. #define B12 153
  1065. SIG_EXPR_LIST_DECL_SINGLE(B12, GPIOT1, GPIOT1, SIG_DESC_SET(SCUA0, 1));
  1066. SIG_EXPR_LIST_DECL_SINGLE(B12, DASHB12, RMII1, RMII1_DESC);
  1067. SIG_EXPR_LIST_DECL_SINGLE(B12, RGMII1TXCTL, RGMII1);
  1068. PIN_DECL_(B12, SIG_EXPR_LIST_PTR(B12, GPIOT1), SIG_EXPR_LIST_PTR(B12, DASHB12),
  1069. SIG_EXPR_LIST_PTR(B12, RGMII1TXCTL));
  1070. #define C12 154
  1071. SIG_EXPR_LIST_DECL_SINGLE(C12, GPIOT2, GPIOT2, SIG_DESC_SET(SCUA0, 2));
  1072. SIG_EXPR_LIST_DECL_SINGLE(C12, RMII1TXD0, RMII1, RMII1_DESC);
  1073. SIG_EXPR_LIST_DECL_SINGLE(C12, RGMII1TXD0, RGMII1);
  1074. PIN_DECL_(C12, SIG_EXPR_LIST_PTR(C12, GPIOT2),
  1075. SIG_EXPR_LIST_PTR(C12, RMII1TXD0),
  1076. SIG_EXPR_LIST_PTR(C12, RGMII1TXD0));
  1077. #define D12 155
  1078. SIG_EXPR_LIST_DECL_SINGLE(D12, GPIOT3, GPIOT3, SIG_DESC_SET(SCUA0, 3));
  1079. SIG_EXPR_LIST_DECL_SINGLE(D12, RMII1TXD1, RMII1, RMII1_DESC);
  1080. SIG_EXPR_LIST_DECL_SINGLE(D12, RGMII1TXD1, RGMII1);
  1081. PIN_DECL_(D12, SIG_EXPR_LIST_PTR(D12, GPIOT3),
  1082. SIG_EXPR_LIST_PTR(D12, RMII1TXD1),
  1083. SIG_EXPR_LIST_PTR(D12, RGMII1TXD1));
  1084. #define E12 156
  1085. SIG_EXPR_LIST_DECL_SINGLE(E12, GPIOT4, GPIOT4, SIG_DESC_SET(SCUA0, 4));
  1086. SIG_EXPR_LIST_DECL_SINGLE(E12, DASHE12, RMII1, RMII1_DESC);
  1087. SIG_EXPR_LIST_DECL_SINGLE(E12, RGMII1TXD2, RGMII1);
  1088. PIN_DECL_(E12, SIG_EXPR_LIST_PTR(E12, GPIOT4), SIG_EXPR_LIST_PTR(E12, DASHE12),
  1089. SIG_EXPR_LIST_PTR(E12, RGMII1TXD2));
  1090. #define A13 157
  1091. SIG_EXPR_LIST_DECL_SINGLE(A13, GPIOT5, GPIOT5, SIG_DESC_SET(SCUA0, 5));
  1092. SIG_EXPR_LIST_DECL_SINGLE(A13, DASHA13, RMII1, RMII1_DESC);
  1093. SIG_EXPR_LIST_DECL_SINGLE(A13, RGMII1TXD3, RGMII1);
  1094. PIN_DECL_(A13, SIG_EXPR_LIST_PTR(A13, GPIOT5), SIG_EXPR_LIST_PTR(A13, DASHA13),
  1095. SIG_EXPR_LIST_PTR(A13, RGMII1TXD3));
  1096. #define RMII2_DESC SIG_DESC_BIT(HW_STRAP1, 7, 0)
  1097. #define D9 158
  1098. SIG_EXPR_LIST_DECL_SINGLE(D9, GPIOT6, GPIOT6, SIG_DESC_SET(SCUA0, 6));
  1099. SIG_EXPR_LIST_DECL_SINGLE(D9, RMII2TXEN, RMII2, RMII2_DESC);
  1100. SIG_EXPR_LIST_DECL_SINGLE(D9, RGMII2TXCK, RGMII2);
  1101. PIN_DECL_(D9, SIG_EXPR_LIST_PTR(D9, GPIOT6), SIG_EXPR_LIST_PTR(D9, RMII2TXEN),
  1102. SIG_EXPR_LIST_PTR(D9, RGMII2TXCK));
  1103. #define E9 159
  1104. SIG_EXPR_LIST_DECL_SINGLE(E9, GPIOT7, GPIOT7, SIG_DESC_SET(SCUA0, 7));
  1105. SIG_EXPR_LIST_DECL_SINGLE(E9, DASHE9, RMII2, RMII2_DESC);
  1106. SIG_EXPR_LIST_DECL_SINGLE(E9, RGMII2TXCTL, RGMII2);
  1107. PIN_DECL_(E9, SIG_EXPR_LIST_PTR(E9, GPIOT7), SIG_EXPR_LIST_PTR(E9, DASHE9),
  1108. SIG_EXPR_LIST_PTR(E9, RGMII2TXCTL));
  1109. #define A10 160
  1110. SIG_EXPR_LIST_DECL_SINGLE(A10, GPIOU0, GPIOU0, SIG_DESC_SET(SCUA0, 8));
  1111. SIG_EXPR_LIST_DECL_SINGLE(A10, RMII2TXD0, RMII2, RMII2_DESC);
  1112. SIG_EXPR_LIST_DECL_SINGLE(A10, RGMII2TXD0, RGMII2);
  1113. PIN_DECL_(A10, SIG_EXPR_LIST_PTR(A10, GPIOU0),
  1114. SIG_EXPR_LIST_PTR(A10, RMII2TXD0),
  1115. SIG_EXPR_LIST_PTR(A10, RGMII2TXD0));
  1116. #define B10 161
  1117. SIG_EXPR_LIST_DECL_SINGLE(B10, GPIOU1, GPIOU1, SIG_DESC_SET(SCUA0, 9));
  1118. SIG_EXPR_LIST_DECL_SINGLE(B10, RMII2TXD1, RMII2, RMII2_DESC);
  1119. SIG_EXPR_LIST_DECL_SINGLE(B10, RGMII2TXD1, RGMII2);
  1120. PIN_DECL_(B10, SIG_EXPR_LIST_PTR(B10, GPIOU1),
  1121. SIG_EXPR_LIST_PTR(B10, RMII2TXD1),
  1122. SIG_EXPR_LIST_PTR(B10, RGMII2TXD1));
  1123. #define C10 162
  1124. SIG_EXPR_LIST_DECL_SINGLE(C10, GPIOU2, GPIOU2, SIG_DESC_SET(SCUA0, 10));
  1125. SIG_EXPR_LIST_DECL_SINGLE(C10, DASHC10, RMII2, RMII2_DESC);
  1126. SIG_EXPR_LIST_DECL_SINGLE(C10, RGMII2TXD2, RGMII2);
  1127. PIN_DECL_(C10, SIG_EXPR_LIST_PTR(C10, GPIOU2), SIG_EXPR_LIST_PTR(C10, DASHC10),
  1128. SIG_EXPR_LIST_PTR(C10, RGMII2TXD2));
  1129. #define D10 163
  1130. SIG_EXPR_LIST_DECL_SINGLE(D10, GPIOU3, GPIOU3, SIG_DESC_SET(SCUA0, 11));
  1131. SIG_EXPR_LIST_DECL_SINGLE(D10, DASHD10, RMII2, RMII2_DESC);
  1132. SIG_EXPR_LIST_DECL_SINGLE(D10, RGMII2TXD3, RGMII2);
  1133. PIN_DECL_(D10, SIG_EXPR_LIST_PTR(D10, GPIOU3), SIG_EXPR_LIST_PTR(D10, DASHD10),
  1134. SIG_EXPR_LIST_PTR(D10, RGMII2TXD3));
  1135. #define E11 164
  1136. SIG_EXPR_LIST_DECL_SINGLE(E11, GPIOU4, GPIOU4, SIG_DESC_SET(SCUA0, 12));
  1137. SIG_EXPR_LIST_DECL_SINGLE(E11, RMII1RCLK, RMII1, RMII1_DESC);
  1138. SIG_EXPR_LIST_DECL_SINGLE(E11, RGMII1RXCK, RGMII1);
  1139. PIN_DECL_(E11, SIG_EXPR_LIST_PTR(E11, GPIOU4),
  1140. SIG_EXPR_LIST_PTR(E11, RMII1RCLK),
  1141. SIG_EXPR_LIST_PTR(E11, RGMII1RXCK));
  1142. #define D11 165
  1143. SIG_EXPR_LIST_DECL_SINGLE(D11, GPIOU5, GPIOU5, SIG_DESC_SET(SCUA0, 13));
  1144. SIG_EXPR_LIST_DECL_SINGLE(D11, DASHD11, RMII1, RMII1_DESC);
  1145. SIG_EXPR_LIST_DECL_SINGLE(D11, RGMII1RXCTL, RGMII1);
  1146. PIN_DECL_(D11, SIG_EXPR_LIST_PTR(D11, GPIOU5), SIG_EXPR_LIST_PTR(D11, DASHD11),
  1147. SIG_EXPR_LIST_PTR(D11, RGMII1RXCTL));
  1148. #define C11 166
  1149. SIG_EXPR_LIST_DECL_SINGLE(C11, GPIOU6, GPIOU6, SIG_DESC_SET(SCUA0, 14));
  1150. SIG_EXPR_LIST_DECL_SINGLE(C11, RMII1RXD0, RMII1, RMII1_DESC);
  1151. SIG_EXPR_LIST_DECL_SINGLE(C11, RGMII1RXD0, RGMII1);
  1152. PIN_DECL_(C11, SIG_EXPR_LIST_PTR(C11, GPIOU6),
  1153. SIG_EXPR_LIST_PTR(C11, RMII1RXD0),
  1154. SIG_EXPR_LIST_PTR(C11, RGMII1RXD0));
  1155. #define B11 167
  1156. SIG_EXPR_LIST_DECL_SINGLE(B11, GPIOU7, GPIOU7, SIG_DESC_SET(SCUA0, 15));
  1157. SIG_EXPR_LIST_DECL_SINGLE(B11, RMII1RXD1, RMII1, RMII1_DESC);
  1158. SIG_EXPR_LIST_DECL_SINGLE(B11, RGMII1RXD1, RGMII1);
  1159. PIN_DECL_(B11, SIG_EXPR_LIST_PTR(B11, GPIOU7),
  1160. SIG_EXPR_LIST_PTR(B11, RMII1RXD1),
  1161. SIG_EXPR_LIST_PTR(B11, RGMII1RXD1));
  1162. #define A11 168
  1163. SIG_EXPR_LIST_DECL_SINGLE(A11, GPIOV0, GPIOV0, SIG_DESC_SET(SCUA0, 16));
  1164. SIG_EXPR_LIST_DECL_SINGLE(A11, RMII1CRSDV, RMII1, RMII1_DESC);
  1165. SIG_EXPR_LIST_DECL_SINGLE(A11, RGMII1RXD2, RGMII1);
  1166. PIN_DECL_(A11, SIG_EXPR_LIST_PTR(A11, GPIOV0),
  1167. SIG_EXPR_LIST_PTR(A11, RMII1CRSDV),
  1168. SIG_EXPR_LIST_PTR(A11, RGMII1RXD2));
  1169. #define E10 169
  1170. SIG_EXPR_LIST_DECL_SINGLE(E10, GPIOV1, GPIOV1, SIG_DESC_SET(SCUA0, 17));
  1171. SIG_EXPR_LIST_DECL_SINGLE(E10, RMII1RXER, RMII1, RMII1_DESC);
  1172. SIG_EXPR_LIST_DECL_SINGLE(E10, RGMII1RXD3, RGMII1);
  1173. PIN_DECL_(E10, SIG_EXPR_LIST_PTR(E10, GPIOV1),
  1174. SIG_EXPR_LIST_PTR(E10, RMII1RXER),
  1175. SIG_EXPR_LIST_PTR(E10, RGMII1RXD3));
  1176. #define C9 170
  1177. SIG_EXPR_LIST_DECL_SINGLE(C9, GPIOV2, GPIOV2, SIG_DESC_SET(SCUA0, 18));
  1178. SIG_EXPR_LIST_DECL_SINGLE(C9, RMII2RCLK, RMII2, RMII2_DESC);
  1179. SIG_EXPR_LIST_DECL_SINGLE(C9, RGMII2RXCK, RGMII2);
  1180. PIN_DECL_(C9, SIG_EXPR_LIST_PTR(C9, GPIOV2), SIG_EXPR_LIST_PTR(C9, RMII2RCLK),
  1181. SIG_EXPR_LIST_PTR(C9, RGMII2RXCK));
  1182. #define B9 171
  1183. SIG_EXPR_LIST_DECL_SINGLE(B9, GPIOV3, GPIOV3, SIG_DESC_SET(SCUA0, 19));
  1184. SIG_EXPR_LIST_DECL_SINGLE(B9, DASHB9, RMII2, RMII2_DESC);
  1185. SIG_EXPR_LIST_DECL_SINGLE(B9, RGMII2RXCTL, RGMII2);
  1186. PIN_DECL_(B9, SIG_EXPR_LIST_PTR(B9, GPIOV3), SIG_EXPR_LIST_PTR(B9, DASHB9),
  1187. SIG_EXPR_LIST_PTR(B9, RGMII2RXCTL));
  1188. #define A9 172
  1189. SIG_EXPR_LIST_DECL_SINGLE(A9, GPIOV4, GPIOV4, SIG_DESC_SET(SCUA0, 20));
  1190. SIG_EXPR_LIST_DECL_SINGLE(A9, RMII2RXD0, RMII2, RMII2_DESC);
  1191. SIG_EXPR_LIST_DECL_SINGLE(A9, RGMII2RXD0, RGMII2);
  1192. PIN_DECL_(A9, SIG_EXPR_LIST_PTR(A9, GPIOV4), SIG_EXPR_LIST_PTR(A9, RMII2RXD0),
  1193. SIG_EXPR_LIST_PTR(A9, RGMII2RXD0));
  1194. #define E8 173
  1195. SIG_EXPR_LIST_DECL_SINGLE(E8, GPIOV5, GPIOV5, SIG_DESC_SET(SCUA0, 21));
  1196. SIG_EXPR_LIST_DECL_SINGLE(E8, RMII2RXD1, RMII2, RMII2_DESC);
  1197. SIG_EXPR_LIST_DECL_SINGLE(E8, RGMII2RXD1, RGMII2);
  1198. PIN_DECL_(E8, SIG_EXPR_LIST_PTR(E8, GPIOV5), SIG_EXPR_LIST_PTR(E8, RMII2RXD1),
  1199. SIG_EXPR_LIST_PTR(E8, RGMII2RXD1));
  1200. #define D8 174
  1201. SIG_EXPR_LIST_DECL_SINGLE(D8, GPIOV6, GPIOV6, SIG_DESC_SET(SCUA0, 22));
  1202. SIG_EXPR_LIST_DECL_SINGLE(D8, RMII2CRSDV, RMII2, RMII2_DESC);
  1203. SIG_EXPR_LIST_DECL_SINGLE(D8, RGMII2RXD2, RGMII2);
  1204. PIN_DECL_(D8, SIG_EXPR_LIST_PTR(D8, GPIOV6), SIG_EXPR_LIST_PTR(D8, RMII2CRSDV),
  1205. SIG_EXPR_LIST_PTR(D8, RGMII2RXD2));
  1206. #define C8 175
  1207. SIG_EXPR_LIST_DECL_SINGLE(C8, GPIOV7, GPIOV7, SIG_DESC_SET(SCUA0, 23));
  1208. SIG_EXPR_LIST_DECL_SINGLE(C8, RMII2RXER, RMII2, RMII2_DESC);
  1209. SIG_EXPR_LIST_DECL_SINGLE(C8, RGMII2RXD3, RGMII2);
  1210. PIN_DECL_(C8, SIG_EXPR_LIST_PTR(C8, GPIOV7), SIG_EXPR_LIST_PTR(C8, RMII2RXER),
  1211. SIG_EXPR_LIST_PTR(C8, RGMII2RXD3));
  1212. FUNC_GROUP_DECL(RMII1, A12, B12, C12, D12, E12, A13, E11, D11, C11, B11, A11,
  1213. E10);
  1214. FUNC_GROUP_DECL(RGMII1, A12, B12, C12, D12, E12, A13, E11, D11, C11, B11, A11,
  1215. E10);
  1216. FUNC_GROUP_DECL(RMII2, D9, E9, A10, B10, C10, D10, C9, B9, A9, E8, D8, C8);
  1217. FUNC_GROUP_DECL(RGMII2, D9, E9, A10, B10, C10, D10, C9, B9, A9, E8, D8, C8);
  1218. #define L5 176
  1219. SIG_EXPR_LIST_DECL_SINGLE(L5, GPIOW0, GPIOW0, SIG_DESC_SET(SCUA0, 24));
  1220. SIG_EXPR_LIST_DECL_SINGLE(L5, ADC0, ADC0);
  1221. PIN_DECL_(L5, SIG_EXPR_LIST_PTR(L5, GPIOW0), SIG_EXPR_LIST_PTR(L5, ADC0));
  1222. FUNC_GROUP_DECL(ADC0, L5);
  1223. #define L4 177
  1224. SIG_EXPR_LIST_DECL_SINGLE(L4, GPIOW1, GPIOW1, SIG_DESC_SET(SCUA0, 25));
  1225. SIG_EXPR_LIST_DECL_SINGLE(L4, ADC1, ADC1);
  1226. PIN_DECL_(L4, SIG_EXPR_LIST_PTR(L4, GPIOW1), SIG_EXPR_LIST_PTR(L4, ADC1));
  1227. FUNC_GROUP_DECL(ADC1, L4);
  1228. #define L3 178
  1229. SIG_EXPR_LIST_DECL_SINGLE(L3, GPIOW2, GPIOW2, SIG_DESC_SET(SCUA0, 26));
  1230. SIG_EXPR_LIST_DECL_SINGLE(L3, ADC2, ADC2);
  1231. PIN_DECL_(L3, SIG_EXPR_LIST_PTR(L3, GPIOW2), SIG_EXPR_LIST_PTR(L3, ADC2));
  1232. FUNC_GROUP_DECL(ADC2, L3);
  1233. #define L2 179
  1234. SIG_EXPR_LIST_DECL_SINGLE(L2, GPIOW3, GPIOW3, SIG_DESC_SET(SCUA0, 27));
  1235. SIG_EXPR_LIST_DECL_SINGLE(L2, ADC3, ADC3);
  1236. PIN_DECL_(L2, SIG_EXPR_LIST_PTR(L2, GPIOW3), SIG_EXPR_LIST_PTR(L2, ADC3));
  1237. FUNC_GROUP_DECL(ADC3, L2);
  1238. #define L1 180
  1239. SIG_EXPR_LIST_DECL_SINGLE(L1, GPIOW4, GPIOW4, SIG_DESC_SET(SCUA0, 28));
  1240. SIG_EXPR_LIST_DECL_SINGLE(L1, ADC4, ADC4);
  1241. PIN_DECL_(L1, SIG_EXPR_LIST_PTR(L1, GPIOW4), SIG_EXPR_LIST_PTR(L1, ADC4));
  1242. FUNC_GROUP_DECL(ADC4, L1);
  1243. #define M5 181
  1244. SIG_EXPR_LIST_DECL_SINGLE(M5, GPIOW5, GPIOW5, SIG_DESC_SET(SCUA0, 29));
  1245. SIG_EXPR_LIST_DECL_SINGLE(M5, ADC5, ADC5);
  1246. PIN_DECL_(M5, SIG_EXPR_LIST_PTR(M5, GPIOW5), SIG_EXPR_LIST_PTR(M5, ADC5));
  1247. FUNC_GROUP_DECL(ADC5, M5);
  1248. #define M4 182
  1249. SIG_EXPR_LIST_DECL_SINGLE(M4, GPIOW6, GPIOW6, SIG_DESC_SET(SCUA0, 30));
  1250. SIG_EXPR_LIST_DECL_SINGLE(M4, ADC6, ADC6);
  1251. PIN_DECL_(M4, SIG_EXPR_LIST_PTR(M4, GPIOW6), SIG_EXPR_LIST_PTR(M4, ADC6));
  1252. FUNC_GROUP_DECL(ADC6, M4);
  1253. #define M3 183
  1254. SIG_EXPR_LIST_DECL_SINGLE(M3, GPIOW7, GPIOW7, SIG_DESC_SET(SCUA0, 31));
  1255. SIG_EXPR_LIST_DECL_SINGLE(M3, ADC7, ADC7);
  1256. PIN_DECL_(M3, SIG_EXPR_LIST_PTR(M3, GPIOW7), SIG_EXPR_LIST_PTR(M3, ADC7));
  1257. FUNC_GROUP_DECL(ADC7, M3);
  1258. #define M2 184
  1259. SIG_EXPR_LIST_DECL_SINGLE(M2, GPIOX0, GPIOX0, SIG_DESC_SET(SCUA4, 0));
  1260. SIG_EXPR_LIST_DECL_SINGLE(M2, ADC8, ADC8);
  1261. PIN_DECL_(M2, SIG_EXPR_LIST_PTR(M2, GPIOX0), SIG_EXPR_LIST_PTR(M2, ADC8));
  1262. FUNC_GROUP_DECL(ADC8, M2);
  1263. #define M1 185
  1264. SIG_EXPR_LIST_DECL_SINGLE(M1, GPIOX1, GPIOX1, SIG_DESC_SET(SCUA4, 1));
  1265. SIG_EXPR_LIST_DECL_SINGLE(M1, ADC9, ADC9);
  1266. PIN_DECL_(M1, SIG_EXPR_LIST_PTR(M1, GPIOX1), SIG_EXPR_LIST_PTR(M1, ADC9));
  1267. FUNC_GROUP_DECL(ADC9, M1);
  1268. #define N5 186
  1269. SIG_EXPR_LIST_DECL_SINGLE(N5, GPIOX2, GPIOX2, SIG_DESC_SET(SCUA4, 2));
  1270. SIG_EXPR_LIST_DECL_SINGLE(N5, ADC10, ADC10);
  1271. PIN_DECL_(N5, SIG_EXPR_LIST_PTR(N5, GPIOX2), SIG_EXPR_LIST_PTR(N5, ADC10));
  1272. FUNC_GROUP_DECL(ADC10, N5);
  1273. #define N4 187
  1274. SIG_EXPR_LIST_DECL_SINGLE(N4, GPIOX3, GPIOX3, SIG_DESC_SET(SCUA4, 3));
  1275. SIG_EXPR_LIST_DECL_SINGLE(N4, ADC11, ADC11);
  1276. PIN_DECL_(N4, SIG_EXPR_LIST_PTR(N4, GPIOX3), SIG_EXPR_LIST_PTR(N4, ADC11));
  1277. FUNC_GROUP_DECL(ADC11, N4);
  1278. #define N3 188
  1279. SIG_EXPR_LIST_DECL_SINGLE(N3, GPIOX4, GPIOX4, SIG_DESC_SET(SCUA4, 4));
  1280. SIG_EXPR_LIST_DECL_SINGLE(N3, ADC12, ADC12);
  1281. PIN_DECL_(N3, SIG_EXPR_LIST_PTR(N3, GPIOX4), SIG_EXPR_LIST_PTR(N3, ADC12));
  1282. FUNC_GROUP_DECL(ADC12, N3);
  1283. #define N2 189
  1284. SIG_EXPR_LIST_DECL_SINGLE(N2, GPIOX5, GPIOX5, SIG_DESC_SET(SCUA4, 5));
  1285. SIG_EXPR_LIST_DECL_SINGLE(N2, ADC13, ADC13);
  1286. PIN_DECL_(N2, SIG_EXPR_LIST_PTR(N2, GPIOX5), SIG_EXPR_LIST_PTR(N2, ADC13));
  1287. FUNC_GROUP_DECL(ADC13, N2);
  1288. #define N1 190
  1289. SIG_EXPR_LIST_DECL_SINGLE(N1, GPIOX6, GPIOX6, SIG_DESC_SET(SCUA4, 6));
  1290. SIG_EXPR_LIST_DECL_SINGLE(N1, ADC14, ADC14);
  1291. PIN_DECL_(N1, SIG_EXPR_LIST_PTR(N1, GPIOX6), SIG_EXPR_LIST_PTR(N1, ADC14));
  1292. FUNC_GROUP_DECL(ADC14, N1);
  1293. #define P5 191
  1294. SIG_EXPR_LIST_DECL_SINGLE(P5, GPIOX7, GPIOX7, SIG_DESC_SET(SCUA4, 7));
  1295. SIG_EXPR_LIST_DECL_SINGLE(P5, ADC15, ADC15);
  1296. PIN_DECL_(P5, SIG_EXPR_LIST_PTR(P5, GPIOX7), SIG_EXPR_LIST_PTR(P5, ADC15));
  1297. FUNC_GROUP_DECL(ADC15, P5);
  1298. #define C21 192
  1299. SIG_EXPR_DECL_SINGLE(SIOS3, SIOS3, SIG_DESC_SET(SCUA4, 8));
  1300. SIG_EXPR_DECL_SINGLE(SIOS3, ACPI, ACPI_DESC);
  1301. SIG_EXPR_LIST_DECL_DUAL(C21, SIOS3, SIOS3, ACPI);
  1302. PIN_DECL_1(C21, GPIOY0, SIOS3);
  1303. FUNC_GROUP_DECL(SIOS3, C21);
  1304. #define F20 193
  1305. SIG_EXPR_DECL_SINGLE(SIOS5, SIOS5, SIG_DESC_SET(SCUA4, 9));
  1306. SIG_EXPR_DECL_SINGLE(SIOS5, ACPI, ACPI_DESC);
  1307. SIG_EXPR_LIST_DECL_DUAL(F20, SIOS5, SIOS5, ACPI);
  1308. PIN_DECL_1(F20, GPIOY1, SIOS5);
  1309. FUNC_GROUP_DECL(SIOS5, F20);
  1310. #define G20 194
  1311. SIG_EXPR_DECL_SINGLE(SIOPWREQ, SIOPWREQ, SIG_DESC_SET(SCUA4, 10));
  1312. SIG_EXPR_DECL_SINGLE(SIOPWREQ, ACPI, ACPI_DESC);
  1313. SIG_EXPR_LIST_DECL_DUAL(G20, SIOPWREQ, SIOPWREQ, ACPI);
  1314. PIN_DECL_1(G20, GPIOY2, SIOPWREQ);
  1315. FUNC_GROUP_DECL(SIOPWREQ, G20);
  1316. #define K20 195
  1317. SIG_EXPR_DECL_SINGLE(SIOONCTRL, SIOONCTRL, SIG_DESC_SET(SCUA4, 11));
  1318. SIG_EXPR_DECL_SINGLE(SIOONCTRL, ACPI, ACPI_DESC);
  1319. SIG_EXPR_LIST_DECL_DUAL(K20, SIOONCTRL, SIOONCTRL, ACPI);
  1320. PIN_DECL_1(K20, GPIOY3, SIOONCTRL);
  1321. FUNC_GROUP_DECL(SIOONCTRL, K20);
  1322. FUNC_GROUP_DECL(ACPI, B19, A20, D17, A19, C21, F20, G20, K20);
  1323. #define R22 200
  1324. #define R22_DESC SIG_DESC_SET(SCUA4, 16)
  1325. SIG_EXPR_DECL_SINGLE(ROMA2, ROM8, R22_DESC, VPOOFF0_DESC);
  1326. SIG_EXPR_DECL_SINGLE(ROMA2, ROM16, R22_DESC, VPOOFF0_DESC);
  1327. SIG_EXPR_LIST_DECL_DUAL(R22, ROMA2, ROM8, ROM16);
  1328. SIG_EXPR_DECL_SINGLE(VPOB0, VPO12, R22_DESC, VPO12_DESC);
  1329. SIG_EXPR_DECL_SINGLE(VPOB0, VPO24, R22_DESC, VPO24_DESC);
  1330. SIG_EXPR_DECL_SINGLE(VPOB0, VPOOFF1, R22_DESC, VPOOFF1_DESC);
  1331. SIG_EXPR_LIST_DECL(VPOB0, VPO,
  1332. SIG_EXPR_PTR(VPOB0, VPO12),
  1333. SIG_EXPR_PTR(VPOB0, VPO24),
  1334. SIG_EXPR_PTR(VPOB0, VPOOFF1));
  1335. SIG_EXPR_LIST_ALIAS(R22, VPOB0, VPO);
  1336. PIN_DECL_2(R22, GPIOZ0, ROMA2, VPOB0);
  1337. #define P18 201
  1338. #define P18_DESC SIG_DESC_SET(SCUA4, 17)
  1339. SIG_EXPR_DECL_SINGLE(ROMA3, ROM8, P18_DESC, VPOOFF0_DESC);
  1340. SIG_EXPR_DECL_SINGLE(ROMA3, ROM16, P18_DESC, VPOOFF0_DESC);
  1341. SIG_EXPR_LIST_DECL_DUAL(P18, ROMA3, ROM8, ROM16);
  1342. SIG_EXPR_DECL_SINGLE(VPOB1, VPO12, P18_DESC, VPO12_DESC);
  1343. SIG_EXPR_DECL_SINGLE(VPOB1, VPO24, P18_DESC, VPO24_DESC);
  1344. SIG_EXPR_DECL_SINGLE(VPOB1, VPOOFF1, P18_DESC, VPOOFF1_DESC);
  1345. SIG_EXPR_LIST_DECL(VPOB1, VPO,
  1346. SIG_EXPR_PTR(VPOB1, VPO12),
  1347. SIG_EXPR_PTR(VPOB1, VPO24),
  1348. SIG_EXPR_PTR(VPOB1, VPOOFF1));
  1349. SIG_EXPR_LIST_ALIAS(P18, VPOB1, VPO);
  1350. PIN_DECL_2(P18, GPIOZ1, ROMA3, VPOB1);
  1351. #define P19 202
  1352. #define P19_DESC SIG_DESC_SET(SCUA4, 18)
  1353. SIG_EXPR_DECL_SINGLE(ROMA4, ROM8, P19_DESC, VPOOFF0_DESC);
  1354. SIG_EXPR_DECL_SINGLE(ROMA4, ROM16, P19_DESC, VPOOFF0_DESC);
  1355. SIG_EXPR_LIST_DECL_DUAL(P19, ROMA4, ROM8, ROM16);
  1356. SIG_EXPR_DECL_SINGLE(VPOB2, VPO12, P19_DESC, VPO12_DESC);
  1357. SIG_EXPR_DECL_SINGLE(VPOB2, VPO24, P19_DESC, VPO24_DESC);
  1358. SIG_EXPR_DECL_SINGLE(VPOB2, VPOOFF1, P19_DESC, VPOOFF1_DESC);
  1359. SIG_EXPR_LIST_DECL(VPOB2, VPO,
  1360. SIG_EXPR_PTR(VPOB2, VPO12),
  1361. SIG_EXPR_PTR(VPOB2, VPO24),
  1362. SIG_EXPR_PTR(VPOB2, VPOOFF1));
  1363. SIG_EXPR_LIST_ALIAS(P19, VPOB2, VPO);
  1364. PIN_DECL_2(P19, GPIOZ2, ROMA4, VPOB2);
  1365. #define P20 203
  1366. #define P20_DESC SIG_DESC_SET(SCUA4, 19)
  1367. SIG_EXPR_DECL_SINGLE(ROMA5, ROM8, P20_DESC, VPOOFF0_DESC);
  1368. SIG_EXPR_DECL_SINGLE(ROMA5, ROM16, P20_DESC, VPOOFF0_DESC);
  1369. SIG_EXPR_LIST_DECL_DUAL(P20, ROMA5, ROM8, ROM16);
  1370. SIG_EXPR_DECL_SINGLE(VPOB3, VPO12, P20_DESC, VPO12_DESC);
  1371. SIG_EXPR_DECL_SINGLE(VPOB3, VPO24, P20_DESC, VPO24_DESC);
  1372. SIG_EXPR_DECL_SINGLE(VPOB3, VPOOFF1, P20_DESC, VPOOFF1_DESC);
  1373. SIG_EXPR_LIST_DECL(VPOB3, VPO,
  1374. SIG_EXPR_PTR(VPOB3, VPO12),
  1375. SIG_EXPR_PTR(VPOB3, VPO24),
  1376. SIG_EXPR_PTR(VPOB3, VPOOFF1));
  1377. SIG_EXPR_LIST_ALIAS(P20, VPOB3, VPO);
  1378. PIN_DECL_2(P20, GPIOZ3, ROMA5, VPOB3);
  1379. #define P21 204
  1380. #define P21_DESC SIG_DESC_SET(SCUA4, 20)
  1381. SIG_EXPR_DECL_SINGLE(ROMA6, ROM8, P21_DESC, VPOOFF0_DESC);
  1382. SIG_EXPR_DECL_SINGLE(ROMA6, ROM16, P21_DESC, VPOOFF0_DESC);
  1383. SIG_EXPR_LIST_DECL_DUAL(P21, ROMA6, ROM8, ROM16);
  1384. SIG_EXPR_DECL_SINGLE(VPOB4, VPO12, P21_DESC, VPO12_DESC);
  1385. SIG_EXPR_DECL_SINGLE(VPOB4, VPO24, P21_DESC, VPO24_DESC);
  1386. SIG_EXPR_DECL_SINGLE(VPOB4, VPOOFF1, P21_DESC, VPOOFF1_DESC);
  1387. SIG_EXPR_LIST_DECL(VPOB4, VPO,
  1388. SIG_EXPR_PTR(VPOB4, VPO12),
  1389. SIG_EXPR_PTR(VPOB4, VPO24),
  1390. SIG_EXPR_PTR(VPOB4, VPOOFF1));
  1391. SIG_EXPR_LIST_ALIAS(P21, VPOB4, VPO);
  1392. PIN_DECL_2(P21, GPIOZ4, ROMA6, VPOB4);
  1393. #define P22 205
  1394. #define P22_DESC SIG_DESC_SET(SCUA4, 21)
  1395. SIG_EXPR_DECL_SINGLE(ROMA7, ROM8, P22_DESC, VPOOFF0_DESC);
  1396. SIG_EXPR_DECL_SINGLE(ROMA7, ROM16, P22_DESC, VPOOFF0_DESC);
  1397. SIG_EXPR_LIST_DECL_DUAL(P22, ROMA7, ROM8, ROM16);
  1398. SIG_EXPR_DECL_SINGLE(VPOB5, VPO12, P22_DESC, VPO12_DESC);
  1399. SIG_EXPR_DECL_SINGLE(VPOB5, VPO24, P22_DESC, VPO24_DESC);
  1400. SIG_EXPR_DECL_SINGLE(VPOB5, VPOOFF1, P22_DESC, VPOOFF1_DESC);
  1401. SIG_EXPR_LIST_DECL(VPOB5, VPO,
  1402. SIG_EXPR_PTR(VPOB5, VPO12),
  1403. SIG_EXPR_PTR(VPOB5, VPO24),
  1404. SIG_EXPR_PTR(VPOB5, VPOOFF1));
  1405. SIG_EXPR_LIST_ALIAS(P22, VPOB5, VPO);
  1406. PIN_DECL_2(P22, GPIOZ5, ROMA7, VPOB5);
  1407. #define M19 206
  1408. #define M19_DESC SIG_DESC_SET(SCUA4, 22)
  1409. SIG_EXPR_DECL_SINGLE(ROMA8, ROM8, M19_DESC, VPOOFF0_DESC);
  1410. SIG_EXPR_DECL_SINGLE(ROMA8, ROM16, M19_DESC, VPOOFF0_DESC);
  1411. SIG_EXPR_LIST_DECL_DUAL(M19, ROMA8, ROM8, ROM16);
  1412. SIG_EXPR_DECL_SINGLE(VPOB6, VPO12, M19_DESC, VPO12_DESC);
  1413. SIG_EXPR_DECL_SINGLE(VPOB6, VPO24, M19_DESC, VPO24_DESC);
  1414. SIG_EXPR_DECL_SINGLE(VPOB6, VPOOFF1, M19_DESC, VPOOFF1_DESC);
  1415. SIG_EXPR_LIST_DECL(VPOB6, VPO,
  1416. SIG_EXPR_PTR(VPOB6, VPO12),
  1417. SIG_EXPR_PTR(VPOB6, VPO24),
  1418. SIG_EXPR_PTR(VPOB6, VPOOFF1));
  1419. SIG_EXPR_LIST_ALIAS(M19, VPOB6, VPO);
  1420. PIN_DECL_2(M19, GPIOZ6, ROMA8, VPOB6);
  1421. #define M20 207
  1422. #define M20_DESC SIG_DESC_SET(SCUA4, 23)
  1423. SIG_EXPR_DECL_SINGLE(ROMA9, ROM8, M20_DESC, VPOOFF0_DESC);
  1424. SIG_EXPR_DECL_SINGLE(ROMA9, ROM16, M20_DESC, VPOOFF0_DESC);
  1425. SIG_EXPR_LIST_DECL_DUAL(M20, ROMA9, ROM8, ROM16);
  1426. SIG_EXPR_DECL_SINGLE(VPOB7, VPO12, M20_DESC, VPO12_DESC);
  1427. SIG_EXPR_DECL_SINGLE(VPOB7, VPO24, M20_DESC, VPO24_DESC);
  1428. SIG_EXPR_DECL_SINGLE(VPOB7, VPOOFF1, M20_DESC, VPOOFF1_DESC);
  1429. SIG_EXPR_LIST_DECL(VPOB7, VPO,
  1430. SIG_EXPR_PTR(VPOB7, VPO12),
  1431. SIG_EXPR_PTR(VPOB7, VPO24),
  1432. SIG_EXPR_PTR(VPOB7, VPOOFF1));
  1433. SIG_EXPR_LIST_ALIAS(M20, VPOB7, VPO);
  1434. PIN_DECL_2(M20, GPIOZ7, ROMA9, VPOB7);
  1435. #define M21 208
  1436. #define M21_DESC SIG_DESC_SET(SCUA4, 24)
  1437. SIG_EXPR_DECL_SINGLE(ROMA10, ROM8, M21_DESC, VPOOFF0_DESC);
  1438. SIG_EXPR_DECL_SINGLE(ROMA10, ROM16, M21_DESC, VPOOFF0_DESC);
  1439. SIG_EXPR_LIST_DECL_DUAL(M21, ROMA10, ROM8, ROM16);
  1440. SIG_EXPR_DECL_SINGLE(VPOG0, VPO12, M21_DESC, VPO12_DESC);
  1441. SIG_EXPR_DECL_SINGLE(VPOG0, VPO24, M21_DESC, VPO24_DESC);
  1442. SIG_EXPR_DECL_SINGLE(VPOG0, VPOOFF1, M21_DESC, VPOOFF1_DESC);
  1443. SIG_EXPR_LIST_DECL(VPOG0, VPO,
  1444. SIG_EXPR_PTR(VPOG0, VPO12),
  1445. SIG_EXPR_PTR(VPOG0, VPO24),
  1446. SIG_EXPR_PTR(VPOG0, VPOOFF1));
  1447. SIG_EXPR_LIST_ALIAS(M21, VPOG0, VPO);
  1448. PIN_DECL_2(M21, GPIOAA0, ROMA10, VPOG0);
  1449. #define M22 209
  1450. #define M22_DESC SIG_DESC_SET(SCUA4, 25)
  1451. SIG_EXPR_DECL_SINGLE(ROMA11, ROM8, M22_DESC, VPOOFF0_DESC);
  1452. SIG_EXPR_DECL_SINGLE(ROMA11, ROM16, M22_DESC, VPOOFF0_DESC);
  1453. SIG_EXPR_LIST_DECL_DUAL(M22, ROMA11, ROM8, ROM16);
  1454. SIG_EXPR_DECL_SINGLE(VPOG1, VPO12, M22_DESC, VPO12_DESC);
  1455. SIG_EXPR_DECL_SINGLE(VPOG1, VPO24, M22_DESC, VPO24_DESC);
  1456. SIG_EXPR_DECL_SINGLE(VPOG1, VPOOFF1, M22_DESC, VPOOFF1_DESC);
  1457. SIG_EXPR_LIST_DECL(VPOG1, VPO,
  1458. SIG_EXPR_PTR(VPOG1, VPO12),
  1459. SIG_EXPR_PTR(VPOG1, VPO24),
  1460. SIG_EXPR_PTR(VPOG1, VPOOFF1));
  1461. SIG_EXPR_LIST_ALIAS(M22, VPOG1, VPO);
  1462. PIN_DECL_2(M22, GPIOAA1, ROMA11, VPOG1);
  1463. #define L18 210
  1464. #define L18_DESC SIG_DESC_SET(SCUA4, 26)
  1465. SIG_EXPR_DECL_SINGLE(ROMA12, ROM8, L18_DESC, VPOOFF0_DESC);
  1466. SIG_EXPR_DECL_SINGLE(ROMA12, ROM16, L18_DESC, VPOOFF0_DESC);
  1467. SIG_EXPR_LIST_DECL_DUAL(L18, ROMA12, ROM8, ROM16);
  1468. SIG_EXPR_DECL_SINGLE(VPOG2, VPO12, L18_DESC, VPO12_DESC);
  1469. SIG_EXPR_DECL_SINGLE(VPOG2, VPO24, L18_DESC, VPO24_DESC);
  1470. SIG_EXPR_DECL_SINGLE(VPOG2, VPOOFF1, L18_DESC, VPOOFF1_DESC);
  1471. SIG_EXPR_LIST_DECL(VPOG2, VPO,
  1472. SIG_EXPR_PTR(VPOG2, VPO12),
  1473. SIG_EXPR_PTR(VPOG2, VPO24),
  1474. SIG_EXPR_PTR(VPOG2, VPOOFF1));
  1475. SIG_EXPR_LIST_ALIAS(L18, VPOG2, VPO);
  1476. PIN_DECL_2(L18, GPIOAA2, ROMA12, VPOG2);
  1477. #define L19 211
  1478. #define L19_DESC SIG_DESC_SET(SCUA4, 27)
  1479. SIG_EXPR_DECL_SINGLE(ROMA13, ROM8, L19_DESC, VPOOFF0_DESC);
  1480. SIG_EXPR_DECL_SINGLE(ROMA13, ROM16, L19_DESC, VPOOFF0_DESC);
  1481. SIG_EXPR_LIST_DECL_DUAL(L19, ROMA13, ROM8, ROM16);
  1482. SIG_EXPR_DECL_SINGLE(VPOG3, VPO12, L19_DESC, VPO12_DESC);
  1483. SIG_EXPR_DECL_SINGLE(VPOG3, VPO24, L19_DESC, VPO24_DESC);
  1484. SIG_EXPR_DECL_SINGLE(VPOG3, VPOOFF1, L19_DESC, VPOOFF1_DESC);
  1485. SIG_EXPR_LIST_DECL(VPOG3, VPO,
  1486. SIG_EXPR_PTR(VPOG3, VPO12),
  1487. SIG_EXPR_PTR(VPOG3, VPO24),
  1488. SIG_EXPR_PTR(VPOG3, VPOOFF1));
  1489. SIG_EXPR_LIST_ALIAS(L19, VPOG3, VPO);
  1490. PIN_DECL_2(L19, GPIOAA3, ROMA13, VPOG3);
  1491. #define L20 212
  1492. #define L20_DESC SIG_DESC_SET(SCUA4, 28)
  1493. SIG_EXPR_DECL_SINGLE(ROMA14, ROM8, L20_DESC, VPO_OFF_12);
  1494. SIG_EXPR_DECL_SINGLE(ROMA14, ROM16, L20_DESC, VPO_OFF_12);
  1495. SIG_EXPR_LIST_DECL_DUAL(L20, ROMA14, ROM8, ROM16);
  1496. SIG_EXPR_DECL_SINGLE(VPOG4, VPO24, L20_DESC, VPO24_DESC);
  1497. SIG_EXPR_DECL_SINGLE(VPOG4, VPOOFF1, L20_DESC, VPOOFF1_DESC);
  1498. SIG_EXPR_LIST_DECL_DUAL(L20, VPOG4, VPO24, VPOOFF1);
  1499. PIN_DECL_2(L20, GPIOAA4, ROMA14, VPOG4);
  1500. #define L21 213
  1501. #define L21_DESC SIG_DESC_SET(SCUA4, 29)
  1502. SIG_EXPR_DECL_SINGLE(ROMA15, ROM8, L21_DESC, VPO_OFF_12);
  1503. SIG_EXPR_DECL_SINGLE(ROMA15, ROM16, L21_DESC, VPO_OFF_12);
  1504. SIG_EXPR_LIST_DECL_DUAL(L21, ROMA15, ROM8, ROM16);
  1505. SIG_EXPR_DECL_SINGLE(VPOG5, VPO24, L21_DESC, VPO24_DESC);
  1506. SIG_EXPR_DECL_SINGLE(VPOG5, VPOOFF1, L21_DESC, VPOOFF1_DESC);
  1507. SIG_EXPR_LIST_DECL_DUAL(L21, VPOG5, VPO24, VPOOFF1);
  1508. PIN_DECL_2(L21, GPIOAA5, ROMA15, VPOG5);
  1509. #define T18 214
  1510. #define T18_DESC SIG_DESC_SET(SCUA4, 30)
  1511. SIG_EXPR_DECL_SINGLE(ROMA16, ROM8, T18_DESC, VPO_OFF_12);
  1512. SIG_EXPR_DECL_SINGLE(ROMA16, ROM16, T18_DESC, VPO_OFF_12);
  1513. SIG_EXPR_LIST_DECL_DUAL(T18, ROMA16, ROM8, ROM16);
  1514. SIG_EXPR_DECL_SINGLE(VPOG6, VPO24, T18_DESC, VPO24_DESC);
  1515. SIG_EXPR_DECL_SINGLE(VPOG6, VPOOFF1, T18_DESC, VPOOFF1_DESC);
  1516. SIG_EXPR_LIST_DECL_DUAL(T18, VPOG6, VPO24, VPOOFF1);
  1517. PIN_DECL_2(T18, GPIOAA6, ROMA16, VPOG6);
  1518. #define N18 215
  1519. #define N18_DESC SIG_DESC_SET(SCUA4, 31)
  1520. SIG_EXPR_DECL_SINGLE(ROMA17, ROM8, N18_DESC, VPO_OFF_12);
  1521. SIG_EXPR_DECL_SINGLE(ROMA17, ROM16, N18_DESC, VPO_OFF_12);
  1522. SIG_EXPR_LIST_DECL_DUAL(N18, ROMA17, ROM8, ROM16);
  1523. SIG_EXPR_DECL_SINGLE(VPOG7, VPO24, N18_DESC, VPO24_DESC);
  1524. SIG_EXPR_DECL_SINGLE(VPOG7, VPOOFF1, N18_DESC, VPOOFF1_DESC);
  1525. SIG_EXPR_LIST_DECL_DUAL(N18, VPOG7, VPO24, VPOOFF1);
  1526. PIN_DECL_2(N18, GPIOAA7, ROMA17, VPOG7);
  1527. #define N19 216
  1528. #define N19_DESC SIG_DESC_SET(SCUA8, 0)
  1529. SIG_EXPR_DECL_SINGLE(ROMA18, ROM8, N19_DESC, VPO_OFF_12);
  1530. SIG_EXPR_DECL_SINGLE(ROMA18, ROM16, N19_DESC, VPO_OFF_12);
  1531. SIG_EXPR_LIST_DECL_DUAL(N19, ROMA18, ROM8, ROM16);
  1532. SIG_EXPR_DECL_SINGLE(VPOR0, VPO24, N19_DESC, VPO24_DESC);
  1533. SIG_EXPR_DECL_SINGLE(VPOR0, VPOOFF1, N19_DESC, VPOOFF1_DESC);
  1534. SIG_EXPR_LIST_DECL_DUAL(N19, VPOR0, VPO24, VPOOFF1);
  1535. PIN_DECL_2(N19, GPIOAB0, ROMA18, VPOR0);
  1536. #define M18 217
  1537. #define M18_DESC SIG_DESC_SET(SCUA8, 1)
  1538. SIG_EXPR_DECL_SINGLE(ROMA19, ROM8, M18_DESC, VPO_OFF_12);
  1539. SIG_EXPR_DECL_SINGLE(ROMA19, ROM16, M18_DESC, VPO_OFF_12);
  1540. SIG_EXPR_LIST_DECL_DUAL(M18, ROMA19, ROM8, ROM16);
  1541. SIG_EXPR_DECL_SINGLE(VPOR1, VPO24, M18_DESC, VPO24_DESC);
  1542. SIG_EXPR_DECL_SINGLE(VPOR1, VPOOFF1, M18_DESC, VPOOFF1_DESC);
  1543. SIG_EXPR_LIST_DECL_DUAL(M18, VPOR1, VPO24, VPOOFF1);
  1544. PIN_DECL_2(M18, GPIOAB1, ROMA19, VPOR1);
  1545. #define N22 218
  1546. #define N22_DESC SIG_DESC_SET(SCUA8, 2)
  1547. SIG_EXPR_DECL_SINGLE(ROMA20, ROM8, N22_DESC, VPO_OFF_12);
  1548. SIG_EXPR_DECL_SINGLE(ROMA20, ROM16, N22_DESC, VPO_OFF_12);
  1549. SIG_EXPR_LIST_DECL_DUAL(N22, ROMA20, ROM8, ROM16);
  1550. SIG_EXPR_DECL_SINGLE(VPOR2, VPO24, N22_DESC, VPO24_DESC);
  1551. SIG_EXPR_DECL_SINGLE(VPOR2, VPOOFF1, N22_DESC, VPOOFF1_DESC);
  1552. SIG_EXPR_LIST_DECL_DUAL(N22, VPOR2, VPO24, VPOOFF1);
  1553. PIN_DECL_2(N22, GPIOAB2, ROMA20, VPOR2);
  1554. #define N20 219
  1555. #define N20_DESC SIG_DESC_SET(SCUA8, 3)
  1556. SIG_EXPR_DECL_SINGLE(ROMA21, ROM8, N20_DESC, VPO_OFF_12);
  1557. SIG_EXPR_DECL_SINGLE(ROMA21, ROM16, N20_DESC, VPO_OFF_12);
  1558. SIG_EXPR_LIST_DECL_DUAL(N20, ROMA21, ROM8, ROM16);
  1559. SIG_EXPR_DECL_SINGLE(VPOR3, VPO24, N20_DESC, VPO24_DESC);
  1560. SIG_EXPR_DECL_SINGLE(VPOR3, VPOOFF1, N20_DESC, VPOOFF1_DESC);
  1561. SIG_EXPR_LIST_DECL_DUAL(N20, VPOR3, VPO24, VPOOFF1);
  1562. PIN_DECL_2(N20, GPIOAB3, ROMA21, VPOR3);
  1563. FUNC_GROUP_DECL(ROM8, V20, U21, T19, V22, U20, R18, N21, L22, K18, W21, Y22,
  1564. U19, R22, P18, P19, P20, P21, P22, M19, M20, M21, M22, L18,
  1565. L19, L20, L21, T18, N18, N19, M18, N22, N20);
  1566. FUNC_GROUP_DECL(ROM16, V20, U21, T19, V22, U20, R18, N21, L22, K18,
  1567. A8, C7, B7, A7, D7, B6, A6, E7, W21, Y22, U19, R22, P18, P19,
  1568. P20, P21, P22, M19, M20, M21, M22, L18, L19, L20, L21, T18,
  1569. N18, N19, M18, N22, N20);
  1570. FUNC_GROUP_DECL(VPO12, U21, T19, V22, U20, R22, P18, P19, P20, P21, P22, M19,
  1571. M20, M21, M22, L18, L19, L20, L21, T18, N18, N19, M18, N22,
  1572. N20);
  1573. FUNC_GROUP_DECL(VPO24, U21, T19, V22, U20, L22, K18, V21, W22, R22, P18, P19,
  1574. P20, P21, P22, M19, M20, M21, M22, L18, L19);
  1575. #define USB11H2_DESC SIG_DESC_SET(SCU90, 3)
  1576. #define USB11D1_DESC SIG_DESC_BIT(SCU90, 3, 0)
  1577. #define K4 220
  1578. SIG_EXPR_LIST_DECL_SINGLE(K4, USB11HDP2, USB11H2, USB11H2_DESC);
  1579. SIG_EXPR_LIST_DECL_SINGLE(K4, USB11DP1, USB11D1, USB11D1_DESC);
  1580. PIN_DECL_(K4, SIG_EXPR_LIST_PTR(K4, USB11HDP2),
  1581. SIG_EXPR_LIST_PTR(K4, USB11DP1));
  1582. #define K3 221
  1583. SIG_EXPR_LIST_DECL_SINGLE(K3, USB11HDN1, USB11H2, USB11H2_DESC);
  1584. SIG_EXPR_LIST_DECL_SINGLE(K3, USB11DDN1, USB11D1, USB11D1_DESC);
  1585. PIN_DECL_(K3, SIG_EXPR_LIST_PTR(K3, USB11HDN1),
  1586. SIG_EXPR_LIST_PTR(K3, USB11DDN1));
  1587. FUNC_GROUP_DECL(USB11H2, K4, K3);
  1588. FUNC_GROUP_DECL(USB11D1, K4, K3);
  1589. #define USB2H1_DESC SIG_DESC_SET(SCU90, 29)
  1590. #define USB2D1_DESC SIG_DESC_BIT(SCU90, 29, 0)
  1591. #define AB21 222
  1592. SIG_EXPR_LIST_DECL_SINGLE(AB21, USB2HDP1, USB2H1, USB2H1_DESC);
  1593. SIG_EXPR_LIST_DECL_SINGLE(AB21, USB2DDP1, USB2D1, USB2D1_DESC);
  1594. PIN_DECL_(AB21, SIG_EXPR_LIST_PTR(AB21, USB2HDP1),
  1595. SIG_EXPR_LIST_PTR(AB21, USB2DDP1));
  1596. #define AB20 223
  1597. SIG_EXPR_LIST_DECL_SINGLE(AB20, USB2HDN1, USB2H1, USB2H1_DESC);
  1598. SIG_EXPR_LIST_DECL_SINGLE(AB20, USB2DDN1, USB2D1, USB2D1_DESC);
  1599. PIN_DECL_(AB20, SIG_EXPR_LIST_PTR(AB20, USB2HDN1),
  1600. SIG_EXPR_LIST_PTR(AB20, USB2DDN1));
  1601. FUNC_GROUP_DECL(USB2H1, AB21, AB20);
  1602. FUNC_GROUP_DECL(USB2D1, AB21, AB20);
  1603. /* Note we account for GPIOY4-GPIOY7 even though they're not valid, thus 216
  1604. * pins becomes 220. Four additional non-GPIO-capable pins are present for USB.
  1605. */
  1606. #define ASPEED_G4_NR_PINS 224
  1607. /* Pins, groups and functions are sort(1):ed alphabetically for sanity */
  1608. static struct pinctrl_pin_desc aspeed_g4_pins[ASPEED_G4_NR_PINS] = {
  1609. ASPEED_PINCTRL_PIN(A1),
  1610. ASPEED_PINCTRL_PIN(A10),
  1611. ASPEED_PINCTRL_PIN(A11),
  1612. ASPEED_PINCTRL_PIN(A12),
  1613. ASPEED_PINCTRL_PIN(A13),
  1614. ASPEED_PINCTRL_PIN(A14),
  1615. ASPEED_PINCTRL_PIN(A15),
  1616. ASPEED_PINCTRL_PIN(A16),
  1617. ASPEED_PINCTRL_PIN(A17),
  1618. ASPEED_PINCTRL_PIN(A18),
  1619. ASPEED_PINCTRL_PIN(A19),
  1620. ASPEED_PINCTRL_PIN(A2),
  1621. ASPEED_PINCTRL_PIN(A20),
  1622. ASPEED_PINCTRL_PIN(A3),
  1623. ASPEED_PINCTRL_PIN(A4),
  1624. ASPEED_PINCTRL_PIN(A5),
  1625. ASPEED_PINCTRL_PIN(A6),
  1626. ASPEED_PINCTRL_PIN(A7),
  1627. ASPEED_PINCTRL_PIN(A8),
  1628. ASPEED_PINCTRL_PIN(A9),
  1629. ASPEED_PINCTRL_PIN(AA1),
  1630. ASPEED_PINCTRL_PIN(AA2),
  1631. ASPEED_PINCTRL_PIN(AA22),
  1632. ASPEED_PINCTRL_PIN(AA3),
  1633. ASPEED_PINCTRL_PIN(AA4),
  1634. ASPEED_PINCTRL_PIN(AA5),
  1635. ASPEED_PINCTRL_PIN(AA6),
  1636. ASPEED_PINCTRL_PIN(AA7),
  1637. ASPEED_PINCTRL_PIN(AB1),
  1638. ASPEED_PINCTRL_PIN(AB2),
  1639. ASPEED_PINCTRL_PIN(AB3),
  1640. ASPEED_PINCTRL_PIN(AB4),
  1641. ASPEED_PINCTRL_PIN(AB5),
  1642. ASPEED_PINCTRL_PIN(AB6),
  1643. ASPEED_PINCTRL_PIN(AB7),
  1644. ASPEED_PINCTRL_PIN(AB20),
  1645. ASPEED_PINCTRL_PIN(AB21),
  1646. ASPEED_PINCTRL_PIN(B1),
  1647. ASPEED_PINCTRL_PIN(B10),
  1648. ASPEED_PINCTRL_PIN(B11),
  1649. ASPEED_PINCTRL_PIN(B12),
  1650. ASPEED_PINCTRL_PIN(B13),
  1651. ASPEED_PINCTRL_PIN(B14),
  1652. ASPEED_PINCTRL_PIN(B15),
  1653. ASPEED_PINCTRL_PIN(B16),
  1654. ASPEED_PINCTRL_PIN(B17),
  1655. ASPEED_PINCTRL_PIN(B18),
  1656. ASPEED_PINCTRL_PIN(B19),
  1657. ASPEED_PINCTRL_PIN(B2),
  1658. ASPEED_PINCTRL_PIN(B22),
  1659. ASPEED_PINCTRL_PIN(B3),
  1660. ASPEED_PINCTRL_PIN(B4),
  1661. ASPEED_PINCTRL_PIN(B5),
  1662. ASPEED_PINCTRL_PIN(B6),
  1663. ASPEED_PINCTRL_PIN(B7),
  1664. ASPEED_PINCTRL_PIN(B9),
  1665. ASPEED_PINCTRL_PIN(C1),
  1666. ASPEED_PINCTRL_PIN(C10),
  1667. ASPEED_PINCTRL_PIN(C11),
  1668. ASPEED_PINCTRL_PIN(C12),
  1669. ASPEED_PINCTRL_PIN(C13),
  1670. ASPEED_PINCTRL_PIN(C14),
  1671. ASPEED_PINCTRL_PIN(C15),
  1672. ASPEED_PINCTRL_PIN(C16),
  1673. ASPEED_PINCTRL_PIN(C17),
  1674. ASPEED_PINCTRL_PIN(C18),
  1675. ASPEED_PINCTRL_PIN(C2),
  1676. ASPEED_PINCTRL_PIN(C20),
  1677. ASPEED_PINCTRL_PIN(C21),
  1678. ASPEED_PINCTRL_PIN(C22),
  1679. ASPEED_PINCTRL_PIN(C3),
  1680. ASPEED_PINCTRL_PIN(C4),
  1681. ASPEED_PINCTRL_PIN(C5),
  1682. ASPEED_PINCTRL_PIN(C6),
  1683. ASPEED_PINCTRL_PIN(C7),
  1684. ASPEED_PINCTRL_PIN(C8),
  1685. ASPEED_PINCTRL_PIN(C9),
  1686. ASPEED_PINCTRL_PIN(D1),
  1687. ASPEED_PINCTRL_PIN(D10),
  1688. ASPEED_PINCTRL_PIN(D11),
  1689. ASPEED_PINCTRL_PIN(D12),
  1690. ASPEED_PINCTRL_PIN(D13),
  1691. ASPEED_PINCTRL_PIN(D14),
  1692. ASPEED_PINCTRL_PIN(D15),
  1693. ASPEED_PINCTRL_PIN(D16),
  1694. ASPEED_PINCTRL_PIN(D17),
  1695. ASPEED_PINCTRL_PIN(D18),
  1696. ASPEED_PINCTRL_PIN(D19),
  1697. ASPEED_PINCTRL_PIN(D2),
  1698. ASPEED_PINCTRL_PIN(D3),
  1699. ASPEED_PINCTRL_PIN(D4),
  1700. ASPEED_PINCTRL_PIN(D5),
  1701. ASPEED_PINCTRL_PIN(D6),
  1702. ASPEED_PINCTRL_PIN(D7),
  1703. ASPEED_PINCTRL_PIN(D8),
  1704. ASPEED_PINCTRL_PIN(D9),
  1705. ASPEED_PINCTRL_PIN(E10),
  1706. ASPEED_PINCTRL_PIN(E11),
  1707. ASPEED_PINCTRL_PIN(E12),
  1708. ASPEED_PINCTRL_PIN(E13),
  1709. ASPEED_PINCTRL_PIN(E14),
  1710. ASPEED_PINCTRL_PIN(E15),
  1711. ASPEED_PINCTRL_PIN(E16),
  1712. ASPEED_PINCTRL_PIN(E18),
  1713. ASPEED_PINCTRL_PIN(E19),
  1714. ASPEED_PINCTRL_PIN(E2),
  1715. ASPEED_PINCTRL_PIN(E20),
  1716. ASPEED_PINCTRL_PIN(E3),
  1717. ASPEED_PINCTRL_PIN(E5),
  1718. ASPEED_PINCTRL_PIN(E6),
  1719. ASPEED_PINCTRL_PIN(E7),
  1720. ASPEED_PINCTRL_PIN(E8),
  1721. ASPEED_PINCTRL_PIN(E9),
  1722. ASPEED_PINCTRL_PIN(F18),
  1723. ASPEED_PINCTRL_PIN(F20),
  1724. ASPEED_PINCTRL_PIN(F3),
  1725. ASPEED_PINCTRL_PIN(F4),
  1726. ASPEED_PINCTRL_PIN(F5),
  1727. ASPEED_PINCTRL_PIN(G18),
  1728. ASPEED_PINCTRL_PIN(G19),
  1729. ASPEED_PINCTRL_PIN(G20),
  1730. ASPEED_PINCTRL_PIN(G5),
  1731. ASPEED_PINCTRL_PIN(H1),
  1732. ASPEED_PINCTRL_PIN(H18),
  1733. ASPEED_PINCTRL_PIN(H19),
  1734. ASPEED_PINCTRL_PIN(H2),
  1735. ASPEED_PINCTRL_PIN(H20),
  1736. ASPEED_PINCTRL_PIN(H3),
  1737. ASPEED_PINCTRL_PIN(H4),
  1738. ASPEED_PINCTRL_PIN(J20),
  1739. ASPEED_PINCTRL_PIN(J21),
  1740. ASPEED_PINCTRL_PIN(J3),
  1741. ASPEED_PINCTRL_PIN(J4),
  1742. ASPEED_PINCTRL_PIN(J5),
  1743. ASPEED_PINCTRL_PIN(K18),
  1744. ASPEED_PINCTRL_PIN(K20),
  1745. ASPEED_PINCTRL_PIN(K3),
  1746. ASPEED_PINCTRL_PIN(K4),
  1747. ASPEED_PINCTRL_PIN(K5),
  1748. ASPEED_PINCTRL_PIN(L1),
  1749. ASPEED_PINCTRL_PIN(L18),
  1750. ASPEED_PINCTRL_PIN(L19),
  1751. ASPEED_PINCTRL_PIN(L2),
  1752. ASPEED_PINCTRL_PIN(L20),
  1753. ASPEED_PINCTRL_PIN(L21),
  1754. ASPEED_PINCTRL_PIN(L22),
  1755. ASPEED_PINCTRL_PIN(L3),
  1756. ASPEED_PINCTRL_PIN(L4),
  1757. ASPEED_PINCTRL_PIN(L5),
  1758. ASPEED_PINCTRL_PIN(M1),
  1759. ASPEED_PINCTRL_PIN(M18),
  1760. ASPEED_PINCTRL_PIN(M19),
  1761. ASPEED_PINCTRL_PIN(M2),
  1762. ASPEED_PINCTRL_PIN(M20),
  1763. ASPEED_PINCTRL_PIN(M21),
  1764. ASPEED_PINCTRL_PIN(M22),
  1765. ASPEED_PINCTRL_PIN(M3),
  1766. ASPEED_PINCTRL_PIN(M4),
  1767. ASPEED_PINCTRL_PIN(M5),
  1768. ASPEED_PINCTRL_PIN(N1),
  1769. ASPEED_PINCTRL_PIN(N18),
  1770. ASPEED_PINCTRL_PIN(N19),
  1771. ASPEED_PINCTRL_PIN(N2),
  1772. ASPEED_PINCTRL_PIN(N20),
  1773. ASPEED_PINCTRL_PIN(N21),
  1774. ASPEED_PINCTRL_PIN(N22),
  1775. ASPEED_PINCTRL_PIN(N3),
  1776. ASPEED_PINCTRL_PIN(N4),
  1777. ASPEED_PINCTRL_PIN(N5),
  1778. ASPEED_PINCTRL_PIN(P18),
  1779. ASPEED_PINCTRL_PIN(P19),
  1780. ASPEED_PINCTRL_PIN(P20),
  1781. ASPEED_PINCTRL_PIN(P21),
  1782. ASPEED_PINCTRL_PIN(P22),
  1783. ASPEED_PINCTRL_PIN(P5),
  1784. ASPEED_PINCTRL_PIN(R18),
  1785. ASPEED_PINCTRL_PIN(R22),
  1786. ASPEED_PINCTRL_PIN(T1),
  1787. ASPEED_PINCTRL_PIN(T18),
  1788. ASPEED_PINCTRL_PIN(T19),
  1789. ASPEED_PINCTRL_PIN(T2),
  1790. ASPEED_PINCTRL_PIN(T4),
  1791. ASPEED_PINCTRL_PIN(T5),
  1792. ASPEED_PINCTRL_PIN(U1),
  1793. ASPEED_PINCTRL_PIN(U18),
  1794. ASPEED_PINCTRL_PIN(U19),
  1795. ASPEED_PINCTRL_PIN(U2),
  1796. ASPEED_PINCTRL_PIN(U20),
  1797. ASPEED_PINCTRL_PIN(U21),
  1798. ASPEED_PINCTRL_PIN(U3),
  1799. ASPEED_PINCTRL_PIN(U4),
  1800. ASPEED_PINCTRL_PIN(U5),
  1801. ASPEED_PINCTRL_PIN(V1),
  1802. ASPEED_PINCTRL_PIN(V2),
  1803. ASPEED_PINCTRL_PIN(V20),
  1804. ASPEED_PINCTRL_PIN(V21),
  1805. ASPEED_PINCTRL_PIN(V22),
  1806. ASPEED_PINCTRL_PIN(V3),
  1807. ASPEED_PINCTRL_PIN(V4),
  1808. ASPEED_PINCTRL_PIN(V5),
  1809. ASPEED_PINCTRL_PIN(V6),
  1810. ASPEED_PINCTRL_PIN(V7),
  1811. ASPEED_PINCTRL_PIN(W1),
  1812. ASPEED_PINCTRL_PIN(W2),
  1813. ASPEED_PINCTRL_PIN(W21),
  1814. ASPEED_PINCTRL_PIN(W22),
  1815. ASPEED_PINCTRL_PIN(W3),
  1816. ASPEED_PINCTRL_PIN(W4),
  1817. ASPEED_PINCTRL_PIN(W5),
  1818. ASPEED_PINCTRL_PIN(W6),
  1819. ASPEED_PINCTRL_PIN(W7),
  1820. ASPEED_PINCTRL_PIN(Y1),
  1821. ASPEED_PINCTRL_PIN(Y2),
  1822. ASPEED_PINCTRL_PIN(Y21),
  1823. ASPEED_PINCTRL_PIN(Y22),
  1824. ASPEED_PINCTRL_PIN(Y3),
  1825. ASPEED_PINCTRL_PIN(Y4),
  1826. ASPEED_PINCTRL_PIN(Y5),
  1827. ASPEED_PINCTRL_PIN(Y6),
  1828. ASPEED_PINCTRL_PIN(Y7),
  1829. };
  1830. static const struct aspeed_pin_group aspeed_g4_groups[] = {
  1831. ASPEED_PINCTRL_GROUP(ACPI),
  1832. ASPEED_PINCTRL_GROUP(ADC0),
  1833. ASPEED_PINCTRL_GROUP(ADC1),
  1834. ASPEED_PINCTRL_GROUP(ADC10),
  1835. ASPEED_PINCTRL_GROUP(ADC11),
  1836. ASPEED_PINCTRL_GROUP(ADC12),
  1837. ASPEED_PINCTRL_GROUP(ADC13),
  1838. ASPEED_PINCTRL_GROUP(ADC14),
  1839. ASPEED_PINCTRL_GROUP(ADC15),
  1840. ASPEED_PINCTRL_GROUP(ADC2),
  1841. ASPEED_PINCTRL_GROUP(ADC3),
  1842. ASPEED_PINCTRL_GROUP(ADC4),
  1843. ASPEED_PINCTRL_GROUP(ADC5),
  1844. ASPEED_PINCTRL_GROUP(ADC6),
  1845. ASPEED_PINCTRL_GROUP(ADC7),
  1846. ASPEED_PINCTRL_GROUP(ADC8),
  1847. ASPEED_PINCTRL_GROUP(ADC9),
  1848. ASPEED_PINCTRL_GROUP(BMCINT),
  1849. ASPEED_PINCTRL_GROUP(DDCCLK),
  1850. ASPEED_PINCTRL_GROUP(DDCDAT),
  1851. ASPEED_PINCTRL_GROUP(EXTRST),
  1852. ASPEED_PINCTRL_GROUP(FLACK),
  1853. ASPEED_PINCTRL_GROUP(FLBUSY),
  1854. ASPEED_PINCTRL_GROUP(FLWP),
  1855. ASPEED_PINCTRL_GROUP(GPID),
  1856. ASPEED_PINCTRL_GROUP(GPID0),
  1857. ASPEED_PINCTRL_GROUP(GPID2),
  1858. ASPEED_PINCTRL_GROUP(GPID4),
  1859. ASPEED_PINCTRL_GROUP(GPID6),
  1860. ASPEED_PINCTRL_GROUP(GPIE0),
  1861. ASPEED_PINCTRL_GROUP(GPIE2),
  1862. ASPEED_PINCTRL_GROUP(GPIE4),
  1863. ASPEED_PINCTRL_GROUP(GPIE6),
  1864. ASPEED_PINCTRL_GROUP(I2C10),
  1865. ASPEED_PINCTRL_GROUP(I2C11),
  1866. ASPEED_PINCTRL_GROUP(I2C12),
  1867. ASPEED_PINCTRL_GROUP(I2C13),
  1868. ASPEED_PINCTRL_GROUP(I2C14),
  1869. ASPEED_PINCTRL_GROUP(I2C3),
  1870. ASPEED_PINCTRL_GROUP(I2C4),
  1871. ASPEED_PINCTRL_GROUP(I2C5),
  1872. ASPEED_PINCTRL_GROUP(I2C6),
  1873. ASPEED_PINCTRL_GROUP(I2C7),
  1874. ASPEED_PINCTRL_GROUP(I2C8),
  1875. ASPEED_PINCTRL_GROUP(I2C9),
  1876. ASPEED_PINCTRL_GROUP(LPCPD),
  1877. ASPEED_PINCTRL_GROUP(LPCPME),
  1878. ASPEED_PINCTRL_GROUP(LPCRST),
  1879. ASPEED_PINCTRL_GROUP(LPCSMI),
  1880. ASPEED_PINCTRL_GROUP(MAC1LINK),
  1881. ASPEED_PINCTRL_GROUP(MAC2LINK),
  1882. ASPEED_PINCTRL_GROUP(MDIO1),
  1883. ASPEED_PINCTRL_GROUP(MDIO2),
  1884. ASPEED_PINCTRL_GROUP(NCTS1),
  1885. ASPEED_PINCTRL_GROUP(NCTS2),
  1886. ASPEED_PINCTRL_GROUP(NCTS3),
  1887. ASPEED_PINCTRL_GROUP(NCTS4),
  1888. ASPEED_PINCTRL_GROUP(NDCD1),
  1889. ASPEED_PINCTRL_GROUP(NDCD2),
  1890. ASPEED_PINCTRL_GROUP(NDCD3),
  1891. ASPEED_PINCTRL_GROUP(NDCD4),
  1892. ASPEED_PINCTRL_GROUP(NDSR1),
  1893. ASPEED_PINCTRL_GROUP(NDSR2),
  1894. ASPEED_PINCTRL_GROUP(NDSR3),
  1895. ASPEED_PINCTRL_GROUP(NDSR4),
  1896. ASPEED_PINCTRL_GROUP(NDTR1),
  1897. ASPEED_PINCTRL_GROUP(NDTR2),
  1898. ASPEED_PINCTRL_GROUP(NDTR3),
  1899. ASPEED_PINCTRL_GROUP(NDTR4),
  1900. ASPEED_PINCTRL_GROUP(NDTS4),
  1901. ASPEED_PINCTRL_GROUP(NRI1),
  1902. ASPEED_PINCTRL_GROUP(NRI2),
  1903. ASPEED_PINCTRL_GROUP(NRI3),
  1904. ASPEED_PINCTRL_GROUP(NRI4),
  1905. ASPEED_PINCTRL_GROUP(NRTS1),
  1906. ASPEED_PINCTRL_GROUP(NRTS2),
  1907. ASPEED_PINCTRL_GROUP(NRTS3),
  1908. ASPEED_PINCTRL_GROUP(OSCCLK),
  1909. ASPEED_PINCTRL_GROUP(PWM0),
  1910. ASPEED_PINCTRL_GROUP(PWM1),
  1911. ASPEED_PINCTRL_GROUP(PWM2),
  1912. ASPEED_PINCTRL_GROUP(PWM3),
  1913. ASPEED_PINCTRL_GROUP(PWM4),
  1914. ASPEED_PINCTRL_GROUP(PWM5),
  1915. ASPEED_PINCTRL_GROUP(PWM6),
  1916. ASPEED_PINCTRL_GROUP(PWM7),
  1917. ASPEED_PINCTRL_GROUP(RGMII1),
  1918. ASPEED_PINCTRL_GROUP(RGMII2),
  1919. ASPEED_PINCTRL_GROUP(RMII1),
  1920. ASPEED_PINCTRL_GROUP(RMII2),
  1921. ASPEED_PINCTRL_GROUP(ROM16),
  1922. ASPEED_PINCTRL_GROUP(ROM8),
  1923. ASPEED_PINCTRL_GROUP(ROMCS1),
  1924. ASPEED_PINCTRL_GROUP(ROMCS2),
  1925. ASPEED_PINCTRL_GROUP(ROMCS3),
  1926. ASPEED_PINCTRL_GROUP(ROMCS4),
  1927. ASPEED_PINCTRL_GROUP(RXD1),
  1928. ASPEED_PINCTRL_GROUP(RXD2),
  1929. ASPEED_PINCTRL_GROUP(RXD3),
  1930. ASPEED_PINCTRL_GROUP(RXD4),
  1931. ASPEED_PINCTRL_GROUP(SALT1),
  1932. ASPEED_PINCTRL_GROUP(SALT2),
  1933. ASPEED_PINCTRL_GROUP(SALT3),
  1934. ASPEED_PINCTRL_GROUP(SALT4),
  1935. ASPEED_PINCTRL_GROUP(SD1),
  1936. ASPEED_PINCTRL_GROUP(SD2),
  1937. ASPEED_PINCTRL_GROUP(SGPMCK),
  1938. ASPEED_PINCTRL_GROUP(SGPMI),
  1939. ASPEED_PINCTRL_GROUP(SGPMLD),
  1940. ASPEED_PINCTRL_GROUP(SGPMO),
  1941. ASPEED_PINCTRL_GROUP(SGPSCK),
  1942. ASPEED_PINCTRL_GROUP(SGPSI0),
  1943. ASPEED_PINCTRL_GROUP(SGPSI1),
  1944. ASPEED_PINCTRL_GROUP(SGPSLD),
  1945. ASPEED_PINCTRL_GROUP(SIOONCTRL),
  1946. ASPEED_PINCTRL_GROUP(SIOPBI),
  1947. ASPEED_PINCTRL_GROUP(SIOPBO),
  1948. ASPEED_PINCTRL_GROUP(SIOPWREQ),
  1949. ASPEED_PINCTRL_GROUP(SIOPWRGD),
  1950. ASPEED_PINCTRL_GROUP(SIOS3),
  1951. ASPEED_PINCTRL_GROUP(SIOS5),
  1952. ASPEED_PINCTRL_GROUP(SIOSCI),
  1953. ASPEED_PINCTRL_GROUP(SPI1),
  1954. ASPEED_PINCTRL_GROUP(SPI1DEBUG),
  1955. ASPEED_PINCTRL_GROUP(SPI1PASSTHRU),
  1956. ASPEED_PINCTRL_GROUP(SPICS1),
  1957. ASPEED_PINCTRL_GROUP(TIMER3),
  1958. ASPEED_PINCTRL_GROUP(TIMER4),
  1959. ASPEED_PINCTRL_GROUP(TIMER5),
  1960. ASPEED_PINCTRL_GROUP(TIMER6),
  1961. ASPEED_PINCTRL_GROUP(TIMER7),
  1962. ASPEED_PINCTRL_GROUP(TIMER8),
  1963. ASPEED_PINCTRL_GROUP(TXD1),
  1964. ASPEED_PINCTRL_GROUP(TXD2),
  1965. ASPEED_PINCTRL_GROUP(TXD3),
  1966. ASPEED_PINCTRL_GROUP(TXD4),
  1967. ASPEED_PINCTRL_GROUP(UART6),
  1968. ASPEED_PINCTRL_GROUP(USB11D1),
  1969. ASPEED_PINCTRL_GROUP(USB11H2),
  1970. ASPEED_PINCTRL_GROUP(USB2D1),
  1971. ASPEED_PINCTRL_GROUP(USB2H1),
  1972. ASPEED_PINCTRL_GROUP(USBCKI),
  1973. ASPEED_PINCTRL_GROUP(VGABIOS_ROM),
  1974. ASPEED_PINCTRL_GROUP(VGAHS),
  1975. ASPEED_PINCTRL_GROUP(VGAVS),
  1976. ASPEED_PINCTRL_GROUP(VPI18),
  1977. ASPEED_PINCTRL_GROUP(VPI24),
  1978. ASPEED_PINCTRL_GROUP(VPI30),
  1979. ASPEED_PINCTRL_GROUP(VPO12),
  1980. ASPEED_PINCTRL_GROUP(VPO24),
  1981. ASPEED_PINCTRL_GROUP(WDTRST1),
  1982. ASPEED_PINCTRL_GROUP(WDTRST2),
  1983. };
  1984. static const struct aspeed_pin_function aspeed_g4_functions[] = {
  1985. ASPEED_PINCTRL_FUNC(ACPI),
  1986. ASPEED_PINCTRL_FUNC(ADC0),
  1987. ASPEED_PINCTRL_FUNC(ADC1),
  1988. ASPEED_PINCTRL_FUNC(ADC10),
  1989. ASPEED_PINCTRL_FUNC(ADC11),
  1990. ASPEED_PINCTRL_FUNC(ADC12),
  1991. ASPEED_PINCTRL_FUNC(ADC13),
  1992. ASPEED_PINCTRL_FUNC(ADC14),
  1993. ASPEED_PINCTRL_FUNC(ADC15),
  1994. ASPEED_PINCTRL_FUNC(ADC2),
  1995. ASPEED_PINCTRL_FUNC(ADC3),
  1996. ASPEED_PINCTRL_FUNC(ADC4),
  1997. ASPEED_PINCTRL_FUNC(ADC5),
  1998. ASPEED_PINCTRL_FUNC(ADC6),
  1999. ASPEED_PINCTRL_FUNC(ADC7),
  2000. ASPEED_PINCTRL_FUNC(ADC8),
  2001. ASPEED_PINCTRL_FUNC(ADC9),
  2002. ASPEED_PINCTRL_FUNC(BMCINT),
  2003. ASPEED_PINCTRL_FUNC(DDCCLK),
  2004. ASPEED_PINCTRL_FUNC(DDCDAT),
  2005. ASPEED_PINCTRL_FUNC(EXTRST),
  2006. ASPEED_PINCTRL_FUNC(FLACK),
  2007. ASPEED_PINCTRL_FUNC(FLBUSY),
  2008. ASPEED_PINCTRL_FUNC(FLWP),
  2009. ASPEED_PINCTRL_FUNC(GPID),
  2010. ASPEED_PINCTRL_FUNC(GPID0),
  2011. ASPEED_PINCTRL_FUNC(GPID2),
  2012. ASPEED_PINCTRL_FUNC(GPID4),
  2013. ASPEED_PINCTRL_FUNC(GPID6),
  2014. ASPEED_PINCTRL_FUNC(GPIE0),
  2015. ASPEED_PINCTRL_FUNC(GPIE2),
  2016. ASPEED_PINCTRL_FUNC(GPIE4),
  2017. ASPEED_PINCTRL_FUNC(GPIE6),
  2018. ASPEED_PINCTRL_FUNC(I2C10),
  2019. ASPEED_PINCTRL_FUNC(I2C11),
  2020. ASPEED_PINCTRL_FUNC(I2C12),
  2021. ASPEED_PINCTRL_FUNC(I2C13),
  2022. ASPEED_PINCTRL_FUNC(I2C14),
  2023. ASPEED_PINCTRL_FUNC(I2C3),
  2024. ASPEED_PINCTRL_FUNC(I2C4),
  2025. ASPEED_PINCTRL_FUNC(I2C5),
  2026. ASPEED_PINCTRL_FUNC(I2C6),
  2027. ASPEED_PINCTRL_FUNC(I2C7),
  2028. ASPEED_PINCTRL_FUNC(I2C8),
  2029. ASPEED_PINCTRL_FUNC(I2C9),
  2030. ASPEED_PINCTRL_FUNC(LPCPD),
  2031. ASPEED_PINCTRL_FUNC(LPCPME),
  2032. ASPEED_PINCTRL_FUNC(LPCRST),
  2033. ASPEED_PINCTRL_FUNC(LPCSMI),
  2034. ASPEED_PINCTRL_FUNC(MAC1LINK),
  2035. ASPEED_PINCTRL_FUNC(MAC2LINK),
  2036. ASPEED_PINCTRL_FUNC(MDIO1),
  2037. ASPEED_PINCTRL_FUNC(MDIO2),
  2038. ASPEED_PINCTRL_FUNC(NCTS1),
  2039. ASPEED_PINCTRL_FUNC(NCTS2),
  2040. ASPEED_PINCTRL_FUNC(NCTS3),
  2041. ASPEED_PINCTRL_FUNC(NCTS4),
  2042. ASPEED_PINCTRL_FUNC(NDCD1),
  2043. ASPEED_PINCTRL_FUNC(NDCD2),
  2044. ASPEED_PINCTRL_FUNC(NDCD3),
  2045. ASPEED_PINCTRL_FUNC(NDCD4),
  2046. ASPEED_PINCTRL_FUNC(NDSR1),
  2047. ASPEED_PINCTRL_FUNC(NDSR2),
  2048. ASPEED_PINCTRL_FUNC(NDSR3),
  2049. ASPEED_PINCTRL_FUNC(NDSR4),
  2050. ASPEED_PINCTRL_FUNC(NDTR1),
  2051. ASPEED_PINCTRL_FUNC(NDTR2),
  2052. ASPEED_PINCTRL_FUNC(NDTR3),
  2053. ASPEED_PINCTRL_FUNC(NDTR4),
  2054. ASPEED_PINCTRL_FUNC(NDTS4),
  2055. ASPEED_PINCTRL_FUNC(NRI1),
  2056. ASPEED_PINCTRL_FUNC(NRI2),
  2057. ASPEED_PINCTRL_FUNC(NRI3),
  2058. ASPEED_PINCTRL_FUNC(NRI4),
  2059. ASPEED_PINCTRL_FUNC(NRTS1),
  2060. ASPEED_PINCTRL_FUNC(NRTS2),
  2061. ASPEED_PINCTRL_FUNC(NRTS3),
  2062. ASPEED_PINCTRL_FUNC(OSCCLK),
  2063. ASPEED_PINCTRL_FUNC(PWM0),
  2064. ASPEED_PINCTRL_FUNC(PWM1),
  2065. ASPEED_PINCTRL_FUNC(PWM2),
  2066. ASPEED_PINCTRL_FUNC(PWM3),
  2067. ASPEED_PINCTRL_FUNC(PWM4),
  2068. ASPEED_PINCTRL_FUNC(PWM5),
  2069. ASPEED_PINCTRL_FUNC(PWM6),
  2070. ASPEED_PINCTRL_FUNC(PWM7),
  2071. ASPEED_PINCTRL_FUNC(RGMII1),
  2072. ASPEED_PINCTRL_FUNC(RGMII2),
  2073. ASPEED_PINCTRL_FUNC(RMII1),
  2074. ASPEED_PINCTRL_FUNC(RMII2),
  2075. ASPEED_PINCTRL_FUNC(ROM16),
  2076. ASPEED_PINCTRL_FUNC(ROM8),
  2077. ASPEED_PINCTRL_FUNC(ROMCS1),
  2078. ASPEED_PINCTRL_FUNC(ROMCS2),
  2079. ASPEED_PINCTRL_FUNC(ROMCS3),
  2080. ASPEED_PINCTRL_FUNC(ROMCS4),
  2081. ASPEED_PINCTRL_FUNC(RXD1),
  2082. ASPEED_PINCTRL_FUNC(RXD2),
  2083. ASPEED_PINCTRL_FUNC(RXD3),
  2084. ASPEED_PINCTRL_FUNC(RXD4),
  2085. ASPEED_PINCTRL_FUNC(SALT1),
  2086. ASPEED_PINCTRL_FUNC(SALT2),
  2087. ASPEED_PINCTRL_FUNC(SALT3),
  2088. ASPEED_PINCTRL_FUNC(SALT4),
  2089. ASPEED_PINCTRL_FUNC(SD1),
  2090. ASPEED_PINCTRL_FUNC(SD2),
  2091. ASPEED_PINCTRL_FUNC(SGPMCK),
  2092. ASPEED_PINCTRL_FUNC(SGPMI),
  2093. ASPEED_PINCTRL_FUNC(SGPMLD),
  2094. ASPEED_PINCTRL_FUNC(SGPMO),
  2095. ASPEED_PINCTRL_FUNC(SGPSCK),
  2096. ASPEED_PINCTRL_FUNC(SGPSI0),
  2097. ASPEED_PINCTRL_FUNC(SGPSI1),
  2098. ASPEED_PINCTRL_FUNC(SGPSLD),
  2099. ASPEED_PINCTRL_FUNC(SIOONCTRL),
  2100. ASPEED_PINCTRL_FUNC(SIOPBI),
  2101. ASPEED_PINCTRL_FUNC(SIOPBO),
  2102. ASPEED_PINCTRL_FUNC(SIOPWREQ),
  2103. ASPEED_PINCTRL_FUNC(SIOPWRGD),
  2104. ASPEED_PINCTRL_FUNC(SIOS3),
  2105. ASPEED_PINCTRL_FUNC(SIOS5),
  2106. ASPEED_PINCTRL_FUNC(SIOSCI),
  2107. ASPEED_PINCTRL_FUNC(SPI1),
  2108. ASPEED_PINCTRL_FUNC(SPI1DEBUG),
  2109. ASPEED_PINCTRL_FUNC(SPI1PASSTHRU),
  2110. ASPEED_PINCTRL_FUNC(SPICS1),
  2111. ASPEED_PINCTRL_FUNC(TIMER3),
  2112. ASPEED_PINCTRL_FUNC(TIMER4),
  2113. ASPEED_PINCTRL_FUNC(TIMER5),
  2114. ASPEED_PINCTRL_FUNC(TIMER6),
  2115. ASPEED_PINCTRL_FUNC(TIMER7),
  2116. ASPEED_PINCTRL_FUNC(TIMER8),
  2117. ASPEED_PINCTRL_FUNC(TXD1),
  2118. ASPEED_PINCTRL_FUNC(TXD2),
  2119. ASPEED_PINCTRL_FUNC(TXD3),
  2120. ASPEED_PINCTRL_FUNC(TXD4),
  2121. ASPEED_PINCTRL_FUNC(UART6),
  2122. ASPEED_PINCTRL_FUNC(USB11D1),
  2123. ASPEED_PINCTRL_FUNC(USB11H2),
  2124. ASPEED_PINCTRL_FUNC(USB2D1),
  2125. ASPEED_PINCTRL_FUNC(USB2H1),
  2126. ASPEED_PINCTRL_FUNC(USBCKI),
  2127. ASPEED_PINCTRL_FUNC(VGABIOS_ROM),
  2128. ASPEED_PINCTRL_FUNC(VGAHS),
  2129. ASPEED_PINCTRL_FUNC(VGAVS),
  2130. ASPEED_PINCTRL_FUNC(VPI18),
  2131. ASPEED_PINCTRL_FUNC(VPI24),
  2132. ASPEED_PINCTRL_FUNC(VPI30),
  2133. ASPEED_PINCTRL_FUNC(VPO12),
  2134. ASPEED_PINCTRL_FUNC(VPO24),
  2135. ASPEED_PINCTRL_FUNC(WDTRST1),
  2136. ASPEED_PINCTRL_FUNC(WDTRST2),
  2137. };
  2138. static const struct aspeed_pin_config aspeed_g4_configs[] = {
  2139. /* GPIO banks ranges [A, B], [D, J], [M, R] */
  2140. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, D6, D5, SCU8C, 16),
  2141. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, D6, D5, SCU8C, 16),
  2142. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, J21, E18, SCU8C, 17),
  2143. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, J21, E18, SCU8C, 17),
  2144. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, A18, E15, SCU8C, 19),
  2145. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, A18, E15, SCU8C, 19),
  2146. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, D15, B14, SCU8C, 20),
  2147. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, D15, B14, SCU8C, 20),
  2148. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, D18, C17, SCU8C, 21),
  2149. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, D18, C17, SCU8C, 21),
  2150. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, A14, U18, SCU8C, 22),
  2151. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, A14, U18, SCU8C, 22),
  2152. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, A8, E7, SCU8C, 23),
  2153. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, A8, E7, SCU8C, 23),
  2154. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, C22, E20, SCU8C, 24),
  2155. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, C22, E20, SCU8C, 24),
  2156. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, J5, T1, SCU8C, 25),
  2157. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, J5, T1, SCU8C, 25),
  2158. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, U1, U5, SCU8C, 26),
  2159. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, U1, U5, SCU8C, 26),
  2160. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, V3, V5, SCU8C, 27),
  2161. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, V3, V5, SCU8C, 27),
  2162. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, W4, AB2, SCU8C, 28),
  2163. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, W4, AB2, SCU8C, 28),
  2164. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, V6, V7, SCU8C, 29),
  2165. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, V6, V7, SCU8C, 29),
  2166. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, Y6, AB7, SCU8C, 30),
  2167. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, Y6, AB7, SCU8C, 30),
  2168. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, V20, A5, SCU8C, 31),
  2169. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, V20, A5, SCU8C, 31),
  2170. /* GPIOs T[0-5] (RGMII1 Tx pins) */
  2171. ASPEED_SB_PINCONF(PIN_CONFIG_DRIVE_STRENGTH, A12, A13, SCU90, 9),
  2172. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, A12, A13, SCU90, 12),
  2173. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, A12, A13, SCU90, 12),
  2174. /* GPIOs T[6-7], U[0-3] (RGMII2 TX pins) */
  2175. ASPEED_SB_PINCONF(PIN_CONFIG_DRIVE_STRENGTH, D9, D10, SCU90, 11),
  2176. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, D9, D10, SCU90, 14),
  2177. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, D9, D10, SCU90, 14),
  2178. /* GPIOs U[4-7], V[0-1] (RGMII1 Rx pins) */
  2179. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, E11, E10, SCU90, 13),
  2180. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, E11, E10, SCU90, 13),
  2181. /* GPIOs V[2-7] (RGMII2 Rx pins) */
  2182. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, C9, C8, SCU90, 15),
  2183. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, C9, C8, SCU90, 15),
  2184. /* ADC pull-downs (SCUA8[19:4]) */
  2185. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, L5, L5, SCUA8, 4),
  2186. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, L5, L5, SCUA8, 4),
  2187. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, L4, L4, SCUA8, 5),
  2188. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, L4, L4, SCUA8, 5),
  2189. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, L3, L3, SCUA8, 6),
  2190. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, L3, L3, SCUA8, 6),
  2191. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, L2, L2, SCUA8, 7),
  2192. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, L2, L2, SCUA8, 7),
  2193. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, L1, L1, SCUA8, 8),
  2194. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, L1, L1, SCUA8, 8),
  2195. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, M5, M5, SCUA8, 9),
  2196. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, M5, M5, SCUA8, 9),
  2197. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, M4, M4, SCUA8, 10),
  2198. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, M4, M4, SCUA8, 10),
  2199. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, M3, M3, SCUA8, 11),
  2200. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, M3, M3, SCUA8, 11),
  2201. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, M2, M2, SCUA8, 12),
  2202. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, M2, M2, SCUA8, 12),
  2203. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, M1, M1, SCUA8, 13),
  2204. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, M1, M1, SCUA8, 13),
  2205. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, N5, N5, SCUA8, 14),
  2206. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, N5, N5, SCUA8, 14),
  2207. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, N4, N4, SCUA8, 15),
  2208. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, N4, N4, SCUA8, 15),
  2209. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, N3, N3, SCUA8, 16),
  2210. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, N3, N3, SCUA8, 16),
  2211. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, N2, N2, SCUA8, 17),
  2212. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, N2, N2, SCUA8, 17),
  2213. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, N1, N1, SCUA8, 18),
  2214. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, N1, N1, SCUA8, 18),
  2215. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_PULL_DOWN, P5, P5, SCUA8, 19),
  2216. ASPEED_SB_PINCONF(PIN_CONFIG_BIAS_DISABLE, P5, P5, SCUA8, 19),
  2217. /*
  2218. * Debounce settings for GPIOs D and E passthrough mode are in
  2219. * SCUA8[27:20] and so are managed by pinctrl. Normal GPIO debounce for
  2220. * banks D and E is handled by the GPIO driver - GPIO passthrough is
  2221. * treated like any other non-GPIO mux function. There is a catch
  2222. * however, in that the debounce period is configured in the GPIO
  2223. * controller. Due to this tangle between GPIO and pinctrl we don't yet
  2224. * fully support pass-through debounce.
  2225. */
  2226. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, A18, D16, SCUA8, 20),
  2227. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, B17, A17, SCUA8, 21),
  2228. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, C16, B16, SCUA8, 22),
  2229. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, A16, E15, SCUA8, 23),
  2230. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, D15, C15, SCUA8, 24),
  2231. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, B15, A15, SCUA8, 25),
  2232. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, E14, D14, SCUA8, 26),
  2233. ASPEED_SB_PINCONF(PIN_CONFIG_INPUT_DEBOUNCE, C14, B14, SCUA8, 27),
  2234. };
  2235. static int aspeed_g4_sig_expr_set(struct aspeed_pinmux_data *ctx,
  2236. const struct aspeed_sig_expr *expr,
  2237. bool enable)
  2238. {
  2239. int ret;
  2240. int i;
  2241. for (i = 0; i < expr->ndescs; i++) {
  2242. const struct aspeed_sig_desc *desc = &expr->descs[i];
  2243. u32 pattern = enable ? desc->enable : desc->disable;
  2244. u32 val = (pattern << __ffs(desc->mask));
  2245. if (!ctx->maps[desc->ip])
  2246. return -ENODEV;
  2247. /*
  2248. * Strap registers are configured in hardware or by early-boot
  2249. * firmware. Treat them as read-only despite that we can write
  2250. * them. This may mean that certain functions cannot be
  2251. * deconfigured and is the reason we re-evaluate after writing
  2252. * all descriptor bits.
  2253. *
  2254. * Port D and port E GPIO loopback modes are the only exception
  2255. * as those are commonly used with front-panel buttons to allow
  2256. * normal operation of the host when the BMC is powered off or
  2257. * fails to boot. Once the BMC has booted, the loopback mode
  2258. * must be disabled for the BMC to control host power-on and
  2259. * reset.
  2260. */
  2261. if (desc->ip == ASPEED_IP_SCU && desc->reg == HW_STRAP1 &&
  2262. !(desc->mask & (BIT(21) | BIT(22))))
  2263. continue;
  2264. if (desc->ip == ASPEED_IP_SCU && desc->reg == HW_STRAP2)
  2265. continue;
  2266. ret = regmap_update_bits(ctx->maps[desc->ip], desc->reg,
  2267. desc->mask, val);
  2268. if (ret)
  2269. return ret;
  2270. }
  2271. ret = aspeed_sig_expr_eval(ctx, expr, enable);
  2272. if (ret < 0)
  2273. return ret;
  2274. if (!ret)
  2275. return -EPERM;
  2276. return 0;
  2277. }
  2278. static const struct aspeed_pin_config_map aspeed_g4_pin_config_map[] = {
  2279. { PIN_CONFIG_BIAS_PULL_DOWN, 0, 1, BIT_MASK(0)},
  2280. { PIN_CONFIG_BIAS_PULL_DOWN, -1, 0, BIT_MASK(0)},
  2281. { PIN_CONFIG_BIAS_DISABLE, -1, 1, BIT_MASK(0)},
  2282. { PIN_CONFIG_DRIVE_STRENGTH, 8, 0, BIT_MASK(0)},
  2283. { PIN_CONFIG_DRIVE_STRENGTH, 16, 1, BIT_MASK(0)},
  2284. };
  2285. static const struct aspeed_pinmux_ops aspeed_g4_ops = {
  2286. .set = aspeed_g4_sig_expr_set,
  2287. };
  2288. static struct aspeed_pinctrl_data aspeed_g4_pinctrl_data = {
  2289. .pins = aspeed_g4_pins,
  2290. .npins = ARRAY_SIZE(aspeed_g4_pins),
  2291. .pinmux = {
  2292. .ops = &aspeed_g4_ops,
  2293. .groups = aspeed_g4_groups,
  2294. .ngroups = ARRAY_SIZE(aspeed_g4_groups),
  2295. .functions = aspeed_g4_functions,
  2296. .nfunctions = ARRAY_SIZE(aspeed_g4_functions),
  2297. },
  2298. .configs = aspeed_g4_configs,
  2299. .nconfigs = ARRAY_SIZE(aspeed_g4_configs),
  2300. .confmaps = aspeed_g4_pin_config_map,
  2301. .nconfmaps = ARRAY_SIZE(aspeed_g4_pin_config_map),
  2302. };
  2303. static const struct pinmux_ops aspeed_g4_pinmux_ops = {
  2304. .get_functions_count = aspeed_pinmux_get_fn_count,
  2305. .get_function_name = aspeed_pinmux_get_fn_name,
  2306. .get_function_groups = aspeed_pinmux_get_fn_groups,
  2307. .set_mux = aspeed_pinmux_set_mux,
  2308. .gpio_request_enable = aspeed_gpio_request_enable,
  2309. .strict = true,
  2310. };
  2311. static const struct pinctrl_ops aspeed_g4_pinctrl_ops = {
  2312. .get_groups_count = aspeed_pinctrl_get_groups_count,
  2313. .get_group_name = aspeed_pinctrl_get_group_name,
  2314. .get_group_pins = aspeed_pinctrl_get_group_pins,
  2315. .pin_dbg_show = aspeed_pinctrl_pin_dbg_show,
  2316. .dt_node_to_map = pinconf_generic_dt_node_to_map_all,
  2317. .dt_free_map = pinctrl_utils_free_map,
  2318. };
  2319. static const struct pinconf_ops aspeed_g4_conf_ops = {
  2320. .is_generic = true,
  2321. .pin_config_get = aspeed_pin_config_get,
  2322. .pin_config_set = aspeed_pin_config_set,
  2323. .pin_config_group_get = aspeed_pin_config_group_get,
  2324. .pin_config_group_set = aspeed_pin_config_group_set,
  2325. };
  2326. static struct pinctrl_desc aspeed_g4_pinctrl_desc = {
  2327. .name = "aspeed-g4-pinctrl",
  2328. .pins = aspeed_g4_pins,
  2329. .npins = ARRAY_SIZE(aspeed_g4_pins),
  2330. .pctlops = &aspeed_g4_pinctrl_ops,
  2331. .pmxops = &aspeed_g4_pinmux_ops,
  2332. .confops = &aspeed_g4_conf_ops,
  2333. };
  2334. static int aspeed_g4_pinctrl_probe(struct platform_device *pdev)
  2335. {
  2336. int i;
  2337. for (i = 0; i < ARRAY_SIZE(aspeed_g4_pins); i++)
  2338. aspeed_g4_pins[i].number = i;
  2339. return aspeed_pinctrl_probe(pdev, &aspeed_g4_pinctrl_desc,
  2340. &aspeed_g4_pinctrl_data);
  2341. }
  2342. static const struct of_device_id aspeed_g4_pinctrl_of_match[] = {
  2343. { .compatible = "aspeed,ast2400-pinctrl", },
  2344. /*
  2345. * The aspeed,g4-pinctrl compatible has been removed the from the
  2346. * bindings, but keep the match in case of old devicetrees.
  2347. */
  2348. { .compatible = "aspeed,g4-pinctrl", },
  2349. { },
  2350. };
  2351. static struct platform_driver aspeed_g4_pinctrl_driver = {
  2352. .probe = aspeed_g4_pinctrl_probe,
  2353. .driver = {
  2354. .name = "aspeed-g4-pinctrl",
  2355. .of_match_table = aspeed_g4_pinctrl_of_match,
  2356. },
  2357. };
  2358. static int aspeed_g4_pinctrl_init(void)
  2359. {
  2360. return platform_driver_register(&aspeed_g4_pinctrl_driver);
  2361. }
  2362. arch_initcall(aspeed_g4_pinctrl_init);