pinctrl-mt6765.c 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright (C) 2018 MediaTek Inc.
  4. *
  5. * Author: ZH Chen <[email protected]>
  6. *
  7. */
  8. #include <linux/module.h>
  9. #include "pinctrl-mtk-mt6765.h"
  10. #include "pinctrl-paris.h"
  11. /* MT6765 have multiple bases to program pin configuration listed as the below:
  12. * iocfg[0]:0x10005000, iocfg[1]:0x10002C00, iocfg[2]:0x10002800,
  13. * iocfg[3]:0x10002A00, iocfg[4]:0x10002000, iocfg[5]:0x10002200,
  14. * iocfg[6]:0x10002500, iocfg[7]:0x10002600.
  15. * _i_base could be used to indicate what base the pin should be mapped into.
  16. */
  17. #define PIN_FIELD_BASE(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit, _x_bits) \
  18. PIN_FIELD_CALC(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit, \
  19. _x_bits, 32, 0)
  20. #define PINS_FIELD_BASE(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit, _x_bits) \
  21. PIN_FIELD_CALC(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit, \
  22. _x_bits, 32, 1)
  23. static const struct mtk_pin_field_calc mt6765_pin_mode_range[] = {
  24. PIN_FIELD(0, 202, 0x300, 0x10, 0, 4),
  25. };
  26. static const struct mtk_pin_field_calc mt6765_pin_dir_range[] = {
  27. PIN_FIELD(0, 202, 0x0, 0x10, 0, 1),
  28. };
  29. static const struct mtk_pin_field_calc mt6765_pin_di_range[] = {
  30. PIN_FIELD(0, 202, 0x200, 0x10, 0, 1),
  31. };
  32. static const struct mtk_pin_field_calc mt6765_pin_do_range[] = {
  33. PIN_FIELD(0, 202, 0x100, 0x10, 0, 1),
  34. };
  35. static const struct mtk_pin_field_calc mt6765_pin_smt_range[] = {
  36. PINS_FIELD_BASE(0, 3, 2, 0x00b0, 0x10, 4, 1),
  37. PINS_FIELD_BASE(4, 7, 2, 0x00b0, 0x10, 5, 1),
  38. PIN_FIELD_BASE(8, 8, 3, 0x0080, 0x10, 3, 1),
  39. PINS_FIELD_BASE(9, 11, 2, 0x00b0, 0x10, 6, 1),
  40. PIN_FIELD_BASE(12, 12, 5, 0x0060, 0x10, 9, 1),
  41. PINS_FIELD_BASE(13, 16, 6, 0x00b0, 0x10, 10, 1),
  42. PINS_FIELD_BASE(17, 20, 6, 0x00b0, 0x10, 8, 1),
  43. PINS_FIELD_BASE(21, 24, 6, 0x00b0, 0x10, 9, 1),
  44. PINS_FIELD_BASE(25, 28, 6, 0x00b0, 0x10, 7, 1),
  45. PIN_FIELD_BASE(29, 29, 6, 0x00b0, 0x10, 0, 1),
  46. PIN_FIELD_BASE(30, 30, 6, 0x00b0, 0x10, 1, 1),
  47. PINS_FIELD_BASE(31, 34, 6, 0x00b0, 0x10, 2, 1),
  48. PINS_FIELD_BASE(35, 36, 6, 0x00b0, 0x10, 5, 1),
  49. PIN_FIELD_BASE(37, 37, 6, 0x00b0, 0x10, 6, 1),
  50. PIN_FIELD_BASE(38, 38, 6, 0x00b0, 0x10, 4, 1),
  51. PINS_FIELD_BASE(39, 40, 6, 0x00b0, 0x10, 3, 1),
  52. PINS_FIELD_BASE(41, 42, 7, 0x00c0, 0x10, 6, 1),
  53. PIN_FIELD_BASE(43, 43, 7, 0x00c0, 0x10, 3, 1),
  54. PIN_FIELD_BASE(44, 44, 7, 0x00c0, 0x10, 4, 1),
  55. PIN_FIELD_BASE(45, 45, 7, 0x00c0, 0x10, 8, 1),
  56. PINS_FIELD_BASE(46, 47, 7, 0x00c0, 0x10, 7, 1),
  57. PIN_FIELD_BASE(48, 48, 7, 0x00c0, 0x10, 15, 1),
  58. PIN_FIELD_BASE(49, 49, 7, 0x00c0, 0x10, 17, 1),
  59. PIN_FIELD_BASE(50, 50, 7, 0x00c0, 0x10, 14, 1),
  60. PIN_FIELD_BASE(51, 51, 7, 0x00c0, 0x10, 16, 1),
  61. PINS_FIELD_BASE(52, 57, 7, 0x00c0, 0x10, 0, 1),
  62. PINS_FIELD_BASE(58, 60, 7, 0x00c0, 0x10, 12, 1),
  63. PINS_FIELD_BASE(61, 62, 3, 0x0080, 0x10, 5, 1),
  64. PINS_FIELD_BASE(63, 64, 3, 0x0080, 0x10, 4, 1),
  65. PINS_FIELD_BASE(65, 66, 3, 0x0080, 0x10, 7, 1),
  66. PINS_FIELD_BASE(67, 68, 3, 0x0080, 0x10, 6, 1),
  67. PINS_FIELD_BASE(69, 73, 3, 0x0080, 0x10, 1, 1),
  68. PINS_FIELD_BASE(74, 78, 3, 0x0080, 0x10, 2, 1),
  69. PINS_FIELD_BASE(79, 80, 3, 0x0080, 0x10, 0, 1),
  70. PIN_FIELD_BASE(81, 81, 3, 0x0080, 0x10, 12, 1),
  71. PIN_FIELD_BASE(82, 82, 3, 0x0080, 0x10, 11, 1),
  72. PIN_FIELD_BASE(83, 83, 3, 0x0080, 0x10, 9, 1),
  73. PIN_FIELD_BASE(84, 84, 3, 0x0080, 0x10, 10, 1),
  74. PIN_FIELD_BASE(85, 85, 7, 0x00c0, 0x10, 12, 1),
  75. PIN_FIELD_BASE(86, 86, 7, 0x00c0, 0x10, 13, 1),
  76. PIN_FIELD_BASE(87, 87, 7, 0x00c0, 0x10, 2, 1),
  77. PIN_FIELD_BASE(88, 88, 7, 0x00c0, 0x10, 1, 1),
  78. PIN_FIELD_BASE(89, 89, 2, 0x00b0, 0x10, 13, 1),
  79. PIN_FIELD_BASE(90, 90, 3, 0x0080, 0x10, 8, 1),
  80. PINS_FIELD_BASE(91, 92, 2, 0x00b0, 0x10, 8, 1),
  81. PINS_FIELD_BASE(93, 94, 2, 0x00b0, 0x10, 7, 1),
  82. PINS_FIELD_BASE(95, 96, 2, 0x00b0, 0x10, 14, 1),
  83. PINS_FIELD_BASE(97, 98, 2, 0x00b0, 0x10, 2, 1),
  84. PIN_FIELD_BASE(99, 99, 2, 0x00b0, 0x10, 0, 1),
  85. PIN_FIELD_BASE(100, 100, 2, 0x00b0, 0x10, 1, 1),
  86. PINS_FIELD_BASE(101, 102, 2, 0x00b0, 0x10, 3, 1),
  87. PIN_FIELD_BASE(103, 103, 2, 0x00b0, 0x10, 9, 1),
  88. PIN_FIELD_BASE(104, 104, 2, 0x00b0, 0x10, 11, 1),
  89. PIN_FIELD_BASE(105, 105, 2, 0x00b0, 0x10, 10, 1),
  90. PIN_FIELD_BASE(106, 106, 2, 0x00b0, 0x10, 12, 1),
  91. PIN_FIELD_BASE(107, 107, 1, 0x0080, 0x10, 4, 1),
  92. PIN_FIELD_BASE(108, 108, 1, 0x0080, 0x10, 3, 1),
  93. PIN_FIELD_BASE(109, 109, 1, 0x0080, 0x10, 5, 1),
  94. PIN_FIELD_BASE(110, 110, 1, 0x0080, 0x10, 0, 1),
  95. PIN_FIELD_BASE(111, 111, 1, 0x0080, 0x10, 1, 1),
  96. PIN_FIELD_BASE(112, 112, 1, 0x0080, 0x10, 2, 1),
  97. PIN_FIELD_BASE(113, 113, 1, 0x0080, 0x10, 9, 1),
  98. PIN_FIELD_BASE(114, 114, 1, 0x0080, 0x10, 10, 1),
  99. PIN_FIELD_BASE(115, 115, 1, 0x0080, 0x10, 6, 1),
  100. PIN_FIELD_BASE(116, 116, 1, 0x0080, 0x10, 7, 1),
  101. PIN_FIELD_BASE(117, 117, 1, 0x0080, 0x10, 12, 1),
  102. PIN_FIELD_BASE(118, 118, 1, 0x0080, 0x10, 13, 1),
  103. PIN_FIELD_BASE(119, 119, 1, 0x0080, 0x10, 14, 1),
  104. PIN_FIELD_BASE(120, 120, 1, 0x0080, 0x10, 11, 1),
  105. PIN_FIELD_BASE(121, 121, 1, 0x0080, 0x10, 8, 1),
  106. PIN_FIELD_BASE(122, 122, 4, 0x0080, 0x10, 2, 1),
  107. PIN_FIELD_BASE(123, 123, 4, 0x0080, 0x10, 3, 1),
  108. PIN_FIELD_BASE(124, 124, 4, 0x0080, 0x10, 1, 1),
  109. PIN_FIELD_BASE(125, 125, 4, 0x0080, 0x10, 5, 1),
  110. PIN_FIELD_BASE(126, 126, 4, 0x0080, 0x10, 7, 1),
  111. PIN_FIELD_BASE(127, 127, 4, 0x0080, 0x10, 9, 1),
  112. PIN_FIELD_BASE(128, 128, 4, 0x0080, 0x10, 4, 1),
  113. PIN_FIELD_BASE(129, 129, 4, 0x0080, 0x10, 8, 1),
  114. PIN_FIELD_BASE(130, 130, 4, 0x0080, 0x10, 10, 1),
  115. PIN_FIELD_BASE(131, 131, 4, 0x0080, 0x10, 11, 1),
  116. PIN_FIELD_BASE(132, 132, 4, 0x0080, 0x10, 6, 1),
  117. PIN_FIELD_BASE(133, 133, 4, 0x0080, 0x10, 12, 1),
  118. PIN_FIELD_BASE(134, 134, 5, 0x0060, 0x10, 11, 1),
  119. PIN_FIELD_BASE(135, 135, 5, 0x0060, 0x10, 13, 1),
  120. PIN_FIELD_BASE(136, 136, 5, 0x0060, 0x10, 1, 1),
  121. PIN_FIELD_BASE(137, 137, 5, 0x0060, 0x10, 7, 1),
  122. PIN_FIELD_BASE(138, 138, 5, 0x0060, 0x10, 4, 1),
  123. PIN_FIELD_BASE(139, 139, 5, 0x0060, 0x10, 5, 1),
  124. PIN_FIELD_BASE(140, 140, 5, 0x0060, 0x10, 0, 1),
  125. PIN_FIELD_BASE(141, 141, 5, 0x0060, 0x10, 6, 1),
  126. PIN_FIELD_BASE(142, 142, 5, 0x0060, 0x10, 2, 1),
  127. PIN_FIELD_BASE(143, 143, 5, 0x0060, 0x10, 3, 1),
  128. PINS_FIELD_BASE(144, 147, 5, 0x0060, 0x10, 10, 1),
  129. PINS_FIELD_BASE(148, 149, 5, 0x0060, 0x10, 12, 1),
  130. PINS_FIELD_BASE(150, 151, 7, 0x00c0, 0x10, 9, 1),
  131. PINS_FIELD_BASE(152, 153, 7, 0x00c0, 0x10, 10, 1),
  132. PIN_FIELD_BASE(154, 154, 7, 0x00c0, 0x10, 11, 1),
  133. PINS_FIELD_BASE(155, 158, 3, 0x0080, 0x10, 13, 1),
  134. PIN_FIELD_BASE(159, 159, 7, 0x00c0, 0x10, 11, 1),
  135. PIN_FIELD_BASE(160, 160, 5, 0x0060, 0x10, 8, 1),
  136. PIN_FIELD_BASE(161, 161, 1, 0x0080, 0x10, 15, 1),
  137. PIN_FIELD_BASE(162, 162, 1, 0x0080, 0x10, 16, 1),
  138. PINS_FIELD_BASE(163, 170, 4, 0x0080, 0x10, 0, 1),
  139. PINS_FIELD_BASE(171, 179, 7, 0x00c0, 0x10, 5, 1),
  140. };
  141. static const struct mtk_pin_field_calc mt6765_pin_pd_range[] = {
  142. PIN_FIELD_BASE(0, 0, 2, 0x0040, 0x10, 6, 1),
  143. PIN_FIELD_BASE(1, 1, 2, 0x0040, 0x10, 7, 1),
  144. PIN_FIELD_BASE(2, 2, 2, 0x0040, 0x10, 10, 1),
  145. PIN_FIELD_BASE(3, 3, 2, 0x0040, 0x10, 11, 1),
  146. PIN_FIELD_BASE(4, 4, 2, 0x0040, 0x10, 12, 1),
  147. PIN_FIELD_BASE(5, 5, 2, 0x0040, 0x10, 13, 1),
  148. PIN_FIELD_BASE(6, 6, 2, 0x0040, 0x10, 14, 1),
  149. PIN_FIELD_BASE(7, 7, 2, 0x0040, 0x10, 15, 1),
  150. PIN_FIELD_BASE(8, 8, 3, 0x0040, 0x10, 12, 1),
  151. PIN_FIELD_BASE(9, 9, 2, 0x0040, 0x10, 16, 1),
  152. PIN_FIELD_BASE(10, 10, 2, 0x0040, 0x10, 8, 1),
  153. PIN_FIELD_BASE(11, 11, 2, 0x0040, 0x10, 9, 1),
  154. PIN_FIELD_BASE(12, 12, 5, 0x0030, 0x10, 9, 1),
  155. PIN_FIELD_BASE(13, 13, 6, 0x0040, 0x10, 14, 1),
  156. PIN_FIELD_BASE(14, 14, 6, 0x0040, 0x10, 13, 1),
  157. PIN_FIELD_BASE(15, 15, 6, 0x0040, 0x10, 15, 1),
  158. PIN_FIELD_BASE(16, 16, 6, 0x0040, 0x10, 12, 1),
  159. PIN_FIELD_BASE(17, 17, 6, 0x0040, 0x10, 7, 1),
  160. PIN_FIELD_BASE(18, 18, 6, 0x0040, 0x10, 4, 1),
  161. PIN_FIELD_BASE(19, 19, 6, 0x0040, 0x10, 6, 1),
  162. PIN_FIELD_BASE(20, 20, 6, 0x0040, 0x10, 5, 1),
  163. PIN_FIELD_BASE(21, 21, 6, 0x0040, 0x10, 10, 1),
  164. PIN_FIELD_BASE(22, 22, 6, 0x0040, 0x10, 9, 1),
  165. PIN_FIELD_BASE(23, 23, 6, 0x0040, 0x10, 11, 1),
  166. PIN_FIELD_BASE(24, 24, 6, 0x0040, 0x10, 8, 1),
  167. PIN_FIELD_BASE(25, 25, 6, 0x0040, 0x10, 2, 1),
  168. PIN_FIELD_BASE(26, 26, 6, 0x0040, 0x10, 1, 1),
  169. PIN_FIELD_BASE(27, 27, 6, 0x0040, 0x10, 3, 1),
  170. PINS_FIELD_BASE(28, 40, 6, 0x0040, 0x10, 0, 1),
  171. PIN_FIELD_BASE(41, 41, 7, 0x0060, 0x10, 19, 1),
  172. PIN_FIELD_BASE(42, 42, 7, 0x0060, 0x10, 9, 1),
  173. PIN_FIELD_BASE(43, 43, 7, 0x0060, 0x10, 8, 1),
  174. PIN_FIELD_BASE(44, 44, 7, 0x0060, 0x10, 10, 1),
  175. PIN_FIELD_BASE(45, 45, 7, 0x0060, 0x10, 22, 1),
  176. PIN_FIELD_BASE(46, 46, 7, 0x0060, 0x10, 21, 1),
  177. PIN_FIELD_BASE(47, 47, 7, 0x0060, 0x10, 20, 1),
  178. PIN_FIELD_BASE(48, 48, 7, 0x0070, 0x10, 3, 1),
  179. PIN_FIELD_BASE(49, 49, 7, 0x0070, 0x10, 5, 1),
  180. PIN_FIELD_BASE(50, 50, 7, 0x0070, 0x10, 2, 1),
  181. PIN_FIELD_BASE(51, 51, 7, 0x0070, 0x10, 4, 1),
  182. PIN_FIELD_BASE(52, 52, 7, 0x0060, 0x10, 1, 1),
  183. PIN_FIELD_BASE(53, 53, 7, 0x0060, 0x10, 0, 1),
  184. PIN_FIELD_BASE(54, 54, 7, 0x0060, 0x10, 5, 1),
  185. PIN_FIELD_BASE(55, 55, 7, 0x0060, 0x10, 3, 1),
  186. PIN_FIELD_BASE(56, 56, 7, 0x0060, 0x10, 4, 1),
  187. PIN_FIELD_BASE(57, 57, 7, 0x0060, 0x10, 2, 1),
  188. PIN_FIELD_BASE(58, 58, 7, 0x0070, 0x10, 0, 1),
  189. PIN_FIELD_BASE(59, 59, 7, 0x0060, 0x10, 31, 1),
  190. PIN_FIELD_BASE(60, 60, 7, 0x0060, 0x10, 30, 1),
  191. PIN_FIELD_BASE(61, 61, 3, 0x0040, 0x10, 18, 1),
  192. PIN_FIELD_BASE(62, 62, 3, 0x0040, 0x10, 14, 1),
  193. PIN_FIELD_BASE(63, 63, 3, 0x0040, 0x10, 17, 1),
  194. PIN_FIELD_BASE(64, 64, 3, 0x0040, 0x10, 13, 1),
  195. PIN_FIELD_BASE(65, 65, 3, 0x0040, 0x10, 20, 1),
  196. PIN_FIELD_BASE(66, 66, 3, 0x0040, 0x10, 16, 1),
  197. PIN_FIELD_BASE(67, 67, 3, 0x0040, 0x10, 19, 1),
  198. PIN_FIELD_BASE(68, 68, 3, 0x0040, 0x10, 15, 1),
  199. PIN_FIELD_BASE(69, 69, 3, 0x0040, 0x10, 8, 1),
  200. PIN_FIELD_BASE(70, 70, 3, 0x0040, 0x10, 7, 1),
  201. PIN_FIELD_BASE(71, 71, 3, 0x0040, 0x10, 6, 1),
  202. PIN_FIELD_BASE(72, 72, 3, 0x0040, 0x10, 5, 1),
  203. PIN_FIELD_BASE(73, 73, 3, 0x0040, 0x10, 4, 1),
  204. PIN_FIELD_BASE(74, 74, 3, 0x0040, 0x10, 3, 1),
  205. PIN_FIELD_BASE(75, 75, 3, 0x0040, 0x10, 2, 1),
  206. PIN_FIELD_BASE(76, 76, 3, 0x0040, 0x10, 1, 1),
  207. PIN_FIELD_BASE(77, 77, 3, 0x0040, 0x10, 0, 1),
  208. PIN_FIELD_BASE(78, 78, 3, 0x0040, 0x10, 9, 1),
  209. PIN_FIELD_BASE(79, 79, 3, 0x0040, 0x10, 11, 1),
  210. PIN_FIELD_BASE(80, 80, 3, 0x0040, 0x10, 10, 1),
  211. PIN_FIELD_BASE(81, 81, 3, 0x0040, 0x10, 25, 1),
  212. PIN_FIELD_BASE(82, 82, 3, 0x0040, 0x10, 24, 1),
  213. PIN_FIELD_BASE(83, 83, 3, 0x0040, 0x10, 22, 1),
  214. PIN_FIELD_BASE(84, 84, 3, 0x0040, 0x10, 23, 1),
  215. PIN_FIELD_BASE(85, 85, 7, 0x0070, 0x10, 1, 1),
  216. PIN_FIELD_BASE(86, 86, 7, 0x0060, 0x10, 29, 1),
  217. PIN_FIELD_BASE(87, 87, 7, 0x0060, 0x10, 7, 1),
  218. PIN_FIELD_BASE(88, 88, 7, 0x0060, 0x10, 6, 1),
  219. PIN_FIELD_BASE(89, 89, 2, 0x0040, 0x10, 21, 1),
  220. PINS_FIELD_BASE(90, 94, 3, 0x0040, 0x10, 21, 1),
  221. PIN_FIELD_BASE(95, 95, 2, 0x0040, 0x10, 22, 1),
  222. PIN_FIELD_BASE(96, 96, 2, 0x0040, 0x10, 23, 1),
  223. PIN_FIELD_BASE(97, 97, 2, 0x0040, 0x10, 2, 1),
  224. PIN_FIELD_BASE(98, 98, 2, 0x0040, 0x10, 3, 1),
  225. PIN_FIELD_BASE(99, 99, 2, 0x0040, 0x10, 0, 1),
  226. PIN_FIELD_BASE(100, 100, 2, 0x0040, 0x10, 1, 1),
  227. PIN_FIELD_BASE(101, 101, 2, 0x0040, 0x10, 4, 1),
  228. PIN_FIELD_BASE(102, 102, 2, 0x0040, 0x10, 5, 1),
  229. PIN_FIELD_BASE(103, 103, 2, 0x0040, 0x10, 17, 1),
  230. PIN_FIELD_BASE(104, 104, 2, 0x0040, 0x10, 19, 1),
  231. PIN_FIELD_BASE(105, 105, 2, 0x0040, 0x10, 18, 1),
  232. PIN_FIELD_BASE(106, 106, 2, 0x0040, 0x10, 20, 1),
  233. PIN_FIELD_BASE(107, 107, 1, 0x0040, 0x10, 4, 1),
  234. PIN_FIELD_BASE(108, 108, 1, 0x0040, 0x10, 3, 1),
  235. PIN_FIELD_BASE(109, 109, 1, 0x0040, 0x10, 5, 1),
  236. PIN_FIELD_BASE(110, 110, 1, 0x0040, 0x10, 0, 1),
  237. PIN_FIELD_BASE(111, 111, 1, 0x0040, 0x10, 1, 1),
  238. PIN_FIELD_BASE(112, 112, 1, 0x0040, 0x10, 2, 1),
  239. PIN_FIELD_BASE(113, 113, 1, 0x0040, 0x10, 9, 1),
  240. PIN_FIELD_BASE(114, 114, 1, 0x0040, 0x10, 10, 1),
  241. PIN_FIELD_BASE(115, 115, 1, 0x0040, 0x10, 6, 1),
  242. PIN_FIELD_BASE(116, 116, 1, 0x0040, 0x10, 7, 1),
  243. PIN_FIELD_BASE(117, 117, 1, 0x0040, 0x10, 12, 1),
  244. PIN_FIELD_BASE(118, 118, 1, 0x0040, 0x10, 13, 1),
  245. PIN_FIELD_BASE(119, 119, 1, 0x0040, 0x10, 14, 1),
  246. PIN_FIELD_BASE(120, 120, 1, 0x0040, 0x10, 11, 1),
  247. PINS_FIELD_BASE(121, 133, 1, 0x0040, 0x10, 8, 1),
  248. PIN_FIELD_BASE(134, 134, 5, 0x0030, 0x10, 14, 1),
  249. PIN_FIELD_BASE(135, 135, 5, 0x0030, 0x10, 19, 1),
  250. PIN_FIELD_BASE(136, 136, 5, 0x0030, 0x10, 1, 1),
  251. PIN_FIELD_BASE(137, 137, 5, 0x0030, 0x10, 7, 1),
  252. PIN_FIELD_BASE(138, 138, 5, 0x0030, 0x10, 4, 1),
  253. PIN_FIELD_BASE(139, 139, 5, 0x0030, 0x10, 5, 1),
  254. PIN_FIELD_BASE(140, 140, 5, 0x0030, 0x10, 0, 1),
  255. PIN_FIELD_BASE(141, 141, 5, 0x0030, 0x10, 6, 1),
  256. PIN_FIELD_BASE(142, 142, 5, 0x0030, 0x10, 2, 1),
  257. PIN_FIELD_BASE(143, 143, 5, 0x0030, 0x10, 3, 1),
  258. PIN_FIELD_BASE(144, 144, 5, 0x0030, 0x10, 12, 1),
  259. PIN_FIELD_BASE(145, 145, 5, 0x0030, 0x10, 11, 1),
  260. PIN_FIELD_BASE(146, 146, 5, 0x0030, 0x10, 13, 1),
  261. PIN_FIELD_BASE(147, 147, 5, 0x0030, 0x10, 10, 1),
  262. PIN_FIELD_BASE(148, 148, 5, 0x0030, 0x10, 15, 1),
  263. PIN_FIELD_BASE(149, 149, 5, 0x0030, 0x10, 16, 1),
  264. PIN_FIELD_BASE(150, 150, 7, 0x0060, 0x10, 23, 1),
  265. PIN_FIELD_BASE(151, 151, 7, 0x0060, 0x10, 24, 1),
  266. PIN_FIELD_BASE(152, 152, 7, 0x0060, 0x10, 25, 1),
  267. PIN_FIELD_BASE(153, 153, 7, 0x0060, 0x10, 26, 1),
  268. PIN_FIELD_BASE(154, 154, 7, 0x0060, 0x10, 28, 1),
  269. PIN_FIELD_BASE(155, 155, 3, 0x0040, 0x10, 28, 1),
  270. PIN_FIELD_BASE(156, 156, 3, 0x0040, 0x10, 27, 1),
  271. PIN_FIELD_BASE(157, 157, 3, 0x0040, 0x10, 29, 1),
  272. PIN_FIELD_BASE(158, 158, 3, 0x0040, 0x10, 26, 1),
  273. PIN_FIELD_BASE(159, 159, 7, 0x0060, 0x10, 27, 1),
  274. PIN_FIELD_BASE(160, 160, 5, 0x0030, 0x10, 8, 1),
  275. PIN_FIELD_BASE(161, 161, 1, 0x0040, 0x10, 15, 1),
  276. PIN_FIELD_BASE(162, 162, 1, 0x0040, 0x10, 16, 1),
  277. PIN_FIELD_BASE(163, 163, 4, 0x0020, 0x10, 0, 1),
  278. PIN_FIELD_BASE(164, 164, 4, 0x0020, 0x10, 1, 1),
  279. PIN_FIELD_BASE(165, 165, 4, 0x0020, 0x10, 2, 1),
  280. PIN_FIELD_BASE(166, 166, 4, 0x0020, 0x10, 3, 1),
  281. PIN_FIELD_BASE(167, 167, 4, 0x0020, 0x10, 4, 1),
  282. PIN_FIELD_BASE(168, 168, 4, 0x0020, 0x10, 5, 1),
  283. PIN_FIELD_BASE(169, 169, 4, 0x0020, 0x10, 6, 1),
  284. PIN_FIELD_BASE(170, 170, 4, 0x0020, 0x10, 7, 1),
  285. PIN_FIELD_BASE(171, 171, 7, 0x0060, 0x10, 17, 1),
  286. PIN_FIELD_BASE(172, 172, 7, 0x0060, 0x10, 18, 1),
  287. PIN_FIELD_BASE(173, 173, 7, 0x0060, 0x10, 11, 1),
  288. PIN_FIELD_BASE(174, 174, 7, 0x0060, 0x10, 12, 1),
  289. PIN_FIELD_BASE(175, 175, 7, 0x0060, 0x10, 13, 1),
  290. PIN_FIELD_BASE(176, 176, 7, 0x0060, 0x10, 14, 1),
  291. PIN_FIELD_BASE(177, 177, 7, 0x0060, 0x10, 15, 1),
  292. PINS_FIELD_BASE(178, 179, 7, 0x0060, 0x10, 16, 1),
  293. };
  294. static const struct mtk_pin_field_calc mt6765_pin_pu_range[] = {
  295. PIN_FIELD_BASE(0, 0, 2, 0x0060, 0x10, 6, 1),
  296. PIN_FIELD_BASE(1, 1, 2, 0x0060, 0x10, 7, 1),
  297. PIN_FIELD_BASE(2, 2, 2, 0x0060, 0x10, 10, 1),
  298. PIN_FIELD_BASE(3, 3, 2, 0x0060, 0x10, 11, 1),
  299. PIN_FIELD_BASE(4, 4, 2, 0x0060, 0x10, 12, 1),
  300. PIN_FIELD_BASE(5, 5, 2, 0x0060, 0x10, 13, 1),
  301. PIN_FIELD_BASE(6, 6, 2, 0x0060, 0x10, 14, 1),
  302. PIN_FIELD_BASE(7, 7, 2, 0x0060, 0x10, 15, 1),
  303. PIN_FIELD_BASE(8, 8, 3, 0x0050, 0x10, 12, 1),
  304. PIN_FIELD_BASE(9, 9, 2, 0x0060, 0x10, 16, 1),
  305. PIN_FIELD_BASE(10, 10, 2, 0x0060, 0x10, 8, 1),
  306. PIN_FIELD_BASE(11, 11, 2, 0x0060, 0x10, 9, 1),
  307. PIN_FIELD_BASE(12, 12, 5, 0x0040, 0x10, 9, 1),
  308. PIN_FIELD_BASE(13, 13, 6, 0x0060, 0x10, 14, 1),
  309. PIN_FIELD_BASE(14, 14, 6, 0x0060, 0x10, 13, 1),
  310. PIN_FIELD_BASE(15, 15, 6, 0x0060, 0x10, 15, 1),
  311. PIN_FIELD_BASE(16, 16, 6, 0x0060, 0x10, 12, 1),
  312. PIN_FIELD_BASE(17, 17, 6, 0x0060, 0x10, 7, 1),
  313. PIN_FIELD_BASE(18, 18, 6, 0x0060, 0x10, 4, 1),
  314. PIN_FIELD_BASE(19, 19, 6, 0x0060, 0x10, 6, 1),
  315. PIN_FIELD_BASE(20, 20, 6, 0x0060, 0x10, 5, 1),
  316. PIN_FIELD_BASE(21, 21, 6, 0x0060, 0x10, 10, 1),
  317. PIN_FIELD_BASE(22, 22, 6, 0x0060, 0x10, 9, 1),
  318. PIN_FIELD_BASE(23, 23, 6, 0x0060, 0x10, 11, 1),
  319. PIN_FIELD_BASE(24, 24, 6, 0x0060, 0x10, 8, 1),
  320. PIN_FIELD_BASE(25, 25, 6, 0x0060, 0x10, 2, 1),
  321. PIN_FIELD_BASE(26, 26, 6, 0x0060, 0x10, 1, 1),
  322. PIN_FIELD_BASE(27, 27, 6, 0x0060, 0x10, 3, 1),
  323. PINS_FIELD_BASE(28, 40, 6, 0x0060, 0x10, 0, 1),
  324. PIN_FIELD_BASE(41, 41, 7, 0x0080, 0x10, 19, 1),
  325. PIN_FIELD_BASE(42, 42, 7, 0x0080, 0x10, 9, 1),
  326. PIN_FIELD_BASE(43, 43, 7, 0x0080, 0x10, 8, 1),
  327. PIN_FIELD_BASE(44, 44, 7, 0x0080, 0x10, 10, 1),
  328. PIN_FIELD_BASE(45, 45, 7, 0x0080, 0x10, 22, 1),
  329. PIN_FIELD_BASE(46, 46, 7, 0x0080, 0x10, 21, 1),
  330. PIN_FIELD_BASE(47, 47, 7, 0x0080, 0x10, 20, 1),
  331. PIN_FIELD_BASE(48, 48, 7, 0x0090, 0x10, 3, 1),
  332. PIN_FIELD_BASE(49, 49, 7, 0x0090, 0x10, 5, 1),
  333. PIN_FIELD_BASE(50, 50, 7, 0x0090, 0x10, 2, 1),
  334. PIN_FIELD_BASE(51, 51, 7, 0x0090, 0x10, 4, 1),
  335. PIN_FIELD_BASE(52, 52, 7, 0x0080, 0x10, 1, 1),
  336. PIN_FIELD_BASE(53, 53, 7, 0x0080, 0x10, 0, 1),
  337. PIN_FIELD_BASE(54, 54, 7, 0x0080, 0x10, 5, 1),
  338. PIN_FIELD_BASE(55, 55, 7, 0x0080, 0x10, 3, 1),
  339. PIN_FIELD_BASE(56, 56, 7, 0x0080, 0x10, 4, 1),
  340. PIN_FIELD_BASE(57, 57, 7, 0x0080, 0x10, 2, 1),
  341. PIN_FIELD_BASE(58, 58, 7, 0x0090, 0x10, 0, 1),
  342. PIN_FIELD_BASE(59, 59, 7, 0x0080, 0x10, 31, 1),
  343. PIN_FIELD_BASE(60, 60, 7, 0x0080, 0x10, 30, 1),
  344. PIN_FIELD_BASE(61, 61, 3, 0x0050, 0x10, 18, 1),
  345. PIN_FIELD_BASE(62, 62, 3, 0x0050, 0x10, 14, 1),
  346. PIN_FIELD_BASE(63, 63, 3, 0x0050, 0x10, 17, 1),
  347. PIN_FIELD_BASE(64, 64, 3, 0x0050, 0x10, 13, 1),
  348. PIN_FIELD_BASE(65, 65, 3, 0x0050, 0x10, 20, 1),
  349. PIN_FIELD_BASE(66, 66, 3, 0x0050, 0x10, 16, 1),
  350. PIN_FIELD_BASE(67, 67, 3, 0x0050, 0x10, 19, 1),
  351. PIN_FIELD_BASE(68, 68, 3, 0x0050, 0x10, 15, 1),
  352. PIN_FIELD_BASE(69, 69, 3, 0x0050, 0x10, 8, 1),
  353. PIN_FIELD_BASE(70, 70, 3, 0x0050, 0x10, 7, 1),
  354. PIN_FIELD_BASE(71, 71, 3, 0x0050, 0x10, 6, 1),
  355. PIN_FIELD_BASE(72, 72, 3, 0x0050, 0x10, 5, 1),
  356. PIN_FIELD_BASE(73, 73, 3, 0x0050, 0x10, 4, 1),
  357. PIN_FIELD_BASE(74, 74, 3, 0x0050, 0x10, 3, 1),
  358. PIN_FIELD_BASE(75, 75, 3, 0x0050, 0x10, 2, 1),
  359. PIN_FIELD_BASE(76, 76, 3, 0x0050, 0x10, 1, 1),
  360. PIN_FIELD_BASE(77, 77, 3, 0x0050, 0x10, 0, 1),
  361. PIN_FIELD_BASE(78, 78, 3, 0x0050, 0x10, 9, 1),
  362. PIN_FIELD_BASE(79, 79, 3, 0x0050, 0x10, 11, 1),
  363. PIN_FIELD_BASE(80, 80, 3, 0x0050, 0x10, 10, 1),
  364. PIN_FIELD_BASE(81, 81, 3, 0x0050, 0x10, 25, 1),
  365. PIN_FIELD_BASE(82, 82, 3, 0x0050, 0x10, 24, 1),
  366. PIN_FIELD_BASE(83, 83, 3, 0x0050, 0x10, 22, 1),
  367. PIN_FIELD_BASE(84, 84, 3, 0x0050, 0x10, 23, 1),
  368. PIN_FIELD_BASE(85, 85, 7, 0x0090, 0x10, 1, 1),
  369. PIN_FIELD_BASE(86, 86, 7, 0x0080, 0x10, 29, 1),
  370. PIN_FIELD_BASE(87, 87, 7, 0x0080, 0x10, 7, 1),
  371. PIN_FIELD_BASE(88, 88, 7, 0x0080, 0x10, 6, 1),
  372. PIN_FIELD_BASE(89, 89, 2, 0x0060, 0x10, 21, 1),
  373. PINS_FIELD_BASE(90, 94, 3, 0x0050, 0x10, 21, 1),
  374. PIN_FIELD_BASE(95, 95, 2, 0x0060, 0x10, 22, 1),
  375. PIN_FIELD_BASE(96, 96, 2, 0x0060, 0x10, 23, 1),
  376. PIN_FIELD_BASE(97, 97, 2, 0x0060, 0x10, 2, 1),
  377. PIN_FIELD_BASE(98, 98, 2, 0x0060, 0x10, 3, 1),
  378. PIN_FIELD_BASE(99, 99, 2, 0x0060, 0x10, 0, 1),
  379. PIN_FIELD_BASE(100, 100, 2, 0x0060, 0x10, 1, 1),
  380. PIN_FIELD_BASE(101, 101, 2, 0x0060, 0x10, 4, 1),
  381. PIN_FIELD_BASE(102, 102, 2, 0x0060, 0x10, 5, 1),
  382. PIN_FIELD_BASE(103, 103, 2, 0x0060, 0x10, 17, 1),
  383. PIN_FIELD_BASE(104, 104, 2, 0x0060, 0x10, 19, 1),
  384. PIN_FIELD_BASE(105, 105, 2, 0x0060, 0x10, 18, 1),
  385. PIN_FIELD_BASE(106, 106, 2, 0x0060, 0x10, 20, 1),
  386. PIN_FIELD_BASE(107, 107, 1, 0x0050, 0x10, 4, 1),
  387. PIN_FIELD_BASE(108, 108, 1, 0x0050, 0x10, 3, 1),
  388. PIN_FIELD_BASE(109, 109, 1, 0x0050, 0x10, 5, 1),
  389. PIN_FIELD_BASE(110, 110, 1, 0x0050, 0x10, 0, 1),
  390. PIN_FIELD_BASE(111, 111, 1, 0x0050, 0x10, 1, 1),
  391. PIN_FIELD_BASE(112, 112, 1, 0x0050, 0x10, 2, 1),
  392. PIN_FIELD_BASE(113, 113, 1, 0x0050, 0x10, 9, 1),
  393. PIN_FIELD_BASE(114, 114, 1, 0x0050, 0x10, 10, 1),
  394. PIN_FIELD_BASE(115, 115, 1, 0x0050, 0x10, 6, 1),
  395. PIN_FIELD_BASE(116, 116, 1, 0x0050, 0x10, 7, 1),
  396. PIN_FIELD_BASE(117, 117, 1, 0x0050, 0x10, 12, 1),
  397. PIN_FIELD_BASE(118, 118, 1, 0x0050, 0x10, 13, 1),
  398. PIN_FIELD_BASE(119, 119, 1, 0x0050, 0x10, 14, 1),
  399. PIN_FIELD_BASE(120, 120, 1, 0x0050, 0x10, 11, 1),
  400. PINS_FIELD_BASE(121, 133, 1, 0x0050, 0x10, 8, 1),
  401. PIN_FIELD_BASE(134, 134, 5, 0x0040, 0x10, 14, 1),
  402. PIN_FIELD_BASE(135, 135, 5, 0x0040, 0x10, 19, 1),
  403. PIN_FIELD_BASE(136, 136, 5, 0x0040, 0x10, 1, 1),
  404. PIN_FIELD_BASE(137, 137, 5, 0x0040, 0x10, 7, 1),
  405. PIN_FIELD_BASE(138, 138, 5, 0x0040, 0x10, 4, 1),
  406. PIN_FIELD_BASE(139, 139, 5, 0x0040, 0x10, 5, 1),
  407. PIN_FIELD_BASE(140, 140, 5, 0x0040, 0x10, 0, 1),
  408. PIN_FIELD_BASE(141, 141, 5, 0x0040, 0x10, 6, 1),
  409. PIN_FIELD_BASE(142, 142, 5, 0x0040, 0x10, 2, 1),
  410. PIN_FIELD_BASE(143, 143, 5, 0x0040, 0x10, 3, 1),
  411. PIN_FIELD_BASE(144, 144, 5, 0x0040, 0x10, 12, 1),
  412. PIN_FIELD_BASE(145, 145, 5, 0x0040, 0x10, 11, 1),
  413. PIN_FIELD_BASE(146, 146, 5, 0x0040, 0x10, 13, 1),
  414. PIN_FIELD_BASE(147, 147, 5, 0x0040, 0x10, 10, 1),
  415. PIN_FIELD_BASE(148, 148, 5, 0x0040, 0x10, 15, 1),
  416. PIN_FIELD_BASE(149, 149, 5, 0x0040, 0x10, 16, 1),
  417. PIN_FIELD_BASE(150, 150, 7, 0x0080, 0x10, 23, 1),
  418. PIN_FIELD_BASE(151, 151, 7, 0x0080, 0x10, 24, 1),
  419. PIN_FIELD_BASE(152, 152, 7, 0x0080, 0x10, 25, 1),
  420. PIN_FIELD_BASE(153, 153, 7, 0x0080, 0x10, 26, 1),
  421. PIN_FIELD_BASE(154, 154, 7, 0x0080, 0x10, 28, 1),
  422. PIN_FIELD_BASE(155, 155, 3, 0x0050, 0x10, 28, 1),
  423. PIN_FIELD_BASE(156, 156, 3, 0x0050, 0x10, 27, 1),
  424. PIN_FIELD_BASE(157, 157, 3, 0x0050, 0x10, 29, 1),
  425. PIN_FIELD_BASE(158, 158, 3, 0x0050, 0x10, 26, 1),
  426. PIN_FIELD_BASE(159, 159, 7, 0x0080, 0x10, 27, 1),
  427. PIN_FIELD_BASE(160, 160, 5, 0x0040, 0x10, 8, 1),
  428. PIN_FIELD_BASE(161, 161, 1, 0x0050, 0x10, 15, 1),
  429. PIN_FIELD_BASE(162, 162, 1, 0x0050, 0x10, 16, 1),
  430. PIN_FIELD_BASE(163, 163, 4, 0x0040, 0x10, 0, 1),
  431. PIN_FIELD_BASE(164, 164, 4, 0x0040, 0x10, 1, 1),
  432. PIN_FIELD_BASE(165, 165, 4, 0x0040, 0x10, 2, 1),
  433. PIN_FIELD_BASE(166, 166, 4, 0x0040, 0x10, 3, 1),
  434. PIN_FIELD_BASE(167, 167, 4, 0x0040, 0x10, 4, 1),
  435. PIN_FIELD_BASE(168, 168, 4, 0x0040, 0x10, 5, 1),
  436. PIN_FIELD_BASE(169, 169, 4, 0x0040, 0x10, 6, 1),
  437. PIN_FIELD_BASE(170, 170, 4, 0x0040, 0x10, 7, 1),
  438. PIN_FIELD_BASE(171, 171, 7, 0x0080, 0x10, 17, 1),
  439. PIN_FIELD_BASE(172, 172, 7, 0x0080, 0x10, 18, 1),
  440. PIN_FIELD_BASE(173, 173, 7, 0x0080, 0x10, 11, 1),
  441. PIN_FIELD_BASE(174, 174, 7, 0x0080, 0x10, 12, 1),
  442. PIN_FIELD_BASE(175, 175, 7, 0x0080, 0x10, 13, 1),
  443. PIN_FIELD_BASE(176, 176, 7, 0x0080, 0x10, 14, 1),
  444. PIN_FIELD_BASE(177, 177, 7, 0x0080, 0x10, 15, 1),
  445. PINS_FIELD_BASE(178, 179, 7, 0x0080, 0x10, 16, 1),
  446. };
  447. static const struct mtk_pin_field_calc mt6765_pin_tdsel_range[] = {
  448. PINS_FIELD_BASE(0, 3, 2, 0x00c0, 0x10, 16, 4),
  449. PINS_FIELD_BASE(4, 7, 2, 0x00c0, 0x10, 20, 4),
  450. PIN_FIELD_BASE(8, 8, 3, 0x0090, 0x10, 12, 4),
  451. PINS_FIELD_BASE(9, 11, 2, 0x00c0, 0x10, 24, 4),
  452. PIN_FIELD_BASE(12, 12, 5, 0x0080, 0x10, 4, 4),
  453. PINS_FIELD_BASE(13, 16, 6, 0x00e0, 0x10, 8, 4),
  454. PINS_FIELD_BASE(17, 20, 6, 0x00e0, 0x10, 0, 4),
  455. PINS_FIELD_BASE(21, 24, 6, 0x00e0, 0x10, 4, 4),
  456. PINS_FIELD_BASE(25, 28, 6, 0x00d0, 0x10, 28, 4),
  457. PIN_FIELD_BASE(29, 29, 6, 0x00d0, 0x10, 0, 4),
  458. PIN_FIELD_BASE(30, 30, 6, 0x00d0, 0x10, 4, 4),
  459. PINS_FIELD_BASE(31, 34, 6, 0x00d0, 0x10, 8, 4),
  460. PINS_FIELD_BASE(35, 36, 6, 0x00d0, 0x10, 20, 4),
  461. PIN_FIELD_BASE(37, 37, 6, 0x00d0, 0x10, 24, 4),
  462. PIN_FIELD_BASE(38, 38, 6, 0x00d0, 0x10, 16, 4),
  463. PINS_FIELD_BASE(39, 40, 6, 0x00d0, 0x10, 12, 4),
  464. PINS_FIELD_BASE(41, 42, 7, 0x00d0, 0x10, 24, 4),
  465. PIN_FIELD_BASE(43, 43, 7, 0x00d0, 0x10, 12, 4),
  466. PIN_FIELD_BASE(44, 44, 7, 0x00d0, 0x10, 16, 4),
  467. PIN_FIELD_BASE(45, 45, 7, 0x00e0, 0x10, 0, 4),
  468. PINS_FIELD_BASE(46, 47, 7, 0x00d0, 0x10, 28, 4),
  469. PINS_FIELD_BASE(48, 49, 7, 0x00e0, 0x10, 28, 4),
  470. PINS_FIELD_BASE(50, 51, 7, 0x00e0, 0x10, 24, 4),
  471. PINS_FIELD_BASE(52, 57, 7, 0x00d0, 0x10, 0, 4),
  472. PINS_FIELD_BASE(58, 60, 7, 0x00e0, 0x10, 16, 4),
  473. PINS_FIELD_BASE(61, 62, 3, 0x0090, 0x10, 20, 4),
  474. PINS_FIELD_BASE(63, 64, 3, 0x0090, 0x10, 16, 4),
  475. PINS_FIELD_BASE(65, 66, 3, 0x0090, 0x10, 28, 4),
  476. PINS_FIELD_BASE(67, 68, 3, 0x0090, 0x10, 24, 4),
  477. PINS_FIELD_BASE(69, 73, 3, 0x0090, 0x10, 4, 4),
  478. PINS_FIELD_BASE(74, 78, 3, 0x0090, 0x10, 8, 4),
  479. PINS_FIELD_BASE(79, 80, 3, 0x0090, 0x10, 0, 4),
  480. PIN_FIELD_BASE(81, 81, 3, 0x00a0, 0x10, 8, 4),
  481. PINS_FIELD_BASE(82, 83, 3, 0x00a0, 0x10, 4, 4),
  482. PIN_FIELD_BASE(84, 84, 3, 0x00a0, 0x10, 8, 4),
  483. PIN_FIELD_BASE(85, 85, 7, 0x00e0, 0x10, 16, 4),
  484. PIN_FIELD_BASE(86, 86, 7, 0x00e0, 0x10, 20, 4),
  485. PIN_FIELD_BASE(87, 87, 7, 0x00d0, 0x10, 8, 4),
  486. PIN_FIELD_BASE(88, 88, 7, 0x00d0, 0x10, 4, 4),
  487. PIN_FIELD_BASE(89, 89, 2, 0x00d0, 0x10, 12, 4),
  488. PIN_FIELD_BASE(90, 90, 3, 0x00a0, 0x10, 0, 4),
  489. PINS_FIELD_BASE(91, 92, 2, 0x00d0, 0x10, 0, 4),
  490. PINS_FIELD_BASE(93, 94, 2, 0x00c0, 0x10, 28, 4),
  491. PINS_FIELD_BASE(95, 96, 2, 0x00d0, 0x10, 16, 4),
  492. PINS_FIELD_BASE(97, 98, 2, 0x00c0, 0x10, 8, 4),
  493. PIN_FIELD_BASE(99, 99, 2, 0x00c0, 0x10, 0, 4),
  494. PIN_FIELD_BASE(100, 100, 2, 0x00c0, 0x10, 4, 4),
  495. PINS_FIELD_BASE(101, 102, 2, 0x00c0, 0x10, 12, 4),
  496. PINS_FIELD_BASE(103, 104, 2, 0x00d0, 0x10, 4, 4),
  497. PINS_FIELD_BASE(105, 106, 2, 0x00d0, 0x10, 8, 4),
  498. PIN_FIELD_BASE(107, 107, 1, 0x0090, 0x10, 16, 4),
  499. PIN_FIELD_BASE(108, 108, 1, 0x0090, 0x10, 12, 4),
  500. PIN_FIELD_BASE(109, 109, 1, 0x0090, 0x10, 20, 4),
  501. PIN_FIELD_BASE(110, 110, 1, 0x0090, 0x10, 0, 4),
  502. PIN_FIELD_BASE(111, 111, 1, 0x0090, 0x10, 4, 4),
  503. PIN_FIELD_BASE(112, 112, 1, 0x0090, 0x10, 8, 4),
  504. PIN_FIELD_BASE(113, 113, 1, 0x00a0, 0x10, 4, 4),
  505. PIN_FIELD_BASE(114, 114, 1, 0x00a0, 0x10, 8, 4),
  506. PIN_FIELD_BASE(115, 115, 1, 0x0090, 0x10, 24, 4),
  507. PIN_FIELD_BASE(116, 116, 1, 0x0090, 0x10, 28, 4),
  508. PIN_FIELD_BASE(117, 117, 1, 0x00a0, 0x10, 16, 4),
  509. PIN_FIELD_BASE(118, 118, 1, 0x00a0, 0x10, 20, 4),
  510. PIN_FIELD_BASE(119, 119, 1, 0x00a0, 0x10, 24, 4),
  511. PIN_FIELD_BASE(120, 120, 1, 0x00a0, 0x10, 12, 4),
  512. PIN_FIELD_BASE(121, 121, 1, 0x00a0, 0x10, 0, 4),
  513. PIN_FIELD_BASE(122, 122, 4, 0x0090, 0x10, 8, 4),
  514. PIN_FIELD_BASE(123, 123, 4, 0x0090, 0x10, 12, 4),
  515. PIN_FIELD_BASE(124, 124, 4, 0x0090, 0x10, 4, 4),
  516. PINS_FIELD_BASE(125, 130, 4, 0x0090, 0x10, 12, 4),
  517. PIN_FIELD_BASE(131, 131, 4, 0x0090, 0x10, 16, 4),
  518. PIN_FIELD_BASE(132, 132, 4, 0x0090, 0x10, 12, 4),
  519. PIN_FIELD_BASE(133, 133, 4, 0x0090, 0x10, 20, 4),
  520. PIN_FIELD_BASE(134, 134, 5, 0x0080, 0x10, 12, 4),
  521. PIN_FIELD_BASE(135, 135, 5, 0x0080, 0x10, 20, 4),
  522. PIN_FIELD_BASE(136, 136, 5, 0x0070, 0x10, 4, 4),
  523. PIN_FIELD_BASE(137, 137, 5, 0x0070, 0x10, 28, 4),
  524. PIN_FIELD_BASE(138, 138, 5, 0x0070, 0x10, 16, 4),
  525. PIN_FIELD_BASE(139, 139, 5, 0x0070, 0x10, 20, 4),
  526. PIN_FIELD_BASE(140, 140, 5, 0x0070, 0x10, 0, 4),
  527. PIN_FIELD_BASE(141, 141, 5, 0x0070, 0x10, 24, 4),
  528. PIN_FIELD_BASE(142, 142, 5, 0x0070, 0x10, 8, 4),
  529. PIN_FIELD_BASE(143, 143, 5, 0x0070, 0x10, 12, 4),
  530. PINS_FIELD_BASE(144, 147, 5, 0x0080, 0x10, 8, 4),
  531. PINS_FIELD_BASE(148, 149, 5, 0x0080, 0x10, 16, 4),
  532. PINS_FIELD_BASE(150, 151, 7, 0x00e0, 0x10, 4, 4),
  533. PINS_FIELD_BASE(152, 153, 7, 0x00e0, 0x10, 8, 4),
  534. PIN_FIELD_BASE(154, 154, 7, 0x00e0, 0x10, 12, 4),
  535. PINS_FIELD_BASE(155, 158, 3, 0x00a0, 0x10, 12, 4),
  536. PIN_FIELD_BASE(159, 159, 7, 0x00e0, 0x10, 12, 4),
  537. PIN_FIELD_BASE(160, 160, 5, 0x0080, 0x10, 0, 4),
  538. PINS_FIELD_BASE(161, 162, 1, 0x00a0, 0x10, 28, 4),
  539. PINS_FIELD_BASE(163, 170, 4, 0x0090, 0x10, 0, 4),
  540. PINS_FIELD_BASE(171, 179, 7, 0x00d0, 0x10, 20, 4),
  541. };
  542. static const struct mtk_pin_field_calc mt6765_pin_rdsel_range[] = {
  543. PINS_FIELD_BASE(0, 3, 2, 0x0090, 0x10, 8, 2),
  544. PINS_FIELD_BASE(4, 7, 2, 0x0090, 0x10, 10, 2),
  545. PIN_FIELD_BASE(8, 8, 3, 0x0060, 0x10, 6, 2),
  546. PINS_FIELD_BASE(9, 11, 2, 0x0090, 0x10, 12, 2),
  547. PIN_FIELD_BASE(12, 12, 5, 0x0050, 0x10, 18, 2),
  548. PINS_FIELD_BASE(13, 16, 6, 0x00a0, 0x10, 18, 2),
  549. PINS_FIELD_BASE(17, 20, 6, 0x00a0, 0x10, 14, 2),
  550. PINS_FIELD_BASE(21, 24, 6, 0x00a0, 0x10, 16, 2),
  551. PINS_FIELD_BASE(25, 28, 6, 0x00a0, 0x10, 12, 2),
  552. PIN_FIELD_BASE(29, 29, 6, 0x0090, 0x10, 0, 6),
  553. PIN_FIELD_BASE(30, 30, 6, 0x0090, 0x10, 6, 6),
  554. PINS_FIELD_BASE(31, 34, 6, 0x0090, 0x10, 12, 6),
  555. PINS_FIELD_BASE(35, 36, 6, 0x00a0, 0x10, 0, 6),
  556. PIN_FIELD_BASE(37, 37, 6, 0x00a0, 0x10, 6, 6),
  557. PIN_FIELD_BASE(38, 38, 6, 0x0090, 0x10, 24, 6),
  558. PINS_FIELD_BASE(39, 40, 6, 0x0090, 0x10, 18, 6),
  559. PINS_FIELD_BASE(41, 42, 7, 0x00a0, 0x10, 12, 2),
  560. PIN_FIELD_BASE(43, 43, 7, 0x00a0, 0x10, 6, 2),
  561. PIN_FIELD_BASE(44, 44, 7, 0x00a0, 0x10, 8, 2),
  562. PIN_FIELD_BASE(45, 45, 7, 0x00a0, 0x10, 16, 2),
  563. PINS_FIELD_BASE(46, 47, 7, 0x00a0, 0x10, 14, 2),
  564. PINS_FIELD_BASE(48, 49, 7, 0x00a0, 0x10, 30, 2),
  565. PINS_FIELD_BASE(50, 51, 7, 0x00a0, 0x10, 28, 2),
  566. PINS_FIELD_BASE(52, 57, 7, 0x00a0, 0x10, 0, 2),
  567. PINS_FIELD_BASE(58, 60, 7, 0x00a0, 0x10, 24, 2),
  568. PINS_FIELD_BASE(61, 62, 3, 0x0060, 0x10, 10, 2),
  569. PINS_FIELD_BASE(63, 64, 3, 0x0060, 0x10, 8, 2),
  570. PINS_FIELD_BASE(65, 66, 3, 0x0060, 0x10, 14, 2),
  571. PINS_FIELD_BASE(67, 68, 3, 0x0060, 0x10, 12, 2),
  572. PINS_FIELD_BASE(69, 73, 3, 0x0060, 0x10, 2, 2),
  573. PINS_FIELD_BASE(74, 78, 3, 0x0060, 0x10, 4, 2),
  574. PINS_FIELD_BASE(79, 80, 3, 0x0060, 0x10, 0, 2),
  575. PIN_FIELD_BASE(81, 81, 3, 0x0060, 0x10, 20, 2),
  576. PINS_FIELD_BASE(82, 83, 3, 0x0060, 0x10, 18, 2),
  577. PIN_FIELD_BASE(84, 84, 3, 0x0060, 0x10, 20, 2),
  578. PIN_FIELD_BASE(85, 85, 7, 0x00a0, 0x10, 24, 2),
  579. PIN_FIELD_BASE(86, 86, 7, 0x00a0, 0x10, 26, 2),
  580. PIN_FIELD_BASE(87, 87, 7, 0x00a0, 0x10, 4, 2),
  581. PIN_FIELD_BASE(88, 88, 7, 0x00a0, 0x10, 2, 2),
  582. PIN_FIELD_BASE(89, 89, 2, 0x0090, 0x10, 22, 2),
  583. PIN_FIELD_BASE(90, 90, 3, 0x0060, 0x10, 16, 2),
  584. PINS_FIELD_BASE(91, 92, 2, 0x0090, 0x10, 16, 2),
  585. PINS_FIELD_BASE(93, 94, 2, 0x0090, 0x10, 14, 2),
  586. PINS_FIELD_BASE(95, 96, 2, 0x0090, 0x10, 24, 2),
  587. PINS_FIELD_BASE(97, 98, 2, 0x0090, 0x10, 4, 2),
  588. PIN_FIELD_BASE(99, 99, 2, 0x0090, 0x10, 0, 2),
  589. PIN_FIELD_BASE(100, 100, 2, 0x0090, 0x10, 2, 2),
  590. PINS_FIELD_BASE(101, 102, 2, 0x0090, 0x10, 6, 2),
  591. PINS_FIELD_BASE(103, 104, 2, 0x0090, 0x10, 18, 2),
  592. PINS_FIELD_BASE(105, 106, 2, 0x0090, 0x10, 20, 2),
  593. PIN_FIELD_BASE(107, 107, 1, 0x0060, 0x10, 8, 2),
  594. PIN_FIELD_BASE(108, 108, 1, 0x0060, 0x10, 6, 2),
  595. PIN_FIELD_BASE(109, 109, 1, 0x0060, 0x10, 10, 2),
  596. PIN_FIELD_BASE(110, 110, 1, 0x0060, 0x10, 0, 2),
  597. PIN_FIELD_BASE(111, 111, 1, 0x0060, 0x10, 2, 2),
  598. PIN_FIELD_BASE(112, 112, 1, 0x0060, 0x10, 4, 2),
  599. PIN_FIELD_BASE(113, 113, 1, 0x0060, 0x10, 18, 2),
  600. PIN_FIELD_BASE(114, 114, 1, 0x0060, 0x10, 20, 2),
  601. PIN_FIELD_BASE(115, 115, 1, 0x0060, 0x10, 12, 2),
  602. PIN_FIELD_BASE(116, 116, 1, 0x0060, 0x10, 14, 2),
  603. PIN_FIELD_BASE(117, 117, 1, 0x0060, 0x10, 24, 2),
  604. PIN_FIELD_BASE(118, 118, 1, 0x0060, 0x10, 26, 2),
  605. PIN_FIELD_BASE(119, 119, 1, 0x0060, 0x10, 28, 2),
  606. PIN_FIELD_BASE(120, 120, 1, 0x0060, 0x10, 22, 2),
  607. PIN_FIELD_BASE(121, 121, 1, 0x0060, 0x10, 16, 2),
  608. PIN_FIELD_BASE(122, 122, 4, 0x0070, 0x10, 8, 6),
  609. PIN_FIELD_BASE(123, 123, 4, 0x0070, 0x10, 14, 6),
  610. PIN_FIELD_BASE(124, 124, 4, 0x0070, 0x10, 2, 6),
  611. PINS_FIELD_BASE(125, 130, 4, 0x0070, 0x10, 14, 6),
  612. PIN_FIELD_BASE(131, 131, 4, 0x0070, 0x10, 20, 6),
  613. PIN_FIELD_BASE(132, 132, 4, 0x0070, 0x10, 14, 6),
  614. PIN_FIELD_BASE(133, 133, 4, 0x0070, 0x10, 26, 6),
  615. PIN_FIELD_BASE(134, 134, 5, 0x0050, 0x10, 22, 2),
  616. PIN_FIELD_BASE(135, 135, 5, 0x0050, 0x10, 30, 2),
  617. PIN_FIELD_BASE(136, 136, 5, 0x0050, 0x10, 2, 2),
  618. PIN_FIELD_BASE(137, 137, 5, 0x0050, 0x10, 14, 2),
  619. PIN_FIELD_BASE(138, 138, 5, 0x0050, 0x10, 8, 2),
  620. PIN_FIELD_BASE(139, 139, 5, 0x0050, 0x10, 10, 2),
  621. PIN_FIELD_BASE(140, 140, 5, 0x0050, 0x10, 0, 2),
  622. PIN_FIELD_BASE(141, 141, 5, 0x0050, 0x10, 12, 2),
  623. PIN_FIELD_BASE(142, 142, 5, 0x0050, 0x10, 4, 2),
  624. PIN_FIELD_BASE(143, 143, 5, 0x0050, 0x10, 6, 2),
  625. PINS_FIELD_BASE(144, 147, 5, 0x0050, 0x10, 20, 2),
  626. PINS_FIELD_BASE(148, 149, 5, 0x0050, 0x10, 24, 2),
  627. PINS_FIELD_BASE(150, 151, 7, 0x00a0, 0x10, 18, 2),
  628. PINS_FIELD_BASE(152, 153, 7, 0x00a0, 0x10, 20, 2),
  629. PIN_FIELD_BASE(154, 154, 7, 0x00a0, 0x10, 22, 2),
  630. PINS_FIELD_BASE(155, 158, 3, 0x0060, 0x10, 22, 2),
  631. PIN_FIELD_BASE(159, 159, 7, 0x00a0, 0x10, 22, 2),
  632. PIN_FIELD_BASE(160, 160, 5, 0x0050, 0x10, 16, 2),
  633. PINS_FIELD_BASE(161, 162, 1, 0x0060, 0x10, 30, 2),
  634. PINS_FIELD_BASE(163, 170, 4, 0x0070, 0x10, 0, 2),
  635. PINS_FIELD_BASE(171, 179, 7, 0x00a0, 0x10, 10, 2),
  636. };
  637. static const struct mtk_pin_field_calc mt6765_pin_drv_range[] = {
  638. PINS_FIELD_BASE(0, 2, 2, 0x0000, 0x10, 12, 3),
  639. PIN_FIELD_BASE(3, 3, 2, 0x0000, 0x10, 15, 3),
  640. PINS_FIELD_BASE(4, 6, 2, 0x0000, 0x10, 18, 3),
  641. PIN_FIELD_BASE(7, 7, 2, 0x0000, 0x10, 21, 3),
  642. PIN_FIELD_BASE(8, 8, 3, 0x0000, 0x10, 9, 3),
  643. PINS_FIELD_BASE(9, 11, 2, 0x0000, 0x10, 24, 3),
  644. PIN_FIELD_BASE(12, 12, 5, 0x0000, 0x10, 27, 3),
  645. PINS_FIELD_BASE(13, 15, 6, 0x0010, 0x10, 3, 3),
  646. PIN_FIELD_BASE(16, 16, 6, 0x0010, 0x10, 6, 3),
  647. PIN_FIELD_BASE(17, 17, 6, 0x0000, 0x10, 23, 3),
  648. PIN_FIELD_BASE(18, 18, 6, 0x0000, 0x10, 26, 3),
  649. PINS_FIELD_BASE(19, 20, 6, 0x0000, 0x10, 23, 3),
  650. PINS_FIELD_BASE(21, 23, 6, 0x0000, 0x10, 29, 3),
  651. PIN_FIELD_BASE(24, 24, 6, 0x0010, 0x10, 0, 3),
  652. PINS_FIELD_BASE(25, 27, 6, 0x0000, 0x10, 17, 3),
  653. PIN_FIELD_BASE(28, 28, 6, 0x0000, 0x10, 20, 3),
  654. PIN_FIELD_BASE(29, 29, 6, 0x0000, 0x10, 0, 3),
  655. PIN_FIELD_BASE(30, 30, 6, 0x0000, 0x10, 3, 3),
  656. PINS_FIELD_BASE(31, 34, 6, 0x0000, 0x10, 6, 3),
  657. PINS_FIELD_BASE(35, 36, 6, 0x0000, 0x10, 13, 2),
  658. PIN_FIELD_BASE(37, 37, 6, 0x0000, 0x10, 15, 2),
  659. PIN_FIELD_BASE(38, 38, 6, 0x0000, 0x10, 11, 2),
  660. PINS_FIELD_BASE(39, 40, 6, 0x0000, 0x10, 9, 2),
  661. PINS_FIELD_BASE(41, 42, 7, 0x0000, 0x10, 21, 3),
  662. PIN_FIELD_BASE(43, 43, 7, 0x0000, 0x10, 9, 3),
  663. PIN_FIELD_BASE(44, 44, 7, 0x0000, 0x10, 12, 3),
  664. PIN_FIELD_BASE(45, 45, 7, 0x0000, 0x10, 27, 3),
  665. PINS_FIELD_BASE(46, 47, 7, 0x0000, 0x10, 24, 3),
  666. PINS_FIELD_BASE(48, 49, 7, 0x0010, 0x10, 18, 3),
  667. PINS_FIELD_BASE(50, 51, 7, 0x0010, 0x10, 15, 3),
  668. PINS_FIELD_BASE(52, 57, 7, 0x0000, 0x10, 0, 3),
  669. PINS_FIELD_BASE(58, 60, 7, 0x0010, 0x10, 9, 3),
  670. PINS_FIELD_BASE(61, 62, 3, 0x0000, 0x10, 15, 3),
  671. PINS_FIELD_BASE(63, 64, 3, 0x0000, 0x10, 12, 3),
  672. PINS_FIELD_BASE(65, 66, 3, 0x0000, 0x10, 21, 3),
  673. PINS_FIELD_BASE(67, 68, 3, 0x0000, 0x10, 18, 3),
  674. PINS_FIELD_BASE(69, 73, 3, 0x0000, 0x10, 3, 3),
  675. PINS_FIELD_BASE(74, 78, 3, 0x0000, 0x10, 6, 3),
  676. PINS_FIELD_BASE(79, 80, 3, 0x0000, 0x10, 0, 3),
  677. PIN_FIELD_BASE(81, 81, 3, 0x0010, 0x10, 0, 3),
  678. PINS_FIELD_BASE(82, 83, 3, 0x0000, 0x10, 27, 3),
  679. PIN_FIELD_BASE(84, 84, 3, 0x0010, 0x10, 0, 3),
  680. PIN_FIELD_BASE(85, 85, 7, 0x0010, 0x10, 9, 3),
  681. PIN_FIELD_BASE(86, 86, 7, 0x0010, 0x10, 12, 3),
  682. PIN_FIELD_BASE(87, 87, 7, 0x0000, 0x10, 6, 3),
  683. PIN_FIELD_BASE(88, 88, 7, 0x0000, 0x10, 3, 3),
  684. PIN_FIELD_BASE(89, 89, 2, 0x0010, 0x10, 15, 3),
  685. PIN_FIELD_BASE(90, 90, 3, 0x0000, 0x10, 24, 3),
  686. PIN_FIELD_BASE(91, 91, 2, 0x0010, 0x10, 6, 3),
  687. PIN_FIELD_BASE(92, 92, 2, 0x0010, 0x10, 3, 3),
  688. PIN_FIELD_BASE(93, 93, 2, 0x0000, 0x10, 27, 3),
  689. PIN_FIELD_BASE(94, 94, 2, 0x0010, 0x10, 0, 3),
  690. PINS_FIELD_BASE(95, 96, 2, 0x0010, 0x10, 18, 3),
  691. PINS_FIELD_BASE(97, 98, 2, 0x0000, 0x10, 6, 3),
  692. PIN_FIELD_BASE(99, 99, 2, 0x0000, 0x10, 0, 3),
  693. PIN_FIELD_BASE(100, 100, 2, 0x0000, 0x10, 3, 3),
  694. PINS_FIELD_BASE(101, 102, 2, 0x0000, 0x10, 9, 3),
  695. PINS_FIELD_BASE(103, 104, 2, 0x0010, 0x10, 9, 3),
  696. PINS_FIELD_BASE(105, 106, 2, 0x0010, 0x10, 12, 3),
  697. PIN_FIELD_BASE(107, 107, 1, 0x0000, 0x10, 12, 3),
  698. PIN_FIELD_BASE(108, 108, 1, 0x0000, 0x10, 9, 3),
  699. PIN_FIELD_BASE(109, 109, 1, 0x0000, 0x10, 15, 3),
  700. PIN_FIELD_BASE(110, 110, 1, 0x0000, 0x10, 0, 3),
  701. PIN_FIELD_BASE(111, 111, 1, 0x0000, 0x10, 3, 3),
  702. PIN_FIELD_BASE(112, 112, 1, 0x0000, 0x10, 6, 3),
  703. PIN_FIELD_BASE(113, 113, 1, 0x0000, 0x10, 27, 3),
  704. PIN_FIELD_BASE(114, 114, 1, 0x0010, 0x10, 0, 3),
  705. PIN_FIELD_BASE(115, 115, 1, 0x0000, 0x10, 18, 3),
  706. PIN_FIELD_BASE(116, 116, 1, 0x0000, 0x10, 21, 3),
  707. PIN_FIELD_BASE(117, 117, 1, 0x0010, 0x10, 6, 3),
  708. PIN_FIELD_BASE(118, 118, 1, 0x0010, 0x10, 9, 3),
  709. PIN_FIELD_BASE(119, 119, 1, 0x0010, 0x10, 12, 3),
  710. PIN_FIELD_BASE(120, 120, 1, 0x0010, 0x10, 3, 3),
  711. PIN_FIELD_BASE(121, 121, 1, 0x0000, 0x10, 24, 3),
  712. PIN_FIELD_BASE(122, 122, 4, 0x0000, 0x10, 9, 3),
  713. PIN_FIELD_BASE(123, 123, 4, 0x0000, 0x10, 12, 3),
  714. PIN_FIELD_BASE(124, 124, 4, 0x0000, 0x10, 6, 3),
  715. PINS_FIELD_BASE(125, 130, 4, 0x0000, 0x10, 12, 3),
  716. PIN_FIELD_BASE(131, 131, 4, 0x0000, 0x10, 15, 3),
  717. PIN_FIELD_BASE(132, 132, 4, 0x0000, 0x10, 12, 3),
  718. PIN_FIELD_BASE(133, 133, 4, 0x0000, 0x10, 18, 3),
  719. PIN_FIELD_BASE(134, 134, 5, 0x0010, 0x10, 6, 3),
  720. PIN_FIELD_BASE(135, 135, 5, 0x0010, 0x10, 12, 3),
  721. PIN_FIELD_BASE(136, 136, 5, 0x0000, 0x10, 3, 3),
  722. PIN_FIELD_BASE(137, 137, 5, 0x0000, 0x10, 21, 3),
  723. PIN_FIELD_BASE(138, 138, 5, 0x0000, 0x10, 12, 3),
  724. PIN_FIELD_BASE(139, 139, 5, 0x0000, 0x10, 15, 3),
  725. PIN_FIELD_BASE(140, 140, 5, 0x0000, 0x10, 0, 3),
  726. PIN_FIELD_BASE(141, 141, 5, 0x0000, 0x10, 18, 3),
  727. PIN_FIELD_BASE(142, 142, 5, 0x0000, 0x10, 6, 3),
  728. PIN_FIELD_BASE(143, 143, 5, 0x0000, 0x10, 9, 3),
  729. PINS_FIELD_BASE(144, 146, 5, 0x0010, 0x10, 0, 3),
  730. PIN_FIELD_BASE(147, 147, 5, 0x0010, 0x10, 3, 3),
  731. PINS_FIELD_BASE(148, 149, 5, 0x0010, 0x10, 9, 3),
  732. PINS_FIELD_BASE(150, 151, 7, 0x0010, 0x10, 0, 3),
  733. PINS_FIELD_BASE(152, 153, 7, 0x0010, 0x10, 3, 3),
  734. PIN_FIELD_BASE(154, 154, 7, 0x0010, 0x10, 6, 3),
  735. PINS_FIELD_BASE(155, 157, 3, 0x0010, 0x10, 3, 3),
  736. PIN_FIELD_BASE(158, 158, 3, 0x0010, 0x10, 6, 3),
  737. PIN_FIELD_BASE(159, 159, 7, 0x0010, 0x10, 6, 3),
  738. PIN_FIELD_BASE(160, 160, 5, 0x0000, 0x10, 24, 3),
  739. PINS_FIELD_BASE(161, 162, 1, 0x0010, 0x10, 15, 3),
  740. PINS_FIELD_BASE(163, 166, 4, 0x0000, 0x10, 0, 3),
  741. PINS_FIELD_BASE(167, 170, 4, 0x0000, 0x10, 3, 3),
  742. PINS_FIELD_BASE(171, 174, 7, 0x0000, 0x10, 18, 3),
  743. PINS_FIELD_BASE(175, 179, 7, 0x0000, 0x10, 15, 3),
  744. };
  745. static const struct mtk_pin_field_calc mt6765_pin_pupd_range[] = {
  746. PINS_FIELD_BASE(0, 28, 0, 0x0050, 0x10, 18, 1),
  747. PIN_FIELD_BASE(29, 29, 6, 0x0050, 0x10, 0, 1),
  748. PIN_FIELD_BASE(30, 30, 6, 0x0050, 0x10, 1, 1),
  749. PIN_FIELD_BASE(31, 31, 6, 0x0050, 0x10, 5, 1),
  750. PIN_FIELD_BASE(32, 32, 6, 0x0050, 0x10, 2, 1),
  751. PIN_FIELD_BASE(33, 33, 6, 0x0050, 0x10, 4, 1),
  752. PIN_FIELD_BASE(34, 34, 6, 0x0050, 0x10, 3, 1),
  753. PIN_FIELD_BASE(35, 35, 6, 0x0050, 0x10, 10, 1),
  754. PIN_FIELD_BASE(36, 36, 6, 0x0050, 0x10, 11, 1),
  755. PIN_FIELD_BASE(37, 37, 6, 0x0050, 0x10, 9, 1),
  756. PIN_FIELD_BASE(38, 38, 6, 0x0050, 0x10, 6, 1),
  757. PIN_FIELD_BASE(39, 39, 6, 0x0050, 0x10, 8, 1),
  758. PINS_FIELD_BASE(40, 90, 6, 0x0050, 0x10, 7, 1),
  759. PIN_FIELD_BASE(91, 91, 2, 0x0050, 0x10, 3, 1),
  760. PIN_FIELD_BASE(92, 92, 2, 0x0050, 0x10, 2, 1),
  761. PIN_FIELD_BASE(93, 93, 2, 0x0050, 0x10, 0, 1),
  762. PINS_FIELD_BASE(94, 121, 2, 0x0050, 0x10, 1, 1),
  763. PIN_FIELD_BASE(122, 122, 4, 0x0030, 0x10, 1, 1),
  764. PIN_FIELD_BASE(123, 123, 4, 0x0030, 0x10, 2, 1),
  765. PIN_FIELD_BASE(124, 124, 4, 0x0030, 0x10, 0, 1),
  766. PIN_FIELD_BASE(125, 125, 4, 0x0030, 0x10, 4, 1),
  767. PIN_FIELD_BASE(126, 126, 4, 0x0030, 0x10, 6, 1),
  768. PIN_FIELD_BASE(127, 127, 4, 0x0030, 0x10, 8, 1),
  769. PIN_FIELD_BASE(128, 128, 4, 0x0030, 0x10, 3, 1),
  770. PIN_FIELD_BASE(129, 129, 4, 0x0030, 0x10, 7, 1),
  771. PIN_FIELD_BASE(130, 130, 4, 0x0030, 0x10, 9, 1),
  772. PIN_FIELD_BASE(131, 131, 4, 0x0030, 0x10, 10, 1),
  773. PIN_FIELD_BASE(132, 132, 4, 0x0030, 0x10, 5, 1),
  774. PINS_FIELD_BASE(133, 179, 4, 0x0030, 0x10, 11, 1),
  775. };
  776. static const struct mtk_pin_field_calc mt6765_pin_r0_range[] = {
  777. PINS_FIELD_BASE(0, 28, 4, 0x0030, 0x10, 11, 1),
  778. PIN_FIELD_BASE(29, 29, 6, 0x0070, 0x10, 0, 1),
  779. PIN_FIELD_BASE(30, 30, 6, 0x0070, 0x10, 1, 1),
  780. PIN_FIELD_BASE(31, 31, 6, 0x0070, 0x10, 5, 1),
  781. PIN_FIELD_BASE(32, 32, 6, 0x0070, 0x10, 2, 1),
  782. PIN_FIELD_BASE(33, 33, 6, 0x0070, 0x10, 4, 1),
  783. PIN_FIELD_BASE(34, 34, 6, 0x0070, 0x10, 3, 1),
  784. PIN_FIELD_BASE(35, 35, 6, 0x0070, 0x10, 10, 1),
  785. PIN_FIELD_BASE(36, 36, 6, 0x0070, 0x10, 11, 1),
  786. PIN_FIELD_BASE(37, 37, 6, 0x0070, 0x10, 9, 1),
  787. PIN_FIELD_BASE(38, 38, 6, 0x0070, 0x10, 6, 1),
  788. PIN_FIELD_BASE(39, 39, 6, 0x0070, 0x10, 8, 1),
  789. PINS_FIELD_BASE(40, 90, 6, 0x0070, 0x10, 7, 1),
  790. PIN_FIELD_BASE(91, 91, 2, 0x0070, 0x10, 3, 1),
  791. PIN_FIELD_BASE(92, 92, 2, 0x0070, 0x10, 2, 1),
  792. PIN_FIELD_BASE(93, 93, 2, 0x0070, 0x10, 0, 1),
  793. PINS_FIELD_BASE(94, 121, 2, 0x0070, 0x10, 1, 1),
  794. PIN_FIELD_BASE(122, 122, 4, 0x0050, 0x10, 1, 1),
  795. PIN_FIELD_BASE(123, 123, 4, 0x0050, 0x10, 2, 1),
  796. PIN_FIELD_BASE(124, 124, 4, 0x0050, 0x10, 0, 1),
  797. PIN_FIELD_BASE(125, 125, 4, 0x0050, 0x10, 4, 1),
  798. PIN_FIELD_BASE(126, 126, 4, 0x0050, 0x10, 6, 1),
  799. PIN_FIELD_BASE(127, 127, 4, 0x0050, 0x10, 8, 1),
  800. PIN_FIELD_BASE(128, 128, 4, 0x0050, 0x10, 3, 1),
  801. PIN_FIELD_BASE(129, 129, 4, 0x0050, 0x10, 7, 1),
  802. PIN_FIELD_BASE(130, 130, 4, 0x0050, 0x10, 9, 1),
  803. PIN_FIELD_BASE(131, 131, 4, 0x0050, 0x10, 10, 1),
  804. PIN_FIELD_BASE(132, 132, 4, 0x0050, 0x10, 5, 1),
  805. PINS_FIELD_BASE(133, 179, 4, 0x0050, 0x10, 11, 1),
  806. };
  807. static const struct mtk_pin_field_calc mt6765_pin_r1_range[] = {
  808. PINS_FIELD_BASE(0, 28, 4, 0x0050, 0x10, 11, 1),
  809. PIN_FIELD_BASE(29, 29, 6, 0x0080, 0x10, 0, 1),
  810. PIN_FIELD_BASE(30, 30, 6, 0x0080, 0x10, 1, 1),
  811. PIN_FIELD_BASE(31, 31, 6, 0x0080, 0x10, 5, 1),
  812. PIN_FIELD_BASE(32, 32, 6, 0x0080, 0x10, 2, 1),
  813. PIN_FIELD_BASE(33, 33, 6, 0x0080, 0x10, 4, 1),
  814. PIN_FIELD_BASE(34, 34, 6, 0x0080, 0x10, 3, 1),
  815. PIN_FIELD_BASE(35, 35, 6, 0x0080, 0x10, 10, 1),
  816. PIN_FIELD_BASE(36, 36, 6, 0x0080, 0x10, 11, 1),
  817. PIN_FIELD_BASE(37, 37, 6, 0x0080, 0x10, 9, 1),
  818. PIN_FIELD_BASE(38, 38, 6, 0x0080, 0x10, 6, 1),
  819. PIN_FIELD_BASE(39, 39, 6, 0x0080, 0x10, 8, 1),
  820. PINS_FIELD_BASE(40, 90, 6, 0x0080, 0x10, 7, 1),
  821. PIN_FIELD_BASE(91, 91, 2, 0x0080, 0x10, 3, 1),
  822. PIN_FIELD_BASE(92, 92, 2, 0x0080, 0x10, 2, 1),
  823. PIN_FIELD_BASE(93, 93, 2, 0x0080, 0x10, 0, 1),
  824. PINS_FIELD_BASE(94, 121, 2, 0x0080, 0x10, 1, 1),
  825. PIN_FIELD_BASE(122, 122, 4, 0x0060, 0x10, 1, 1),
  826. PIN_FIELD_BASE(123, 123, 4, 0x0060, 0x10, 2, 1),
  827. PIN_FIELD_BASE(124, 124, 4, 0x0060, 0x10, 0, 1),
  828. PIN_FIELD_BASE(125, 125, 4, 0x0060, 0x10, 4, 1),
  829. PIN_FIELD_BASE(126, 126, 4, 0x0060, 0x10, 6, 1),
  830. PIN_FIELD_BASE(127, 127, 4, 0x0060, 0x10, 8, 1),
  831. PIN_FIELD_BASE(128, 128, 4, 0x0060, 0x10, 3, 1),
  832. PIN_FIELD_BASE(129, 129, 4, 0x0060, 0x10, 7, 1),
  833. PIN_FIELD_BASE(130, 130, 4, 0x0060, 0x10, 9, 1),
  834. PIN_FIELD_BASE(131, 131, 4, 0x0060, 0x10, 10, 1),
  835. PIN_FIELD_BASE(132, 132, 4, 0x0060, 0x10, 5, 1),
  836. PINS_FIELD_BASE(133, 179, 4, 0x0060, 0x10, 11, 1),
  837. };
  838. static const struct mtk_pin_field_calc mt6765_pin_ies_range[] = {
  839. PIN_FIELD_BASE(0, 0, 2, 0x0030, 0x10, 6, 1),
  840. PIN_FIELD_BASE(1, 1, 2, 0x0030, 0x10, 7, 1),
  841. PIN_FIELD_BASE(2, 2, 2, 0x0030, 0x10, 10, 1),
  842. PIN_FIELD_BASE(3, 3, 2, 0x0030, 0x10, 11, 1),
  843. PIN_FIELD_BASE(4, 4, 2, 0x0030, 0x10, 12, 1),
  844. PIN_FIELD_BASE(5, 5, 2, 0x0030, 0x10, 13, 1),
  845. PIN_FIELD_BASE(6, 6, 2, 0x0030, 0x10, 14, 1),
  846. PIN_FIELD_BASE(7, 7, 2, 0x0030, 0x10, 15, 1),
  847. PIN_FIELD_BASE(8, 8, 3, 0x0030, 0x10, 12, 1),
  848. PIN_FIELD_BASE(9, 9, 2, 0x0030, 0x10, 16, 1),
  849. PIN_FIELD_BASE(10, 10, 2, 0x0030, 0x10, 8, 1),
  850. PIN_FIELD_BASE(11, 11, 2, 0x0030, 0x10, 9, 1),
  851. PIN_FIELD_BASE(12, 12, 5, 0x0020, 0x10, 9, 1),
  852. PIN_FIELD_BASE(13, 13, 6, 0x0020, 0x10, 26, 1),
  853. PIN_FIELD_BASE(14, 14, 6, 0x0020, 0x10, 25, 1),
  854. PIN_FIELD_BASE(15, 15, 6, 0x0020, 0x10, 27, 1),
  855. PIN_FIELD_BASE(16, 16, 6, 0x0020, 0x10, 24, 1),
  856. PIN_FIELD_BASE(17, 17, 6, 0x0020, 0x10, 19, 1),
  857. PIN_FIELD_BASE(18, 18, 6, 0x0020, 0x10, 16, 1),
  858. PIN_FIELD_BASE(19, 19, 6, 0x0020, 0x10, 18, 1),
  859. PIN_FIELD_BASE(20, 20, 6, 0x0020, 0x10, 17, 1),
  860. PIN_FIELD_BASE(21, 21, 6, 0x0020, 0x10, 22, 1),
  861. PIN_FIELD_BASE(22, 22, 6, 0x0020, 0x10, 21, 1),
  862. PIN_FIELD_BASE(23, 23, 6, 0x0020, 0x10, 23, 1),
  863. PIN_FIELD_BASE(24, 24, 6, 0x0020, 0x10, 20, 1),
  864. PIN_FIELD_BASE(25, 25, 6, 0x0020, 0x10, 14, 1),
  865. PIN_FIELD_BASE(26, 26, 6, 0x0020, 0x10, 13, 1),
  866. PIN_FIELD_BASE(27, 27, 6, 0x0020, 0x10, 15, 1),
  867. PIN_FIELD_BASE(28, 28, 6, 0x0020, 0x10, 12, 1),
  868. PIN_FIELD_BASE(29, 29, 6, 0x0020, 0x10, 0, 1),
  869. PIN_FIELD_BASE(30, 30, 6, 0x0020, 0x10, 1, 1),
  870. PIN_FIELD_BASE(31, 31, 6, 0x0020, 0x10, 5, 1),
  871. PIN_FIELD_BASE(32, 32, 6, 0x0020, 0x10, 2, 1),
  872. PIN_FIELD_BASE(33, 33, 6, 0x0020, 0x10, 4, 1),
  873. PIN_FIELD_BASE(34, 34, 6, 0x0020, 0x10, 3, 1),
  874. PIN_FIELD_BASE(35, 35, 6, 0x0020, 0x10, 10, 1),
  875. PIN_FIELD_BASE(36, 36, 6, 0x0020, 0x10, 11, 1),
  876. PIN_FIELD_BASE(37, 37, 6, 0x0020, 0x10, 9, 1),
  877. PIN_FIELD_BASE(38, 38, 6, 0x0020, 0x10, 6, 1),
  878. PIN_FIELD_BASE(39, 39, 6, 0x0020, 0x10, 8, 1),
  879. PIN_FIELD_BASE(40, 40, 6, 0x0020, 0x10, 7, 1),
  880. PIN_FIELD_BASE(41, 41, 7, 0x0040, 0x10, 19, 1),
  881. PIN_FIELD_BASE(42, 42, 7, 0x0040, 0x10, 9, 1),
  882. PIN_FIELD_BASE(43, 43, 7, 0x0040, 0x10, 8, 1),
  883. PIN_FIELD_BASE(44, 44, 7, 0x0040, 0x10, 10, 1),
  884. PIN_FIELD_BASE(45, 45, 7, 0x0040, 0x10, 22, 1),
  885. PIN_FIELD_BASE(46, 46, 7, 0x0040, 0x10, 21, 1),
  886. PIN_FIELD_BASE(47, 47, 7, 0x0040, 0x10, 20, 1),
  887. PIN_FIELD_BASE(48, 48, 7, 0x0050, 0x10, 3, 1),
  888. PIN_FIELD_BASE(49, 49, 7, 0x0050, 0x10, 5, 1),
  889. PIN_FIELD_BASE(50, 50, 7, 0x0050, 0x10, 2, 1),
  890. PIN_FIELD_BASE(51, 51, 7, 0x0050, 0x10, 4, 1),
  891. PIN_FIELD_BASE(52, 52, 7, 0x0040, 0x10, 1, 1),
  892. PIN_FIELD_BASE(53, 53, 7, 0x0040, 0x10, 0, 1),
  893. PIN_FIELD_BASE(54, 54, 7, 0x0040, 0x10, 5, 1),
  894. PIN_FIELD_BASE(55, 55, 7, 0x0040, 0x10, 3, 1),
  895. PIN_FIELD_BASE(56, 56, 7, 0x0040, 0x10, 4, 1),
  896. PIN_FIELD_BASE(57, 57, 7, 0x0040, 0x10, 2, 1),
  897. PIN_FIELD_BASE(58, 58, 7, 0x0050, 0x10, 0, 1),
  898. PIN_FIELD_BASE(59, 59, 7, 0x0040, 0x10, 31, 1),
  899. PIN_FIELD_BASE(60, 60, 7, 0x0040, 0x10, 30, 1),
  900. PIN_FIELD_BASE(61, 61, 3, 0x0030, 0x10, 18, 1),
  901. PIN_FIELD_BASE(62, 62, 3, 0x0030, 0x10, 14, 1),
  902. PIN_FIELD_BASE(63, 63, 3, 0x0030, 0x10, 17, 1),
  903. PIN_FIELD_BASE(64, 64, 3, 0x0030, 0x10, 13, 1),
  904. PIN_FIELD_BASE(65, 65, 3, 0x0030, 0x10, 20, 1),
  905. PIN_FIELD_BASE(66, 66, 3, 0x0030, 0x10, 16, 1),
  906. PIN_FIELD_BASE(67, 67, 3, 0x0030, 0x10, 19, 1),
  907. PIN_FIELD_BASE(68, 68, 3, 0x0030, 0x10, 15, 1),
  908. PIN_FIELD_BASE(69, 69, 3, 0x0030, 0x10, 8, 1),
  909. PIN_FIELD_BASE(70, 70, 3, 0x0030, 0x10, 7, 1),
  910. PIN_FIELD_BASE(71, 71, 3, 0x0030, 0x10, 6, 1),
  911. PIN_FIELD_BASE(72, 72, 3, 0x0030, 0x10, 5, 1),
  912. PIN_FIELD_BASE(73, 73, 3, 0x0030, 0x10, 4, 1),
  913. PIN_FIELD_BASE(74, 74, 3, 0x0030, 0x10, 3, 1),
  914. PIN_FIELD_BASE(75, 75, 3, 0x0030, 0x10, 2, 1),
  915. PIN_FIELD_BASE(76, 76, 3, 0x0030, 0x10, 1, 1),
  916. PIN_FIELD_BASE(77, 77, 3, 0x0030, 0x10, 0, 1),
  917. PIN_FIELD_BASE(78, 78, 3, 0x0030, 0x10, 9, 1),
  918. PIN_FIELD_BASE(79, 79, 3, 0x0030, 0x10, 11, 1),
  919. PIN_FIELD_BASE(80, 80, 3, 0x0030, 0x10, 10, 1),
  920. PIN_FIELD_BASE(81, 81, 3, 0x0030, 0x10, 25, 1),
  921. PIN_FIELD_BASE(82, 82, 3, 0x0030, 0x10, 24, 1),
  922. PIN_FIELD_BASE(83, 83, 3, 0x0030, 0x10, 22, 1),
  923. PIN_FIELD_BASE(84, 84, 3, 0x0030, 0x10, 23, 1),
  924. PIN_FIELD_BASE(85, 85, 7, 0x0050, 0x10, 1, 1),
  925. PIN_FIELD_BASE(86, 86, 7, 0x0040, 0x10, 29, 1),
  926. PIN_FIELD_BASE(87, 87, 7, 0x0040, 0x10, 7, 1),
  927. PIN_FIELD_BASE(88, 88, 7, 0x0040, 0x10, 6, 1),
  928. PIN_FIELD_BASE(89, 89, 2, 0x0030, 0x10, 25, 1),
  929. PIN_FIELD_BASE(90, 90, 3, 0x0030, 0x10, 21, 1),
  930. PIN_FIELD_BASE(91, 91, 2, 0x0030, 0x10, 20, 1),
  931. PIN_FIELD_BASE(92, 92, 2, 0x0030, 0x10, 19, 1),
  932. PIN_FIELD_BASE(93, 93, 2, 0x0030, 0x10, 17, 1),
  933. PIN_FIELD_BASE(94, 94, 2, 0x0030, 0x10, 18, 1),
  934. PIN_FIELD_BASE(95, 95, 2, 0x0030, 0x10, 26, 1),
  935. PIN_FIELD_BASE(96, 96, 2, 0x0030, 0x10, 27, 1),
  936. PIN_FIELD_BASE(97, 97, 2, 0x0030, 0x10, 2, 1),
  937. PIN_FIELD_BASE(98, 98, 2, 0x0030, 0x10, 3, 1),
  938. PIN_FIELD_BASE(99, 99, 2, 0x0030, 0x10, 0, 1),
  939. PIN_FIELD_BASE(100, 100, 2, 0x0030, 0x10, 1, 1),
  940. PIN_FIELD_BASE(101, 101, 2, 0x0030, 0x10, 4, 1),
  941. PIN_FIELD_BASE(102, 102, 2, 0x0030, 0x10, 5, 1),
  942. PIN_FIELD_BASE(103, 103, 2, 0x0030, 0x10, 21, 1),
  943. PIN_FIELD_BASE(104, 104, 2, 0x0030, 0x10, 23, 1),
  944. PIN_FIELD_BASE(105, 105, 2, 0x0030, 0x10, 22, 1),
  945. PIN_FIELD_BASE(106, 106, 2, 0x0030, 0x10, 24, 1),
  946. PIN_FIELD_BASE(107, 107, 1, 0x0030, 0x10, 4, 1),
  947. PIN_FIELD_BASE(108, 108, 1, 0x0030, 0x10, 3, 1),
  948. PIN_FIELD_BASE(109, 109, 1, 0x0030, 0x10, 5, 1),
  949. PIN_FIELD_BASE(110, 110, 1, 0x0030, 0x10, 0, 1),
  950. PIN_FIELD_BASE(111, 111, 1, 0x0030, 0x10, 1, 1),
  951. PIN_FIELD_BASE(112, 112, 1, 0x0030, 0x10, 2, 1),
  952. PIN_FIELD_BASE(113, 113, 1, 0x0030, 0x10, 9, 1),
  953. PIN_FIELD_BASE(114, 114, 1, 0x0030, 0x10, 10, 1),
  954. PIN_FIELD_BASE(115, 115, 1, 0x0030, 0x10, 6, 1),
  955. PIN_FIELD_BASE(116, 116, 1, 0x0030, 0x10, 7, 1),
  956. PIN_FIELD_BASE(117, 117, 1, 0x0030, 0x10, 12, 1),
  957. PIN_FIELD_BASE(118, 118, 1, 0x0030, 0x10, 13, 1),
  958. PIN_FIELD_BASE(119, 119, 1, 0x0030, 0x10, 14, 1),
  959. PIN_FIELD_BASE(120, 120, 1, 0x0030, 0x10, 11, 1),
  960. PIN_FIELD_BASE(121, 121, 1, 0x0030, 0x10, 8, 1),
  961. PIN_FIELD_BASE(122, 122, 4, 0x0010, 0x10, 9, 1),
  962. PIN_FIELD_BASE(123, 123, 4, 0x0010, 0x10, 10, 1),
  963. PIN_FIELD_BASE(124, 124, 4, 0x0010, 0x10, 8, 1),
  964. PIN_FIELD_BASE(125, 125, 4, 0x0010, 0x10, 12, 1),
  965. PIN_FIELD_BASE(126, 126, 4, 0x0010, 0x10, 14, 1),
  966. PIN_FIELD_BASE(127, 127, 4, 0x0010, 0x10, 16, 1),
  967. PIN_FIELD_BASE(128, 128, 4, 0x0010, 0x10, 11, 1),
  968. PIN_FIELD_BASE(129, 129, 4, 0x0010, 0x10, 15, 1),
  969. PIN_FIELD_BASE(130, 130, 4, 0x0010, 0x10, 17, 1),
  970. PIN_FIELD_BASE(131, 131, 4, 0x0010, 0x10, 18, 1),
  971. PIN_FIELD_BASE(132, 132, 4, 0x0010, 0x10, 13, 1),
  972. PIN_FIELD_BASE(133, 133, 4, 0x0010, 0x10, 19, 1),
  973. PIN_FIELD_BASE(134, 134, 5, 0x0020, 0x10, 14, 1),
  974. PIN_FIELD_BASE(135, 135, 5, 0x0020, 0x10, 17, 1),
  975. PIN_FIELD_BASE(136, 136, 5, 0x0020, 0x10, 1, 1),
  976. PIN_FIELD_BASE(137, 137, 5, 0x0020, 0x10, 7, 1),
  977. PIN_FIELD_BASE(138, 138, 5, 0x0020, 0x10, 4, 1),
  978. PIN_FIELD_BASE(139, 139, 5, 0x0020, 0x10, 5, 1),
  979. PIN_FIELD_BASE(140, 140, 5, 0x0020, 0x10, 0, 1),
  980. PIN_FIELD_BASE(141, 141, 5, 0x0020, 0x10, 6, 1),
  981. PIN_FIELD_BASE(142, 142, 5, 0x0020, 0x10, 2, 1),
  982. PIN_FIELD_BASE(143, 143, 5, 0x0020, 0x10, 3, 1),
  983. PIN_FIELD_BASE(144, 144, 5, 0x0020, 0x10, 12, 1),
  984. PIN_FIELD_BASE(145, 145, 5, 0x0020, 0x10, 11, 1),
  985. PIN_FIELD_BASE(146, 146, 5, 0x0020, 0x10, 13, 1),
  986. PIN_FIELD_BASE(147, 147, 5, 0x0020, 0x10, 10, 1),
  987. PIN_FIELD_BASE(148, 148, 5, 0x0020, 0x10, 15, 1),
  988. PIN_FIELD_BASE(149, 149, 5, 0x0020, 0x10, 16, 1),
  989. PIN_FIELD_BASE(150, 150, 7, 0x0040, 0x10, 23, 1),
  990. PIN_FIELD_BASE(151, 151, 7, 0x0040, 0x10, 24, 1),
  991. PIN_FIELD_BASE(152, 152, 7, 0x0040, 0x10, 25, 1),
  992. PIN_FIELD_BASE(153, 153, 7, 0x0040, 0x10, 26, 1),
  993. PIN_FIELD_BASE(154, 154, 7, 0x0040, 0x10, 28, 1),
  994. PIN_FIELD_BASE(155, 155, 3, 0x0030, 0x10, 28, 1),
  995. PIN_FIELD_BASE(156, 156, 3, 0x0030, 0x10, 27, 1),
  996. PIN_FIELD_BASE(157, 157, 3, 0x0030, 0x10, 29, 1),
  997. PIN_FIELD_BASE(158, 158, 3, 0x0030, 0x10, 26, 1),
  998. PIN_FIELD_BASE(159, 159, 7, 0x0040, 0x10, 27, 1),
  999. PIN_FIELD_BASE(160, 160, 5, 0x0020, 0x10, 8, 1),
  1000. PIN_FIELD_BASE(161, 161, 1, 0x0030, 0x10, 15, 1),
  1001. PIN_FIELD_BASE(162, 162, 1, 0x0030, 0x10, 16, 1),
  1002. PIN_FIELD_BASE(163, 163, 4, 0x0010, 0x10, 0, 1),
  1003. PIN_FIELD_BASE(164, 164, 4, 0x0010, 0x10, 1, 1),
  1004. PIN_FIELD_BASE(165, 165, 4, 0x0010, 0x10, 2, 1),
  1005. PIN_FIELD_BASE(166, 166, 4, 0x0010, 0x10, 3, 1),
  1006. PIN_FIELD_BASE(167, 167, 4, 0x0010, 0x10, 4, 1),
  1007. PIN_FIELD_BASE(168, 168, 4, 0x0010, 0x10, 5, 1),
  1008. PIN_FIELD_BASE(169, 169, 4, 0x0010, 0x10, 6, 1),
  1009. PIN_FIELD_BASE(170, 170, 4, 0x0010, 0x10, 7, 1),
  1010. PIN_FIELD_BASE(171, 171, 7, 0x0040, 0x10, 17, 1),
  1011. PIN_FIELD_BASE(172, 172, 7, 0x0040, 0x10, 18, 1),
  1012. PIN_FIELD_BASE(173, 173, 7, 0x0040, 0x10, 11, 1),
  1013. PIN_FIELD_BASE(174, 174, 7, 0x0040, 0x10, 12, 1),
  1014. PIN_FIELD_BASE(175, 175, 7, 0x0040, 0x10, 13, 1),
  1015. PIN_FIELD_BASE(176, 176, 7, 0x0040, 0x10, 14, 1),
  1016. PIN_FIELD_BASE(177, 177, 7, 0x0040, 0x10, 15, 1),
  1017. PINS_FIELD_BASE(178, 179, 7, 0x0040, 0x10, 16, 1),
  1018. };
  1019. static const struct mtk_pin_reg_calc mt6765_reg_cals[PINCTRL_PIN_REG_MAX] = {
  1020. [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6765_pin_mode_range),
  1021. [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6765_pin_dir_range),
  1022. [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6765_pin_di_range),
  1023. [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6765_pin_do_range),
  1024. [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6765_pin_smt_range),
  1025. [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt6765_pin_pd_range),
  1026. [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt6765_pin_pu_range),
  1027. [PINCTRL_PIN_REG_TDSEL] = MTK_RANGE(mt6765_pin_tdsel_range),
  1028. [PINCTRL_PIN_REG_RDSEL] = MTK_RANGE(mt6765_pin_rdsel_range),
  1029. [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6765_pin_drv_range),
  1030. [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6765_pin_pupd_range),
  1031. [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6765_pin_r0_range),
  1032. [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6765_pin_r1_range),
  1033. [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6765_pin_ies_range),
  1034. };
  1035. static const char * const mt6765_pinctrl_register_base_names[] = {
  1036. "iocfg0", "iocfg1", "iocfg2", "iocfg3", "iocfg4", "iocfg5",
  1037. "iocfg6", "iocfg7",
  1038. };
  1039. static const struct mtk_eint_hw mt6765_eint_hw = {
  1040. .port_mask = 7,
  1041. .ports = 6,
  1042. .ap_num = 160,
  1043. .db_cnt = 13,
  1044. .db_time = debounce_time_mt6765,
  1045. };
  1046. static const struct mtk_pin_soc mt6765_data = {
  1047. .reg_cal = mt6765_reg_cals,
  1048. .pins = mtk_pins_mt6765,
  1049. .npins = ARRAY_SIZE(mtk_pins_mt6765),
  1050. .ngrps = ARRAY_SIZE(mtk_pins_mt6765),
  1051. .eint_hw = &mt6765_eint_hw,
  1052. .gpio_m = 0,
  1053. .base_names = mt6765_pinctrl_register_base_names,
  1054. .nbase_names = ARRAY_SIZE(mt6765_pinctrl_register_base_names),
  1055. .bias_set_combo = mtk_pinconf_bias_set_combo,
  1056. .bias_get_combo = mtk_pinconf_bias_get_combo,
  1057. .drive_set = mtk_pinconf_drive_set_raw,
  1058. .drive_get = mtk_pinconf_drive_get_raw,
  1059. .adv_pull_get = mtk_pinconf_adv_pull_get,
  1060. .adv_pull_set = mtk_pinconf_adv_pull_set,
  1061. };
  1062. static const struct of_device_id mt6765_pinctrl_of_match[] = {
  1063. { .compatible = "mediatek,mt6765-pinctrl", .data = &mt6765_data },
  1064. { }
  1065. };
  1066. static struct platform_driver mt6765_pinctrl_driver = {
  1067. .driver = {
  1068. .name = "mt6765-pinctrl",
  1069. .of_match_table = mt6765_pinctrl_of_match,
  1070. },
  1071. .probe = mtk_paris_pinctrl_probe,
  1072. };
  1073. static int __init mt6765_pinctrl_init(void)
  1074. {
  1075. return platform_driver_register(&mt6765_pinctrl_driver);
  1076. }
  1077. arch_initcall(mt6765_pinctrl_init);
  1078. MODULE_LICENSE("GPL v2");
  1079. MODULE_DESCRIPTION("MediaTek MT6765 Pinctrl Driver");