Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/pinctrl/mediatek/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 74 kB image not shown  

Quelle  pinctrl-mt8188.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2022 MediaTek Inc.
 * Author: Hui Liu <hui.liu@mediatek.com>
 *
 */


#include <linux/module.h>
#include "pinctrl-mtk-mt8188.h"
#include "pinctrl-paris.h"

/* MT8188 have multiple bases to program pin configuration listed as the below:
 * iocfg[0]:0x10005000, iocfg[1]:0x11c00000, iocfg[2]:0x11e10000,
 * iocfg[3]:0x11e20000, iocfg[4]:0x11ea0000
 * _i_based could be used to indicate what base the pin should be mapped into.
 */


#define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits)  \
 PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
  320)

#define PINS_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
 PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
  321)

static const struct mtk_pin_field_calc mt8188_pin_mode_range[] = {
 PIN_FIELD(01770x0300, 0x10, 04),
};

static const struct mtk_pin_field_calc mt8188_pin_dir_range[] = {
 PIN_FIELD(01770x0000, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8188_pin_di_range[] = {
 PIN_FIELD(01770x0200, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8188_pin_do_range[] = {
 PIN_FIELD(01770x0100, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8188_pin_smt_range[] = {
 PIN_FIELD_BASE(0010x0170, 0x10, 81),
 PIN_FIELD_BASE(1110x0170, 0x10, 91),
 PIN_FIELD_BASE(2210x0170, 0x10, 101),
 PIN_FIELD_BASE(3310x0170, 0x10, 111),
 PIN_FIELD_BASE(4410x0170, 0x10, 181),
 PIN_FIELD_BASE(5510x0170, 0x10, 181),
 PIN_FIELD_BASE(6610x0170, 0x10, 181),
 PIN_FIELD_BASE(7710x0170, 0x10, 121),
 PIN_FIELD_BASE(8810x0170, 0x10, 131),
 PIN_FIELD_BASE(9910x0170, 0x10, 141),
 PIN_FIELD_BASE(101010x0170, 0x10, 151),
 PIN_FIELD_BASE(111110x0170, 0x10, 191),
 PIN_FIELD_BASE(121220x0160, 0x10, 121),
 PIN_FIELD_BASE(131320x0160, 0x10, 131),
 PIN_FIELD_BASE(141420x0160, 0x10, 141),
 PIN_FIELD_BASE(151520x0160, 0x10, 151),
 PIN_FIELD_BASE(161630x00d0, 0x10, 101),
 PIN_FIELD_BASE(171730x00d0, 0x10, 101),
 PIN_FIELD_BASE(181840x00e0, 0x10, 91),
 PIN_FIELD_BASE(191940x00e0, 0x10, 91),
 PIN_FIELD_BASE(202040x00e0, 0x10, 91),
 PIN_FIELD_BASE(212140x00e0, 0x10, 91),
 PIN_FIELD_BASE(222240x00e0, 0x10, 01),
 PIN_FIELD_BASE(232340x00e0, 0x10, 11),
 PIN_FIELD_BASE(242440x00e0, 0x10, 21),
 PIN_FIELD_BASE(252510x0170, 0x10, 171),
 PIN_FIELD_BASE(262610x0170, 0x10, 171),
 PIN_FIELD_BASE(272710x0170, 0x10, 171),
 PIN_FIELD_BASE(282810x0170, 0x10, 181),
 PIN_FIELD_BASE(292910x0170, 0x10, 161),
 PIN_FIELD_BASE(303010x0170, 0x10, 171),
 PIN_FIELD_BASE(313110x0170, 0x10, 191),
 PIN_FIELD_BASE(323210x0170, 0x10, 191),
 PIN_FIELD_BASE(333310x0170, 0x10, 201),
 PIN_FIELD_BASE(343410x0170, 0x10, 201),
 PIN_FIELD_BASE(353510x0170, 0x10, 191),
 PIN_FIELD_BASE(363610x0170, 0x10, 201),
 PIN_FIELD_BASE(373710x0170, 0x10, 211),
 PIN_FIELD_BASE(383810x0170, 0x10, 201),
 PIN_FIELD_BASE(393910x0170, 0x10, 211),
 PIN_FIELD_BASE(404010x0170, 0x10, 211),
 PIN_FIELD_BASE(414110x0170, 0x10, 211),
 PIN_FIELD_BASE(424220x0160, 0x10, 211),
 PIN_FIELD_BASE(434320x0160, 0x10, 221),
 PIN_FIELD_BASE(444420x0160, 0x10, 211),
 PIN_FIELD_BASE(454520x0160, 0x10, 221),
 PIN_FIELD_BASE(464630x00d0, 0x10, 101),
 PIN_FIELD_BASE(474710x0170, 0x10, 161),
 PIN_FIELD_BASE(484810x0170, 0x10, 161),
 PIN_FIELD_BASE(494910x0170, 0x10, 161),
 PIN_FIELD_BASE(505030x00d0, 0x10, 101),
 PIN_FIELD_BASE(515130x00d0, 0x10, 111),
 PIN_FIELD_BASE(525230x00d0, 0x10, 111),
 PIN_FIELD_BASE(535330x00d0, 0x10, 111),
 PIN_FIELD_BASE(545430x00d0, 0x10, 111),
 PIN_FIELD_BASE(555510x0170, 0x10, 251),
 PIN_FIELD_BASE(565610x0170, 0x10, 281),
 PIN_FIELD_BASE(575720x0160, 0x10, 291),
 PIN_FIELD_BASE(585820x0160, 0x10, 311),
 PIN_FIELD_BASE(595910x0170, 0x10, 261),
 PIN_FIELD_BASE(606010x0170, 0x10, 291),
 PIN_FIELD_BASE(616110x0170, 0x10, 271),
 PIN_FIELD_BASE(626210x0170, 0x10, 301),
 PIN_FIELD_BASE(636320x0160, 0x10, 301),
 PIN_FIELD_BASE(646420x0170, 0x10, 01),
 PIN_FIELD_BASE(656540x00e0, 0x10, 101),
 PIN_FIELD_BASE(666640x00e0, 0x10, 121),
 PIN_FIELD_BASE(676740x00e0, 0x10, 111),
 PIN_FIELD_BASE(686840x00e0, 0x10, 131),
 PIN_FIELD_BASE(696910x0180, 0x10, 01),
 PIN_FIELD_BASE(707010x0170, 0x10, 311),
 PIN_FIELD_BASE(717110x0180, 0x10, 41),
 PIN_FIELD_BASE(727210x0180, 0x10, 31),
 PIN_FIELD_BASE(737310x0180, 0x10, 11),
 PIN_FIELD_BASE(747410x0180, 0x10, 21),
 PIN_FIELD_BASE(757510x0180, 0x10, 61),
 PIN_FIELD_BASE(767610x0180, 0x10, 51),
 PIN_FIELD_BASE(777710x0180, 0x10, 81),
 PIN_FIELD_BASE(787810x0180, 0x10, 71),
 PIN_FIELD_BASE(797940x00e0, 0x10, 151),
 PIN_FIELD_BASE(808040x00e0, 0x10, 141),
 PIN_FIELD_BASE(818140x00e0, 0x10, 171),
 PIN_FIELD_BASE(828240x00e0, 0x10, 161),
 PIN_FIELD_BASE(838320x0160, 0x10, 261),
 PIN_FIELD_BASE(848420x0160, 0x10, 261),
 PIN_FIELD_BASE(858520x0160, 0x10, 271),
 PIN_FIELD_BASE(868620x0160, 0x10, 171),
 PIN_FIELD_BASE(878720x0160, 0x10, 171),
 PIN_FIELD_BASE(888820x0160, 0x10, 171),
 PIN_FIELD_BASE(898920x0160, 0x10, 171),
 PIN_FIELD_BASE(909020x0160, 0x10, 271),
 PIN_FIELD_BASE(919120x0160, 0x10, 271),
 PIN_FIELD_BASE(929220x0160, 0x10, 181),
 PIN_FIELD_BASE(939320x0160, 0x10, 181),
 PIN_FIELD_BASE(949420x0160, 0x10, 181),
 PIN_FIELD_BASE(959520x0160, 0x10, 181),
 PIN_FIELD_BASE(969620x0160, 0x10, 221),
 PIN_FIELD_BASE(979720x0160, 0x10, 231),
 PIN_FIELD_BASE(989820x0160, 0x10, 241),
 PIN_FIELD_BASE(999920x0160, 0x10, 221),
 PIN_FIELD_BASE(10010020x0160, 0x10, 161),
 PIN_FIELD_BASE(10110120x0160, 0x10, 231),
 PIN_FIELD_BASE(10210220x0160, 0x10, 231),
 PIN_FIELD_BASE(10310320x0160, 0x10, 231),
 PIN_FIELD_BASE(10410420x0160, 0x10, 241),
 PIN_FIELD_BASE(10510520x0160, 0x10, 241),
 PIN_FIELD_BASE(10610620x0160, 0x10, 241),
 PIN_FIELD_BASE(10710720x0160, 0x10, 171),
 PIN_FIELD_BASE(10810820x0160, 0x10, 171),
 PIN_FIELD_BASE(10910920x0160, 0x10, 171),
 PIN_FIELD_BASE(11011020x0160, 0x10, 171),
 PIN_FIELD_BASE(11111120x0160, 0x10, 191),
 PIN_FIELD_BASE(11211220x0160, 0x10, 191),
 PIN_FIELD_BASE(11311320x0160, 0x10, 191),
 PIN_FIELD_BASE(11411420x0160, 0x10, 191),
 PIN_FIELD_BASE(11511520x0160, 0x10, 201),
 PIN_FIELD_BASE(11611620x0160, 0x10, 201),
 PIN_FIELD_BASE(11711720x0160, 0x10, 201),
 PIN_FIELD_BASE(11811820x0160, 0x10, 201),
 PIN_FIELD_BASE(11911920x0160, 0x10, 211),
 PIN_FIELD_BASE(12012020x0160, 0x10, 211),
 PIN_FIELD_BASE(12112130x00d0, 0x10, 61),
 PIN_FIELD_BASE(12212230x00d0, 0x10, 91),
 PIN_FIELD_BASE(12312330x00d0, 0x10, 81),
 PIN_FIELD_BASE(12412430x00d0, 0x10, 71),
 PIN_FIELD_BASE(12512520x0160, 0x10, 251),
 PIN_FIELD_BASE(12612620x0160, 0x10, 251),
 PIN_FIELD_BASE(12712720x0160, 0x10, 251),
 PIN_FIELD_BASE(12812820x0160, 0x10, 251),
 PIN_FIELD_BASE(12912920x0160, 0x10, 261),
 PIN_FIELD_BASE(13013020x0160, 0x10, 261),
 PIN_FIELD_BASE(13113110x0170, 0x10, 01),
 PIN_FIELD_BASE(13213210x0170, 0x10, 11),
 PIN_FIELD_BASE(13313310x0170, 0x10, 61),
 PIN_FIELD_BASE(13413410x0170, 0x10, 71),
 PIN_FIELD_BASE(13513510x0170, 0x10, 221),
 PIN_FIELD_BASE(13613610x0170, 0x10, 221),
 PIN_FIELD_BASE(13713710x0170, 0x10, 221),
 PIN_FIELD_BASE(13813810x0170, 0x10, 221),
 PIN_FIELD_BASE(13913910x0170, 0x10, 231),
 PIN_FIELD_BASE(14014010x0170, 0x10, 231),
 PIN_FIELD_BASE(14114110x0170, 0x10, 231),
 PIN_FIELD_BASE(14214210x0170, 0x10, 231),
 PIN_FIELD_BASE(14314310x0170, 0x10, 21),
 PIN_FIELD_BASE(14414410x0170, 0x10, 31),
 PIN_FIELD_BASE(14514510x0170, 0x10, 41),
 PIN_FIELD_BASE(14614610x0170, 0x10, 51),
 PIN_FIELD_BASE(14714710x0170, 0x10, 241),
 PIN_FIELD_BASE(14814810x0170, 0x10, 241),
 PIN_FIELD_BASE(14914910x0170, 0x10, 241),
 PIN_FIELD_BASE(15015010x0170, 0x10, 241),
 PIN_FIELD_BASE(15115120x0160, 0x10, 91),
 PIN_FIELD_BASE(15215220x0160, 0x10, 81),
 PIN_FIELD_BASE(15315320x0160, 0x10, 71),
 PIN_FIELD_BASE(15415420x0160, 0x10, 61),
 PIN_FIELD_BASE(15515520x0160, 0x10, 111),
 PIN_FIELD_BASE(15615620x0160, 0x10, 11),
 PIN_FIELD_BASE(15715720x0160, 0x10, 01),
 PIN_FIELD_BASE(15815820x0160, 0x10, 51),
 PIN_FIELD_BASE(15915920x0160, 0x10, 41),
 PIN_FIELD_BASE(16016020x0160, 0x10, 31),
 PIN_FIELD_BASE(16116120x0160, 0x10, 21),
 PIN_FIELD_BASE(16216220x0160, 0x10, 101),
 PIN_FIELD_BASE(16316340x00e0, 0x10, 41),
 PIN_FIELD_BASE(16416440x00e0, 0x10, 31),
 PIN_FIELD_BASE(16516540x00e0, 0x10, 51),
 PIN_FIELD_BASE(16616640x00e0, 0x10, 61),
 PIN_FIELD_BASE(16716740x00e0, 0x10, 71),
 PIN_FIELD_BASE(16816840x00e0, 0x10, 81),
 PIN_FIELD_BASE(16916930x00d0, 0x10, 11),
 PIN_FIELD_BASE(17017030x00d0, 0x10, 01),
 PIN_FIELD_BASE(17117130x00d0, 0x10, 21),
 PIN_FIELD_BASE(17217230x00d0, 0x10, 31),
 PIN_FIELD_BASE(17317330x00d0, 0x10, 41),
 PIN_FIELD_BASE(17417430x00d0, 0x10, 51),
 PIN_FIELD_BASE(17517520x0160, 0x10, 281),
 PIN_FIELD_BASE(17617620x0160, 0x10, 281),
};

static const struct mtk_pin_field_calc mt8188_pin_ies_range[] = {
 PIN_FIELD_BASE(0010x0080, 0x10, 261),
 PIN_FIELD_BASE(1110x0080, 0x10, 271),
 PIN_FIELD_BASE(2210x0080, 0x10, 281),
 PIN_FIELD_BASE(3310x0080, 0x10, 291),
 PIN_FIELD_BASE(4410x0080, 0x10, 301),
 PIN_FIELD_BASE(5510x0080, 0x10, 311),
 PIN_FIELD_BASE(6610x0090, 0x10, 01),
 PIN_FIELD_BASE(7710x0090, 0x10, 11),
 PIN_FIELD_BASE(8810x0090, 0x10, 21),
 PIN_FIELD_BASE(9910x0090, 0x10, 31),
 PIN_FIELD_BASE(101010x0090, 0x10, 41),
 PIN_FIELD_BASE(111110x0090, 0x10, 51),
 PIN_FIELD_BASE(121220x0070, 0x10, 241),
 PIN_FIELD_BASE(131320x0070, 0x10, 251),
 PIN_FIELD_BASE(141420x0070, 0x10, 261),
 PIN_FIELD_BASE(151520x0070, 0x10, 271),
 PIN_FIELD_BASE(161630x0040, 0x10, 11),
 PIN_FIELD_BASE(171730x0040, 0x10, 21),
 PIN_FIELD_BASE(181840x0050, 0x10, 31),
 PIN_FIELD_BASE(191940x0050, 0x10, 51),
 PIN_FIELD_BASE(202040x0050, 0x10, 41),
 PIN_FIELD_BASE(212140x0050, 0x10, 61),
 PIN_FIELD_BASE(222240x0050, 0x10, 01),
 PIN_FIELD_BASE(232340x0050, 0x10, 11),
 PIN_FIELD_BASE(242440x0050, 0x10, 21),
 PIN_FIELD_BASE(252510x0080, 0x10, 231),
 PIN_FIELD_BASE(262610x0080, 0x10, 221),
 PIN_FIELD_BASE(272710x0080, 0x10, 251),
 PIN_FIELD_BASE(282810x0080, 0x10, 241),
 PIN_FIELD_BASE(292910x0080, 0x10, 01),
 PIN_FIELD_BASE(303010x0080, 0x10, 11),
 PIN_FIELD_BASE(313110x0090, 0x10, 311),
 PIN_FIELD_BASE(323210x0090, 0x10, 301),
 PIN_FIELD_BASE(333310x00a0, 0x10, 11),
 PIN_FIELD_BASE(343410x00a0, 0x10, 01),
 PIN_FIELD_BASE(353510x00a0, 0x10, 31),
 PIN_FIELD_BASE(363610x00a0, 0x10, 21),
 PIN_FIELD_BASE(373710x0090, 0x10, 91),
 PIN_FIELD_BASE(383810x0090, 0x10, 61),
 PIN_FIELD_BASE(393910x0090, 0x10, 71),
 PIN_FIELD_BASE(404010x0090, 0x10, 81),
 PIN_FIELD_BASE(414110x0090, 0x10, 101),
 PIN_FIELD_BASE(424220x0080, 0x10, 101),
 PIN_FIELD_BASE(434320x0080, 0x10, 111),
 PIN_FIELD_BASE(444420x0080, 0x10, 121),
 PIN_FIELD_BASE(454520x0080, 0x10, 131),
 PIN_FIELD_BASE(464630x0040, 0x10, 01),
 PIN_FIELD_BASE(474710x0090, 0x10, 131),
 PIN_FIELD_BASE(484810x0090, 0x10, 121),
 PIN_FIELD_BASE(494910x0090, 0x10, 111),
 PIN_FIELD_BASE(505030x0040, 0x10, 51),
 PIN_FIELD_BASE(515130x0040, 0x10, 41),
 PIN_FIELD_BASE(525230x0040, 0x10, 31),
 PIN_FIELD_BASE(535330x0040, 0x10, 61),
 PIN_FIELD_BASE(545430x0040, 0x10, 71),
 PIN_FIELD_BASE(555510x0090, 0x10, 141),
 PIN_FIELD_BASE(565610x0090, 0x10, 171),
 PIN_FIELD_BASE(575720x0080, 0x10, 221),
 PIN_FIELD_BASE(585820x0080, 0x10, 251),
 PIN_FIELD_BASE(595910x0090, 0x10, 151),
 PIN_FIELD_BASE(606010x0090, 0x10, 181),
 PIN_FIELD_BASE(616110x0090, 0x10, 161),
 PIN_FIELD_BASE(626210x0090, 0x10, 191),
 PIN_FIELD_BASE(636320x0080, 0x10, 231),
 PIN_FIELD_BASE(646420x0080, 0x10, 261),
 PIN_FIELD_BASE(656540x0050, 0x10, 131),
 PIN_FIELD_BASE(666640x0050, 0x10, 151),
 PIN_FIELD_BASE(676740x0050, 0x10, 141),
 PIN_FIELD_BASE(686840x0050, 0x10, 161),
 PIN_FIELD_BASE(696910x0090, 0x10, 211),
 PIN_FIELD_BASE(707010x0090, 0x10, 201),
 PIN_FIELD_BASE(717110x0090, 0x10, 251),
 PIN_FIELD_BASE(727210x0090, 0x10, 241),
 PIN_FIELD_BASE(737310x0090, 0x10, 221),
 PIN_FIELD_BASE(747410x0090, 0x10, 231),
 PIN_FIELD_BASE(757510x0090, 0x10, 271),
 PIN_FIELD_BASE(767610x0090, 0x10, 261),
 PIN_FIELD_BASE(777710x0090, 0x10, 291),
 PIN_FIELD_BASE(787810x0090, 0x10, 281),
 PIN_FIELD_BASE(797940x0050, 0x10, 181),
 PIN_FIELD_BASE(808040x0050, 0x10, 171),
 PIN_FIELD_BASE(818140x0050, 0x10, 201),
 PIN_FIELD_BASE(828240x0050, 0x10, 191),
 PIN_FIELD_BASE(838320x0080, 0x10, 301),
 PIN_FIELD_BASE(848420x0080, 0x10, 291),
 PIN_FIELD_BASE(858520x0080, 0x10, 311),
 PIN_FIELD_BASE(868620x0090, 0x10, 11),
 PIN_FIELD_BASE(878720x0090, 0x10, 01),
 PIN_FIELD_BASE(888820x0090, 0x10, 21),
 PIN_FIELD_BASE(898920x0090, 0x10, 41),
 PIN_FIELD_BASE(909020x0090, 0x10, 31),
 PIN_FIELD_BASE(919120x0090, 0x10, 51),
 PIN_FIELD_BASE(929220x0080, 0x10, 191),
 PIN_FIELD_BASE(939320x0080, 0x10, 181),
 PIN_FIELD_BASE(949420x0080, 0x10, 211),
 PIN_FIELD_BASE(959520x0080, 0x10, 201),
 PIN_FIELD_BASE(969620x0080, 0x10, 151),
 PIN_FIELD_BASE(979720x0080, 0x10, 161),
 PIN_FIELD_BASE(989820x0080, 0x10, 241),
 PIN_FIELD_BASE(999920x0080, 0x10, 141),
 PIN_FIELD_BASE(10010020x0080, 0x10, 171),
 PIN_FIELD_BASE(10110120x0070, 0x10, 01),
 PIN_FIELD_BASE(10210220x0070, 0x10, 51),
 PIN_FIELD_BASE(10310320x0070, 0x10, 31),
 PIN_FIELD_BASE(10410420x0070, 0x10, 41),
 PIN_FIELD_BASE(10510520x0070, 0x10, 11),
 PIN_FIELD_BASE(10610620x0070, 0x10, 21),
 PIN_FIELD_BASE(10710720x0080, 0x10, 11),
 PIN_FIELD_BASE(10810820x0070, 0x10, 281),
 PIN_FIELD_BASE(10910920x0080, 0x10, 21),
 PIN_FIELD_BASE(11011020x0070, 0x10, 291),
 PIN_FIELD_BASE(11111120x0070, 0x10, 301),
 PIN_FIELD_BASE(11211220x0070, 0x10, 311),
 PIN_FIELD_BASE(11311320x0080, 0x10, 01),
 PIN_FIELD_BASE(11411420x0080, 0x10, 81),
 PIN_FIELD_BASE(11511520x0080, 0x10, 31),
 PIN_FIELD_BASE(11611620x0080, 0x10, 91),
 PIN_FIELD_BASE(11711720x0080, 0x10, 41),
 PIN_FIELD_BASE(11811820x0080, 0x10, 51),
 PIN_FIELD_BASE(11911920x0080, 0x10, 61),
 PIN_FIELD_BASE(12012020x0080, 0x10, 71),
 PIN_FIELD_BASE(12112130x0040, 0x10, 141),
 PIN_FIELD_BASE(12212230x0040, 0x10, 171),
 PIN_FIELD_BASE(12312330x0040, 0x10, 161),
 PIN_FIELD_BASE(12412430x0040, 0x10, 151),
 PIN_FIELD_BASE(12512520x0070, 0x10, 61),
 PIN_FIELD_BASE(12612620x0070, 0x10, 71),
 PIN_FIELD_BASE(12712720x0070, 0x10, 81),
 PIN_FIELD_BASE(12812820x0070, 0x10, 91),
 PIN_FIELD_BASE(12912920x0070, 0x10, 101),
 PIN_FIELD_BASE(13013020x0070, 0x10, 111),
 PIN_FIELD_BASE(13113110x0080, 0x10, 31),
 PIN_FIELD_BASE(13213210x0080, 0x10, 41),
 PIN_FIELD_BASE(13313310x0080, 0x10, 111),
 PIN_FIELD_BASE(13413410x0080, 0x10, 121),
 PIN_FIELD_BASE(13513510x0080, 0x10, 131),
 PIN_FIELD_BASE(13613610x0080, 0x10, 141),
 PIN_FIELD_BASE(13713710x0080, 0x10, 151),
 PIN_FIELD_BASE(13813810x0080, 0x10, 161),
 PIN_FIELD_BASE(13913910x0080, 0x10, 171),
 PIN_FIELD_BASE(14014010x0080, 0x10, 181),
 PIN_FIELD_BASE(14114110x0080, 0x10, 51),
 PIN_FIELD_BASE(14214210x0080, 0x10, 61),
 PIN_FIELD_BASE(14314310x0080, 0x10, 71),
 PIN_FIELD_BASE(14414410x0080, 0x10, 81),
 PIN_FIELD_BASE(14514510x0080, 0x10, 91),
 PIN_FIELD_BASE(14614610x0080, 0x10, 101),
 PIN_FIELD_BASE(14714710x0080, 0x10, 201),
 PIN_FIELD_BASE(14814810x0080, 0x10, 211),
 PIN_FIELD_BASE(14914910x0080, 0x10, 191),
 PIN_FIELD_BASE(15015010x0080, 0x10, 21),
 PIN_FIELD_BASE(15115120x0070, 0x10, 211),
 PIN_FIELD_BASE(15215220x0070, 0x10, 201),
 PIN_FIELD_BASE(15315320x0070, 0x10, 191),
 PIN_FIELD_BASE(15415420x0070, 0x10, 181),
 PIN_FIELD_BASE(15515520x0070, 0x10, 231),
 PIN_FIELD_BASE(15615620x0070, 0x10, 131),
 PIN_FIELD_BASE(15715720x0070, 0x10, 121),
 PIN_FIELD_BASE(15815820x0070, 0x10, 171),
 PIN_FIELD_BASE(15915920x0070, 0x10, 161),
 PIN_FIELD_BASE(16016020x0070, 0x10, 151),
 PIN_FIELD_BASE(16116120x0070, 0x10, 141),
 PIN_FIELD_BASE(16216220x0070, 0x10, 221),
 PIN_FIELD_BASE(16316340x0050, 0x10, 81),
 PIN_FIELD_BASE(16416440x0050, 0x10, 71),
 PIN_FIELD_BASE(16516540x0050, 0x10, 91),
 PIN_FIELD_BASE(16616640x0050, 0x10, 101),
 PIN_FIELD_BASE(16716740x0050, 0x10, 111),
 PIN_FIELD_BASE(16816840x0050, 0x10, 121),
 PIN_FIELD_BASE(16916930x0040, 0x10, 91),
 PIN_FIELD_BASE(17017030x0040, 0x10, 81),
 PIN_FIELD_BASE(17117130x0040, 0x10, 101),
 PIN_FIELD_BASE(17217230x0040, 0x10, 111),
 PIN_FIELD_BASE(17317330x0040, 0x10, 121),
 PIN_FIELD_BASE(17417430x0040, 0x10, 131),
 PIN_FIELD_BASE(17517520x0080, 0x10, 271),
 PIN_FIELD_BASE(17617620x0080, 0x10, 281),
};

static const struct mtk_pin_field_calc mt8188_pin_tdsel_range[] = {
 PIN_FIELD_BASE(0010x01b0, 0x10, 04),
 PIN_FIELD_BASE(1110x01b0, 0x10, 44),
 PIN_FIELD_BASE(2210x01b0, 0x10, 84),
 PIN_FIELD_BASE(3310x01b0, 0x10, 124),
 PIN_FIELD_BASE(4410x01c0, 0x10, 164),
 PIN_FIELD_BASE(5510x01c0, 0x10, 204),
 PIN_FIELD_BASE(6610x01c0, 0x10, 204),
 PIN_FIELD_BASE(7710x01b0, 0x10, 164),
 PIN_FIELD_BASE(8810x01b0, 0x10, 204),
 PIN_FIELD_BASE(9910x01b0, 0x10, 244),
 PIN_FIELD_BASE(101010x01b0, 0x10, 284),
 PIN_FIELD_BASE(111110x01c0, 0x10, 204),
 PIN_FIELD_BASE(121220x0190, 0x10, 164),
 PIN_FIELD_BASE(131320x0190, 0x10, 204),
 PIN_FIELD_BASE(141420x0190, 0x10, 244),
 PIN_FIELD_BASE(151520x0190, 0x10, 284),
 PIN_FIELD_BASE(161630x0100, 0x10, 84),
 PIN_FIELD_BASE(171730x0100, 0x10, 84),
 PIN_FIELD_BASE(181840x0110, 0x10, 44),
 PIN_FIELD_BASE(191940x0110, 0x10, 84),
 PIN_FIELD_BASE(202040x0110, 0x10, 84),
 PIN_FIELD_BASE(212140x0110, 0x10, 84),
 PIN_FIELD_BASE(222240x0100, 0x10, 04),
 PIN_FIELD_BASE(232340x0100, 0x10, 44),
 PIN_FIELD_BASE(242440x0100, 0x10, 84),
 PIN_FIELD_BASE(252510x01c0, 0x10, 84),
 PIN_FIELD_BASE(262610x01c0, 0x10, 84),
 PIN_FIELD_BASE(272710x01c0, 0x10, 84),
 PIN_FIELD_BASE(282810x01c0, 0x10, 124),
 PIN_FIELD_BASE(292910x01c0, 0x10, 04),
 PIN_FIELD_BASE(303010x01c0, 0x10, 84),
 PIN_FIELD_BASE(313110x01c0, 0x10, 204),
 PIN_FIELD_BASE(323210x01c0, 0x10, 244),
 PIN_FIELD_BASE(333310x01c0, 0x10, 244),
 PIN_FIELD_BASE(343410x01c0, 0x10, 284),
 PIN_FIELD_BASE(353510x01c0, 0x10, 244),
 PIN_FIELD_BASE(363610x01c0, 0x10, 244),
 PIN_FIELD_BASE(373710x01c0, 0x10, 284),
 PIN_FIELD_BASE(383810x01c0, 0x10, 284),
 PIN_FIELD_BASE(393910x01c0, 0x10, 284),
 PIN_FIELD_BASE(404010x01d0, 0x10, 04),
 PIN_FIELD_BASE(414110x01d0, 0x10, 04),
 PIN_FIELD_BASE(424220x01a0, 0x10, 164),
 PIN_FIELD_BASE(434320x01a0, 0x10, 204),
 PIN_FIELD_BASE(444420x01a0, 0x10, 164),
 PIN_FIELD_BASE(454520x01a0, 0x10, 204),
 PIN_FIELD_BASE(464630x0100, 0x10, 84),
 PIN_FIELD_BASE(474710x01c0, 0x10, 04),
 PIN_FIELD_BASE(484810x01c0, 0x10, 04),
 PIN_FIELD_BASE(494910x01c0, 0x10, 04),
 PIN_FIELD_BASE(505030x0100, 0x10, 84),
 PIN_FIELD_BASE(515130x0100, 0x10, 124),
 PIN_FIELD_BASE(525230x0100, 0x10, 124),
 PIN_FIELD_BASE(535330x0100, 0x10, 124),
 PIN_FIELD_BASE(545430x0100, 0x10, 124),
 PIN_FIELD_BASE(555510x01c0, 0x10, 124),
 PIN_FIELD_BASE(565610x01c0, 0x10, 124),
 PIN_FIELD_BASE(575720x01a0, 0x10, 244),
 PIN_FIELD_BASE(585820x01a0, 0x10, 244),
 PIN_FIELD_BASE(595910x01c0, 0x10, 164),
 PIN_FIELD_BASE(606010x01c0, 0x10, 124),
 PIN_FIELD_BASE(616110x01c0, 0x10, 164),
 PIN_FIELD_BASE(626210x01c0, 0x10, 164),
 PIN_FIELD_BASE(636320x01a0, 0x10, 204),
 PIN_FIELD_BASE(646420x01a0, 0x10, 204),
 PIN_FIELD_BASE(656540x0110, 0x10, 124),
 PIN_FIELD_BASE(666640x0110, 0x10, 84),
 PIN_FIELD_BASE(676740x0110, 0x10, 124),
 PIN_FIELD_BASE(686840x0110, 0x10, 124),
 PIN_FIELD_BASE(696910x01d0, 0x10, 164),
 PIN_FIELD_BASE(707010x01d0, 0x10, 124),
 PIN_FIELD_BASE(717110x01e0, 0x10, 04),
 PIN_FIELD_BASE(727210x01d0, 0x10, 284),
 PIN_FIELD_BASE(737310x01d0, 0x10, 204),
 PIN_FIELD_BASE(747410x01d0, 0x10, 244),
 PIN_FIELD_BASE(757510x01e0, 0x10, 84),
 PIN_FIELD_BASE(767610x01e0, 0x10, 44),
 PIN_FIELD_BASE(777710x01e0, 0x10, 164),
 PIN_FIELD_BASE(787810x01e0, 0x10, 124),
 PIN_FIELD_BASE(797940x0110, 0x10, 204),
 PIN_FIELD_BASE(808040x0110, 0x10, 164),
 PIN_FIELD_BASE(818140x0110, 0x10, 284),
 PIN_FIELD_BASE(828240x0110, 0x10, 244),
 PIN_FIELD_BASE(838320x01b0, 0x10, 84),
 PIN_FIELD_BASE(848420x01b0, 0x10, 84),
 PIN_FIELD_BASE(858520x01b0, 0x10, 124),
 PIN_FIELD_BASE(868620x01a0, 0x10, 04),
 PIN_FIELD_BASE(878720x01a0, 0x10, 04),
 PIN_FIELD_BASE(888820x01a0, 0x10, 04),
 PIN_FIELD_BASE(898920x01a0, 0x10, 04),
 PIN_FIELD_BASE(909020x01b0, 0x10, 124),
 PIN_FIELD_BASE(919120x01b0, 0x10, 124),
 PIN_FIELD_BASE(929220x01a0, 0x10, 44),
 PIN_FIELD_BASE(939320x01a0, 0x10, 44),
 PIN_FIELD_BASE(949420x01a0, 0x10, 44),
 PIN_FIELD_BASE(959520x01a0, 0x10, 44),
 PIN_FIELD_BASE(969620x01a0, 0x10, 244),
 PIN_FIELD_BASE(979720x01a0, 0x10, 284),
 PIN_FIELD_BASE(989820x01b0, 0x10, 04),
 PIN_FIELD_BASE(999920x01a0, 0x10, 244),
 PIN_FIELD_BASE(10010020x01b0, 0x10, 204),
 PIN_FIELD_BASE(10110120x01a0, 0x10, 284),
 PIN_FIELD_BASE(10210220x01a0, 0x10, 284),
 PIN_FIELD_BASE(10310320x01a0, 0x10, 284),
 PIN_FIELD_BASE(10410420x01b0, 0x10, 04),
 PIN_FIELD_BASE(10510520x01b0, 0x10, 04),
 PIN_FIELD_BASE(10610620x01b0, 0x10, 04),
 PIN_FIELD_BASE(10710720x01a0, 0x10, 04),
 PIN_FIELD_BASE(10810820x01a0, 0x10, 04),
 PIN_FIELD_BASE(10910920x01a0, 0x10, 04),
 PIN_FIELD_BASE(11011020x01a0, 0x10, 04),
 PIN_FIELD_BASE(11111120x01a0, 0x10, 84),
 PIN_FIELD_BASE(11211220x01a0, 0x10, 84),
 PIN_FIELD_BASE(11311320x01a0, 0x10, 84),
 PIN_FIELD_BASE(11411420x01a0, 0x10, 84),
 PIN_FIELD_BASE(11511520x01a0, 0x10, 124),
 PIN_FIELD_BASE(11611620x01a0, 0x10, 124),
 PIN_FIELD_BASE(11711720x01a0, 0x10, 124),
 PIN_FIELD_BASE(11811820x01a0, 0x10, 124),
 PIN_FIELD_BASE(11911920x01a0, 0x10, 164),
 PIN_FIELD_BASE(12012020x01a0, 0x10, 164),
 PIN_FIELD_BASE(12112130x00f0, 0x10, 244),
 PIN_FIELD_BASE(12212230x0100, 0x10, 44),
 PIN_FIELD_BASE(12312330x0100, 0x10, 04),
 PIN_FIELD_BASE(12412430x00f0, 0x10, 284),
 PIN_FIELD_BASE(12512520x01b0, 0x10, 44),
 PIN_FIELD_BASE(12612620x01b0, 0x10, 44),
 PIN_FIELD_BASE(12712720x01b0, 0x10, 44),
 PIN_FIELD_BASE(12812820x01b0, 0x10, 44),
 PIN_FIELD_BASE(12912920x01b0, 0x10, 84),
 PIN_FIELD_BASE(13013020x01b0, 0x10, 84),
 PIN_FIELD_BASE(13113110x01a0, 0x10, 04),
 PIN_FIELD_BASE(13213210x01a0, 0x10, 204),
 PIN_FIELD_BASE(13313310x01a0, 0x10, 244),
 PIN_FIELD_BASE(13413410x01a0, 0x10, 284),
 PIN_FIELD_BASE(13513510x01d0, 0x10, 04),
 PIN_FIELD_BASE(13613610x01d0, 0x10, 04),
 PIN_FIELD_BASE(13713710x01d0, 0x10, 44),
 PIN_FIELD_BASE(13813810x01d0, 0x10, 44),
 PIN_FIELD_BASE(13913910x01d0, 0x10, 44),
 PIN_FIELD_BASE(14014010x01d0, 0x10, 44),
 PIN_FIELD_BASE(14114110x01d0, 0x10, 84),
 PIN_FIELD_BASE(14214210x01d0, 0x10, 84),
 PIN_FIELD_BASE(14314310x01a0, 0x10, 44),
 PIN_FIELD_BASE(14414410x01a0, 0x10, 84),
 PIN_FIELD_BASE(14514510x01a0, 0x10, 124),
 PIN_FIELD_BASE(14614610x01a0, 0x10, 164),
 PIN_FIELD_BASE(14714710x01d0, 0x10, 84),
 PIN_FIELD_BASE(14814810x01d0, 0x10, 84),
 PIN_FIELD_BASE(14914910x01c0, 0x10, 44),
 PIN_FIELD_BASE(15015010x01c0, 0x10, 44),
 PIN_FIELD_BASE(15115120x0190, 0x10, 44),
 PIN_FIELD_BASE(15215220x0190, 0x10, 04),
 PIN_FIELD_BASE(15315320x0180, 0x10, 284),
 PIN_FIELD_BASE(15415420x0180, 0x10, 244),
 PIN_FIELD_BASE(15515520x0190, 0x10, 124),
 PIN_FIELD_BASE(15615620x0180, 0x10, 44),
 PIN_FIELD_BASE(15715720x0180, 0x10, 04),
 PIN_FIELD_BASE(15815820x0180, 0x10, 204),
 PIN_FIELD_BASE(15915920x0180, 0x10, 164),
 PIN_FIELD_BASE(16016020x0180, 0x10, 124),
 PIN_FIELD_BASE(16116120x0180, 0x10, 84),
 PIN_FIELD_BASE(16216220x0190, 0x10, 84),
 PIN_FIELD_BASE(16316340x0100, 0x10, 164),
 PIN_FIELD_BASE(16416440x0100, 0x10, 124),
 PIN_FIELD_BASE(16516540x0100, 0x10, 204),
 PIN_FIELD_BASE(16616640x0100, 0x10, 244),
 PIN_FIELD_BASE(16716740x0100, 0x10, 284),
 PIN_FIELD_BASE(16816840x0110, 0x10, 04),
 PIN_FIELD_BASE(16916930x00f0, 0x10, 44),
 PIN_FIELD_BASE(17017030x00f0, 0x10, 04),
 PIN_FIELD_BASE(17117130x00f0, 0x10, 84),
 PIN_FIELD_BASE(17217230x00f0, 0x10, 124),
 PIN_FIELD_BASE(17317330x00f0, 0x10, 164),
 PIN_FIELD_BASE(17417430x00f0, 0x10, 204),
 PIN_FIELD_BASE(17517520x01b0, 0x10, 164),
 PIN_FIELD_BASE(17617620x01b0, 0x10, 164),
};

static const struct mtk_pin_field_calc mt8188_pin_rdsel_range[] = {
 PIN_FIELD_BASE(0010x0130, 0x10, 182),
 PIN_FIELD_BASE(1110x0130, 0x10, 202),
 PIN_FIELD_BASE(2210x0130, 0x10, 222),
 PIN_FIELD_BASE(3310x0130, 0x10, 242),
 PIN_FIELD_BASE(4410x0140, 0x10, 142),
 PIN_FIELD_BASE(5510x0140, 0x10, 162),
 PIN_FIELD_BASE(6610x0140, 0x10, 162),
 PIN_FIELD_BASE(7710x0130, 0x10, 262),
 PIN_FIELD_BASE(8810x0130, 0x10, 282),
 PIN_FIELD_BASE(9910x0130, 0x10, 302),
 PIN_FIELD_BASE(101010x0140, 0x10, 02),
 PIN_FIELD_BASE(111110x0140, 0x10, 162),
 PIN_FIELD_BASE(121220x0130, 0x10, 122),
 PIN_FIELD_BASE(131320x0130, 0x10, 142),
 PIN_FIELD_BASE(141420x0130, 0x10, 162),
 PIN_FIELD_BASE(151520x0130, 0x10, 182),
 PIN_FIELD_BASE(161630x00b0, 0x10, 142),
 PIN_FIELD_BASE(171730x00b0, 0x10, 142),
 PIN_FIELD_BASE(181840x00c0, 0x10, 122),
 PIN_FIELD_BASE(191940x00c0, 0x10, 122),
 PIN_FIELD_BASE(202040x00c0, 0x10, 122),
 PIN_FIELD_BASE(212140x00c0, 0x10, 122),
 PIN_FIELD_BASE(222240x00b0, 0x10, 02),
 PIN_FIELD_BASE(232340x00b0, 0x10, 22),
 PIN_FIELD_BASE(242440x00b0, 0x10, 42),
 PIN_FIELD_BASE(252510x0140, 0x10, 102),
 PIN_FIELD_BASE(262610x0140, 0x10, 102),
 PIN_FIELD_BASE(272710x0140, 0x10, 102),
 PIN_FIELD_BASE(282810x0140, 0x10, 122),
 PIN_FIELD_BASE(292910x0140, 0x10, 22),
 PIN_FIELD_BASE(303010x0140, 0x10, 102),
 PIN_FIELD_BASE(313110x0140, 0x10, 162),
 PIN_FIELD_BASE(323210x0140, 0x10, 182),
 PIN_FIELD_BASE(333310x0140, 0x10, 182),
 PIN_FIELD_BASE(343410x0140, 0x10, 202),
 PIN_FIELD_BASE(353510x0140, 0x10, 182),
 PIN_FIELD_BASE(363610x0140, 0x10, 182),
 PIN_FIELD_BASE(373710x0140, 0x10, 202),
 PIN_FIELD_BASE(383810x0140, 0x10, 202),
 PIN_FIELD_BASE(393910x0140, 0x10, 202),
 PIN_FIELD_BASE(404010x0140, 0x10, 222),
 PIN_FIELD_BASE(414110x0140, 0x10, 222),
 PIN_FIELD_BASE(424220x0130, 0x10, 302),
 PIN_FIELD_BASE(434320x0140, 0x10, 02),
 PIN_FIELD_BASE(444420x0130, 0x10, 302),
 PIN_FIELD_BASE(454520x0140, 0x10, 02),
 PIN_FIELD_BASE(464630x00b0, 0x10, 142),
 PIN_FIELD_BASE(474710x0140, 0x10, 22),
 PIN_FIELD_BASE(484810x0140, 0x10, 22),
 PIN_FIELD_BASE(494910x0140, 0x10, 22),
 PIN_FIELD_BASE(505030x00b0, 0x10, 142),
 PIN_FIELD_BASE(515130x00b0, 0x10, 162),
 PIN_FIELD_BASE(525230x00b0, 0x10, 162),
 PIN_FIELD_BASE(535330x00b0, 0x10, 162),
 PIN_FIELD_BASE(545430x00b0, 0x10, 162),
 PIN_FIELD_BASE(555510x0140, 0x10, 122),
 PIN_FIELD_BASE(565610x0140, 0x10, 122),
 PIN_FIELD_BASE(575720x0140, 0x10, 22),
 PIN_FIELD_BASE(585820x0140, 0x10, 22),
 PIN_FIELD_BASE(595910x0140, 0x10, 142),
 PIN_FIELD_BASE(606010x0140, 0x10, 122),
 PIN_FIELD_BASE(616110x0140, 0x10, 142),
 PIN_FIELD_BASE(626210x0140, 0x10, 142),
 PIN_FIELD_BASE(636320x0140, 0x10, 02),
 PIN_FIELD_BASE(646420x0140, 0x10, 02),
 PIN_FIELD_BASE(656540x00c0, 0x10, 142),
 PIN_FIELD_BASE(666640x00c0, 0x10, 142),
 PIN_FIELD_BASE(676740x00c0, 0x10, 142),
 PIN_FIELD_BASE(686840x00c0, 0x10, 142),
 PIN_FIELD_BASE(696910x0150, 0x10, 142),
 PIN_FIELD_BASE(707010x0150, 0x10, 122),
 PIN_FIELD_BASE(717110x0150, 0x10, 222),
 PIN_FIELD_BASE(727210x0150, 0x10, 202),
 PIN_FIELD_BASE(737310x0150, 0x10, 162),
 PIN_FIELD_BASE(747410x0150, 0x10, 182),
 PIN_FIELD_BASE(757510x0150, 0x10, 262),
 PIN_FIELD_BASE(767610x0150, 0x10, 242),
 PIN_FIELD_BASE(777710x0150, 0x10, 302),
 PIN_FIELD_BASE(787810x0150, 0x10, 282),
 PIN_FIELD_BASE(797940x00c0, 0x10, 182),
 PIN_FIELD_BASE(808040x00c0, 0x10, 162),
 PIN_FIELD_BASE(818140x00c0, 0x10, 222),
 PIN_FIELD_BASE(828240x00c0, 0x10, 202),
 PIN_FIELD_BASE(838320x0140, 0x10, 102),
 PIN_FIELD_BASE(848420x0140, 0x10, 102),
 PIN_FIELD_BASE(858520x0140, 0x10, 122),
 PIN_FIELD_BASE(868620x0130, 0x10, 202),
 PIN_FIELD_BASE(878720x0130, 0x10, 202),
 PIN_FIELD_BASE(888820x0130, 0x10, 202),
 PIN_FIELD_BASE(898920x0130, 0x10, 202),
 PIN_FIELD_BASE(909020x0140, 0x10, 122),
 PIN_FIELD_BASE(919120x0140, 0x10, 122),
 PIN_FIELD_BASE(929220x0130, 0x10, 222),
 PIN_FIELD_BASE(939320x0130, 0x10, 222),
 PIN_FIELD_BASE(949420x0130, 0x10, 222),
 PIN_FIELD_BASE(959520x0130, 0x10, 222),
 PIN_FIELD_BASE(969620x0140, 0x10, 22),
 PIN_FIELD_BASE(979720x0140, 0x10, 42),
 PIN_FIELD_BASE(989820x0140, 0x10, 62),
 PIN_FIELD_BASE(999920x0140, 0x10, 22),
 PIN_FIELD_BASE(10010020x0140, 0x10, 162),
 PIN_FIELD_BASE(10110120x0140, 0x10, 42),
 PIN_FIELD_BASE(10210220x0140, 0x10, 42),
 PIN_FIELD_BASE(10310320x0140, 0x10, 42),
 PIN_FIELD_BASE(10410420x0140, 0x10, 62),
 PIN_FIELD_BASE(10510520x0140, 0x10, 62),
 PIN_FIELD_BASE(10610620x0140, 0x10, 62),
 PIN_FIELD_BASE(10710720x0130, 0x10, 202),
 PIN_FIELD_BASE(10810820x0130, 0x10, 202),
 PIN_FIELD_BASE(10910920x0130, 0x10, 202),
 PIN_FIELD_BASE(11011020x0130, 0x10, 202),
 PIN_FIELD_BASE(11111120x0130, 0x10, 242),
 PIN_FIELD_BASE(11211220x0130, 0x10, 242),
 PIN_FIELD_BASE(11311320x0130, 0x10, 242),
 PIN_FIELD_BASE(11411420x0130, 0x10, 242),
 PIN_FIELD_BASE(11511520x0130, 0x10, 282),
 PIN_FIELD_BASE(11611620x0130, 0x10, 282),
 PIN_FIELD_BASE(11711720x0130, 0x10, 282),
 PIN_FIELD_BASE(11811820x0130, 0x10, 282),
 PIN_FIELD_BASE(11911920x0130, 0x10, 302),
 PIN_FIELD_BASE(12012020x0130, 0x10, 302),
 PIN_FIELD_BASE(12112130x00b0, 0x10, 62),
 PIN_FIELD_BASE(12212230x00b0, 0x10, 122),
 PIN_FIELD_BASE(12312330x00b0, 0x10, 102),
 PIN_FIELD_BASE(12412430x00b0, 0x10, 82),
 PIN_FIELD_BASE(12512520x0140, 0x10, 82),
 PIN_FIELD_BASE(12612620x0140, 0x10, 82),
 PIN_FIELD_BASE(12712720x0140, 0x10, 82),
 PIN_FIELD_BASE(12812820x0140, 0x10, 82),
 PIN_FIELD_BASE(12912920x0140, 0x10, 102),
 PIN_FIELD_BASE(13013020x0140, 0x10, 102),
 PIN_FIELD_BASE(13113110x0120, 0x10, 06),
 PIN_FIELD_BASE(13213210x0130, 0x10, 06),
 PIN_FIELD_BASE(13313310x0130, 0x10, 66),
 PIN_FIELD_BASE(13413410x0130, 0x10, 126),
 PIN_FIELD_BASE(13513510x0140, 0x10, 246),
 PIN_FIELD_BASE(13613610x0140, 0x10, 246),
 PIN_FIELD_BASE(13713710x0150, 0x10, 06),
 PIN_FIELD_BASE(13813810x0150, 0x10, 06),
 PIN_FIELD_BASE(13913910x0150, 0x10, 06),
 PIN_FIELD_BASE(14014010x0150, 0x10, 06),
 PIN_FIELD_BASE(14114110x0150, 0x10, 66),
 PIN_FIELD_BASE(14214210x0150, 0x10, 66),
 PIN_FIELD_BASE(14314310x0120, 0x10, 66),
 PIN_FIELD_BASE(14414410x0120, 0x10, 126),
 PIN_FIELD_BASE(14514510x0120, 0x10, 186),
 PIN_FIELD_BASE(14614610x0120, 0x10, 246),
 PIN_FIELD_BASE(14714710x0150, 0x10, 66),
 PIN_FIELD_BASE(14814810x0150, 0x10, 66),
 PIN_FIELD_BASE(14914910x0140, 0x10, 46),
 PIN_FIELD_BASE(15015010x0140, 0x10, 46),
 PIN_FIELD_BASE(15115120x0120, 0x10, 246),
 PIN_FIELD_BASE(15215220x0120, 0x10, 186),
 PIN_FIELD_BASE(15315320x0120, 0x10, 126),
 PIN_FIELD_BASE(15415420x0120, 0x10, 66),
 PIN_FIELD_BASE(15515520x0130, 0x10, 66),
 PIN_FIELD_BASE(15615620x0110, 0x10, 66),
 PIN_FIELD_BASE(15715720x0110, 0x10, 06),
 PIN_FIELD_BASE(15815820x0120, 0x10, 06),
 PIN_FIELD_BASE(15915920x0110, 0x10, 246),
 PIN_FIELD_BASE(16016020x0110, 0x10, 186),
 PIN_FIELD_BASE(16116120x0110, 0x10, 126),
 PIN_FIELD_BASE(16216220x0130, 0x10, 06),
 PIN_FIELD_BASE(16316340x00b0, 0x10, 126),
 PIN_FIELD_BASE(16416440x00b0, 0x10, 66),
 PIN_FIELD_BASE(16516540x00b0, 0x10, 186),
 PIN_FIELD_BASE(16616640x00b0, 0x10, 246),
 PIN_FIELD_BASE(16716740x00c0, 0x10, 06),
 PIN_FIELD_BASE(16816840x00c0, 0x10, 66),
 PIN_FIELD_BASE(16916930x00a0, 0x10, 66),
 PIN_FIELD_BASE(17017030x00a0, 0x10, 06),
 PIN_FIELD_BASE(17117130x00a0, 0x10, 126),
 PIN_FIELD_BASE(17217230x00a0, 0x10, 186),
 PIN_FIELD_BASE(17317330x00a0, 0x10, 246),
 PIN_FIELD_BASE(17417430x00b0, 0x10, 06),
 PIN_FIELD_BASE(17517520x0140, 0x10, 142),
 PIN_FIELD_BASE(17617620x0140, 0x10, 142),
};

static const struct mtk_pin_field_calc mt8188_pin_pupd_range[] = {
 PIN_FIELD_BASE(424220x00c0, 0x10, 121),
 PIN_FIELD_BASE(434320x00c0, 0x10, 131),
 PIN_FIELD_BASE(444420x00c0, 0x10, 141),
 PIN_FIELD_BASE(454520x00c0, 0x10, 151),
 PIN_FIELD_BASE(13113110x00d0, 0x10, 11),
 PIN_FIELD_BASE(13213210x00d0, 0x10, 21),
 PIN_FIELD_BASE(13313310x00d0, 0x10, 91),
 PIN_FIELD_BASE(13413410x00d0, 0x10, 101),
 PIN_FIELD_BASE(13513510x00d0, 0x10, 111),
 PIN_FIELD_BASE(13613610x00d0, 0x10, 121),
 PIN_FIELD_BASE(13713710x00d0, 0x10, 131),
 PIN_FIELD_BASE(13813810x00d0, 0x10, 141),
 PIN_FIELD_BASE(13913910x00d0, 0x10, 151),
 PIN_FIELD_BASE(14014010x00d0, 0x10, 161),
 PIN_FIELD_BASE(14114110x00d0, 0x10, 31),
 PIN_FIELD_BASE(14214210x00d0, 0x10, 41),
 PIN_FIELD_BASE(14314310x00d0, 0x10, 51),
 PIN_FIELD_BASE(14414410x00d0, 0x10, 61),
 PIN_FIELD_BASE(14514510x00d0, 0x10, 71),
 PIN_FIELD_BASE(14614610x00d0, 0x10, 81),
 PIN_FIELD_BASE(14714710x00d0, 0x10, 181),
 PIN_FIELD_BASE(14814810x00d0, 0x10, 191),
 PIN_FIELD_BASE(14914910x00d0, 0x10, 171),
 PIN_FIELD_BASE(15015010x00d0, 0x10, 01),
 PIN_FIELD_BASE(15115120x00c0, 0x10, 91),
 PIN_FIELD_BASE(15215220x00c0, 0x10, 81),
 PIN_FIELD_BASE(15315320x00c0, 0x10, 71),
 PIN_FIELD_BASE(15415420x00c0, 0x10, 61),
 PIN_FIELD_BASE(15515520x00c0, 0x10, 111),
 PIN_FIELD_BASE(15615620x00c0, 0x10, 11),
 PIN_FIELD_BASE(15715720x00c0, 0x10, 01),
 PIN_FIELD_BASE(15815820x00c0, 0x10, 51),
 PIN_FIELD_BASE(15915920x00c0, 0x10, 41),
 PIN_FIELD_BASE(16016020x00c0, 0x10, 31),
 PIN_FIELD_BASE(16116120x00c0, 0x10, 21),
 PIN_FIELD_BASE(16216220x00c0, 0x10, 101),
 PIN_FIELD_BASE(16316340x0070, 0x10, 11),
 PIN_FIELD_BASE(16416440x0070, 0x10, 01),
 PIN_FIELD_BASE(16516540x0070, 0x10, 21),
 PIN_FIELD_BASE(16616640x0070, 0x10, 31),
 PIN_FIELD_BASE(16716740x0070, 0x10, 41),
 PIN_FIELD_BASE(16816840x0070, 0x10, 51),
 PIN_FIELD_BASE(16916930x0060, 0x10, 11),
 PIN_FIELD_BASE(17017030x0060, 0x10, 01),
 PIN_FIELD_BASE(17117130x0060, 0x10, 21),
 PIN_FIELD_BASE(17217230x0060, 0x10, 31),
 PIN_FIELD_BASE(17317330x0060, 0x10, 41),
 PIN_FIELD_BASE(17417430x0060, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8188_pin_r0_range[] = {
 PIN_FIELD_BASE(424220x00f0, 0x10, 121),
 PIN_FIELD_BASE(434320x00f0, 0x10, 131),
 PIN_FIELD_BASE(444420x00f0, 0x10, 141),
 PIN_FIELD_BASE(454520x00f0, 0x10, 151),
 PIN_FIELD_BASE(13113110x0100, 0x10, 11),
 PIN_FIELD_BASE(13213210x0100, 0x10, 21),
 PIN_FIELD_BASE(13313310x0100, 0x10, 91),
 PIN_FIELD_BASE(13413410x0100, 0x10, 101),
 PIN_FIELD_BASE(13513510x0100, 0x10, 111),
 PIN_FIELD_BASE(13613610x0100, 0x10, 121),
 PIN_FIELD_BASE(13713710x0100, 0x10, 131),
 PIN_FIELD_BASE(13813810x0100, 0x10, 141),
 PIN_FIELD_BASE(13913910x0100, 0x10, 151),
 PIN_FIELD_BASE(14014010x0100, 0x10, 161),
 PIN_FIELD_BASE(14114110x0100, 0x10, 31),
 PIN_FIELD_BASE(14214210x0100, 0x10, 41),
 PIN_FIELD_BASE(14314310x0100, 0x10, 51),
 PIN_FIELD_BASE(14414410x0100, 0x10, 61),
 PIN_FIELD_BASE(14514510x0100, 0x10, 71),
 PIN_FIELD_BASE(14614610x0100, 0x10, 81),
 PIN_FIELD_BASE(14714710x0100, 0x10, 181),
 PIN_FIELD_BASE(14814810x0100, 0x10, 191),
 PIN_FIELD_BASE(14914910x0100, 0x10, 171),
 PIN_FIELD_BASE(15015010x0100, 0x10, 01),
 PIN_FIELD_BASE(15115120x00f0, 0x10, 91),
 PIN_FIELD_BASE(15215220x00f0, 0x10, 81),
 PIN_FIELD_BASE(15315320x00f0, 0x10, 71),
 PIN_FIELD_BASE(15415420x00f0, 0x10, 61),
 PIN_FIELD_BASE(15515520x00f0, 0x10, 111),
 PIN_FIELD_BASE(15615620x00f0, 0x10, 11),
 PIN_FIELD_BASE(15715720x00f0, 0x10, 01),
 PIN_FIELD_BASE(15815820x00f0, 0x10, 51),
 PIN_FIELD_BASE(15915920x00f0, 0x10, 41),
 PIN_FIELD_BASE(16016020x00f0, 0x10, 31),
 PIN_FIELD_BASE(16116120x00f0, 0x10, 21),
 PIN_FIELD_BASE(16216220x00f0, 0x10, 101),
 PIN_FIELD_BASE(16316340x0090, 0x10, 11),
 PIN_FIELD_BASE(16416440x0090, 0x10, 01),
 PIN_FIELD_BASE(16516540x0090, 0x10, 21),
 PIN_FIELD_BASE(16616640x0090, 0x10, 31),
 PIN_FIELD_BASE(16716740x0090, 0x10, 41),
 PIN_FIELD_BASE(16816840x0090, 0x10, 51),
 PIN_FIELD_BASE(16916930x0080, 0x10, 11),
 PIN_FIELD_BASE(17017030x0080, 0x10, 01),
 PIN_FIELD_BASE(17117130x0080, 0x10, 21),
 PIN_FIELD_BASE(17217230x0080, 0x10, 31),
 PIN_FIELD_BASE(17317330x0080, 0x10, 41),
 PIN_FIELD_BASE(17417430x0080, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8188_pin_r1_range[] = {
 PIN_FIELD_BASE(424220x0100, 0x10, 121),
 PIN_FIELD_BASE(434320x0100, 0x10, 131),
 PIN_FIELD_BASE(444420x0100, 0x10, 141),
 PIN_FIELD_BASE(454520x0100, 0x10, 151),
 PIN_FIELD_BASE(13113110x0110, 0x10, 11),
 PIN_FIELD_BASE(13213210x0110, 0x10, 21),
 PIN_FIELD_BASE(13313310x0110, 0x10, 91),
 PIN_FIELD_BASE(13413410x0110, 0x10, 101),
 PIN_FIELD_BASE(13513510x0110, 0x10, 111),
 PIN_FIELD_BASE(13613610x0110, 0x10, 121),
 PIN_FIELD_BASE(13713710x0110, 0x10, 131),
 PIN_FIELD_BASE(13813810x0110, 0x10, 141),
 PIN_FIELD_BASE(13913910x0110, 0x10, 151),
 PIN_FIELD_BASE(14014010x0110, 0x10, 161),
 PIN_FIELD_BASE(14114110x0110, 0x10, 31),
 PIN_FIELD_BASE(14214210x0110, 0x10, 41),
 PIN_FIELD_BASE(14314310x0110, 0x10, 51),
 PIN_FIELD_BASE(14414410x0110, 0x10, 61),
 PIN_FIELD_BASE(14514510x0110, 0x10, 71),
 PIN_FIELD_BASE(14614610x0110, 0x10, 81),
 PIN_FIELD_BASE(14714710x0110, 0x10, 181),
 PIN_FIELD_BASE(14814810x0110, 0x10, 191),
 PIN_FIELD_BASE(14914910x0110, 0x10, 171),
 PIN_FIELD_BASE(15015010x0110, 0x10, 01),
 PIN_FIELD_BASE(15115120x0100, 0x10, 91),
 PIN_FIELD_BASE(15215220x0100, 0x10, 81),
 PIN_FIELD_BASE(15315320x0100, 0x10, 71),
 PIN_FIELD_BASE(15415420x0100, 0x10, 61),
 PIN_FIELD_BASE(15515520x0100, 0x10, 111),
 PIN_FIELD_BASE(15615620x0100, 0x10, 11),
 PIN_FIELD_BASE(15715720x0100, 0x10, 01),
 PIN_FIELD_BASE(15815820x0100, 0x10, 51),
 PIN_FIELD_BASE(15915920x0100, 0x10, 41),
 PIN_FIELD_BASE(16016020x0100, 0x10, 31),
 PIN_FIELD_BASE(16116120x0100, 0x10, 21),
 PIN_FIELD_BASE(16216220x0100, 0x10, 101),
 PIN_FIELD_BASE(16316340x00a0, 0x10, 11),
 PIN_FIELD_BASE(16416440x00a0, 0x10, 01),
 PIN_FIELD_BASE(16516540x00a0, 0x10, 21),
 PIN_FIELD_BASE(16616640x00a0, 0x10, 31),
 PIN_FIELD_BASE(16716740x00a0, 0x10, 41),
 PIN_FIELD_BASE(16816840x00a0, 0x10, 51),
 PIN_FIELD_BASE(16916930x0090, 0x10, 11),
 PIN_FIELD_BASE(17017030x0090, 0x10, 01),
 PIN_FIELD_BASE(17117130x0090, 0x10, 21),
 PIN_FIELD_BASE(17217230x0090, 0x10, 31),
 PIN_FIELD_BASE(17317330x0090, 0x10, 41),
 PIN_FIELD_BASE(17417430x0090, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8188_pin_pu_range[] = {
 PIN_FIELD_BASE(0010x00e0, 0x10, 61),
 PIN_FIELD_BASE(1110x00e0, 0x10, 71),
 PIN_FIELD_BASE(2210x00e0, 0x10, 81),
 PIN_FIELD_BASE(3310x00e0, 0x10, 91),
 PIN_FIELD_BASE(4410x00e0, 0x10, 101),
 PIN_FIELD_BASE(5510x00e0, 0x10, 111),
 PIN_FIELD_BASE(6610x00e0, 0x10, 121),
 PIN_FIELD_BASE(7710x00e0, 0x10, 131),
 PIN_FIELD_BASE(8810x00e0, 0x10, 141),
 PIN_FIELD_BASE(9910x00e0, 0x10, 151),
 PIN_FIELD_BASE(101010x00e0, 0x10, 161),
 PIN_FIELD_BASE(111110x00e0, 0x10, 171),
 PIN_FIELD_BASE(121220x00d0, 0x10, 121),
 PIN_FIELD_BASE(131320x00d0, 0x10, 131),
 PIN_FIELD_BASE(141420x00d0, 0x10, 141),
 PIN_FIELD_BASE(151520x00d0, 0x10, 151),
 PIN_FIELD_BASE(161630x0070, 0x10, 11),
 PIN_FIELD_BASE(171730x0070, 0x10, 21),
 PIN_FIELD_BASE(181840x0080, 0x10, 31),
 PIN_FIELD_BASE(191940x0080, 0x10, 51),
 PIN_FIELD_BASE(202040x0080, 0x10, 41),
 PIN_FIELD_BASE(212140x0080, 0x10, 61),
 PIN_FIELD_BASE(222240x0080, 0x10, 01),
 PIN_FIELD_BASE(232340x0080, 0x10, 11),
 PIN_FIELD_BASE(242440x0080, 0x10, 21),
 PIN_FIELD_BASE(252510x00e0, 0x10, 31),
 PIN_FIELD_BASE(262610x00e0, 0x10, 21),
 PIN_FIELD_BASE(272710x00e0, 0x10, 51),
 PIN_FIELD_BASE(282810x00e0, 0x10, 41),
 PIN_FIELD_BASE(292910x00e0, 0x10, 01),
 PIN_FIELD_BASE(303010x00e0, 0x10, 11),
 PIN_FIELD_BASE(313110x00f0, 0x10, 111),
 PIN_FIELD_BASE(323210x00f0, 0x10, 101),
 PIN_FIELD_BASE(333310x00f0, 0x10, 131),
 PIN_FIELD_BASE(343410x00f0, 0x10, 121),
 PIN_FIELD_BASE(353510x00f0, 0x10, 151),
 PIN_FIELD_BASE(363610x00f0, 0x10, 141),
 PIN_FIELD_BASE(373710x00e0, 0x10, 211),
 PIN_FIELD_BASE(383810x00e0, 0x10, 181),
 PIN_FIELD_BASE(393910x00e0, 0x10, 191),
 PIN_FIELD_BASE(404010x00e0, 0x10, 201),
 PIN_FIELD_BASE(414110x00e0, 0x10, 221),
 PIN_FIELD_BASE(464630x0070, 0x10, 01),
 PIN_FIELD_BASE(474710x00e0, 0x10, 251),
 PIN_FIELD_BASE(484810x00e0, 0x10, 241),
 PIN_FIELD_BASE(494910x00e0, 0x10, 231),
 PIN_FIELD_BASE(505030x0070, 0x10, 51),
 PIN_FIELD_BASE(515130x0070, 0x10, 41),
 PIN_FIELD_BASE(525230x0070, 0x10, 31),
 PIN_FIELD_BASE(535330x0070, 0x10, 61),
 PIN_FIELD_BASE(545430x0070, 0x10, 71),
 PIN_FIELD_BASE(555510x00e0, 0x10, 261),
 PIN_FIELD_BASE(565610x00e0, 0x10, 291),
 PIN_FIELD_BASE(575720x00e0, 0x10, 61),
 PIN_FIELD_BASE(585820x00e0, 0x10, 91),
 PIN_FIELD_BASE(595910x00e0, 0x10, 271),
 PIN_FIELD_BASE(606010x00e0, 0x10, 301),
 PIN_FIELD_BASE(616110x00e0, 0x10, 281),
 PIN_FIELD_BASE(626210x00e0, 0x10, 311),
 PIN_FIELD_BASE(636320x00e0, 0x10, 71),
 PIN_FIELD_BASE(646420x00e0, 0x10, 101),
 PIN_FIELD_BASE(656540x0080, 0x10, 71),
 PIN_FIELD_BASE(666640x0080, 0x10, 91),
 PIN_FIELD_BASE(676740x0080, 0x10, 81),
 PIN_FIELD_BASE(686840x0080, 0x10, 101),
 PIN_FIELD_BASE(696910x00f0, 0x10, 11),
 PIN_FIELD_BASE(707010x00f0, 0x10, 01),
 PIN_FIELD_BASE(717110x00f0, 0x10, 51),
 PIN_FIELD_BASE(727210x00f0, 0x10, 41),
 PIN_FIELD_BASE(737310x00f0, 0x10, 21),
 PIN_FIELD_BASE(747410x00f0, 0x10, 31),
 PIN_FIELD_BASE(757510x00f0, 0x10, 71),
 PIN_FIELD_BASE(767610x00f0, 0x10, 61),
 PIN_FIELD_BASE(777710x00f0, 0x10, 91),
 PIN_FIELD_BASE(787810x00f0, 0x10, 81),
 PIN_FIELD_BASE(797940x0080, 0x10, 121),
 PIN_FIELD_BASE(808040x0080, 0x10, 111),
 PIN_FIELD_BASE(818140x0080, 0x10, 141),
 PIN_FIELD_BASE(828240x0080, 0x10, 131),
 PIN_FIELD_BASE(838320x00e0, 0x10, 161),
 PIN_FIELD_BASE(848420x00e0, 0x10, 151),
 PIN_FIELD_BASE(858520x00e0, 0x10, 171),
 PIN_FIELD_BASE(868620x00e0, 0x10, 191),
 PIN_FIELD_BASE(878720x00e0, 0x10, 181),
 PIN_FIELD_BASE(888820x00e0, 0x10, 201),
 PIN_FIELD_BASE(898920x00e0, 0x10, 221),
 PIN_FIELD_BASE(909020x00e0, 0x10, 211),
 PIN_FIELD_BASE(919120x00e0, 0x10, 231),
 PIN_FIELD_BASE(929220x00e0, 0x10, 31),
 PIN_FIELD_BASE(939320x00e0, 0x10, 21),
 PIN_FIELD_BASE(949420x00e0, 0x10, 51),
 PIN_FIELD_BASE(959520x00e0, 0x10, 41),
 PIN_FIELD_BASE(969620x00d0, 0x10, 311),
 PIN_FIELD_BASE(979720x00e0, 0x10, 01),
 PIN_FIELD_BASE(989820x00e0, 0x10, 81),
 PIN_FIELD_BASE(999920x00d0, 0x10, 301),
 PIN_FIELD_BASE(10010020x00e0, 0x10, 11),
 PIN_FIELD_BASE(10110120x00d0, 0x10, 01),
 PIN_FIELD_BASE(10210220x00d0, 0x10, 51),
 PIN_FIELD_BASE(10310320x00d0, 0x10, 31),
 PIN_FIELD_BASE(10410420x00d0, 0x10, 41),
 PIN_FIELD_BASE(10510520x00d0, 0x10, 11),
 PIN_FIELD_BASE(10610620x00d0, 0x10, 21),
 PIN_FIELD_BASE(10710720x00d0, 0x10, 211),
 PIN_FIELD_BASE(10810820x00d0, 0x10, 161),
 PIN_FIELD_BASE(10910920x00d0, 0x10, 221),
 PIN_FIELD_BASE(11011020x00d0, 0x10, 171),
 PIN_FIELD_BASE(11111120x00d0, 0x10, 181),
 PIN_FIELD_BASE(11211220x00d0, 0x10, 191),
 PIN_FIELD_BASE(11311320x00d0, 0x10, 201),
 PIN_FIELD_BASE(11411420x00d0, 0x10, 281),
 PIN_FIELD_BASE(11511520x00d0, 0x10, 231),
 PIN_FIELD_BASE(11611620x00d0, 0x10, 291),
 PIN_FIELD_BASE(11711720x00d0, 0x10, 241),
 PIN_FIELD_BASE(11811820x00d0, 0x10, 251),
 PIN_FIELD_BASE(11911920x00d0, 0x10, 261),
 PIN_FIELD_BASE(12012020x00d0, 0x10, 271),
 PIN_FIELD_BASE(12112130x0070, 0x10, 81),
 PIN_FIELD_BASE(12212230x0070, 0x10, 111),
 PIN_FIELD_BASE(12312330x0070, 0x10, 101),
 PIN_FIELD_BASE(12412430x0070, 0x10, 91),
 PIN_FIELD_BASE(12512520x00d0, 0x10, 61),
 PIN_FIELD_BASE(12612620x00d0, 0x10, 71),
 PIN_FIELD_BASE(12712720x00d0, 0x10, 81),
 PIN_FIELD_BASE(12812820x00d0, 0x10, 91),
 PIN_FIELD_BASE(12912920x00d0, 0x10, 101),
 PIN_FIELD_BASE(13013020x00d0, 0x10, 111),
 PIN_FIELD_BASE(17517520x00e0, 0x10, 111),
 PIN_FIELD_BASE(17617620x00e0, 0x10, 121),
};

static const struct mtk_pin_field_calc mt8188_pin_pd_range[] = {
 PIN_FIELD_BASE(0010x00b0, 0x10, 61),
 PIN_FIELD_BASE(1110x00b0, 0x10, 71),
 PIN_FIELD_BASE(2210x00b0, 0x10, 81),
 PIN_FIELD_BASE(3310x00b0, 0x10, 91),
 PIN_FIELD_BASE(4410x00b0, 0x10, 101),
 PIN_FIELD_BASE(5510x00b0, 0x10, 111),
 PIN_FIELD_BASE(6610x00b0, 0x10, 121),
 PIN_FIELD_BASE(7710x00b0, 0x10, 131),
 PIN_FIELD_BASE(8810x00b0, 0x10, 141),
 PIN_FIELD_BASE(9910x00b0, 0x10, 151),
 PIN_FIELD_BASE(101010x00b0, 0x10, 161),
 PIN_FIELD_BASE(111110x00b0, 0x10, 171),
 PIN_FIELD_BASE(121220x00a0, 0x10, 121),
 PIN_FIELD_BASE(131320x00a0, 0x10, 131),
 PIN_FIELD_BASE(141420x00a0, 0x10, 141),
 PIN_FIELD_BASE(151520x00a0, 0x10, 151),
 PIN_FIELD_BASE(161630x0050, 0x10, 11),
 PIN_FIELD_BASE(171730x0050, 0x10, 21),
 PIN_FIELD_BASE(181840x0060, 0x10, 31),
 PIN_FIELD_BASE(191940x0060, 0x10, 51),
 PIN_FIELD_BASE(202040x0060, 0x10, 41),
 PIN_FIELD_BASE(212140x0060, 0x10, 61),
 PIN_FIELD_BASE(222240x0060, 0x10, 01),
 PIN_FIELD_BASE(232340x0060, 0x10, 11),
 PIN_FIELD_BASE(242440x0060, 0x10, 21),
 PIN_FIELD_BASE(252510x00b0, 0x10, 31),
 PIN_FIELD_BASE(262610x00b0, 0x10, 21),
 PIN_FIELD_BASE(272710x00b0, 0x10, 51),
 PIN_FIELD_BASE(282810x00b0, 0x10, 41),
 PIN_FIELD_BASE(292910x00b0, 0x10, 01),
 PIN_FIELD_BASE(303010x00b0, 0x10, 11),
 PIN_FIELD_BASE(313110x00c0, 0x10, 111),
 PIN_FIELD_BASE(323210x00c0, 0x10, 101),
 PIN_FIELD_BASE(333310x00c0, 0x10, 131),
 PIN_FIELD_BASE(343410x00c0, 0x10, 121),
 PIN_FIELD_BASE(353510x00c0, 0x10, 151),
 PIN_FIELD_BASE(363610x00c0, 0x10, 141),
 PIN_FIELD_BASE(373710x00b0, 0x10, 211),
 PIN_FIELD_BASE(383810x00b0, 0x10, 181),
 PIN_FIELD_BASE(393910x00b0, 0x10, 191),
 PIN_FIELD_BASE(404010x00b0, 0x10, 201),
 PIN_FIELD_BASE(414110x00b0, 0x10, 221),
 PIN_FIELD_BASE(464630x0050, 0x10, 01),
 PIN_FIELD_BASE(474710x00b0, 0x10, 251),
 PIN_FIELD_BASE(484810x00b0, 0x10, 241),
 PIN_FIELD_BASE(494910x00b0, 0x10, 231),
 PIN_FIELD_BASE(505030x0050, 0x10, 51),
 PIN_FIELD_BASE(515130x0050, 0x10, 41),
 PIN_FIELD_BASE(525230x0050, 0x10, 31),
 PIN_FIELD_BASE(535330x0050, 0x10, 61),
 PIN_FIELD_BASE(545430x0050, 0x10, 71),
 PIN_FIELD_BASE(555510x00b0, 0x10, 261),
 PIN_FIELD_BASE(565610x00b0, 0x10, 291),
 PIN_FIELD_BASE(575720x00b0, 0x10, 61),
 PIN_FIELD_BASE(585820x00b0, 0x10, 91),
 PIN_FIELD_BASE(595910x00b0, 0x10, 271),
 PIN_FIELD_BASE(606010x00b0, 0x10, 301),
 PIN_FIELD_BASE(616110x00b0, 0x10, 281),
 PIN_FIELD_BASE(626210x00b0, 0x10, 311),
 PIN_FIELD_BASE(636320x00b0, 0x10, 71),
 PIN_FIELD_BASE(646420x00b0, 0x10, 101),
 PIN_FIELD_BASE(656540x0060, 0x10, 71),
 PIN_FIELD_BASE(666640x0060, 0x10, 91),
 PIN_FIELD_BASE(676740x0060, 0x10, 81),
 PIN_FIELD_BASE(686840x0060, 0x10, 101),
 PIN_FIELD_BASE(696910x00c0, 0x10, 11),
 PIN_FIELD_BASE(707010x00c0, 0x10, 01),
 PIN_FIELD_BASE(717110x00c0, 0x10, 51),
 PIN_FIELD_BASE(727210x00c0, 0x10, 41),
 PIN_FIELD_BASE(737310x00c0, 0x10, 21),
 PIN_FIELD_BASE(747410x00c0, 0x10, 31),
 PIN_FIELD_BASE(757510x00c0, 0x10, 71),
 PIN_FIELD_BASE(767610x00c0, 0x10, 61),
 PIN_FIELD_BASE(777710x00c0, 0x10, 91),
 PIN_FIELD_BASE(787810x00c0, 0x10, 81),
 PIN_FIELD_BASE(797940x0060, 0x10, 121),
 PIN_FIELD_BASE(808040x0060, 0x10, 111),
 PIN_FIELD_BASE(818140x0060, 0x10, 141),
 PIN_FIELD_BASE(828240x0060, 0x10, 131),
 PIN_FIELD_BASE(838320x00b0, 0x10, 161),
 PIN_FIELD_BASE(848420x00b0, 0x10, 151),
 PIN_FIELD_BASE(858520x00b0, 0x10, 171),
 PIN_FIELD_BASE(868620x00b0, 0x10, 191),
 PIN_FIELD_BASE(878720x00b0, 0x10, 181),
 PIN_FIELD_BASE(888820x00b0, 0x10, 201),
 PIN_FIELD_BASE(898920x00b0, 0x10, 221),
 PIN_FIELD_BASE(909020x00b0, 0x10, 211),
 PIN_FIELD_BASE(919120x00b0, 0x10, 231),
 PIN_FIELD_BASE(929220x00b0, 0x10, 31),
 PIN_FIELD_BASE(939320x00b0, 0x10, 21),
 PIN_FIELD_BASE(949420x00b0, 0x10, 51),
 PIN_FIELD_BASE(959520x00b0, 0x10, 41),
 PIN_FIELD_BASE(969620x00a0, 0x10, 311),
 PIN_FIELD_BASE(979720x00b0, 0x10, 01),
 PIN_FIELD_BASE(989820x00b0, 0x10, 81),
 PIN_FIELD_BASE(999920x00a0, 0x10, 301),
 PIN_FIELD_BASE(10010020x00b0, 0x10, 11),
 PIN_FIELD_BASE(10110120x00a0, 0x10, 01),
 PIN_FIELD_BASE(10210220x00a0, 0x10, 51),
 PIN_FIELD_BASE(10310320x00a0, 0x10, 31),
 PIN_FIELD_BASE(10410420x00a0, 0x10, 41),
 PIN_FIELD_BASE(10510520x00a0, 0x10, 11),
 PIN_FIELD_BASE(10610620x00a0, 0x10, 21),
 PIN_FIELD_BASE(10710720x00a0, 0x10, 211),
 PIN_FIELD_BASE(10810820x00a0, 0x10, 161),
 PIN_FIELD_BASE(10910920x00a0, 0x10, 221),
 PIN_FIELD_BASE(11011020x00a0, 0x10, 171),
 PIN_FIELD_BASE(11111120x00a0, 0x10, 181),
 PIN_FIELD_BASE(11211220x00a0, 0x10, 191),
 PIN_FIELD_BASE(11311320x00a0, 0x10, 201),
 PIN_FIELD_BASE(11411420x00a0, 0x10, 281),
 PIN_FIELD_BASE(11511520x00a0, 0x10, 231),
 PIN_FIELD_BASE(11611620x00a0, 0x10, 291),
 PIN_FIELD_BASE(11711720x00a0, 0x10, 241),
 PIN_FIELD_BASE(11811820x00a0, 0x10, 251),
 PIN_FIELD_BASE(11911920x00a0, 0x10, 261),
 PIN_FIELD_BASE(12012020x00a0, 0x10, 271),
 PIN_FIELD_BASE(12112130x0050, 0x10, 81),
 PIN_FIELD_BASE(12212230x0050, 0x10, 111),
 PIN_FIELD_BASE(12312330x0050, 0x10, 101),
 PIN_FIELD_BASE(12412430x0050, 0x10, 91),
 PIN_FIELD_BASE(12512520x00a0, 0x10, 61),
 PIN_FIELD_BASE(12612620x00a0, 0x10, 71),
 PIN_FIELD_BASE(12712720x00a0, 0x10, 81),
 PIN_FIELD_BASE(12812820x00a0, 0x10, 91),
 PIN_FIELD_BASE(12912920x00a0, 0x10, 101),
 PIN_FIELD_BASE(13013020x00a0, 0x10, 111),
 PIN_FIELD_BASE(17517520x00b0, 0x10, 111),
 PIN_FIELD_BASE(17617620x00b0, 0x10, 121),
};

static const struct mtk_pin_field_calc mt8188_pin_drv_range[] = {
 PIN_FIELD_BASE(0010x0000, 0x10, 243),
 PIN_FIELD_BASE(1110x0000, 0x10, 273),
 PIN_FIELD_BASE(2210x0010, 0x10, 03),
 PIN_FIELD_BASE(3310x0010, 0x10, 33),
 PIN_FIELD_BASE(4410x0020, 0x10, 93),
 PIN_FIELD_BASE(5510x0020, 0x10, 93),
 PIN_FIELD_BASE(6610x0020, 0x10, 93),
 PIN_FIELD_BASE(7710x0010, 0x10, 63),
 PIN_FIELD_BASE(8810x0010, 0x10, 93),
 PIN_FIELD_BASE(9910x0010, 0x10, 123),
 PIN_FIELD_BASE(101010x0010, 0x10, 153),
 PIN_FIELD_BASE(111110x0020, 0x10, 123),
 PIN_FIELD_BASE(121220x0010, 0x10, 243),
 PIN_FIELD_BASE(131320x0010, 0x10, 273),
 PIN_FIELD_BASE(141420x0020, 0x10, 03),
 PIN_FIELD_BASE(151520x0020, 0x10, 33),
 PIN_FIELD_BASE(161630x0010, 0x10, 153),
 PIN_FIELD_BASE(171730x0010, 0x10, 153),
 PIN_FIELD_BASE(181840x0000, 0x10, 273),
 PIN_FIELD_BASE(191940x0000, 0x10, 273),
 PIN_FIELD_BASE(202040x0000, 0x10, 273),
 PIN_FIELD_BASE(212140x0000, 0x10, 273),
 PIN_FIELD_BASE(222240x0000, 0x10, 03),
 PIN_FIELD_BASE(232340x0000, 0x10, 33),
 PIN_FIELD_BASE(242440x0000, 0x10, 63),
 PIN_FIELD_BASE(252510x0020, 0x10, 63),
 PIN_FIELD_BASE(262610x0020, 0x10, 63),
 PIN_FIELD_BASE(272710x0020, 0x10, 63),
 PIN_FIELD_BASE(282810x0020, 0x10, 93),
 PIN_FIELD_BASE(292910x0020, 0x10, 33),
 PIN_FIELD_BASE(303010x0020, 0x10, 63),
 PIN_FIELD_BASE(313110x0020, 0x10, 123),
 PIN_FIELD_BASE(323210x0020, 0x10, 123),
 PIN_FIELD_BASE(333310x0020, 0x10, 153),
 PIN_FIELD_BASE(343410x0020, 0x10, 153),
 PIN_FIELD_BASE(353510x0020, 0x10, 123),
 PIN_FIELD_BASE(363610x0020, 0x10, 153),
 PIN_FIELD_BASE(373710x0010, 0x10, 273),
 PIN_FIELD_BASE(383810x0010, 0x10, 183),
 PIN_FIELD_BASE(393910x0010, 0x10, 213),
 PIN_FIELD_BASE(404010x0010, 0x10, 243),
 PIN_FIELD_BASE(414110x0020, 0x10, 03),
 PIN_FIELD_BASE(424220x0020, 0x10, 183),
 PIN_FIELD_BASE(434320x0020, 0x10, 183),
 PIN_FIELD_BASE(444420x0020, 0x10, 183),
 PIN_FIELD_BASE(454520x0020, 0x10, 213),
 PIN_FIELD_BASE(464630x0010, 0x10, 153),
 PIN_FIELD_BASE(474710x0020, 0x10, 33),
 PIN_FIELD_BASE(484810x0020, 0x10, 33),
 PIN_FIELD_BASE(494910x0020, 0x10, 33),
 PIN_FIELD_BASE(505030x0000, 0x10, 63),
 PIN_FIELD_BASE(515130x0000, 0x10, 33),
 PIN_FIELD_BASE(525230x0000, 0x10, 03),
 PIN_FIELD_BASE(535330x0000, 0x10, 93),
 PIN_FIELD_BASE(545430x0000, 0x10, 123),
 PIN_FIELD_BASE(555510x0020, 0x10, 273),
 PIN_FIELD_BASE(565610x0030, 0x10, 63),
 PIN_FIELD_BASE(575720x0030, 0x10, 93),
 PIN_FIELD_BASE(585820x0030, 0x10, 153),
 PIN_FIELD_BASE(595910x0030, 0x10, 03),
 PIN_FIELD_BASE(606010x0030, 0x10, 93),
 PIN_FIELD_BASE(616110x0030, 0x10, 33),
 PIN_FIELD_BASE(626210x0030, 0x10, 123),
 PIN_FIELD_BASE(636320x0030, 0x10, 123),
 PIN_FIELD_BASE(646420x0030, 0x10, 183),
 PIN_FIELD_BASE(656540x0010, 0x10, 03),
 PIN_FIELD_BASE(666640x0010, 0x10, 63),
 PIN_FIELD_BASE(676740x0010, 0x10, 33),
 PIN_FIELD_BASE(686840x0010, 0x10, 93),
 PIN_FIELD_BASE(696910x0030, 0x10, 183),
 PIN_FIELD_BASE(707010x0030, 0x10, 153),
 PIN_FIELD_BASE(717110x0040, 0x10, 03),
 PIN_FIELD_BASE(727210x0030, 0x10, 273),
 PIN_FIELD_BASE(737310x0030, 0x10, 213),
 PIN_FIELD_BASE(747410x0030, 0x10, 243),
 PIN_FIELD_BASE(757510x0040, 0x10, 63),
 PIN_FIELD_BASE(767610x0040, 0x10, 33),
 PIN_FIELD_BASE(777710x0040, 0x10, 123),
 PIN_FIELD_BASE(787810x0040, 0x10, 93),
 PIN_FIELD_BASE(797940x0010, 0x10, 153),
 PIN_FIELD_BASE(808040x0010, 0x10, 123),
 PIN_FIELD_BASE(818140x0010, 0x10, 213),
 PIN_FIELD_BASE(828240x0010, 0x10, 183),
 PIN_FIELD_BASE(838320x0030, 0x10, 03),
 PIN_FIELD_BASE(848420x0020, 0x10, 273),
 PIN_FIELD_BASE(858520x0030, 0x10, 03),
 PIN_FIELD_BASE(868620x0020, 0x10, 63),
 PIN_FIELD_BASE(878720x0020, 0x10, 63),
 PIN_FIELD_BASE(888820x0020, 0x10, 63),
 PIN_FIELD_BASE(898920x0020, 0x10, 63),
 PIN_FIELD_BASE(909020x0030, 0x10, 03),
 PIN_FIELD_BASE(919120x0030, 0x10, 03),
 PIN_FIELD_BASE(929220x0020, 0x10, 93),
 PIN_FIELD_BASE(939320x0020, 0x10, 93),
 PIN_FIELD_BASE(949420x0020, 0x10, 93),
 PIN_FIELD_BASE(959520x0020, 0x10, 93),
 PIN_FIELD_BASE(969620x0020, 0x10, 213),
 PIN_FIELD_BASE(979720x0020, 0x10, 213),
 PIN_FIELD_BASE(989820x0020, 0x10, 243),
 PIN_FIELD_BASE(999920x0020, 0x10, 213),
 PIN_FIELD_BASE(10010020x0030, 0x10, 63),
 PIN_FIELD_BASE(10110120x0000, 0x10, 03),
 PIN_FIELD_BASE(10210220x0000, 0x10, 153),
 PIN_FIELD_BASE(10310320x0000, 0x10, 93),
 PIN_FIELD_BASE(10410420x0000, 0x10, 123),
 PIN_FIELD_BASE(10510520x0000, 0x10, 33),
 PIN_FIELD_BASE(10610620x0000, 0x10, 63),
 PIN_FIELD_BASE(10710720x0020, 0x10, 63),
 PIN_FIELD_BASE(10810820x0020, 0x10, 63),
 PIN_FIELD_BASE(10910920x0020, 0x10, 63),
 PIN_FIELD_BASE(11011020x0020, 0x10, 63),
 PIN_FIELD_BASE(11111120x0020, 0x10, 153),
 PIN_FIELD_BASE(11211220x0020, 0x10, 153),
 PIN_FIELD_BASE(11311320x0020, 0x10, 153),
 PIN_FIELD_BASE(11411420x0020, 0x10, 123),
 PIN_FIELD_BASE(11511520x0020, 0x10, 123),
 PIN_FIELD_BASE(11611620x0020, 0x10, 123),
 PIN_FIELD_BASE(11711720x0020, 0x10, 123),
 PIN_FIELD_BASE(11811820x0020, 0x10, 123),
 PIN_FIELD_BASE(11911920x0020, 0x10, 153),
 PIN_FIELD_BASE(12012020x0020, 0x10, 183),
 PIN_FIELD_BASE(12112130x0010, 0x10, 33),
 PIN_FIELD_BASE(12212230x0010, 0x10, 123),
 PIN_FIELD_BASE(12312330x0010, 0x10, 93),
 PIN_FIELD_BASE(12412430x0010, 0x10, 63),
 PIN_FIELD_BASE(12512520x0020, 0x10, 243),
 PIN_FIELD_BASE(12612620x0020, 0x10, 243),
 PIN_FIELD_BASE(12712720x0020, 0x10, 243),
 PIN_FIELD_BASE(12812820x0020, 0x10, 273),
 PIN_FIELD_BASE(12912920x0020, 0x10, 273),
 PIN_FIELD_BASE(13013020x0020, 0x10, 273),
 PIN_FIELD_BASE(13113110x0000, 0x10, 03),
 PIN_FIELD_BASE(13213210x0000, 0x10, 153),
 PIN_FIELD_BASE(13313310x0000, 0x10, 183),
 PIN_FIELD_BASE(13413410x0000, 0x10, 213),
 PIN_FIELD_BASE(13513510x0020, 0x10, 153),
 PIN_FIELD_BASE(13613610x0020, 0x10, 183),
 PIN_FIELD_BASE(13713710x0020, 0x10, 183),
 PIN_FIELD_BASE(13813810x0020, 0x10, 183),
 PIN_FIELD_BASE(13913910x0020, 0x10, 183),
 PIN_FIELD_BASE(14014010x0020, 0x10, 213),
 PIN_FIELD_BASE(14114110x0020, 0x10, 213),
 PIN_FIELD_BASE(14214210x0020, 0x10, 213),
 PIN_FIELD_BASE(14314310x0000, 0x10, 33),
 PIN_FIELD_BASE(14414410x0000, 0x10, 63),
 PIN_FIELD_BASE(14514510x0000, 0x10, 93),
 PIN_FIELD_BASE(14614610x0000, 0x10, 123),
 PIN_FIELD_BASE(14714710x0020, 0x10, 213),
 PIN_FIELD_BASE(14814810x0020, 0x10, 243),
 PIN_FIELD_BASE(14914910x0020, 0x10, 243),
 PIN_FIELD_BASE(15015010x0020, 0x10, 243),
 PIN_FIELD_BASE(15115120x0010, 0x10, 153),
 PIN_FIELD_BASE(15215220x0010, 0x10, 123),
 PIN_FIELD_BASE(15315320x0010, 0x10, 93),
 PIN_FIELD_BASE(15415420x0010, 0x10, 63),
 PIN_FIELD_BASE(15515520x0010, 0x10, 213),
 PIN_FIELD_BASE(15615620x0000, 0x10, 213),
 PIN_FIELD_BASE(15715720x0000, 0x10, 183),
 PIN_FIELD_BASE(15815820x0010, 0x10, 33),
 PIN_FIELD_BASE(15915920x0010, 0x10, 03),
 PIN_FIELD_BASE(16016020x0000, 0x10, 273),
 PIN_FIELD_BASE(16116120x0000, 0x10, 243),
 PIN_FIELD_BASE(16216220x0010, 0x10, 183),
 PIN_FIELD_BASE(16316340x0000, 0x10, 123),
 PIN_FIELD_BASE(16416440x0000, 0x10, 93),
 PIN_FIELD_BASE(16516540x0000, 0x10, 153),
 PIN_FIELD_BASE(16616640x0000, 0x10, 183),
 PIN_FIELD_BASE(16716740x0000, 0x10, 213),
 PIN_FIELD_BASE(16816840x0000, 0x10, 243),
 PIN_FIELD_BASE(16916930x0000, 0x10, 183),
 PIN_FIELD_BASE(17017030x0000, 0x10, 153),
 PIN_FIELD_BASE(17117130x0000, 0x10, 213),
 PIN_FIELD_BASE(17217230x0000, 0x10, 243),
 PIN_FIELD_BASE(17317330x0000, 0x10, 273),
 PIN_FIELD_BASE(17417430x0010, 0x10, 03),
 PIN_FIELD_BASE(17517520x0030, 0x10, 33),
 PIN_FIELD_BASE(17617620x0030, 0x10, 33),
};

static const struct mtk_pin_field_calc mt8188_pin_drv_adv_range[] = {
 PIN_FIELD_BASE(535330x0020, 0x10, 03),
 PIN_FIELD_BASE(545430x0020, 0x10, 33),
 PIN_FIELD_BASE(555510x0060, 0x10, 03),
 PIN_FIELD_BASE(565610x0060, 0x10, 93),
 PIN_FIELD_BASE(575720x0050, 0x10, 03),
 PIN_FIELD_BASE(585820x0050, 0x10, 63),
 PIN_FIELD_BASE(595910x0060, 0x10, 33),
 PIN_FIELD_BASE(606010x0060, 0x10, 123),
 PIN_FIELD_BASE(616110x0060, 0x10, 63),
 PIN_FIELD_BASE(626210x0060, 0x10, 153),
 PIN_FIELD_BASE(636320x0050, 0x10, 33),
 PIN_FIELD_BASE(646420x0050, 0x10, 93),
 PIN_FIELD_BASE(656540x0030, 0x10, 03),
 PIN_FIELD_BASE(666640x0030, 0x10, 63),
 PIN_FIELD_BASE(676740x0030, 0x10, 33),
 PIN_FIELD_BASE(686840x0030, 0x10, 93),
 PIN_FIELD_BASE(17517520x0050, 0x10, 123),
 PIN_FIELD_BASE(17617620x0050, 0x10, 153),
};

static const struct mtk_pin_field_calc mt8188_pin_rsel_range[] = {
 PIN_FIELD_BASE(535330x00c0, 0x10, 03),
 PIN_FIELD_BASE(545430x00c0, 0x10, 33),
 PIN_FIELD_BASE(555510x0160, 0x10, 03),
 PIN_FIELD_BASE(565610x0160, 0x10, 93),
 PIN_FIELD_BASE(575720x0150, 0x10, 03),
 PIN_FIELD_BASE(585820x0150, 0x10, 63),
 PIN_FIELD_BASE(595910x0160, 0x10, 33),
 PIN_FIELD_BASE(606010x0160, 0x10, 123),
 PIN_FIELD_BASE(616110x0160, 0x10, 63),
 PIN_FIELD_BASE(626210x0160, 0x10, 153),
 PIN_FIELD_BASE(636320x0150, 0x10, 33),
 PIN_FIELD_BASE(646420x0150, 0x10, 93),
 PIN_FIELD_BASE(656540x00d0, 0x10, 03),
 PIN_FIELD_BASE(666640x00d0, 0x10, 63),
 PIN_FIELD_BASE(676740x00d0, 0x10, 33),
 PIN_FIELD_BASE(686840x00d0, 0x10, 93),
 PIN_FIELD_BASE(17517520x0150, 0x10, 123),
 PIN_FIELD_BASE(17617620x0150, 0x10, 153),
};

static const struct mtk_pin_rsel mt8188_pin_rsel_val_range[] = {
 PIN_RSEL(53680x0, 7500075000),
 PIN_RSEL(53680x1, 100005000),
 PIN_RSEL(53680x2, 500075000),
 PIN_RSEL(53680x3, 40005000),
 PIN_RSEL(53680x4, 300075000),
 PIN_RSEL(53680x5, 20005000),
 PIN_RSEL(53680x6, 150075000),
 PIN_RSEL(53680x7, 10005000),
 PIN_RSEL(1751760x0, 7500075000),
 PIN_RSEL(1751760x1, 100005000),
 PIN_RSEL(1751760x2, 500075000),
 PIN_RSEL(1751760x3, 40005000),
 PIN_RSEL(1751760x4, 300075000),
 PIN_RSEL(1751760x5, 20005000),
 PIN_RSEL(1751760x6, 150075000),
 PIN_RSEL(1751760x7, 10005000),
};

static const unsigned int mt8188_pull_type[] = {
 MTK_PULL_PU_PD_TYPE, /*0*/
 MTK_PULL_PU_PD_TYPE, /*1*/
 MTK_PULL_PU_PD_TYPE, /*2*/
 MTK_PULL_PU_PD_TYPE, /*3*/
 MTK_PULL_PU_PD_TYPE, /*4*/
 MTK_PULL_PU_PD_TYPE, /*5*/
 MTK_PULL_PU_PD_TYPE, /*6*/
 MTK_PULL_PU_PD_TYPE, /*7*/
 MTK_PULL_PU_PD_TYPE, /*8*/
 MTK_PULL_PU_PD_TYPE, /*9*/
 MTK_PULL_PU_PD_TYPE, /*10*/
 MTK_PULL_PU_PD_TYPE, /*11*/
 MTK_PULL_PU_PD_TYPE, /*12*/
 MTK_PULL_PU_PD_TYPE, /*13*/
 MTK_PULL_PU_PD_TYPE, /*14*/
 MTK_PULL_PU_PD_TYPE, /*15*/
 MTK_PULL_PU_PD_TYPE, /*16*/
 MTK_PULL_PU_PD_TYPE, /*17*/
 MTK_PULL_PU_PD_TYPE, /*18*/
 MTK_PULL_PU_PD_TYPE, /*19*/
 MTK_PULL_PU_PD_TYPE, /*20*/
 MTK_PULL_PU_PD_TYPE, /*21*/
 MTK_PULL_PU_PD_TYPE, /*22*/
 MTK_PULL_PU_PD_TYPE, /*23*/
 MTK_PULL_PU_PD_TYPE, /*24*/
 MTK_PULL_PU_PD_TYPE, /*25*/
 MTK_PULL_PU_PD_TYPE, /*26*/
 MTK_PULL_PU_PD_TYPE, /*27*/
 MTK_PULL_PU_PD_TYPE, /*28*/
 MTK_PULL_PU_PD_TYPE, /*29*/
 MTK_PULL_PU_PD_TYPE, /*30*/
 MTK_PULL_PU_PD_TYPE, /*31*/
 MTK_PULL_PU_PD_TYPE, /*32*/
 MTK_PULL_PU_PD_TYPE, /*33*/
 MTK_PULL_PU_PD_TYPE, /*34*/
 MTK_PULL_PU_PD_TYPE, /*35*/
 MTK_PULL_PU_PD_TYPE, /*36*/
 MTK_PULL_PU_PD_TYPE, /*37*/
 MTK_PULL_PU_PD_TYPE, /*38*/
 MTK_PULL_PU_PD_TYPE, /*39*/
 MTK_PULL_PU_PD_TYPE, /*40*/
 MTK_PULL_PU_PD_TYPE, /*41*/
 MTK_PULL_PUPD_R1R0_TYPE, /*42*/
 MTK_PULL_PUPD_R1R0_TYPE, /*43*/
 MTK_PULL_PUPD_R1R0_TYPE, /*44*/
 MTK_PULL_PUPD_R1R0_TYPE, /*45*/
 MTK_PULL_PU_PD_TYPE, /*46*/
 MTK_PULL_PU_PD_TYPE, /*47*/
 MTK_PULL_PU_PD_TYPE, /*48*/
 MTK_PULL_PU_PD_TYPE, /*49*/
 MTK_PULL_PU_PD_TYPE, /*50*/
 MTK_PULL_PU_PD_TYPE, /*51*/
 MTK_PULL_PU_PD_TYPE, /*52*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*53*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*54*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*55*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*56*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*57*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*58*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*59*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*60*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*61*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*62*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*63*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*64*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*65*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*66*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*67*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*68*/
 MTK_PULL_PU_PD_TYPE, /*69*/
 MTK_PULL_PU_PD_TYPE, /*70*/
 MTK_PULL_PU_PD_TYPE, /*71*/
 MTK_PULL_PU_PD_TYPE, /*72*/
 MTK_PULL_PU_PD_TYPE, /*73*/
 MTK_PULL_PU_PD_TYPE, /*74*/
 MTK_PULL_PU_PD_TYPE, /*75*/
 MTK_PULL_PU_PD_TYPE, /*76*/
 MTK_PULL_PU_PD_TYPE, /*77*/
 MTK_PULL_PU_PD_TYPE, /*78*/
 MTK_PULL_PU_PD_TYPE, /*79*/
 MTK_PULL_PU_PD_TYPE, /*80*/
 MTK_PULL_PU_PD_TYPE, /*81*/
 MTK_PULL_PU_PD_TYPE, /*82*/
 MTK_PULL_PU_PD_TYPE, /*83*/
 MTK_PULL_PU_PD_TYPE, /*84*/
 MTK_PULL_PU_PD_TYPE, /*85*/
 MTK_PULL_PU_PD_TYPE, /*86*/
 MTK_PULL_PU_PD_TYPE, /*87*/
 MTK_PULL_PU_PD_TYPE, /*88*/
 MTK_PULL_PU_PD_TYPE, /*89*/
 MTK_PULL_PU_PD_TYPE, /*90*/
 MTK_PULL_PU_PD_TYPE, /*91*/
 MTK_PULL_PU_PD_TYPE, /*92*/
 MTK_PULL_PU_PD_TYPE, /*93*/
 MTK_PULL_PU_PD_TYPE, /*94*/
 MTK_PULL_PU_PD_TYPE, /*95*/
 MTK_PULL_PU_PD_TYPE, /*96*/
 MTK_PULL_PU_PD_TYPE, /*97*/
 MTK_PULL_PU_PD_TYPE, /*98*/
 MTK_PULL_PU_PD_TYPE, /*99*/
 MTK_PULL_PU_PD_TYPE, /*100*/
 MTK_PULL_PU_PD_TYPE, /*101*/
 MTK_PULL_PU_PD_TYPE, /*102*/
 MTK_PULL_PU_PD_TYPE, /*103*/
 MTK_PULL_PU_PD_TYPE, /*104*/
 MTK_PULL_PU_PD_TYPE, /*105*/
 MTK_PULL_PU_PD_TYPE, /*106*/
 MTK_PULL_PU_PD_TYPE, /*107*/
 MTK_PULL_PU_PD_TYPE, /*108*/
 MTK_PULL_PU_PD_TYPE, /*109*/
 MTK_PULL_PU_PD_TYPE, /*110*/
 MTK_PULL_PU_PD_TYPE, /*111*/
 MTK_PULL_PU_PD_TYPE, /*112*/
 MTK_PULL_PU_PD_TYPE, /*113*/
 MTK_PULL_PU_PD_TYPE, /*114*/
 MTK_PULL_PU_PD_TYPE, /*115*/
 MTK_PULL_PU_PD_TYPE, /*116*/
 MTK_PULL_PU_PD_TYPE, /*117*/
 MTK_PULL_PU_PD_TYPE, /*118*/
 MTK_PULL_PU_PD_TYPE, /*119*/
 MTK_PULL_PU_PD_TYPE, /*120*/
 MTK_PULL_PU_PD_TYPE, /*121*/
 MTK_PULL_PU_PD_TYPE, /*122*/
 MTK_PULL_PU_PD_TYPE, /*123*/
 MTK_PULL_PU_PD_TYPE, /*124*/
 MTK_PULL_PU_PD_TYPE, /*125*/
 MTK_PULL_PU_PD_TYPE, /*126*/
 MTK_PULL_PU_PD_TYPE, /*127*/
 MTK_PULL_PU_PD_TYPE, /*128*/
 MTK_PULL_PU_PD_TYPE, /*129*/
 MTK_PULL_PU_PD_TYPE, /*130*/
 MTK_PULL_PUPD_R1R0_TYPE, /*131*/
 MTK_PULL_PUPD_R1R0_TYPE, /*132*/
 MTK_PULL_PUPD_R1R0_TYPE, /*133*/
 MTK_PULL_PUPD_R1R0_TYPE, /*134*/
 MTK_PULL_PUPD_R1R0_TYPE, /*135*/
 MTK_PULL_PUPD_R1R0_TYPE, /*136*/
 MTK_PULL_PUPD_R1R0_TYPE, /*137*/
 MTK_PULL_PUPD_R1R0_TYPE, /*138*/
 MTK_PULL_PUPD_R1R0_TYPE, /*139*/
 MTK_PULL_PUPD_R1R0_TYPE, /*140*/
 MTK_PULL_PUPD_R1R0_TYPE, /*141*/
 MTK_PULL_PUPD_R1R0_TYPE, /*142*/
 MTK_PULL_PUPD_R1R0_TYPE, /*143*/
 MTK_PULL_PUPD_R1R0_TYPE, /*144*/
 MTK_PULL_PUPD_R1R0_TYPE, /*145*/
 MTK_PULL_PUPD_R1R0_TYPE, /*146*/
 MTK_PULL_PUPD_R1R0_TYPE, /*147*/
 MTK_PULL_PUPD_R1R0_TYPE, /*148*/
 MTK_PULL_PUPD_R1R0_TYPE, /*149*/
 MTK_PULL_PUPD_R1R0_TYPE, /*150*/
 MTK_PULL_PUPD_R1R0_TYPE, /*151*/
 MTK_PULL_PUPD_R1R0_TYPE, /*152*/
 MTK_PULL_PUPD_R1R0_TYPE, /*153*/
 MTK_PULL_PUPD_R1R0_TYPE, /*154*/
 MTK_PULL_PUPD_R1R0_TYPE, /*155*/
 MTK_PULL_PUPD_R1R0_TYPE, /*156*/
 MTK_PULL_PUPD_R1R0_TYPE, /*157*/
 MTK_PULL_PUPD_R1R0_TYPE, /*158*/
 MTK_PULL_PUPD_R1R0_TYPE, /*159*/
 MTK_PULL_PUPD_R1R0_TYPE, /*160*/
 MTK_PULL_PUPD_R1R0_TYPE, /*161*/
 MTK_PULL_PUPD_R1R0_TYPE, /*162*/
 MTK_PULL_PUPD_R1R0_TYPE, /*163*/
 MTK_PULL_PUPD_R1R0_TYPE, /*164*/
 MTK_PULL_PUPD_R1R0_TYPE, /*165*/
 MTK_PULL_PUPD_R1R0_TYPE, /*166*/
 MTK_PULL_PUPD_R1R0_TYPE, /*167*/
 MTK_PULL_PUPD_R1R0_TYPE, /*168*/
 MTK_PULL_PUPD_R1R0_TYPE, /*169*/
 MTK_PULL_PUPD_R1R0_TYPE, /*170*/
 MTK_PULL_PUPD_R1R0_TYPE, /*171*/
 MTK_PULL_PUPD_R1R0_TYPE, /*172*/
 MTK_PULL_PUPD_R1R0_TYPE, /*173*/
 MTK_PULL_PUPD_R1R0_TYPE, /*174*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*175*/
 MTK_PULL_PU_PD_RSEL_TYPE, /*176*/
};

static const struct mtk_pin_reg_calc mt8188_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8188_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8188_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8188_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8188_pin_do_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8188_pin_smt_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8188_pin_ies_range),
 [PINCTRL_PIN_REG_TDSEL] = MTK_RANGE(mt8188_pin_tdsel_range),
 [PINCTRL_PIN_REG_RDSEL] = MTK_RANGE(mt8188_pin_rdsel_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8188_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8188_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8188_pin_r1_range),
 [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8188_pin_pu_range),
 [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8188_pin_pd_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8188_pin_drv_range),
 [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8188_pin_drv_adv_range),
 [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8188_pin_rsel_range),
};

static const char * const mt8188_pinctrl_register_base_name[] = {
 "iocfg0""iocfg_rm""iocfg_lt""iocfg_lm""iocfg_rt",
};

static const struct mtk_eint_hw mt8188_eint_hw = {
 .port_mask = 0xf,
 .ports     = 7,
 .ap_num    = 225,
 .db_cnt    = 32,
 .db_time   = debounce_time_mt6765,
};

static const struct mtk_pin_soc mt8188_data = {
 .reg_cal = mt8188_reg_cals,
 .pins = mtk_pins_mt8188,
 .npins = ARRAY_SIZE(mtk_pins_mt8188),
 .ngrps = ARRAY_SIZE(mtk_pins_mt8188),
 .eint_hw = &mt8188_eint_hw,
 .nfuncs = 8,
 .gpio_m = 0,
 .base_names = mt8188_pinctrl_register_base_name,
 .nbase_names = ARRAY_SIZE(mt8188_pinctrl_register_base_name),
 .pull_type = mt8188_pull_type,
 .pin_rsel = mt8188_pin_rsel_val_range,
 .npin_rsel = ARRAY_SIZE(mt8188_pin_rsel_val_range),
 .bias_set_combo = mtk_pinconf_bias_set_combo,
 .bias_get_combo = mtk_pinconf_bias_get_combo,
 .drive_set = mtk_pinconf_drive_set_rev1,
 .drive_get = mtk_pinconf_drive_get_rev1,
 .adv_drive_set = mtk_pinconf_adv_drive_set_raw,
 .adv_drive_get = mtk_pinconf_adv_drive_get_raw,
};

static const struct of_device_id mt8188_pinctrl_of_match[] = {
 { .compatible = "mediatek,mt8188-pinctrl", .data = &mt8188_data },
 { }
};

static struct platform_driver mt8188_pinctrl_driver = {
 .driver = {
  .name = "mt8188-pinctrl",
  .of_match_table = mt8188_pinctrl_of_match,
  .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops)
 },
 .probe = mtk_paris_pinctrl_probe,
};

static int __init mt8188_pinctrl_init(void)
{
 return platform_driver_register(&mt8188_pinctrl_driver);
}

arch_initcall(mt8188_pinctrl_init);

MODULE_DESCRIPTION("MediaTek MT8188 Pinctrl Driver");

Messung V0.5 in Prozent
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.39 Sekunden  (vorverarbeitet am  2026-06-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.