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 88 kB image not shown  

SSL pinctrl-mt8196.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2025 MediaTek Inc.
 * Author: Guodong Liu <Guodong.Liu@mediatek.com>
 *         Lei Xue <lei.xue@mediatek.com>
 *         Cathy Xu <ot_cathy.xu@mediatek.com>
 */


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

#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 mt8196_pin_mode_range[] = {
 PIN_FIELD(02700x0300, 0x10, 04),
};

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

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

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

static const struct mtk_pin_field_calc mt8196_pin_smt_range[] = {
 PIN_FIELD_BASE(0080x00d0, 0x10, 01),
 PIN_FIELD_BASE(1180x00d0, 0x10, 11),
 PIN_FIELD_BASE(22110x00a0, 0x10, 11),
 PIN_FIELD_BASE(33110x00a0, 0x10, 11),
 PIN_FIELD_BASE(44110x00a0, 0x10, 21),
 PIN_FIELD_BASE(55110x00a0, 0x10, 21),
 PIN_FIELD_BASE(66110x00a0, 0x10, 21),
 PIN_FIELD_BASE(77110x00a0, 0x10, 21),
 PIN_FIELD_BASE(88110x00a0, 0x10, 31),
 PIN_FIELD_BASE(9990x0120, 0x10, 131),
 PIN_FIELD_BASE(101090x0120, 0x10, 121),
 PIN_FIELD_BASE(111180x00d0, 0x10, 21),
 PIN_FIELD_BASE(121290x0120, 0x10, 151),
 PIN_FIELD_BASE(131360x0120, 0x10, 31),
 PIN_FIELD_BASE(141430x00c0, 0x10, 01),
 PIN_FIELD_BASE(151560x0120, 0x10, 01),
 PIN_FIELD_BASE(161660x0120, 0x10, 31),
 PIN_FIELD_BASE(171760x0120, 0x10, 31),
 PIN_FIELD_BASE(181860x0120, 0x10, 11),
 PIN_FIELD_BASE(191960x0120, 0x10, 21),
 PIN_FIELD_BASE(202030x00c0, 0x10, 41),
 PIN_FIELD_BASE(212120x00b0, 0x10, 01),
 PIN_FIELD_BASE(222220x00b0, 0x10, 11),
 PIN_FIELD_BASE(232320x00b0, 0x10, 21),
 PIN_FIELD_BASE(242420x00b0, 0x10, 31),
 PIN_FIELD_BASE(252520x00b0, 0x10, 41),
 PIN_FIELD_BASE(262620x00b0, 0x10, 51),
 PIN_FIELD_BASE(272720x00b0, 0x10, 71),
 PIN_FIELD_BASE(282820x00b0, 0x10, 71),
 PIN_FIELD_BASE(292920x00b0, 0x10, 71),
 PIN_FIELD_BASE(303020x00b0, 0x10, 81),
 PIN_FIELD_BASE(313120x00b0, 0x10, 81),
 PIN_FIELD_BASE(323210x00c0, 0x10, 81),
 PIN_FIELD_BASE(333310x00c0, 0x10, 81),
 PIN_FIELD_BASE(343410x00c0, 0x10, 81),
 PIN_FIELD_BASE(353510x00c0, 0x10, 81),
 PIN_FIELD_BASE(363610x00c0, 0x10, 91),
 PIN_FIELD_BASE(373710x00c0, 0x10, 91),
 PIN_FIELD_BASE(383810x00c0, 0x10, 61),
 PIN_FIELD_BASE(393980x00d0, 0x10, 41),
 PIN_FIELD_BASE(404080x00d0, 0x10, 31),
 PIN_FIELD_BASE(414180x00d0, 0x10, 31),
 PIN_FIELD_BASE(424280x00d0, 0x10, 31),
 PIN_FIELD_BASE(434380x00d0, 0x10, 31),
 PIN_FIELD_BASE(444480x00d0, 0x10, 51),
 PIN_FIELD_BASE(454580x00d0, 0x10, 51),
 PIN_FIELD_BASE(464680x00d0, 0x10, 61),
 PIN_FIELD_BASE(474780x00d0, 0x10, 91),
 PIN_FIELD_BASE(484880x00d0, 0x10, 71),
 PIN_FIELD_BASE(494980x00d0, 0x10, 101),
 PIN_FIELD_BASE(505080x00d0, 0x10, 81),
 PIN_FIELD_BASE(515180x00d0, 0x10, 111),
 PIN_FIELD_BASE(525290x0120, 0x10, 71),
 PIN_FIELD_BASE(535390x0120, 0x10, 81),
 PIN_FIELD_BASE(545490x0120, 0x10, 21),
 PIN_FIELD_BASE(555590x0120, 0x10, 11),
 PIN_FIELD_BASE(565690x0120, 0x10, 51),
 PIN_FIELD_BASE(575790x0120, 0x10, 61),
 PIN_FIELD_BASE(585890x0120, 0x10, 31),
 PIN_FIELD_BASE(595990x0120, 0x10, 41),
 PIN_FIELD_BASE(606090x0120, 0x10, 191),
 PIN_FIELD_BASE(616190x0120, 0x10, 101),
 PIN_FIELD_BASE(626290x0120, 0x10, 91),
 PIN_FIELD_BASE(636390x0120, 0x10, 141),
 PIN_FIELD_BASE(646490x0120, 0x10, 01),
 PIN_FIELD_BASE(656590x0120, 0x10, 111),
 PIN_FIELD_BASE(666690x0120, 0x10, 161),
 PIN_FIELD_BASE(676790x0120, 0x10, 181),
 PIN_FIELD_BASE(686890x0120, 0x10, 181),
 PIN_FIELD_BASE(696990x0120, 0x10, 181),
 PIN_FIELD_BASE(707090x0120, 0x10, 171),
 PIN_FIELD_BASE(717190x0120, 0x10, 171),
 PIN_FIELD_BASE(727290x0120, 0x10, 181),
 PIN_FIELD_BASE(737390x0120, 0x10, 171),
 PIN_FIELD_BASE(747490x0120, 0x10, 171),
 PIN_FIELD_BASE(7575100x00b0, 0x10, 21),
 PIN_FIELD_BASE(7676100x00b0, 0x10, 31),
 PIN_FIELD_BASE(7777100x00b0, 0x10, 41),
 PIN_FIELD_BASE(7878100x00b0, 0x10, 51),
 PIN_FIELD_BASE(7979100x00b0, 0x10, 01),
 PIN_FIELD_BASE(8080100x00b0, 0x10, 11),
 PIN_FIELD_BASE(8181110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8282110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8383110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8484110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8585110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8686110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8787110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8888110x00a0, 0x10, 01),
 PIN_FIELD_BASE(8989110x00a0, 0x10, 11),
 PIN_FIELD_BASE(9090110x00a0, 0x10, 11),
 PIN_FIELD_BASE(9191120x00c0, 0x10, 51),
 PIN_FIELD_BASE(9292120x00c0, 0x10, 51),
 PIN_FIELD_BASE(9393120x00c0, 0x10, 51),
 PIN_FIELD_BASE(9494120x00c0, 0x10, 41),
 PIN_FIELD_BASE(9595120x00c0, 0x10, 01),
 PIN_FIELD_BASE(9696120x00c0, 0x10, 21),
 PIN_FIELD_BASE(9797120x00c0, 0x10, 11),
 PIN_FIELD_BASE(9898120x00c0, 0x10, 31),
 PIN_FIELD_BASE(9999120x00c0, 0x10, 61),
 PIN_FIELD_BASE(100100120x00c0, 0x10, 91),
 PIN_FIELD_BASE(101101120x00c0, 0x10, 71),
 PIN_FIELD_BASE(102102120x00c0, 0x10, 101),
 PIN_FIELD_BASE(103103120x00c0, 0x10, 41),
 PIN_FIELD_BASE(104104120x00c0, 0x10, 81),
 PIN_FIELD_BASE(105105120x00c0, 0x10, 111),
 PIN_FIELD_BASE(10610650x00b0, 0x10, 01),
 PIN_FIELD_BASE(10710750x00b0, 0x10, 01),
 PIN_FIELD_BASE(10810850x00b0, 0x10, 01),
 PIN_FIELD_BASE(10910950x00b0, 0x10, 01),
 PIN_FIELD_BASE(11011050x00b0, 0x10, 11),
 PIN_FIELD_BASE(11111150x00b0, 0x10, 11),
 PIN_FIELD_BASE(11211250x00b0, 0x10, 11),
 PIN_FIELD_BASE(11311350x00b0, 0x10, 11),
 PIN_FIELD_BASE(11411450x00b0, 0x10, 01),
 PIN_FIELD_BASE(11511550x00b0, 0x10, 21),
 PIN_FIELD_BASE(11611650x00b0, 0x10, 21),
 PIN_FIELD_BASE(11711750x00b0, 0x10, 21),
 PIN_FIELD_BASE(11811860x0120, 0x10, 61),
 PIN_FIELD_BASE(11911960x0120, 0x10, 71),
 PIN_FIELD_BASE(12012060x0120, 0x10, 91),
 PIN_FIELD_BASE(12112160x0120, 0x10, 81),
 PIN_FIELD_BASE(12212260x0120, 0x10, 31),
 PIN_FIELD_BASE(12312360x0120, 0x10, 41),
 PIN_FIELD_BASE(12412460x0120, 0x10, 51),
 PIN_FIELD_BASE(12512570x00f0, 0x10, 01),
 PIN_FIELD_BASE(12612670x00f0, 0x10, 11),
 PIN_FIELD_BASE(12712770x00f0, 0x10, 21),
 PIN_FIELD_BASE(12812870x00f0, 0x10, 31),
 PIN_FIELD_BASE(12912970x00f0, 0x10, 41),
 PIN_FIELD_BASE(13013070x00f0, 0x10, 51),
 PIN_FIELD_BASE(13113170x00f0, 0x10, 91),
 PIN_FIELD_BASE(13213270x00f0, 0x10, 111),
 PIN_FIELD_BASE(13313370x00f0, 0x10, 101),
 PIN_FIELD_BASE(13413470x00f0, 0x10, 61),
 PIN_FIELD_BASE(13513570x00f0, 0x10, 81),
 PIN_FIELD_BASE(13613670x00f0, 0x10, 71),
 PIN_FIELD_BASE(13713740x00d0, 0x10, 21),
 PIN_FIELD_BASE(13813840x00d0, 0x10, 31),
 PIN_FIELD_BASE(13913940x00d0, 0x10, 41),
 PIN_FIELD_BASE(14014040x00d0, 0x10, 51),
 PIN_FIELD_BASE(14114140x00d0, 0x10, 61),
 PIN_FIELD_BASE(14214240x00d0, 0x10, 71),
 PIN_FIELD_BASE(14314340x00d0, 0x10, 81),
 PIN_FIELD_BASE(14414440x00d0, 0x10, 91),
 PIN_FIELD_BASE(14514540x00d0, 0x10, 101),
 PIN_FIELD_BASE(14614640x00d0, 0x10, 101),
 PIN_FIELD_BASE(14714740x00d0, 0x10, 01),
 PIN_FIELD_BASE(14814840x00d0, 0x10, 11),
 PIN_FIELD_BASE(14914940x00d0, 0x10, 111),
 PIN_FIELD_BASE(15015040x00d0, 0x10, 111),
 PIN_FIELD_BASE(15115140x00d0, 0x10, 111),
 PIN_FIELD_BASE(15215240x00d0, 0x10, 111),
 PIN_FIELD_BASE(15315340x00d0, 0x10, 131),
 PIN_FIELD_BASE(15415440x00d0, 0x10, 131),
 PIN_FIELD_BASE(15515540x00d0, 0x10, 121),
 PIN_FIELD_BASE(15615640x00d0, 0x10, 121),
 PIN_FIELD_BASE(15715720x00b0, 0x10, 61),
 PIN_FIELD_BASE(15815820x00b0, 0x10, 61),
 PIN_FIELD_BASE(15915920x00b0, 0x10, 61),
 PIN_FIELD_BASE(16016030x00c0, 0x10, 11),
 PIN_FIELD_BASE(16116130x00c0, 0x10, 21),
 PIN_FIELD_BASE(16216230x00c0, 0x10, 21),
 PIN_FIELD_BASE(16316330x00c0, 0x10, 21),
 PIN_FIELD_BASE(16416430x00c0, 0x10, 71),
 PIN_FIELD_BASE(16516530x00c0, 0x10, 91),
 PIN_FIELD_BASE(16616630x00c0, 0x10, 81),
 PIN_FIELD_BASE(16716730x00c0, 0x10, 101),
 PIN_FIELD_BASE(16816830x00c0, 0x10, 111),
 PIN_FIELD_BASE(16916930x00c0, 0x10, 31),
 PIN_FIELD_BASE(17017030x00c0, 0x10, 121),
 PIN_FIELD_BASE(17117130x00c0, 0x10, 31),
 PIN_FIELD_BASE(17217230x00c0, 0x10, 31),
 PIN_FIELD_BASE(17317330x00c0, 0x10, 31),
 PIN_FIELD_BASE(17417410x00c0, 0x10, 91),
 PIN_FIELD_BASE(17517510x00c0, 0x10, 91),
 PIN_FIELD_BASE(17617610x00c0, 0x10, 101),
 PIN_FIELD_BASE(17717710x00c0, 0x10, 111),
 PIN_FIELD_BASE(17817810x00c0, 0x10, 71),
 PIN_FIELD_BASE(17917910x00c0, 0x10, 71),
 PIN_FIELD_BASE(18018010x00c0, 0x10, 01),
 PIN_FIELD_BASE(18118110x00c0, 0x10, 11),
 PIN_FIELD_BASE(18218210x00c0, 0x10, 21),
 PIN_FIELD_BASE(18318310x00c0, 0x10, 31),
 PIN_FIELD_BASE(18418410x00c0, 0x10, 41),
 PIN_FIELD_BASE(18518510x00c0, 0x10, 51),
 PIN_FIELD_BASE(186186130x0110, 0x10, 141),
 PIN_FIELD_BASE(187187130x0110, 0x10, 141),
 PIN_FIELD_BASE(188188130x0110, 0x10, 41),
 PIN_FIELD_BASE(189189130x0110, 0x10, 91),
 PIN_FIELD_BASE(190190130x0110, 0x10, 51),
 PIN_FIELD_BASE(191191130x0110, 0x10, 101),
 PIN_FIELD_BASE(192192130x0110, 0x10, 01),
 PIN_FIELD_BASE(193193130x0110, 0x10, 151),
 PIN_FIELD_BASE(194194130x0110, 0x10, 61),
 PIN_FIELD_BASE(195195130x0110, 0x10, 111),
 PIN_FIELD_BASE(196196130x0110, 0x10, 11),
 PIN_FIELD_BASE(197197130x0110, 0x10, 161),
 PIN_FIELD_BASE(198198130x0110, 0x10, 71),
 PIN_FIELD_BASE(199199130x0110, 0x10, 121),
 PIN_FIELD_BASE(200200130x0110, 0x10, 191),
 PIN_FIELD_BASE(201201130x0110, 0x10, 221),
 PIN_FIELD_BASE(202202130x0110, 0x10, 81),
 PIN_FIELD_BASE(203203130x0110, 0x10, 131),
 PIN_FIELD_BASE(204204130x0110, 0x10, 21),
 PIN_FIELD_BASE(205205130x0110, 0x10, 31),
 PIN_FIELD_BASE(206206130x0110, 0x10, 181),
 PIN_FIELD_BASE(207207130x0110, 0x10, 171),
 PIN_FIELD_BASE(208208130x0110, 0x10, 171),
 PIN_FIELD_BASE(209209130x0110, 0x10, 171),
 PIN_FIELD_BASE(210210140x0130, 0x10, 01),
 PIN_FIELD_BASE(211211140x0130, 0x10, 11),
 PIN_FIELD_BASE(212212140x0130, 0x10, 21),
 PIN_FIELD_BASE(213213140x0130, 0x10, 31),
 PIN_FIELD_BASE(214214130x0110, 0x10, 201),
 PIN_FIELD_BASE(215215130x0110, 0x10, 211),
 PIN_FIELD_BASE(216216140x0130, 0x10, 111),
 PIN_FIELD_BASE(217217140x0130, 0x10, 111),
 PIN_FIELD_BASE(218218140x0130, 0x10, 111),
 PIN_FIELD_BASE(219219140x0130, 0x10, 41),
 PIN_FIELD_BASE(220220140x0130, 0x10, 111),
 PIN_FIELD_BASE(221221140x0130, 0x10, 121),
 PIN_FIELD_BASE(222222140x0130, 0x10, 221),
 PIN_FIELD_BASE(223223140x0130, 0x10, 211),
 PIN_FIELD_BASE(224224140x0130, 0x10, 51),
 PIN_FIELD_BASE(225225140x0130, 0x10, 61),
 PIN_FIELD_BASE(226226140x0130, 0x10, 71),
 PIN_FIELD_BASE(227227140x0130, 0x10, 81),
 PIN_FIELD_BASE(228228140x0130, 0x10, 91),
 PIN_FIELD_BASE(229229140x0130, 0x10, 101),
 PIN_FIELD_BASE(230230150x00e0, 0x10, 01),
 PIN_FIELD_BASE(231231150x00e0, 0x10, 01),
 PIN_FIELD_BASE(232232150x00e0, 0x10, 01),
 PIN_FIELD_BASE(233233150x00e0, 0x10, 11),
 PIN_FIELD_BASE(234234150x00e0, 0x10, 11),
 PIN_FIELD_BASE(235235150x00e0, 0x10, 11),
 PIN_FIELD_BASE(236236150x00e0, 0x10, 11),
 PIN_FIELD_BASE(237237150x00e0, 0x10, 21),
 PIN_FIELD_BASE(238238150x00e0, 0x10, 21),
 PIN_FIELD_BASE(239239150x00e0, 0x10, 21),
 PIN_FIELD_BASE(240240150x00e0, 0x10, 21),
 PIN_FIELD_BASE(241241150x00e0, 0x10, 31),
 PIN_FIELD_BASE(242242150x00e0, 0x10, 31),
 PIN_FIELD_BASE(243243150x00e0, 0x10, 31),
 PIN_FIELD_BASE(244244150x00e0, 0x10, 31),
 PIN_FIELD_BASE(245245150x00e0, 0x10, 41),
 PIN_FIELD_BASE(246246150x00e0, 0x10, 51),
 PIN_FIELD_BASE(247247150x00e0, 0x10, 51),
 PIN_FIELD_BASE(248248150x00e0, 0x10, 41),
 PIN_FIELD_BASE(249249150x00e0, 0x10, 41),
 PIN_FIELD_BASE(250250150x00e0, 0x10, 41),
 PIN_FIELD_BASE(25125130x00c0, 0x10, 41),
 PIN_FIELD_BASE(25225230x00c0, 0x10, 41),
 PIN_FIELD_BASE(25325330x00c0, 0x10, 41),
 PIN_FIELD_BASE(25425430x00c0, 0x10, 51),
 PIN_FIELD_BASE(25525530x00c0, 0x10, 51),
 PIN_FIELD_BASE(25625630x00c0, 0x10, 51),
 PIN_FIELD_BASE(25725730x00c0, 0x10, 51),
 PIN_FIELD_BASE(25825830x00c0, 0x10, 61),
 PIN_FIELD_BASE(259259140x0130, 0x10, 131),
 PIN_FIELD_BASE(260260140x0130, 0x10, 141),
 PIN_FIELD_BASE(261261140x0130, 0x10, 151),
 PIN_FIELD_BASE(262262140x0130, 0x10, 161),
 PIN_FIELD_BASE(263263140x0130, 0x10, 171),
 PIN_FIELD_BASE(264264140x0130, 0x10, 181),
 PIN_FIELD_BASE(265265140x0130, 0x10, 191),
 PIN_FIELD_BASE(266266140x0130, 0x10, 201),
 PIN_FIELD_BASE(267267150x00e0, 0x10, 81),
 PIN_FIELD_BASE(268268150x00e0, 0x10, 91),
 PIN_FIELD_BASE(269269150x00e0, 0x10, 61),
 PIN_FIELD_BASE(270270150x00e0, 0x10, 71),
};

static const struct mtk_pin_field_calc mt8196_pin_ies_range[] = {
 PIN_FIELD_BASE(0080x0060, 0x10, 01),
 PIN_FIELD_BASE(1180x0060, 0x10, 11),
 PIN_FIELD_BASE(22110x0040, 0x10, 11),
 PIN_FIELD_BASE(33110x0040, 0x10, 21),
 PIN_FIELD_BASE(44110x0040, 0x10, 31),
 PIN_FIELD_BASE(55110x0040, 0x10, 41),
 PIN_FIELD_BASE(66110x0040, 0x10, 51),
 PIN_FIELD_BASE(77110x0040, 0x10, 61),
 PIN_FIELD_BASE(88110x0040, 0x10, 71),
 PIN_FIELD_BASE(9990x0070, 0x10, 141),
 PIN_FIELD_BASE(101090x0070, 0x10, 121),
 PIN_FIELD_BASE(111180x0060, 0x10, 21),
 PIN_FIELD_BASE(121290x0070, 0x10, 131),
 PIN_FIELD_BASE(131360x0060, 0x10, 11),
 PIN_FIELD_BASE(141430x0050, 0x10, 01),
 PIN_FIELD_BASE(151560x0060, 0x10, 21),
 PIN_FIELD_BASE(161660x0060, 0x10, 31),
 PIN_FIELD_BASE(171760x0060, 0x10, 41),
 PIN_FIELD_BASE(181860x0060, 0x10, 51),
 PIN_FIELD_BASE(191960x0060, 0x10, 61),
 PIN_FIELD_BASE(202030x0050, 0x10, 11),
 PIN_FIELD_BASE(212120x0050, 0x10, 31),
 PIN_FIELD_BASE(222220x0050, 0x10, 41),
 PIN_FIELD_BASE(232320x0050, 0x10, 51),
 PIN_FIELD_BASE(242420x0050, 0x10, 61),
 PIN_FIELD_BASE(252520x0050, 0x10, 71),
 PIN_FIELD_BASE(262620x0050, 0x10, 81),
 PIN_FIELD_BASE(272720x0050, 0x10, 91),
 PIN_FIELD_BASE(282820x0050, 0x10, 101),
 PIN_FIELD_BASE(292920x0050, 0x10, 111),
 PIN_FIELD_BASE(303020x0050, 0x10, 121),
 PIN_FIELD_BASE(313120x0050, 0x10, 131),
 PIN_FIELD_BASE(323210x0050, 0x10, 81),
 PIN_FIELD_BASE(333310x0050, 0x10, 91),
 PIN_FIELD_BASE(343410x0050, 0x10, 101),
 PIN_FIELD_BASE(353510x0050, 0x10, 111),
 PIN_FIELD_BASE(363610x0050, 0x10, 121),
 PIN_FIELD_BASE(373710x0050, 0x10, 131),
 PIN_FIELD_BASE(383810x0050, 0x10, 141),
 PIN_FIELD_BASE(393980x0060, 0x10, 61),
 PIN_FIELD_BASE(404080x0060, 0x10, 31),
 PIN_FIELD_BASE(414180x0060, 0x10, 51),
 PIN_FIELD_BASE(424280x0060, 0x10, 41),
 PIN_FIELD_BASE(434380x0060, 0x10, 71),
 PIN_FIELD_BASE(444480x0060, 0x10, 81),
 PIN_FIELD_BASE(454580x0060, 0x10, 91),
 PIN_FIELD_BASE(464680x0060, 0x10, 101),
 PIN_FIELD_BASE(474780x0060, 0x10, 131),
 PIN_FIELD_BASE(484880x0060, 0x10, 111),
 PIN_FIELD_BASE(494980x0060, 0x10, 141),
 PIN_FIELD_BASE(505080x0060, 0x10, 121),
 PIN_FIELD_BASE(515180x0060, 0x10, 151),
 PIN_FIELD_BASE(525290x0070, 0x10, 71),
 PIN_FIELD_BASE(535390x0070, 0x10, 81),
 PIN_FIELD_BASE(545490x0070, 0x10, 21),
 PIN_FIELD_BASE(555590x0070, 0x10, 11),
 PIN_FIELD_BASE(565690x0070, 0x10, 51),
 PIN_FIELD_BASE(575790x0070, 0x10, 61),
 PIN_FIELD_BASE(585890x0070, 0x10, 31),
 PIN_FIELD_BASE(595990x0070, 0x10, 41),
 PIN_FIELD_BASE(606090x0070, 0x10, 191),
 PIN_FIELD_BASE(616190x0070, 0x10, 101),
 PIN_FIELD_BASE(626290x0070, 0x10, 91),
 PIN_FIELD_BASE(636390x0070, 0x10, 181),
 PIN_FIELD_BASE(646490x0070, 0x10, 01),
 PIN_FIELD_BASE(656590x0070, 0x10, 111),
 PIN_FIELD_BASE(666690x0070, 0x10, 241),
 PIN_FIELD_BASE(676790x0070, 0x10, 221),
 PIN_FIELD_BASE(686890x0070, 0x10, 211),
 PIN_FIELD_BASE(696990x0070, 0x10, 251),
 PIN_FIELD_BASE(707090x0070, 0x10, 161),
 PIN_FIELD_BASE(717190x0070, 0x10, 151),
 PIN_FIELD_BASE(727290x0070, 0x10, 231),
 PIN_FIELD_BASE(737390x0070, 0x10, 201),
 PIN_FIELD_BASE(747490x0070, 0x10, 171),
 PIN_FIELD_BASE(7575100x0050, 0x10, 21),
 PIN_FIELD_BASE(7676100x0050, 0x10, 31),
 PIN_FIELD_BASE(7777100x0050, 0x10, 41),
 PIN_FIELD_BASE(7878100x0050, 0x10, 51),
 PIN_FIELD_BASE(7979100x0050, 0x10, 01),
 PIN_FIELD_BASE(8080100x0050, 0x10, 11),
 PIN_FIELD_BASE(8181110x0040, 0x10, 91),
 PIN_FIELD_BASE(8282110x0040, 0x10, 101),
 PIN_FIELD_BASE(8383110x0040, 0x10, 121),
 PIN_FIELD_BASE(8484110x0040, 0x10, 111),
 PIN_FIELD_BASE(8585110x0040, 0x10, 131),
 PIN_FIELD_BASE(8686110x0040, 0x10, 141),
 PIN_FIELD_BASE(8787110x0040, 0x10, 161),
 PIN_FIELD_BASE(8888110x0040, 0x10, 151),
 PIN_FIELD_BASE(8989110x0040, 0x10, 01),
 PIN_FIELD_BASE(9090110x0040, 0x10, 81),
 PIN_FIELD_BASE(9191120x0050, 0x10, 61),
 PIN_FIELD_BASE(9292120x0050, 0x10, 71),
 PIN_FIELD_BASE(9393120x0050, 0x10, 81),
 PIN_FIELD_BASE(9494120x0050, 0x10, 41),
 PIN_FIELD_BASE(9595120x0050, 0x10, 11),
 PIN_FIELD_BASE(9696120x0050, 0x10, 31),
 PIN_FIELD_BASE(9797120x0050, 0x10, 21),
 PIN_FIELD_BASE(9898120x0050, 0x10, 51),
 PIN_FIELD_BASE(9999120x0050, 0x10, 91),
 PIN_FIELD_BASE(100100120x0050, 0x10, 121),
 PIN_FIELD_BASE(101101120x0050, 0x10, 101),
 PIN_FIELD_BASE(102102120x0050, 0x10, 131),
 PIN_FIELD_BASE(103103120x0050, 0x10, 01),
 PIN_FIELD_BASE(104104120x0050, 0x10, 111),
 PIN_FIELD_BASE(105105120x0050, 0x10, 141),
 PIN_FIELD_BASE(10610650x0050, 0x10, 01),
 PIN_FIELD_BASE(10710750x0050, 0x10, 11),
 PIN_FIELD_BASE(10810850x0050, 0x10, 31),
 PIN_FIELD_BASE(10910950x0050, 0x10, 21),
 PIN_FIELD_BASE(11011050x0050, 0x10, 41),
 PIN_FIELD_BASE(11111150x0050, 0x10, 51),
 PIN_FIELD_BASE(11211250x0050, 0x10, 71),
 PIN_FIELD_BASE(11311350x0050, 0x10, 61),
 PIN_FIELD_BASE(11411450x0050, 0x10, 81),
 PIN_FIELD_BASE(11511550x0050, 0x10, 91),
 PIN_FIELD_BASE(11611650x0050, 0x10, 111),
 PIN_FIELD_BASE(11711750x0050, 0x10, 101),
 PIN_FIELD_BASE(11811860x0060, 0x10, 91),
 PIN_FIELD_BASE(11911960x0060, 0x10, 101),
 PIN_FIELD_BASE(12012060x0060, 0x10, 121),
 PIN_FIELD_BASE(12112160x0060, 0x10, 111),
 PIN_FIELD_BASE(12212260x0060, 0x10, 01),
 PIN_FIELD_BASE(12312360x0060, 0x10, 71),
 PIN_FIELD_BASE(12412460x0060, 0x10, 81),
 PIN_FIELD_BASE(12512570x0050, 0x10, 01),
 PIN_FIELD_BASE(12612670x0050, 0x10, 11),
 PIN_FIELD_BASE(12712770x0050, 0x10, 21),
 PIN_FIELD_BASE(12812870x0050, 0x10, 31),
 PIN_FIELD_BASE(12912970x0050, 0x10, 41),
 PIN_FIELD_BASE(13013070x0050, 0x10, 51),
 PIN_FIELD_BASE(13113170x0050, 0x10, 91),
 PIN_FIELD_BASE(13213270x0050, 0x10, 111),
 PIN_FIELD_BASE(13313370x0050, 0x10, 101),
 PIN_FIELD_BASE(13413470x0050, 0x10, 61),
 PIN_FIELD_BASE(13513570x0050, 0x10, 81),
 PIN_FIELD_BASE(13613670x0050, 0x10, 71),
 PIN_FIELD_BASE(13713740x0040, 0x10, 101),
 PIN_FIELD_BASE(13813840x0040, 0x10, 111),
 PIN_FIELD_BASE(13913940x0040, 0x10, 121),
 PIN_FIELD_BASE(14014040x0040, 0x10, 131),
 PIN_FIELD_BASE(14114140x0040, 0x10, 141),
 PIN_FIELD_BASE(14214240x0040, 0x10, 151),
 PIN_FIELD_BASE(14314340x0040, 0x10, 161),
 PIN_FIELD_BASE(14414440x0040, 0x10, 171),
 PIN_FIELD_BASE(14514540x0040, 0x10, 01),
 PIN_FIELD_BASE(14614640x0040, 0x10, 11),
 PIN_FIELD_BASE(14714740x0040, 0x10, 21),
 PIN_FIELD_BASE(14814840x0040, 0x10, 31),
 PIN_FIELD_BASE(14914940x0040, 0x10, 41),
 PIN_FIELD_BASE(15015040x0040, 0x10, 51),
 PIN_FIELD_BASE(15115140x0040, 0x10, 61),
 PIN_FIELD_BASE(15215240x0040, 0x10, 71),
 PIN_FIELD_BASE(15315340x0040, 0x10, 91),
 PIN_FIELD_BASE(15415440x0040, 0x10, 81),
 PIN_FIELD_BASE(15515540x0040, 0x10, 181),
 PIN_FIELD_BASE(15615640x0040, 0x10, 191),
 PIN_FIELD_BASE(15715720x0050, 0x10, 11),
 PIN_FIELD_BASE(15815820x0050, 0x10, 21),
 PIN_FIELD_BASE(15915920x0050, 0x10, 01),
 PIN_FIELD_BASE(16016030x0050, 0x10, 221),
 PIN_FIELD_BASE(16116130x0050, 0x10, 201),
 PIN_FIELD_BASE(16216230x0050, 0x10, 231),
 PIN_FIELD_BASE(16316330x0050, 0x10, 211),
 PIN_FIELD_BASE(16416430x0050, 0x10, 121),
 PIN_FIELD_BASE(16516530x0050, 0x10, 141),
 PIN_FIELD_BASE(16616630x0050, 0x10, 131),
 PIN_FIELD_BASE(16716730x0050, 0x10, 151),
 PIN_FIELD_BASE(16816830x0050, 0x10, 161),
 PIN_FIELD_BASE(16916930x0050, 0x10, 171),
 PIN_FIELD_BASE(17017030x0050, 0x10, 191),
 PIN_FIELD_BASE(17117130x0050, 0x10, 181),
 PIN_FIELD_BASE(17217230x0050, 0x10, 101),
 PIN_FIELD_BASE(17317330x0050, 0x10, 111),
 PIN_FIELD_BASE(17417410x0050, 0x10, 151),
 PIN_FIELD_BASE(17517510x0050, 0x10, 161),
 PIN_FIELD_BASE(17617610x0050, 0x10, 171),
 PIN_FIELD_BASE(17717710x0050, 0x10, 181),
 PIN_FIELD_BASE(17817810x0050, 0x10, 61),
 PIN_FIELD_BASE(17917910x0050, 0x10, 71),
 PIN_FIELD_BASE(18018010x0050, 0x10, 01),
 PIN_FIELD_BASE(18118110x0050, 0x10, 11),
 PIN_FIELD_BASE(18218210x0050, 0x10, 21),
 PIN_FIELD_BASE(18318310x0050, 0x10, 31),
 PIN_FIELD_BASE(18418410x0050, 0x10, 41),
 PIN_FIELD_BASE(18518510x0050, 0x10, 51),
 PIN_FIELD_BASE(186186130x0090, 0x10, 41),
 PIN_FIELD_BASE(187187130x0090, 0x10, 51),
 PIN_FIELD_BASE(188188130x0090, 0x10, 121),
 PIN_FIELD_BASE(189189130x0090, 0x10, 171),
 PIN_FIELD_BASE(190190130x0090, 0x10, 131),
 PIN_FIELD_BASE(191191130x0090, 0x10, 181),
 PIN_FIELD_BASE(192192130x0090, 0x10, 01),
 PIN_FIELD_BASE(193193130x0090, 0x10, 61),
 PIN_FIELD_BASE(194194130x0090, 0x10, 141),
 PIN_FIELD_BASE(195195130x0090, 0x10, 191),
 PIN_FIELD_BASE(196196130x0090, 0x10, 11),
 PIN_FIELD_BASE(197197130x0090, 0x10, 71),
 PIN_FIELD_BASE(198198130x0090, 0x10, 151),
 PIN_FIELD_BASE(199199130x0090, 0x10, 201),
 PIN_FIELD_BASE(200200130x0090, 0x10, 221),
 PIN_FIELD_BASE(201201130x0090, 0x10, 251),
 PIN_FIELD_BASE(202202130x0090, 0x10, 161),
 PIN_FIELD_BASE(203203130x0090, 0x10, 211),
 PIN_FIELD_BASE(204204130x0090, 0x10, 21),
 PIN_FIELD_BASE(205205130x0090, 0x10, 31),
 PIN_FIELD_BASE(206206130x0090, 0x10, 81),
 PIN_FIELD_BASE(207207130x0090, 0x10, 91),
 PIN_FIELD_BASE(208208130x0090, 0x10, 101),
 PIN_FIELD_BASE(209209130x0090, 0x10, 111),
 PIN_FIELD_BASE(210210140x0060, 0x10, 01),
 PIN_FIELD_BASE(211211140x0060, 0x10, 11),
 PIN_FIELD_BASE(212212140x0060, 0x10, 21),
 PIN_FIELD_BASE(213213140x0060, 0x10, 31),
 PIN_FIELD_BASE(214214130x0090, 0x10, 231),
 PIN_FIELD_BASE(215215130x0090, 0x10, 241),
 PIN_FIELD_BASE(216216140x0060, 0x10, 131),
 PIN_FIELD_BASE(217217140x0060, 0x10, 51),
 PIN_FIELD_BASE(218218140x0060, 0x10, 61),
 PIN_FIELD_BASE(219219140x0060, 0x10, 41),
 PIN_FIELD_BASE(220220140x0060, 0x10, 221),
 PIN_FIELD_BASE(221221140x0060, 0x10, 231),
 PIN_FIELD_BASE(222222140x0060, 0x10, 251),
 PIN_FIELD_BASE(223223140x0060, 0x10, 241),
 PIN_FIELD_BASE(224224140x0060, 0x10, 71),
 PIN_FIELD_BASE(225225140x0060, 0x10, 81),
 PIN_FIELD_BASE(226226140x0060, 0x10, 91),
 PIN_FIELD_BASE(227227140x0060, 0x10, 101),
 PIN_FIELD_BASE(228228140x0060, 0x10, 111),
 PIN_FIELD_BASE(229229140x0060, 0x10, 121),
 PIN_FIELD_BASE(230230150x0040, 0x10, 131),
 PIN_FIELD_BASE(231231150x0040, 0x10, 141),
 PIN_FIELD_BASE(232232150x0040, 0x10, 101),
 PIN_FIELD_BASE(233233150x0040, 0x10, 01),
 PIN_FIELD_BASE(234234150x0040, 0x10, 31),
 PIN_FIELD_BASE(235235150x0040, 0x10, 11),
 PIN_FIELD_BASE(236236150x0040, 0x10, 21),
 PIN_FIELD_BASE(237237150x0040, 0x10, 61),
 PIN_FIELD_BASE(238238150x0040, 0x10, 51),
 PIN_FIELD_BASE(239239150x0040, 0x10, 231),
 PIN_FIELD_BASE(240240150x0040, 0x10, 221),
 PIN_FIELD_BASE(241241150x0040, 0x10, 161),
 PIN_FIELD_BASE(242242150x0040, 0x10, 171),
 PIN_FIELD_BASE(243243150x0040, 0x10, 151),
 PIN_FIELD_BASE(244244150x0040, 0x10, 121),
 PIN_FIELD_BASE(245245150x0040, 0x10, 91),
 PIN_FIELD_BASE(246246150x0040, 0x10, 81),
 PIN_FIELD_BASE(247247150x0040, 0x10, 71),
 PIN_FIELD_BASE(248248150x0040, 0x10, 41),
 PIN_FIELD_BASE(249249150x0040, 0x10, 241),
 PIN_FIELD_BASE(250250150x0040, 0x10, 111),
 PIN_FIELD_BASE(25125130x0050, 0x10, 21),
 PIN_FIELD_BASE(25225230x0050, 0x10, 31),
 PIN_FIELD_BASE(25325330x0050, 0x10, 41),
 PIN_FIELD_BASE(25425430x0050, 0x10, 51),
 PIN_FIELD_BASE(25525530x0050, 0x10, 61),
 PIN_FIELD_BASE(25625630x0050, 0x10, 71),
 PIN_FIELD_BASE(25725730x0050, 0x10, 81),
 PIN_FIELD_BASE(25825830x0050, 0x10, 91),
 PIN_FIELD_BASE(259259140x0060, 0x10, 141),
 PIN_FIELD_BASE(260260140x0060, 0x10, 151),
 PIN_FIELD_BASE(261261140x0060, 0x10, 161),
 PIN_FIELD_BASE(262262140x0060, 0x10, 171),
 PIN_FIELD_BASE(263263140x0060, 0x10, 181),
 PIN_FIELD_BASE(264264140x0060, 0x10, 191),
 PIN_FIELD_BASE(265265140x0060, 0x10, 201),
 PIN_FIELD_BASE(266266140x0060, 0x10, 211),
 PIN_FIELD_BASE(267267150x0040, 0x10, 201),
 PIN_FIELD_BASE(268268150x0040, 0x10, 211),
 PIN_FIELD_BASE(269269150x0040, 0x10, 181),
 PIN_FIELD_BASE(270270150x0040, 0x10, 191),
};

static const struct mtk_pin_field_calc mt8196_pin_pupd_range[] = {
 PIN_FIELD_BASE(606090x00b0, 0x10, 01),
 PIN_FIELD_BASE(12512570x0080, 0x10, 01),
 PIN_FIELD_BASE(12612670x0080, 0x10, 11),
 PIN_FIELD_BASE(12712770x0080, 0x10, 21),
 PIN_FIELD_BASE(12812870x0080, 0x10, 31),
 PIN_FIELD_BASE(12912970x0080, 0x10, 41),
 PIN_FIELD_BASE(13013070x0080, 0x10, 51),
 PIN_FIELD_BASE(13113170x0080, 0x10, 91),
 PIN_FIELD_BASE(13213270x0080, 0x10, 111),
 PIN_FIELD_BASE(13313370x0080, 0x10, 101),
 PIN_FIELD_BASE(13413470x0080, 0x10, 61),
 PIN_FIELD_BASE(13513570x0080, 0x10, 81),
 PIN_FIELD_BASE(13613670x0080, 0x10, 71),
 PIN_FIELD_BASE(13713740x0070, 0x10, 101),
 PIN_FIELD_BASE(13813840x0070, 0x10, 111),
 PIN_FIELD_BASE(13913940x0070, 0x10, 121),
 PIN_FIELD_BASE(14014040x0070, 0x10, 131),
 PIN_FIELD_BASE(14114140x0070, 0x10, 141),
 PIN_FIELD_BASE(14214240x0070, 0x10, 151),
 PIN_FIELD_BASE(14314340x0070, 0x10, 161),
 PIN_FIELD_BASE(14414440x0070, 0x10, 171),
 PIN_FIELD_BASE(14514540x0070, 0x10, 01),
 PIN_FIELD_BASE(14614640x0070, 0x10, 11),
 PIN_FIELD_BASE(14714740x0070, 0x10, 21),
 PIN_FIELD_BASE(14814840x0070, 0x10, 31),
 PIN_FIELD_BASE(14914940x0070, 0x10, 41),
 PIN_FIELD_BASE(15015040x0070, 0x10, 51),
 PIN_FIELD_BASE(15115140x0070, 0x10, 61),
 PIN_FIELD_BASE(15215240x0070, 0x10, 71),
 PIN_FIELD_BASE(15315340x0070, 0x10, 91),
 PIN_FIELD_BASE(15415440x0070, 0x10, 81),
 PIN_FIELD_BASE(15515540x0070, 0x10, 181),
 PIN_FIELD_BASE(15615640x0070, 0x10, 191),
 PIN_FIELD_BASE(217217140x00a0, 0x10, 11),
 PIN_FIELD_BASE(218218140x00a0, 0x10, 21),
 PIN_FIELD_BASE(219219140x00a0, 0x10, 01),
 PIN_FIELD_BASE(224224140x00a0, 0x10, 31),
 PIN_FIELD_BASE(225225140x00a0, 0x10, 41),
 PIN_FIELD_BASE(226226140x00a0, 0x10, 51),
 PIN_FIELD_BASE(227227140x00a0, 0x10, 61),
 PIN_FIELD_BASE(228228140x00a0, 0x10, 71),
 PIN_FIELD_BASE(229229140x00a0, 0x10, 81),
 PIN_FIELD_BASE(259259140x00a0, 0x10, 91),
 PIN_FIELD_BASE(260260140x00a0, 0x10, 101),
 PIN_FIELD_BASE(261261140x00a0, 0x10, 111),
 PIN_FIELD_BASE(262262140x00a0, 0x10, 121),
 PIN_FIELD_BASE(263263140x00a0, 0x10, 131),
 PIN_FIELD_BASE(264264140x00a0, 0x10, 141),
 PIN_FIELD_BASE(265265140x00a0, 0x10, 151),
 PIN_FIELD_BASE(266266140x00a0, 0x10, 161),
 PIN_FIELD_BASE(267267150x0080, 0x10, 21),
 PIN_FIELD_BASE(268268150x0080, 0x10, 31),
 PIN_FIELD_BASE(269269150x0080, 0x10, 01),
 PIN_FIELD_BASE(270270150x0080, 0x10, 11),
};

static const struct mtk_pin_field_calc mt8196_pin_r0_range[] = {
 PIN_FIELD_BASE(606090x00d0, 0x10, 01),
 PIN_FIELD_BASE(12512570x0090, 0x10, 01),
 PIN_FIELD_BASE(12612670x0090, 0x10, 11),
 PIN_FIELD_BASE(12712770x0090, 0x10, 21),
 PIN_FIELD_BASE(12812870x0090, 0x10, 31),
 PIN_FIELD_BASE(12912970x0090, 0x10, 41),
 PIN_FIELD_BASE(13013070x0090, 0x10, 51),
 PIN_FIELD_BASE(13113170x0090, 0x10, 91),
 PIN_FIELD_BASE(13213270x0090, 0x10, 111),
 PIN_FIELD_BASE(13313370x0090, 0x10, 101),
 PIN_FIELD_BASE(13413470x0090, 0x10, 61),
 PIN_FIELD_BASE(13513570x0090, 0x10, 81),
 PIN_FIELD_BASE(13613670x0090, 0x10, 71),
 PIN_FIELD_BASE(13713740x0080, 0x10, 101),
 PIN_FIELD_BASE(13813840x0080, 0x10, 111),
 PIN_FIELD_BASE(13913940x0080, 0x10, 121),
 PIN_FIELD_BASE(14014040x0080, 0x10, 131),
 PIN_FIELD_BASE(14114140x0080, 0x10, 141),
 PIN_FIELD_BASE(14214240x0080, 0x10, 151),
 PIN_FIELD_BASE(14314340x0080, 0x10, 161),
 PIN_FIELD_BASE(14414440x0080, 0x10, 171),
 PIN_FIELD_BASE(14514540x0080, 0x10, 01),
 PIN_FIELD_BASE(14614640x0080, 0x10, 11),
 PIN_FIELD_BASE(14714740x0080, 0x10, 21),
 PIN_FIELD_BASE(14814840x0080, 0x10, 31),
 PIN_FIELD_BASE(14914940x0080, 0x10, 41),
 PIN_FIELD_BASE(15015040x0080, 0x10, 51),
 PIN_FIELD_BASE(15115140x0080, 0x10, 61),
 PIN_FIELD_BASE(15215240x0080, 0x10, 71),
 PIN_FIELD_BASE(15315340x0080, 0x10, 91),
 PIN_FIELD_BASE(15415440x0080, 0x10, 81),
 PIN_FIELD_BASE(15515540x0080, 0x10, 181),
 PIN_FIELD_BASE(15615640x0080, 0x10, 191),
 PIN_FIELD_BASE(217217140x00c0, 0x10, 11),
 PIN_FIELD_BASE(218218140x00c0, 0x10, 21),
 PIN_FIELD_BASE(219219140x00c0, 0x10, 01),
 PIN_FIELD_BASE(224224140x00c0, 0x10, 31),
 PIN_FIELD_BASE(225225140x00c0, 0x10, 41),
 PIN_FIELD_BASE(226226140x00c0, 0x10, 51),
 PIN_FIELD_BASE(227227140x00c0, 0x10, 61),
 PIN_FIELD_BASE(228228140x00c0, 0x10, 71),
 PIN_FIELD_BASE(229229140x00c0, 0x10, 81),
 PIN_FIELD_BASE(259259140x00c0, 0x10, 91),
 PIN_FIELD_BASE(260260140x00c0, 0x10, 101),
 PIN_FIELD_BASE(261261140x00c0, 0x10, 111),
 PIN_FIELD_BASE(262262140x00c0, 0x10, 121),
 PIN_FIELD_BASE(263263140x00c0, 0x10, 131),
 PIN_FIELD_BASE(264264140x00c0, 0x10, 141),
 PIN_FIELD_BASE(265265140x00c0, 0x10, 151),
 PIN_FIELD_BASE(266266140x00c0, 0x10, 161),
 PIN_FIELD_BASE(267267150x00a0, 0x10, 21),
 PIN_FIELD_BASE(268268150x00a0, 0x10, 31),
 PIN_FIELD_BASE(269269150x00a0, 0x10, 01),
 PIN_FIELD_BASE(270270150x00a0, 0x10, 11),
};

static const struct mtk_pin_field_calc mt8196_pin_r1_range[] = {
 PIN_FIELD_BASE(606090x00e0, 0x10, 01),
 PIN_FIELD_BASE(12512570x00a0, 0x10, 01),
 PIN_FIELD_BASE(12612670x00a0, 0x10, 11),
 PIN_FIELD_BASE(12712770x00a0, 0x10, 21),
 PIN_FIELD_BASE(12812870x00a0, 0x10, 31),
 PIN_FIELD_BASE(12912970x00a0, 0x10, 41),
 PIN_FIELD_BASE(13013070x00a0, 0x10, 51),
 PIN_FIELD_BASE(13113170x00a0, 0x10, 91),
 PIN_FIELD_BASE(13213270x00a0, 0x10, 111),
 PIN_FIELD_BASE(13313370x00a0, 0x10, 101),
 PIN_FIELD_BASE(13413470x00a0, 0x10, 61),
 PIN_FIELD_BASE(13513570x00a0, 0x10, 81),
 PIN_FIELD_BASE(13613670x00a0, 0x10, 71),
 PIN_FIELD_BASE(13713740x0090, 0x10, 101),
 PIN_FIELD_BASE(13813840x0090, 0x10, 111),
 PIN_FIELD_BASE(13913940x0090, 0x10, 121),
 PIN_FIELD_BASE(14014040x0090, 0x10, 131),
 PIN_FIELD_BASE(14114140x0090, 0x10, 141),
 PIN_FIELD_BASE(14214240x0090, 0x10, 151),
 PIN_FIELD_BASE(14314340x0090, 0x10, 161),
 PIN_FIELD_BASE(14414440x0090, 0x10, 171),
 PIN_FIELD_BASE(14514540x0090, 0x10, 01),
 PIN_FIELD_BASE(14614640x0090, 0x10, 11),
 PIN_FIELD_BASE(14714740x0090, 0x10, 21),
 PIN_FIELD_BASE(14814840x0090, 0x10, 31),
 PIN_FIELD_BASE(14914940x0090, 0x10, 41),
 PIN_FIELD_BASE(15015040x0090, 0x10, 51),
 PIN_FIELD_BASE(15115140x0090, 0x10, 61),
 PIN_FIELD_BASE(15215240x0090, 0x10, 71),
 PIN_FIELD_BASE(15315340x0090, 0x10, 91),
 PIN_FIELD_BASE(15415440x0090, 0x10, 81),
 PIN_FIELD_BASE(15515540x0090, 0x10, 181),
 PIN_FIELD_BASE(15615640x0090, 0x10, 191),
 PIN_FIELD_BASE(217217140x00d0, 0x10, 11),
 PIN_FIELD_BASE(218218140x00d0, 0x10, 21),
 PIN_FIELD_BASE(219219140x00d0, 0x10, 01),
 PIN_FIELD_BASE(224224140x00d0, 0x10, 31),
 PIN_FIELD_BASE(225225140x00d0, 0x10, 41),
 PIN_FIELD_BASE(226226140x00d0, 0x10, 51),
 PIN_FIELD_BASE(227227140x00d0, 0x10, 61),
 PIN_FIELD_BASE(228228140x00d0, 0x10, 71),
 PIN_FIELD_BASE(229229140x00d0, 0x10, 81),
 PIN_FIELD_BASE(259259140x00d0, 0x10, 91),
 PIN_FIELD_BASE(260260140x00d0, 0x10, 101),
 PIN_FIELD_BASE(261261140x00d0, 0x10, 111),
 PIN_FIELD_BASE(262262140x00d0, 0x10, 121),
 PIN_FIELD_BASE(263263140x00d0, 0x10, 131),
 PIN_FIELD_BASE(264264140x00d0, 0x10, 141),
 PIN_FIELD_BASE(265265140x00d0, 0x10, 151),
 PIN_FIELD_BASE(266266140x00d0, 0x10, 161),
 PIN_FIELD_BASE(267267150x00b0, 0x10, 21),
 PIN_FIELD_BASE(268268150x00b0, 0x10, 31),
 PIN_FIELD_BASE(269269150x00b0, 0x10, 01),
 PIN_FIELD_BASE(270270150x00b0, 0x10, 11),
};

static const struct mtk_pin_field_calc mt8196_pin_pu_range[] = {
 PIN_FIELD_BASE(0080x00a0, 0x10, 01),
 PIN_FIELD_BASE(1180x00a0, 0x10, 11),
 PIN_FIELD_BASE(22110x0080, 0x10, 11),
 PIN_FIELD_BASE(33110x0080, 0x10, 21),
 PIN_FIELD_BASE(44110x0080, 0x10, 31),
 PIN_FIELD_BASE(55110x0080, 0x10, 41),
 PIN_FIELD_BASE(66110x0080, 0x10, 51),
 PIN_FIELD_BASE(77110x0080, 0x10, 61),
 PIN_FIELD_BASE(88110x0080, 0x10, 71),
 PIN_FIELD_BASE(9990x00c0, 0x10, 141),
 PIN_FIELD_BASE(101090x00c0, 0x10, 121),
 PIN_FIELD_BASE(111180x00a0, 0x10, 21),
 PIN_FIELD_BASE(121290x00c0, 0x10, 131),
 PIN_FIELD_BASE(131360x00b0, 0x10, 11),
 PIN_FIELD_BASE(141430x0090, 0x10, 01),
 PIN_FIELD_BASE(151560x00b0, 0x10, 21),
 PIN_FIELD_BASE(161660x00b0, 0x10, 31),
 PIN_FIELD_BASE(171760x00b0, 0x10, 41),
 PIN_FIELD_BASE(181860x00b0, 0x10, 51),
 PIN_FIELD_BASE(191960x00b0, 0x10, 61),
 PIN_FIELD_BASE(202030x0090, 0x10, 11),
 PIN_FIELD_BASE(212120x0090, 0x10, 31),
 PIN_FIELD_BASE(222220x0090, 0x10, 41),
 PIN_FIELD_BASE(232320x0090, 0x10, 51),
 PIN_FIELD_BASE(242420x0090, 0x10, 61),
 PIN_FIELD_BASE(252520x0090, 0x10, 71),
 PIN_FIELD_BASE(262620x0090, 0x10, 81),
 PIN_FIELD_BASE(272720x0090, 0x10, 91),
 PIN_FIELD_BASE(282820x0090, 0x10, 101),
 PIN_FIELD_BASE(292920x0090, 0x10, 111),
 PIN_FIELD_BASE(303020x0090, 0x10, 121),
 PIN_FIELD_BASE(313120x0090, 0x10, 131),
 PIN_FIELD_BASE(323210x0090, 0x10, 81),
 PIN_FIELD_BASE(333310x0090, 0x10, 91),
 PIN_FIELD_BASE(343410x0090, 0x10, 101),
 PIN_FIELD_BASE(353510x0090, 0x10, 111),
 PIN_FIELD_BASE(363610x0090, 0x10, 121),
 PIN_FIELD_BASE(373710x0090, 0x10, 131),
 PIN_FIELD_BASE(383810x0090, 0x10, 141),
 PIN_FIELD_BASE(393980x00a0, 0x10, 61),
 PIN_FIELD_BASE(404080x00a0, 0x10, 31),
 PIN_FIELD_BASE(414180x00a0, 0x10, 51),
 PIN_FIELD_BASE(424280x00a0, 0x10, 41),
 PIN_FIELD_BASE(434380x00a0, 0x10, 71),
 PIN_FIELD_BASE(444480x00a0, 0x10, 81),
 PIN_FIELD_BASE(454580x00a0, 0x10, 91),
 PIN_FIELD_BASE(464680x00a0, 0x10, 101),
 PIN_FIELD_BASE(474780x00a0, 0x10, 131),
 PIN_FIELD_BASE(484880x00a0, 0x10, 111),
 PIN_FIELD_BASE(494980x00a0, 0x10, 141),
 PIN_FIELD_BASE(505080x00a0, 0x10, 121),
 PIN_FIELD_BASE(515180x00a0, 0x10, 151),
 PIN_FIELD_BASE(525290x00c0, 0x10, 71),
 PIN_FIELD_BASE(535390x00c0, 0x10, 81),
 PIN_FIELD_BASE(545490x00c0, 0x10, 21),
 PIN_FIELD_BASE(555590x00c0, 0x10, 11),
 PIN_FIELD_BASE(565690x00c0, 0x10, 51),
 PIN_FIELD_BASE(575790x00c0, 0x10, 61),
 PIN_FIELD_BASE(585890x00c0, 0x10, 31),
 PIN_FIELD_BASE(595990x00c0, 0x10, 41),
 PIN_FIELD_BASE(616190x00c0, 0x10, 101),
 PIN_FIELD_BASE(626290x00c0, 0x10, 91),
 PIN_FIELD_BASE(636390x00c0, 0x10, 181),
 PIN_FIELD_BASE(646490x00c0, 0x10, 01),
 PIN_FIELD_BASE(656590x00c0, 0x10, 111),
 PIN_FIELD_BASE(666690x00c0, 0x10, 241),
 PIN_FIELD_BASE(676790x00c0, 0x10, 211),
 PIN_FIELD_BASE(686890x00c0, 0x10, 201),
 PIN_FIELD_BASE(696990x00c0, 0x10, 251),
 PIN_FIELD_BASE(707090x00c0, 0x10, 161),
 PIN_FIELD_BASE(717190x00c0, 0x10, 151),
 PIN_FIELD_BASE(727290x00c0, 0x10, 231),
 PIN_FIELD_BASE(737390x00c0, 0x10, 191),
 PIN_FIELD_BASE(747490x00c0, 0x10, 171),
 PIN_FIELD_BASE(7575100x0090, 0x10, 21),
 PIN_FIELD_BASE(7676100x0090, 0x10, 31),
 PIN_FIELD_BASE(7777100x0090, 0x10, 41),
 PIN_FIELD_BASE(7878100x0090, 0x10, 51),
 PIN_FIELD_BASE(7979100x0090, 0x10, 01),
 PIN_FIELD_BASE(8080100x0090, 0x10, 11),
 PIN_FIELD_BASE(8181110x0080, 0x10, 91),
 PIN_FIELD_BASE(8282110x0080, 0x10, 101),
 PIN_FIELD_BASE(8383110x0080, 0x10, 121),
 PIN_FIELD_BASE(8484110x0080, 0x10, 111),
 PIN_FIELD_BASE(8585110x0080, 0x10, 131),
 PIN_FIELD_BASE(8686110x0080, 0x10, 141),
 PIN_FIELD_BASE(8787110x0080, 0x10, 161),
 PIN_FIELD_BASE(8888110x0080, 0x10, 151),
 PIN_FIELD_BASE(8989110x0080, 0x10, 01),
 PIN_FIELD_BASE(9090110x0080, 0x10, 81),
 PIN_FIELD_BASE(9191120x0090, 0x10, 61),
 PIN_FIELD_BASE(9292120x0090, 0x10, 71),
 PIN_FIELD_BASE(9393120x0090, 0x10, 81),
 PIN_FIELD_BASE(9494120x0090, 0x10, 41),
 PIN_FIELD_BASE(9595120x0090, 0x10, 11),
 PIN_FIELD_BASE(9696120x0090, 0x10, 31),
 PIN_FIELD_BASE(9797120x0090, 0x10, 21),
 PIN_FIELD_BASE(9898120x0090, 0x10, 51),
 PIN_FIELD_BASE(9999120x0090, 0x10, 91),
 PIN_FIELD_BASE(100100120x0090, 0x10, 121),
 PIN_FIELD_BASE(101101120x0090, 0x10, 101),
 PIN_FIELD_BASE(102102120x0090, 0x10, 131),
 PIN_FIELD_BASE(103103120x0090, 0x10, 01),
 PIN_FIELD_BASE(104104120x0090, 0x10, 111),
 PIN_FIELD_BASE(105105120x0090, 0x10, 141),
 PIN_FIELD_BASE(10610650x0090, 0x10, 01),
 PIN_FIELD_BASE(10710750x0090, 0x10, 11),
 PIN_FIELD_BASE(10810850x0090, 0x10, 31),
 PIN_FIELD_BASE(10910950x0090, 0x10, 21),
 PIN_FIELD_BASE(11011050x0090, 0x10, 41),
 PIN_FIELD_BASE(11111150x0090, 0x10, 51),
 PIN_FIELD_BASE(11211250x0090, 0x10, 71),
 PIN_FIELD_BASE(11311350x0090, 0x10, 61),
 PIN_FIELD_BASE(11411450x0090, 0x10, 81),
 PIN_FIELD_BASE(11511550x0090, 0x10, 91),
 PIN_FIELD_BASE(11611650x0090, 0x10, 111),
 PIN_FIELD_BASE(11711750x0090, 0x10, 101),
 PIN_FIELD_BASE(11811860x00b0, 0x10, 91),
 PIN_FIELD_BASE(11911960x00b0, 0x10, 101),
 PIN_FIELD_BASE(12012060x00b0, 0x10, 121),
 PIN_FIELD_BASE(12112160x00b0, 0x10, 111),
 PIN_FIELD_BASE(12212260x00b0, 0x10, 01),
 PIN_FIELD_BASE(12312360x00b0, 0x10, 71),
 PIN_FIELD_BASE(12412460x00b0, 0x10, 81),
 PIN_FIELD_BASE(15715720x0090, 0x10, 11),
 PIN_FIELD_BASE(15815820x0090, 0x10, 21),
 PIN_FIELD_BASE(15915920x0090, 0x10, 01),
 PIN_FIELD_BASE(16016030x0090, 0x10, 221),
 PIN_FIELD_BASE(16116130x0090, 0x10, 201),
 PIN_FIELD_BASE(16216230x0090, 0x10, 231),
 PIN_FIELD_BASE(16316330x0090, 0x10, 211),
 PIN_FIELD_BASE(16416430x0090, 0x10, 121),
 PIN_FIELD_BASE(16516530x0090, 0x10, 141),
 PIN_FIELD_BASE(16616630x0090, 0x10, 131),
 PIN_FIELD_BASE(16716730x0090, 0x10, 151),
 PIN_FIELD_BASE(16816830x0090, 0x10, 161),
 PIN_FIELD_BASE(16916930x0090, 0x10, 171),
 PIN_FIELD_BASE(17017030x0090, 0x10, 191),
 PIN_FIELD_BASE(17117130x0090, 0x10, 181),
 PIN_FIELD_BASE(17217230x0090, 0x10, 101),
 PIN_FIELD_BASE(17317330x0090, 0x10, 111),
 PIN_FIELD_BASE(17417410x0090, 0x10, 151),
 PIN_FIELD_BASE(17517510x0090, 0x10, 161),
 PIN_FIELD_BASE(17617610x0090, 0x10, 171),
 PIN_FIELD_BASE(17717710x0090, 0x10, 181),
 PIN_FIELD_BASE(17817810x0090, 0x10, 61),
 PIN_FIELD_BASE(17917910x0090, 0x10, 71),
 PIN_FIELD_BASE(18018010x0090, 0x10, 01),
 PIN_FIELD_BASE(18118110x0090, 0x10, 11),
 PIN_FIELD_BASE(18218210x0090, 0x10, 21),
 PIN_FIELD_BASE(18318310x0090, 0x10, 31),
 PIN_FIELD_BASE(18418410x0090, 0x10, 41),
 PIN_FIELD_BASE(18518510x0090, 0x10, 51),
 PIN_FIELD_BASE(186186130x00d0, 0x10, 41),
 PIN_FIELD_BASE(187187130x00d0, 0x10, 51),
 PIN_FIELD_BASE(188188130x00d0, 0x10, 121),
 PIN_FIELD_BASE(189189130x00d0, 0x10, 171),
 PIN_FIELD_BASE(190190130x00d0, 0x10, 131),
 PIN_FIELD_BASE(191191130x00d0, 0x10, 181),
 PIN_FIELD_BASE(192192130x00d0, 0x10, 01),
 PIN_FIELD_BASE(193193130x00d0, 0x10, 61),
 PIN_FIELD_BASE(194194130x00d0, 0x10, 141),
 PIN_FIELD_BASE(195195130x00d0, 0x10, 191),
 PIN_FIELD_BASE(196196130x00d0, 0x10, 11),
 PIN_FIELD_BASE(197197130x00d0, 0x10, 71),
 PIN_FIELD_BASE(198198130x00d0, 0x10, 151),
 PIN_FIELD_BASE(199199130x00d0, 0x10, 201),
 PIN_FIELD_BASE(200200130x00d0, 0x10, 221),
 PIN_FIELD_BASE(201201130x00d0, 0x10, 251),
 PIN_FIELD_BASE(202202130x00d0, 0x10, 161),
 PIN_FIELD_BASE(203203130x00d0, 0x10, 211),
 PIN_FIELD_BASE(204204130x00d0, 0x10, 21),
 PIN_FIELD_BASE(205205130x00d0, 0x10, 31),
 PIN_FIELD_BASE(206206130x00d0, 0x10, 81),
 PIN_FIELD_BASE(207207130x00d0, 0x10, 91),
 PIN_FIELD_BASE(208208130x00d0, 0x10, 101),
 PIN_FIELD_BASE(209209130x00d0, 0x10, 111),
 PIN_FIELD_BASE(210210140x00b0, 0x10, 01),
 PIN_FIELD_BASE(211211140x00b0, 0x10, 11),
 PIN_FIELD_BASE(212212140x00b0, 0x10, 21),
 PIN_FIELD_BASE(213213140x00b0, 0x10, 31),
 PIN_FIELD_BASE(214214130x00d0, 0x10, 231),
 PIN_FIELD_BASE(215215130x00d0, 0x10, 241),
 PIN_FIELD_BASE(216216140x00b0, 0x10, 41),
 PIN_FIELD_BASE(220220140x00b0, 0x10, 51),
 PIN_FIELD_BASE(221221140x00b0, 0x10, 61),
 PIN_FIELD_BASE(222222140x00b0, 0x10, 81),
 PIN_FIELD_BASE(223223140x00b0, 0x10, 71),
 PIN_FIELD_BASE(230230150x0090, 0x10, 131),
 PIN_FIELD_BASE(231231150x0090, 0x10, 141),
 PIN_FIELD_BASE(232232150x0090, 0x10, 101),
 PIN_FIELD_BASE(233233150x0090, 0x10, 01),
 PIN_FIELD_BASE(234234150x0090, 0x10, 31),
 PIN_FIELD_BASE(235235150x0090, 0x10, 11),
 PIN_FIELD_BASE(236236150x0090, 0x10, 21),
 PIN_FIELD_BASE(237237150x0090, 0x10, 61),
 PIN_FIELD_BASE(238238150x0090, 0x10, 51),
 PIN_FIELD_BASE(239239150x0090, 0x10, 191),
 PIN_FIELD_BASE(240240150x0090, 0x10, 181),
 PIN_FIELD_BASE(241241150x0090, 0x10, 161),
 PIN_FIELD_BASE(242242150x0090, 0x10, 171),
 PIN_FIELD_BASE(243243150x0090, 0x10, 151),
 PIN_FIELD_BASE(244244150x0090, 0x10, 121),
 PIN_FIELD_BASE(245245150x0090, 0x10, 91),
 PIN_FIELD_BASE(246246150x0090, 0x10, 81),
 PIN_FIELD_BASE(247247150x0090, 0x10, 71),
 PIN_FIELD_BASE(248248150x0090, 0x10, 41),
 PIN_FIELD_BASE(249249150x0090, 0x10, 201),
 PIN_FIELD_BASE(250250150x0090, 0x10, 111),
 PIN_FIELD_BASE(25125130x0090, 0x10, 21),
 PIN_FIELD_BASE(25225230x0090, 0x10, 31),
 PIN_FIELD_BASE(25325330x0090, 0x10, 41),
 PIN_FIELD_BASE(25425430x0090, 0x10, 51),
 PIN_FIELD_BASE(25525530x0090, 0x10, 61),
 PIN_FIELD_BASE(25625630x0090, 0x10, 71),
 PIN_FIELD_BASE(25725730x0090, 0x10, 81),
 PIN_FIELD_BASE(25825830x0090, 0x10, 91),
};

static const struct mtk_pin_field_calc mt8196_pin_pd_range[] = {
 PIN_FIELD_BASE(0080x0090, 0x10, 01),
 PIN_FIELD_BASE(1180x0090, 0x10, 11),
 PIN_FIELD_BASE(22110x0070, 0x10, 11),
 PIN_FIELD_BASE(33110x0070, 0x10, 21),
 PIN_FIELD_BASE(44110x0070, 0x10, 31),
 PIN_FIELD_BASE(55110x0070, 0x10, 41),
 PIN_FIELD_BASE(66110x0070, 0x10, 51),
 PIN_FIELD_BASE(77110x0070, 0x10, 61),
 PIN_FIELD_BASE(88110x0070, 0x10, 71),
 PIN_FIELD_BASE(9990x00a0, 0x10, 141),
 PIN_FIELD_BASE(101090x00a0, 0x10, 121),
 PIN_FIELD_BASE(111180x0090, 0x10, 21),
 PIN_FIELD_BASE(121290x00a0, 0x10, 131),
 PIN_FIELD_BASE(131360x0090, 0x10, 11),
 PIN_FIELD_BASE(141430x0080, 0x10, 01),
 PIN_FIELD_BASE(151560x0090, 0x10, 21),
 PIN_FIELD_BASE(161660x0090, 0x10, 31),
 PIN_FIELD_BASE(171760x0090, 0x10, 41),
 PIN_FIELD_BASE(181860x0090, 0x10, 51),
 PIN_FIELD_BASE(191960x0090, 0x10, 61),
 PIN_FIELD_BASE(202030x0080, 0x10, 11),
 PIN_FIELD_BASE(212120x0080, 0x10, 31),
 PIN_FIELD_BASE(222220x0080, 0x10, 41),
 PIN_FIELD_BASE(232320x0080, 0x10, 51),
 PIN_FIELD_BASE(242420x0080, 0x10, 61),
 PIN_FIELD_BASE(252520x0080, 0x10, 71),
 PIN_FIELD_BASE(262620x0080, 0x10, 81),
 PIN_FIELD_BASE(272720x0080, 0x10, 91),
 PIN_FIELD_BASE(282820x0080, 0x10, 101),
 PIN_FIELD_BASE(292920x0080, 0x10, 111),
 PIN_FIELD_BASE(303020x0080, 0x10, 121),
 PIN_FIELD_BASE(313120x0080, 0x10, 131),
 PIN_FIELD_BASE(323210x0080, 0x10, 81),
 PIN_FIELD_BASE(333310x0080, 0x10, 91),
 PIN_FIELD_BASE(343410x0080, 0x10, 101),
 PIN_FIELD_BASE(353510x0080, 0x10, 111),
 PIN_FIELD_BASE(363610x0080, 0x10, 121),
 PIN_FIELD_BASE(373710x0080, 0x10, 131),
 PIN_FIELD_BASE(383810x0080, 0x10, 141),
 PIN_FIELD_BASE(393980x0090, 0x10, 61),
 PIN_FIELD_BASE(404080x0090, 0x10, 31),
 PIN_FIELD_BASE(414180x0090, 0x10, 51),
 PIN_FIELD_BASE(424280x0090, 0x10, 41),
 PIN_FIELD_BASE(434380x0090, 0x10, 71),
 PIN_FIELD_BASE(444480x0090, 0x10, 81),
 PIN_FIELD_BASE(454580x0090, 0x10, 91),
 PIN_FIELD_BASE(464680x0090, 0x10, 101),
 PIN_FIELD_BASE(474780x0090, 0x10, 131),
 PIN_FIELD_BASE(484880x0090, 0x10, 111),
 PIN_FIELD_BASE(494980x0090, 0x10, 141),
 PIN_FIELD_BASE(505080x0090, 0x10, 121),
 PIN_FIELD_BASE(515180x0090, 0x10, 151),
 PIN_FIELD_BASE(525290x00a0, 0x10, 71),
 PIN_FIELD_BASE(535390x00a0, 0x10, 81),
 PIN_FIELD_BASE(545490x00a0, 0x10, 21),
 PIN_FIELD_BASE(555590x00a0, 0x10, 11),
 PIN_FIELD_BASE(565690x00a0, 0x10, 51),
 PIN_FIELD_BASE(575790x00a0, 0x10, 61),
 PIN_FIELD_BASE(585890x00a0, 0x10, 31),
 PIN_FIELD_BASE(595990x00a0, 0x10, 41),
 PIN_FIELD_BASE(616190x00a0, 0x10, 101),
 PIN_FIELD_BASE(626290x00a0, 0x10, 91),
 PIN_FIELD_BASE(636390x00a0, 0x10, 181),
 PIN_FIELD_BASE(646490x00a0, 0x10, 01),
 PIN_FIELD_BASE(656590x00a0, 0x10, 111),
 PIN_FIELD_BASE(666690x00a0, 0x10, 241),
 PIN_FIELD_BASE(676790x00a0, 0x10, 211),
 PIN_FIELD_BASE(686890x00a0, 0x10, 201),
 PIN_FIELD_BASE(696990x00a0, 0x10, 251),
 PIN_FIELD_BASE(707090x00a0, 0x10, 161),
 PIN_FIELD_BASE(717190x00a0, 0x10, 151),
 PIN_FIELD_BASE(727290x00a0, 0x10, 231),
 PIN_FIELD_BASE(737390x00a0, 0x10, 191),
 PIN_FIELD_BASE(747490x00a0, 0x10, 171),
 PIN_FIELD_BASE(7575100x0080, 0x10, 21),
 PIN_FIELD_BASE(7676100x0080, 0x10, 31),
 PIN_FIELD_BASE(7777100x0080, 0x10, 41),
 PIN_FIELD_BASE(7878100x0080, 0x10, 51),
 PIN_FIELD_BASE(7979100x0080, 0x10, 01),
 PIN_FIELD_BASE(8080100x0080, 0x10, 11),
 PIN_FIELD_BASE(8181110x0070, 0x10, 91),
 PIN_FIELD_BASE(8282110x0070, 0x10, 101),
 PIN_FIELD_BASE(8383110x0070, 0x10, 121),
 PIN_FIELD_BASE(8484110x0070, 0x10, 111),
 PIN_FIELD_BASE(8585110x0070, 0x10, 131),
 PIN_FIELD_BASE(8686110x0070, 0x10, 141),
 PIN_FIELD_BASE(8787110x0070, 0x10, 161),
 PIN_FIELD_BASE(8888110x0070, 0x10, 151),
 PIN_FIELD_BASE(8989110x0070, 0x10, 01),
 PIN_FIELD_BASE(9090110x0070, 0x10, 81),
 PIN_FIELD_BASE(9191120x0080, 0x10, 61),
 PIN_FIELD_BASE(9292120x0080, 0x10, 71),
 PIN_FIELD_BASE(9393120x0080, 0x10, 81),
 PIN_FIELD_BASE(9494120x0080, 0x10, 41),
 PIN_FIELD_BASE(9595120x0080, 0x10, 11),
 PIN_FIELD_BASE(9696120x0080, 0x10, 31),
 PIN_FIELD_BASE(9797120x0080, 0x10, 21),
 PIN_FIELD_BASE(9898120x0080, 0x10, 51),
 PIN_FIELD_BASE(9999120x0080, 0x10, 91),
 PIN_FIELD_BASE(100100120x0080, 0x10, 121),
 PIN_FIELD_BASE(101101120x0080, 0x10, 101),
 PIN_FIELD_BASE(102102120x0080, 0x10, 131),
 PIN_FIELD_BASE(103103120x0080, 0x10, 01),
 PIN_FIELD_BASE(104104120x0080, 0x10, 111),
 PIN_FIELD_BASE(105105120x0080, 0x10, 141),
 PIN_FIELD_BASE(10610650x0080, 0x10, 01),
 PIN_FIELD_BASE(10710750x0080, 0x10, 11),
 PIN_FIELD_BASE(10810850x0080, 0x10, 31),
 PIN_FIELD_BASE(10910950x0080, 0x10, 21),
 PIN_FIELD_BASE(11011050x0080, 0x10, 41),
 PIN_FIELD_BASE(11111150x0080, 0x10, 51),
 PIN_FIELD_BASE(11211250x0080, 0x10, 71),
 PIN_FIELD_BASE(11311350x0080, 0x10, 61),
 PIN_FIELD_BASE(11411450x0080, 0x10, 81),
 PIN_FIELD_BASE(11511550x0080, 0x10, 91),
 PIN_FIELD_BASE(11611650x0080, 0x10, 111),
 PIN_FIELD_BASE(11711750x0080, 0x10, 101),
 PIN_FIELD_BASE(11811860x0090, 0x10, 91),
 PIN_FIELD_BASE(11911960x0090, 0x10, 101),
 PIN_FIELD_BASE(12012060x0090, 0x10, 121),
 PIN_FIELD_BASE(12112160x0090, 0x10, 111),
 PIN_FIELD_BASE(12212260x0090, 0x10, 01),
 PIN_FIELD_BASE(12312360x0090, 0x10, 71),
 PIN_FIELD_BASE(12412460x0090, 0x10, 81),
 PIN_FIELD_BASE(15715720x0080, 0x10, 11),
 PIN_FIELD_BASE(15815820x0080, 0x10, 21),
 PIN_FIELD_BASE(15915920x0080, 0x10, 01),
 PIN_FIELD_BASE(16016030x0080, 0x10, 221),
 PIN_FIELD_BASE(16116130x0080, 0x10, 201),
 PIN_FIELD_BASE(16216230x0080, 0x10, 231),
 PIN_FIELD_BASE(16316330x0080, 0x10, 211),
 PIN_FIELD_BASE(16416430x0080, 0x10, 121),
 PIN_FIELD_BASE(16516530x0080, 0x10, 141),
 PIN_FIELD_BASE(16616630x0080, 0x10, 131),
 PIN_FIELD_BASE(16716730x0080, 0x10, 151),
 PIN_FIELD_BASE(16816830x0080, 0x10, 161),
 PIN_FIELD_BASE(16916930x0080, 0x10, 171),
 PIN_FIELD_BASE(17017030x0080, 0x10, 191),
 PIN_FIELD_BASE(17117130x0080, 0x10, 181),
 PIN_FIELD_BASE(17217230x0080, 0x10, 101),
 PIN_FIELD_BASE(17317330x0080, 0x10, 111),
 PIN_FIELD_BASE(17417410x0080, 0x10, 151),
 PIN_FIELD_BASE(17517510x0080, 0x10, 161),
 PIN_FIELD_BASE(17617610x0080, 0x10, 171),
 PIN_FIELD_BASE(17717710x0080, 0x10, 181),
 PIN_FIELD_BASE(17817810x0080, 0x10, 61),
 PIN_FIELD_BASE(17917910x0080, 0x10, 71),
 PIN_FIELD_BASE(18018010x0080, 0x10, 01),
 PIN_FIELD_BASE(18118110x0080, 0x10, 11),
 PIN_FIELD_BASE(18218210x0080, 0x10, 21),
 PIN_FIELD_BASE(18318310x0080, 0x10, 31),
 PIN_FIELD_BASE(18418410x0080, 0x10, 41),
 PIN_FIELD_BASE(18518510x0080, 0x10, 51),
 PIN_FIELD_BASE(186186130x00c0, 0x10, 41),
 PIN_FIELD_BASE(187187130x00c0, 0x10, 51),
 PIN_FIELD_BASE(188188130x00c0, 0x10, 121),
 PIN_FIELD_BASE(189189130x00c0, 0x10, 171),
 PIN_FIELD_BASE(190190130x00c0, 0x10, 131),
 PIN_FIELD_BASE(191191130x00c0, 0x10, 181),
 PIN_FIELD_BASE(192192130x00c0, 0x10, 01),
 PIN_FIELD_BASE(193193130x00c0, 0x10, 61),
 PIN_FIELD_BASE(194194130x00c0, 0x10, 141),
 PIN_FIELD_BASE(195195130x00c0, 0x10, 191),
 PIN_FIELD_BASE(196196130x00c0, 0x10, 11),
 PIN_FIELD_BASE(197197130x00c0, 0x10, 71),
 PIN_FIELD_BASE(198198130x00c0, 0x10, 151),
 PIN_FIELD_BASE(199199130x00c0, 0x10, 201),
 PIN_FIELD_BASE(200200130x00c0, 0x10, 221),
 PIN_FIELD_BASE(201201130x00c0, 0x10, 251),
 PIN_FIELD_BASE(202202130x00c0, 0x10, 161),
 PIN_FIELD_BASE(203203130x00c0, 0x10, 211),
 PIN_FIELD_BASE(204204130x00c0, 0x10, 21),
 PIN_FIELD_BASE(205205130x00c0, 0x10, 31),
 PIN_FIELD_BASE(206206130x00c0, 0x10, 81),
 PIN_FIELD_BASE(207207130x00c0, 0x10, 91),
 PIN_FIELD_BASE(208208130x00c0, 0x10, 101),
 PIN_FIELD_BASE(209209130x00c0, 0x10, 111),
 PIN_FIELD_BASE(210210140x0090, 0x10, 01),
 PIN_FIELD_BASE(211211140x0090, 0x10, 11),
 PIN_FIELD_BASE(212212140x0090, 0x10, 21),
 PIN_FIELD_BASE(213213140x0090, 0x10, 31),
 PIN_FIELD_BASE(214214130x00c0, 0x10, 231),
 PIN_FIELD_BASE(215215130x00c0, 0x10, 241),
 PIN_FIELD_BASE(216216140x0090, 0x10, 41),
 PIN_FIELD_BASE(220220140x0090, 0x10, 51),
 PIN_FIELD_BASE(221221140x0090, 0x10, 61),
 PIN_FIELD_BASE(222222140x0090, 0x10, 81),
 PIN_FIELD_BASE(223223140x0090, 0x10, 71),
 PIN_FIELD_BASE(230230150x0070, 0x10, 131),
 PIN_FIELD_BASE(231231150x0070, 0x10, 141),
 PIN_FIELD_BASE(232232150x0070, 0x10, 101),
 PIN_FIELD_BASE(233233150x0070, 0x10, 01),
 PIN_FIELD_BASE(234234150x0070, 0x10, 31),
 PIN_FIELD_BASE(235235150x0070, 0x10, 11),
 PIN_FIELD_BASE(236236150x0070, 0x10, 21),
 PIN_FIELD_BASE(237237150x0070, 0x10, 61),
 PIN_FIELD_BASE(238238150x0070, 0x10, 51),
 PIN_FIELD_BASE(239239150x0070, 0x10, 191),
 PIN_FIELD_BASE(240240150x0070, 0x10, 181),
 PIN_FIELD_BASE(241241150x0070, 0x10, 161),
 PIN_FIELD_BASE(242242150x0070, 0x10, 171),
 PIN_FIELD_BASE(243243150x0070, 0x10, 151),
 PIN_FIELD_BASE(244244150x0070, 0x10, 121),
 PIN_FIELD_BASE(245245150x0070, 0x10, 91),
 PIN_FIELD_BASE(246246150x0070, 0x10, 81),
 PIN_FIELD_BASE(247247150x0070, 0x10, 71),
 PIN_FIELD_BASE(248248150x0070, 0x10, 41),
 PIN_FIELD_BASE(249249150x0070, 0x10, 201),
 PIN_FIELD_BASE(250250150x0070, 0x10, 111),
 PIN_FIELD_BASE(25125130x0080, 0x10, 21),
 PIN_FIELD_BASE(25225230x0080, 0x10, 31),
 PIN_FIELD_BASE(25325330x0080, 0x10, 41),
 PIN_FIELD_BASE(25425430x0080, 0x10, 51),
 PIN_FIELD_BASE(25525530x0080, 0x10, 61),
 PIN_FIELD_BASE(25625630x0080, 0x10, 71),
 PIN_FIELD_BASE(25725730x0080, 0x10, 81),
 PIN_FIELD_BASE(25825830x0080, 0x10, 91),
};

static const struct mtk_pin_field_calc mt8196_pin_drv_range[] = {
 PIN_FIELD_BASE(0080x0000, 0x10, 03),
 PIN_FIELD_BASE(1180x0000, 0x10, 33),
 PIN_FIELD_BASE(22110x0000, 0x10, 123),
 PIN_FIELD_BASE(33110x0000, 0x10, 123),
 PIN_FIELD_BASE(44110x0000, 0x10, 153),
 PIN_FIELD_BASE(55110x0000, 0x10, 03),
 PIN_FIELD_BASE(66110x0000, 0x10, 33),
 PIN_FIELD_BASE(77110x0000, 0x10, 63),
 PIN_FIELD_BASE(88110x0000, 0x10, 93),
 PIN_FIELD_BASE(9990x0010, 0x10, 93),
 PIN_FIELD_BASE(101090x0010, 0x10, 63),
 PIN_FIELD_BASE(111180x0000, 0x10, 243),
 PIN_FIELD_BASE(121290x0010, 0x10, 153),
 PIN_FIELD_BASE(131360x0000, 0x10, 93),
 PIN_FIELD_BASE(141430x0000, 0x10, 03),
 PIN_FIELD_BASE(151560x0000, 0x10, 03),
 PIN_FIELD_BASE(161660x0000, 0x10, 93),
 PIN_FIELD_BASE(171760x0000, 0x10, 93),
 PIN_FIELD_BASE(181860x0000, 0x10, 33),
 PIN_FIELD_BASE(191960x0000, 0x10, 63),
 PIN_FIELD_BASE(202030x0000, 0x10, 93),
 PIN_FIELD_BASE(212120x0000, 0x10, 03),
 PIN_FIELD_BASE(222220x0000, 0x10, 33),
 PIN_FIELD_BASE(232320x0000, 0x10, 63),
 PIN_FIELD_BASE(242420x0000, 0x10, 93),
 PIN_FIELD_BASE(252520x0000, 0x10, 123),
 PIN_FIELD_BASE(262620x0000, 0x10, 153),
 PIN_FIELD_BASE(272720x0010, 0x10, 33),
 PIN_FIELD_BASE(282820x0000, 0x10, 183),
 PIN_FIELD_BASE(292920x0000, 0x10, 213),
 PIN_FIELD_BASE(303020x0000, 0x10, 243),
 PIN_FIELD_BASE(313120x0000, 0x10, 273),
 PIN_FIELD_BASE(323210x0000, 0x10, 213),
 PIN_FIELD_BASE(333310x0000, 0x10, 213),
 PIN_FIELD_BASE(343410x0000, 0x10, 213),
 PIN_FIELD_BASE(353510x0000, 0x10, 213),
 PIN_FIELD_BASE(363610x0000, 0x10, 213),
 PIN_FIELD_BASE(373710x0000, 0x10, 273),
 PIN_FIELD_BASE(383810x0000, 0x10, 183),
 PIN_FIELD_BASE(393980x0000, 0x10, 273),
 PIN_FIELD_BASE(404080x0000, 0x10, 63),
 PIN_FIELD_BASE(414180x0000, 0x10, 123),
 PIN_FIELD_BASE(424280x0000, 0x10, 93),
 PIN_FIELD_BASE(434380x0000, 0x10, 153),
 PIN_FIELD_BASE(444480x0000, 0x10, 183),
 PIN_FIELD_BASE(454580x0000, 0x10, 213),
 PIN_FIELD_BASE(464680x0010, 0x10, 03),
 PIN_FIELD_BASE(474780x0010, 0x10, 93),
 PIN_FIELD_BASE(484880x0010, 0x10, 33),
 PIN_FIELD_BASE(494980x0010, 0x10, 123),
 PIN_FIELD_BASE(505080x0010, 0x10, 63),
 PIN_FIELD_BASE(515180x0010, 0x10, 153),
 PIN_FIELD_BASE(525290x0000, 0x10, 213),
 PIN_FIELD_BASE(535390x0000, 0x10, 243),
 PIN_FIELD_BASE(545490x0000, 0x10, 63),
 PIN_FIELD_BASE(555590x0000, 0x10, 33),
 PIN_FIELD_BASE(565690x0000, 0x10, 153),
 PIN_FIELD_BASE(575790x0000, 0x10, 183),
 PIN_FIELD_BASE(585890x0000, 0x10, 93),
 PIN_FIELD_BASE(595990x0000, 0x10, 123),
 PIN_FIELD_BASE(606090x0010, 0x10, 243),
 PIN_FIELD_BASE(616190x0010, 0x10, 03),
 PIN_FIELD_BASE(626290x0000, 0x10, 273),
 PIN_FIELD_BASE(636390x0010, 0x10, 123),
 PIN_FIELD_BASE(646490x0000, 0x10, 03),
 PIN_FIELD_BASE(656590x0010, 0x10, 33),
 PIN_FIELD_BASE(666690x0010, 0x10, 273),
 PIN_FIELD_BASE(676790x0010, 0x10, 213),
 PIN_FIELD_BASE(686890x0010, 0x10, 213),
 PIN_FIELD_BASE(696990x0010, 0x10, 213),
 PIN_FIELD_BASE(707090x0010, 0x10, 183),
 PIN_FIELD_BASE(717190x0010, 0x10, 183),
 PIN_FIELD_BASE(727290x0010, 0x10, 213),
 PIN_FIELD_BASE(737390x0010, 0x10, 183),
 PIN_FIELD_BASE(747490x0010, 0x10, 183),
 PIN_FIELD_BASE(7575100x0000, 0x10, 63),
 PIN_FIELD_BASE(7676100x0000, 0x10, 93),
 PIN_FIELD_BASE(7777100x0000, 0x10, 123),
 PIN_FIELD_BASE(7878100x0000, 0x10, 153),
 PIN_FIELD_BASE(7979100x0000, 0x10, 03),
 PIN_FIELD_BASE(8080100x0000, 0x10, 33),
 PIN_FIELD_BASE(8181110x0000, 0x10, 183),
 PIN_FIELD_BASE(8282110x0000, 0x10, 213),
 PIN_FIELD_BASE(8383110x0000, 0x10, 273),
 PIN_FIELD_BASE(8484110x0000, 0x10, 243),
 PIN_FIELD_BASE(8585110x0010, 0x10, 03),
 PIN_FIELD_BASE(8686110x0010, 0x10, 33),
 PIN_FIELD_BASE(8787110x0010, 0x10, 93),
 PIN_FIELD_BASE(8888110x0010, 0x10, 63),
 PIN_FIELD_BASE(8989110x0000, 0x10, 123),
 PIN_FIELD_BASE(9090110x0000, 0x10, 123),
 PIN_FIELD_BASE(9191120x0000, 0x10, 153),
 PIN_FIELD_BASE(9292120x0000, 0x10, 153),
 PIN_FIELD_BASE(9393120x0000, 0x10, 153),
 PIN_FIELD_BASE(9494120x0000, 0x10, 123),
 PIN_FIELD_BASE(9595120x0000, 0x10, 03),
 PIN_FIELD_BASE(9696120x0000, 0x10, 63),
 PIN_FIELD_BASE(9797120x0000, 0x10, 33),
 PIN_FIELD_BASE(9898120x0000, 0x10, 93),
 PIN_FIELD_BASE(9999120x0000, 0x10, 183),
 PIN_FIELD_BASE(100100120x0000, 0x10, 273),
 PIN_FIELD_BASE(101101120x0000, 0x10, 213),
 PIN_FIELD_BASE(102102120x0010, 0x10, 03),
 PIN_FIELD_BASE(103103120x0000, 0x10, 123),
 PIN_FIELD_BASE(104104120x0000, 0x10, 243),
 PIN_FIELD_BASE(105105120x0010, 0x10, 33),
 PIN_FIELD_BASE(10610650x0000, 0x10, 03),
 PIN_FIELD_BASE(10710750x0000, 0x10, 33),
 PIN_FIELD_BASE(10810850x0000, 0x10, 93),
 PIN_FIELD_BASE(10910950x0000, 0x10, 63),
 PIN_FIELD_BASE(11011050x0000, 0x10, 123),
 PIN_FIELD_BASE(11111150x0000, 0x10, 153),
 PIN_FIELD_BASE(11211250x0000, 0x10, 213),
 PIN_FIELD_BASE(11311350x0000, 0x10, 183),
 PIN_FIELD_BASE(11411450x0000, 0x10, 243),
 PIN_FIELD_BASE(11511550x0000, 0x10, 273),
 PIN_FIELD_BASE(11611650x0010, 0x10, 33),
 PIN_FIELD_BASE(11711750x0010, 0x10, 03),
 PIN_FIELD_BASE(11811860x0000, 0x10, 183),
 PIN_FIELD_BASE(11911960x0000, 0x10, 213),
 PIN_FIELD_BASE(12012060x0000, 0x10, 273),
 PIN_FIELD_BASE(12112160x0000, 0x10, 243),
 PIN_FIELD_BASE(12212260x0000, 0x10, 93),
 PIN_FIELD_BASE(12312360x0000, 0x10, 123),
 PIN_FIELD_BASE(12412460x0000, 0x10, 153),
 PIN_FIELD_BASE(12512570x0000, 0x10, 03),
 PIN_FIELD_BASE(12612670x0000, 0x10, 33),
 PIN_FIELD_BASE(12712770x0000, 0x10, 63),
 PIN_FIELD_BASE(12812870x0000, 0x10, 93),
 PIN_FIELD_BASE(12912970x0000, 0x10, 123),
 PIN_FIELD_BASE(13013070x0000, 0x10, 153),
 PIN_FIELD_BASE(13113170x0000, 0x10, 273),
 PIN_FIELD_BASE(13213270x0010, 0x10, 33),
 PIN_FIELD_BASE(13313370x0010, 0x10, 03),
 PIN_FIELD_BASE(13413470x0000, 0x10, 183),
 PIN_FIELD_BASE(13513570x0000, 0x10, 243),
 PIN_FIELD_BASE(13613670x0000, 0x10, 213),
 PIN_FIELD_BASE(13713740x0000, 0x10, 63),
 PIN_FIELD_BASE(13813840x0000, 0x10, 93),
 PIN_FIELD_BASE(13913940x0000, 0x10, 123),
 PIN_FIELD_BASE(14014040x0000, 0x10, 153),
 PIN_FIELD_BASE(14114140x0000, 0x10, 183),
 PIN_FIELD_BASE(14214240x0000, 0x10, 213),
 PIN_FIELD_BASE(14314340x0000, 0x10, 243),
 PIN_FIELD_BASE(14414440x0000, 0x10, 273),
 PIN_FIELD_BASE(14514540x0010, 0x10, 03),
 PIN_FIELD_BASE(14614640x0010, 0x10, 03),
 PIN_FIELD_BASE(14714740x0000, 0x10, 03),
 PIN_FIELD_BASE(14814840x0000, 0x10, 33),
 PIN_FIELD_BASE(14914940x0010, 0x10, 33),
 PIN_FIELD_BASE(15015040x0010, 0x10, 33),
 PIN_FIELD_BASE(15115140x0010, 0x10, 33),
 PIN_FIELD_BASE(15215240x0010, 0x10, 33),
 PIN_FIELD_BASE(15315340x0010, 0x10, 123),
 PIN_FIELD_BASE(15415440x0010, 0x10, 93),
 PIN_FIELD_BASE(15515540x0010, 0x10, 63),
 PIN_FIELD_BASE(15615640x0010, 0x10, 63),
 PIN_FIELD_BASE(15715720x0010, 0x10, 03),
 PIN_FIELD_BASE(15815820x0010, 0x10, 03),
 PIN_FIELD_BASE(15915920x0010, 0x10, 03),
 PIN_FIELD_BASE(16016030x0000, 0x10, 33),
 PIN_FIELD_BASE(16116130x0000, 0x10, 63),
 PIN_FIELD_BASE(16216230x0000, 0x10, 63),
 PIN_FIELD_BASE(16316330x0000, 0x10, 63),
 PIN_FIELD_BASE(16416430x0000, 0x10, 183),
 PIN_FIELD_BASE(16516530x0000, 0x10, 243),
 PIN_FIELD_BASE(16616630x0000, 0x10, 213),
 PIN_FIELD_BASE(16716730x0000, 0x10, 273),
 PIN_FIELD_BASE(16816830x0010, 0x10, 03),
 PIN_FIELD_BASE(16916930x0010, 0x10, 33),
 PIN_FIELD_BASE(17017030x0010, 0x10, 93),
 PIN_FIELD_BASE(17117130x0010, 0x10, 63),
 PIN_FIELD_BASE(17217230x0000, 0x10, 93),
 PIN_FIELD_BASE(17317330x0000, 0x10, 93),
 PIN_FIELD_BASE(17417410x0000, 0x10, 273),
 PIN_FIELD_BASE(17517510x0000, 0x10, 273),
 PIN_FIELD_BASE(17617610x0010, 0x10, 03),
 PIN_FIELD_BASE(17717710x0010, 0x10, 33),
 PIN_FIELD_BASE(17817810x0000, 0x10, 243),
 PIN_FIELD_BASE(17917910x0000, 0x10, 243),
 PIN_FIELD_BASE(18018010x0000, 0x10, 03),
 PIN_FIELD_BASE(18118110x0000, 0x10, 33),
 PIN_FIELD_BASE(18218210x0000, 0x10, 63),
 PIN_FIELD_BASE(18318310x0000, 0x10, 93),
 PIN_FIELD_BASE(18418410x0000, 0x10, 123),
 PIN_FIELD_BASE(18518510x0000, 0x10, 153),
 PIN_FIELD_BASE(186186130x0010, 0x10, 123),
 PIN_FIELD_BASE(187187130x0010, 0x10, 123),
 PIN_FIELD_BASE(188188130x0000, 0x10, 123),
 PIN_FIELD_BASE(189189130x0000, 0x10, 273),
 PIN_FIELD_BASE(190190130x0000, 0x10, 153),
 PIN_FIELD_BASE(191191130x0010, 0x10, 03),
 PIN_FIELD_BASE(192192130x0000, 0x10, 03),
 PIN_FIELD_BASE(193193130x0010, 0x10, 153),
 PIN_FIELD_BASE(194194130x0000, 0x10, 183),
 PIN_FIELD_BASE(195195130x0010, 0x10, 33),
 PIN_FIELD_BASE(196196130x0000, 0x10, 33),
 PIN_FIELD_BASE(197197130x0010, 0x10, 183),
 PIN_FIELD_BASE(198198130x0000, 0x10, 213),
 PIN_FIELD_BASE(199199130x0010, 0x10, 63),
 PIN_FIELD_BASE(200200130x0010, 0x10, 273),
 PIN_FIELD_BASE(201201130x0020, 0x10, 63),
 PIN_FIELD_BASE(202202130x0000, 0x10, 243),
 PIN_FIELD_BASE(203203130x0010, 0x10, 93),
 PIN_FIELD_BASE(204204130x0000, 0x10, 63),
 PIN_FIELD_BASE(205205130x0000, 0x10, 93),
 PIN_FIELD_BASE(206206130x0010, 0x10, 243),
 PIN_FIELD_BASE(207207130x0010, 0x10, 213),
 PIN_FIELD_BASE(208208130x0010, 0x10, 213),
 PIN_FIELD_BASE(209209130x0010, 0x10, 213),
 PIN_FIELD_BASE(210210140x0000, 0x10, 03),
 PIN_FIELD_BASE(211211140x0000, 0x10, 33),
 PIN_FIELD_BASE(212212140x0000, 0x10, 63),
 PIN_FIELD_BASE(213213140x0000, 0x10, 93),
 PIN_FIELD_BASE(214214130x0020, 0x10, 03),
 PIN_FIELD_BASE(215215130x0020, 0x10, 33),
 PIN_FIELD_BASE(216216140x0010, 0x10, 63),
 PIN_FIELD_BASE(217217140x0010, 0x10, 63),
 PIN_FIELD_BASE(218218140x0000, 0x10, 153),
 PIN_FIELD_BASE(219219140x0000, 0x10, 123),
 PIN_FIELD_BASE(220220140x0020, 0x10, 33),
 PIN_FIELD_BASE(221221140x0020, 0x10, 63),
 PIN_FIELD_BASE(222222140x0020, 0x10, 123),
 PIN_FIELD_BASE(223223140x0020, 0x10, 93),
 PIN_FIELD_BASE(224224140x0000, 0x10, 183),
 PIN_FIELD_BASE(225225140x0000, 0x10, 213),
 PIN_FIELD_BASE(226226140x0000, 0x10, 243),
 PIN_FIELD_BASE(227227140x0000, 0x10, 273),
 PIN_FIELD_BASE(228228140x0010, 0x10, 03),
 PIN_FIELD_BASE(229229140x0010, 0x10, 33),
 PIN_FIELD_BASE(230230150x0000, 0x10, 03),
 PIN_FIELD_BASE(231231150x0000, 0x10, 03),
 PIN_FIELD_BASE(232232150x0000, 0x10, 03),
 PIN_FIELD_BASE(233233150x0000, 0x10, 33),
 PIN_FIELD_BASE(234234150x0000, 0x10, 33),
 PIN_FIELD_BASE(235235150x0000, 0x10, 33),
 PIN_FIELD_BASE(236236150x0000, 0x10, 33),
 PIN_FIELD_BASE(237237150x0000, 0x10, 63),
 PIN_FIELD_BASE(238238150x0000, 0x10, 63),
 PIN_FIELD_BASE(239239150x0000, 0x10, 63),
 PIN_FIELD_BASE(240240150x0000, 0x10, 63),
 PIN_FIELD_BASE(241241150x0000, 0x10, 93),
 PIN_FIELD_BASE(242242150x0000, 0x10, 93),
 PIN_FIELD_BASE(243243150x0000, 0x10, 93),
 PIN_FIELD_BASE(244244150x0000, 0x10, 93),
 PIN_FIELD_BASE(245245150x0000, 0x10, 123),
 PIN_FIELD_BASE(246246150x0000, 0x10, 153),
 PIN_FIELD_BASE(247247150x0000, 0x10, 153),
 PIN_FIELD_BASE(248248150x0000, 0x10, 123),
 PIN_FIELD_BASE(249249150x0000, 0x10, 123),
 PIN_FIELD_BASE(250250150x0000, 0x10, 123),
 PIN_FIELD_BASE(25125130x0000, 0x10, 93),
 PIN_FIELD_BASE(25225230x0000, 0x10, 123),
 PIN_FIELD_BASE(25325330x0000, 0x10, 123),
 PIN_FIELD_BASE(25425430x0000, 0x10, 123),
 PIN_FIELD_BASE(25525530x0000, 0x10, 123),
 PIN_FIELD_BASE(25625630x0000, 0x10, 153),
 PIN_FIELD_BASE(25725730x0000, 0x10, 153),
 PIN_FIELD_BASE(25825830x0000, 0x10, 153),
 PIN_FIELD_BASE(259259140x0010, 0x10, 93),
 PIN_FIELD_BASE(260260140x0010, 0x10, 123),
 PIN_FIELD_BASE(261261140x0010, 0x10, 153),
 PIN_FIELD_BASE(262262140x0010, 0x10, 183),
 PIN_FIELD_BASE(263263140x0010, 0x10, 213),
 PIN_FIELD_BASE(264264140x0010, 0x10, 243),
 PIN_FIELD_BASE(265265140x0010, 0x10, 273),
 PIN_FIELD_BASE(266266140x0020, 0x10, 03),
 PIN_FIELD_BASE(267267150x0000, 0x10, 243),
 PIN_FIELD_BASE(268268150x0000, 0x10, 273),
 PIN_FIELD_BASE(269269150x0000, 0x10, 183),
 PIN_FIELD_BASE(270270150x0000, 0x10, 213),
};

static const struct mtk_pin_field_calc mt8196_pin_drv_adv_range[] = {
 PIN_FIELD_BASE(464680x0030, 0x10, 03),
 PIN_FIELD_BASE(474780x0030, 0x10, 93),
 PIN_FIELD_BASE(484880x0030, 0x10, 33),
 PIN_FIELD_BASE(494980x0030, 0x10, 123),
 PIN_FIELD_BASE(505080x0030, 0x10, 63),
 PIN_FIELD_BASE(515180x0030, 0x10, 153),
 PIN_FIELD_BASE(525290x0030, 0x10, 03),
 PIN_FIELD_BASE(535390x0030, 0x10, 33),
 PIN_FIELD_BASE(7575100x0020, 0x10, 05),
 PIN_FIELD_BASE(7676100x0020, 0x10, 55),
 PIN_FIELD_BASE(7777100x0020, 0x10, 105),
 PIN_FIELD_BASE(7878100x0020, 0x10, 155),
 PIN_FIELD_BASE(9999120x0020, 0x10, 03),
 PIN_FIELD_BASE(100100120x0020, 0x10, 93),
 PIN_FIELD_BASE(101101120x0020, 0x10, 33),
 PIN_FIELD_BASE(102102120x0020, 0x10, 123),
 PIN_FIELD_BASE(104104120x0020, 0x10, 63),
 PIN_FIELD_BASE(105105120x0020, 0x10, 153),
 PIN_FIELD_BASE(12312360x0020, 0x10, 03),
 PIN_FIELD_BASE(12412460x0020, 0x10, 33),
 PIN_FIELD_BASE(16416430x0020, 0x10, 03),
 PIN_FIELD_BASE(16516530x0020, 0x10, 63),
 PIN_FIELD_BASE(16616630x0020, 0x10, 33),
 PIN_FIELD_BASE(16716730x0020, 0x10, 93),
 PIN_FIELD_BASE(16816830x0020, 0x10, 123),
 PIN_FIELD_BASE(17017030x0020, 0x10, 153),
 PIN_FIELD_BASE(17617610x0020, 0x10, 03),
 PIN_FIELD_BASE(17717710x0020, 0x10, 33),
 PIN_FIELD_BASE(188188130x0040, 0x10, 03),
 PIN_FIELD_BASE(189189130x0040, 0x10, 153),
 PIN_FIELD_BASE(190190130x0040, 0x10, 33),
 PIN_FIELD_BASE(191191130x0040, 0x10, 183),
 PIN_FIELD_BASE(194194130x0040, 0x10, 63),
 PIN_FIELD_BASE(195195130x0040, 0x10, 213),
 PIN_FIELD_BASE(198198130x0040, 0x10, 93),
 PIN_FIELD_BASE(199199130x0040, 0x10, 243),
 PIN_FIELD_BASE(200200130x0050, 0x10, 03),
 PIN_FIELD_BASE(201201130x0050, 0x10, 93),
 PIN_FIELD_BASE(202202130x0040, 0x10, 123),
 PIN_FIELD_BASE(203203130x0040, 0x10, 273),
 PIN_FIELD_BASE(214214130x0050, 0x10, 33),
 PIN_FIELD_BASE(215215130x0050, 0x10, 63),
};

static const struct mtk_pin_field_calc mt8196_pin_rsel_range[] = {
 PIN_FIELD_BASE(464680x00c0, 0x10, 03),
 PIN_FIELD_BASE(474780x00c0, 0x10, 93),
 PIN_FIELD_BASE(484880x00c0, 0x10, 33),
 PIN_FIELD_BASE(494980x00c0, 0x10, 123),
 PIN_FIELD_BASE(505080x00c0, 0x10, 63),
 PIN_FIELD_BASE(515180x00c0, 0x10, 153),
 PIN_FIELD_BASE(525290x0110, 0x10, 03),
 PIN_FIELD_BASE(535390x0110, 0x10, 33),
 PIN_FIELD_BASE(9999120x00b0, 0x10, 03),
 PIN_FIELD_BASE(100100120x00b0, 0x10, 93),
 PIN_FIELD_BASE(101101120x00b0, 0x10, 33),
 PIN_FIELD_BASE(102102120x00b0, 0x10, 123),
 PIN_FIELD_BASE(104104120x00b0, 0x10, 63),
 PIN_FIELD_BASE(105105120x00b0, 0x10, 153),
 PIN_FIELD_BASE(12312360x0100, 0x10, 03),
 PIN_FIELD_BASE(12412460x0100, 0x10, 33),
 PIN_FIELD_BASE(16416430x00b0, 0x10, 03),
 PIN_FIELD_BASE(16516530x00b0, 0x10, 63),
 PIN_FIELD_BASE(16616630x00b0, 0x10, 33),
 PIN_FIELD_BASE(16716730x00b0, 0x10, 93),
 PIN_FIELD_BASE(16816830x00b0, 0x10, 123),
 PIN_FIELD_BASE(17017030x00b0, 0x10, 153),
 PIN_FIELD_BASE(17617610x00b0, 0x10, 03),
 PIN_FIELD_BASE(17717710x00b0, 0x10, 33),
 PIN_FIELD_BASE(188188130x00f0, 0x10, 03),
 PIN_FIELD_BASE(189189130x00f0, 0x10, 153),
 PIN_FIELD_BASE(190190130x00f0, 0x10, 33),
 PIN_FIELD_BASE(191191130x00f0, 0x10, 183),
 PIN_FIELD_BASE(194194130x00f0, 0x10, 63),
 PIN_FIELD_BASE(195195130x00f0, 0x10, 213),
 PIN_FIELD_BASE(198198130x00f0, 0x10, 93),
 PIN_FIELD_BASE(199199130x00f0, 0x10, 243),
 PIN_FIELD_BASE(200200130x0100, 0x10, 03),
 PIN_FIELD_BASE(201201130x0100, 0x10, 93),
 PIN_FIELD_BASE(202202130x00f0, 0x10, 123),
 PIN_FIELD_BASE(203203130x00f0, 0x10, 273),
 PIN_FIELD_BASE(214214130x0100, 0x10, 33),
 PIN_FIELD_BASE(215215130x0100, 0x10, 63),
};

static const struct mtk_pin_rsel mt8196_pin_rsel_val_range[] = {
 PIN_RSEL(46530x0, 7500075000),
 PIN_RSEL(46530x1, 100005000),
 PIN_RSEL(46530x2, 500075000),
 PIN_RSEL(46530x3, 40005000),
 PIN_RSEL(46530x4, 300075000),
 PIN_RSEL(46530x5, 20005000),
 PIN_RSEL(46530x6, 150075000),
 PIN_RSEL(46530x7, 10005000),
 PIN_RSEL(991020x0, 7500075000),
 PIN_RSEL(991020x1, 100005000),
 PIN_RSEL(991020x2, 500075000),
 PIN_RSEL(991020x3, 40005000),
 PIN_RSEL(991020x4, 300075000),
 PIN_RSEL(991020x5, 20005000),
 PIN_RSEL(991020x6, 150075000),
 PIN_RSEL(991020x7, 10005000),
 PIN_RSEL(1041050x0, 7500075000),
 PIN_RSEL(1041050x1, 100005000),
 PIN_RSEL(1041050x2, 500075000),
 PIN_RSEL(1041050x3, 40005000),
 PIN_RSEL(1041050x4, 300075000),
 PIN_RSEL(1041050x5, 20005000),
 PIN_RSEL(1041050x6, 150075000),
 PIN_RSEL(1041050x7, 10005000),
 PIN_RSEL(1231240x0, 7500075000),
 PIN_RSEL(1231240x1, 100005000),
 PIN_RSEL(1231240x2, 500075000),
 PIN_RSEL(1231240x3, 40005000),
 PIN_RSEL(1231240x4, 300075000),
 PIN_RSEL(1231240x5, 20005000),
 PIN_RSEL(1231240x6, 150075000),
 PIN_RSEL(1231240x7, 10005000),
 PIN_RSEL(1641680x0, 7500075000),
 PIN_RSEL(1641680x1, 100005000),
 PIN_RSEL(1641680x2, 500075000),
 PIN_RSEL(1641680x3, 40005000),
 PIN_RSEL(1641680x4, 300075000),
 PIN_RSEL(1641680x5, 20005000),
 PIN_RSEL(1641680x6, 150075000),
 PIN_RSEL(1641680x7, 10005000),
 PIN_RSEL(1701700x0, 7500075000),
 PIN_RSEL(1701700x1, 100005000),
 PIN_RSEL(1701700x2, 500075000),
 PIN_RSEL(1701700x3, 40005000),
 PIN_RSEL(1701700x4, 300075000),
 PIN_RSEL(1701700x5, 20005000),
 PIN_RSEL(1701700x6, 150075000),
 PIN_RSEL(1701700x7, 10005000),
 PIN_RSEL(1761770x0, 7500075000),
 PIN_RSEL(1761770x1, 100005000),
 PIN_RSEL(1761770x2, 500075000),
 PIN_RSEL(1761770x3, 40005000),
 PIN_RSEL(1761770x4, 300075000),
 PIN_RSEL(1761770x5, 20005000),
 PIN_RSEL(1761770x6, 150075000),
 PIN_RSEL(1761770x7, 10005000),
 PIN_RSEL(1881910x0, 7500075000),
 PIN_RSEL(1881910x1, 100005000),
 PIN_RSEL(1881910x2, 500075000),
 PIN_RSEL(1881910x3, 40005000),
 PIN_RSEL(1881910x4, 300075000),
 PIN_RSEL(1881910x5, 20005000),
 PIN_RSEL(1881910x6, 150075000),
 PIN_RSEL(1881910x7, 10005000),
 PIN_RSEL(1941950x0, 7500075000),
 PIN_RSEL(1941950x1, 100005000),
 PIN_RSEL(1941950x2, 500075000),
 PIN_RSEL(1941950x3, 40005000),
 PIN_RSEL(1941950x4, 300075000),
 PIN_RSEL(1941950x5, 20005000),
 PIN_RSEL(1941950x6, 150075000),
 PIN_RSEL(1941950x7, 10005000),
 PIN_RSEL(1982030x0, 7500075000),
 PIN_RSEL(1982030x1, 100005000),
 PIN_RSEL(1982030x2, 500075000),
 PIN_RSEL(1982030x3, 40005000),
 PIN_RSEL(1982030x4, 300075000),
 PIN_RSEL(1982030x5, 20005000),
 PIN_RSEL(1982030x6, 150075000),
 PIN_RSEL(1982030x7, 10005000),
 PIN_RSEL(2142150x0, 7500075000),
 PIN_RSEL(2142150x1, 100005000),
 PIN_RSEL(2142150x2, 500075000),
 PIN_RSEL(2142150x3, 40005000),
 PIN_RSEL(2142150x4, 300075000),
 PIN_RSEL(2142150x5, 20005000),
 PIN_RSEL(2142150x6, 150075000),
 PIN_RSEL(2142150x7, 10005000),
};

static const unsigned int mt8196_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_PU_PD_TYPE,/*42*/ MTK_PULL_PU_PD_TYPE,/*43*/
 MTK_PULL_PU_PD_TYPE,/*44*/ MTK_PULL_PU_PD_TYPE,/*45*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*46*/ MTK_PULL_PU_PD_RSEL_TYPE,/*47*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*48*/ MTK_PULL_PU_PD_RSEL_TYPE,/*49*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*50*/ MTK_PULL_PU_PD_RSEL_TYPE,/*51*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*52*/ MTK_PULL_PU_PD_RSEL_TYPE,/*53*/
 MTK_PULL_PU_PD_TYPE,/*54*/ MTK_PULL_PU_PD_TYPE,/*55*/
 MTK_PULL_PU_PD_TYPE,/*56*/ MTK_PULL_PU_PD_TYPE,/*57*/
 MTK_PULL_PU_PD_TYPE,/*58*/ MTK_PULL_PU_PD_TYPE,/*59*/
 MTK_PULL_PUPD_R1R0_TYPE,/*60*/ MTK_PULL_PU_PD_TYPE,/*61*/
 MTK_PULL_PU_PD_TYPE,/*62*/ MTK_PULL_PU_PD_TYPE,/*63*/
 MTK_PULL_PU_PD_TYPE,/*64*/ MTK_PULL_PU_PD_TYPE,/*65*/
 MTK_PULL_PU_PD_TYPE,/*66*/ MTK_PULL_PU_PD_TYPE,/*67*/
 MTK_PULL_PU_PD_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_RSEL_TYPE,/*99*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*100*/ MTK_PULL_PU_PD_RSEL_TYPE,/*101*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*102*/ MTK_PULL_PU_PD_TYPE,/*103*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*104*/ MTK_PULL_PU_PD_RSEL_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_RSEL_TYPE,/*123*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*124*/ MTK_PULL_PUPD_R1R0_TYPE,/*125*/
 MTK_PULL_PUPD_R1R0_TYPE,/*126*/ MTK_PULL_PUPD_R1R0_TYPE,/*127*/
 MTK_PULL_PUPD_R1R0_TYPE,/*128*/ MTK_PULL_PUPD_R1R0_TYPE,/*129*/
 MTK_PULL_PUPD_R1R0_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_PU_PD_TYPE,/*157*/
 MTK_PULL_PU_PD_TYPE,/*158*/ MTK_PULL_PU_PD_TYPE,/*159*/
 MTK_PULL_PU_PD_TYPE,/*160*/ MTK_PULL_PU_PD_TYPE,/*161*/
 MTK_PULL_PU_PD_TYPE,/*162*/ MTK_PULL_PU_PD_TYPE,/*163*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*164*/ MTK_PULL_PU_PD_RSEL_TYPE,/*165*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*166*/ MTK_PULL_PU_PD_RSEL_TYPE,/*167*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*168*/ MTK_PULL_PU_PD_TYPE,/*169*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*170*/ MTK_PULL_PU_PD_TYPE,/*171*/
 MTK_PULL_PU_PD_TYPE,/*172*/ MTK_PULL_PU_PD_TYPE,/*173*/
 MTK_PULL_PU_PD_TYPE,/*174*/ MTK_PULL_PU_PD_TYPE,/*175*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*176*/ MTK_PULL_PU_PD_RSEL_TYPE,/*177*/
 MTK_PULL_PU_PD_TYPE,/*178*/ MTK_PULL_PU_PD_TYPE,/*179*/
 MTK_PULL_PU_PD_TYPE,/*180*/ MTK_PULL_PU_PD_TYPE,/*181*/
 MTK_PULL_PU_PD_TYPE,/*182*/ MTK_PULL_PU_PD_TYPE,/*183*/
 MTK_PULL_PU_PD_TYPE,/*184*/ MTK_PULL_PU_PD_TYPE,/*185*/
 MTK_PULL_PU_PD_TYPE,/*186*/ MTK_PULL_PU_PD_TYPE,/*187*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*188*/ MTK_PULL_PU_PD_RSEL_TYPE,/*189*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*190*/ MTK_PULL_PU_PD_RSEL_TYPE,/*191*/
 MTK_PULL_PU_PD_TYPE,/*192*/ MTK_PULL_PU_PD_TYPE,/*193*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*194*/ MTK_PULL_PU_PD_RSEL_TYPE,/*195*/
 MTK_PULL_PU_PD_TYPE,/*196*/ MTK_PULL_PU_PD_TYPE,/*197*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*198*/ MTK_PULL_PU_PD_RSEL_TYPE,/*199*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*200*/ MTK_PULL_PU_PD_RSEL_TYPE,/*201*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*202*/ MTK_PULL_PU_PD_RSEL_TYPE,/*203*/
 MTK_PULL_PU_PD_TYPE,/*204*/ MTK_PULL_PU_PD_TYPE,/*205*/
 MTK_PULL_PU_PD_TYPE,/*206*/ MTK_PULL_PU_PD_TYPE,/*207*/
 MTK_PULL_PU_PD_TYPE,/*208*/ MTK_PULL_PU_PD_TYPE,/*209*/
 MTK_PULL_PU_PD_TYPE,/*210*/ MTK_PULL_PU_PD_TYPE,/*211*/
 MTK_PULL_PU_PD_TYPE,/*212*/ MTK_PULL_PU_PD_TYPE,/*213*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*214*/ MTK_PULL_PU_PD_RSEL_TYPE,/*215*/
 MTK_PULL_PU_PD_TYPE,/*216*/ MTK_PULL_PUPD_R1R0_TYPE,/*217*/
 MTK_PULL_PUPD_R1R0_TYPE,/*218*/ MTK_PULL_PUPD_R1R0_TYPE,/*219*/
 MTK_PULL_PU_PD_TYPE,/*220*/ MTK_PULL_PU_PD_TYPE,/*221*/
 MTK_PULL_PU_PD_TYPE,/*222*/ MTK_PULL_PU_PD_TYPE,/*223*/
 MTK_PULL_PUPD_R1R0_TYPE,/*224*/ MTK_PULL_PUPD_R1R0_TYPE,/*225*/
 MTK_PULL_PUPD_R1R0_TYPE,/*226*/ MTK_PULL_PUPD_R1R0_TYPE,/*227*/
 MTK_PULL_PUPD_R1R0_TYPE,/*228*/ MTK_PULL_PUPD_R1R0_TYPE,/*229*/
 MTK_PULL_PU_PD_TYPE,/*230*/ MTK_PULL_PU_PD_TYPE,/*231*/
 MTK_PULL_PU_PD_TYPE,/*232*/ MTK_PULL_PU_PD_TYPE,/*233*/
 MTK_PULL_PU_PD_TYPE,/*234*/ MTK_PULL_PU_PD_TYPE,/*235*/
 MTK_PULL_PU_PD_TYPE,/*236*/ MTK_PULL_PU_PD_TYPE,/*237*/
 MTK_PULL_PU_PD_TYPE,/*238*/ MTK_PULL_PU_PD_TYPE,/*239*/
 MTK_PULL_PU_PD_TYPE,/*240*/ MTK_PULL_PU_PD_TYPE,/*241*/
 MTK_PULL_PU_PD_TYPE,/*242*/ MTK_PULL_PU_PD_TYPE,/*243*/
 MTK_PULL_PU_PD_TYPE,/*244*/ MTK_PULL_PU_PD_TYPE,/*245*/
 MTK_PULL_PU_PD_TYPE,/*246*/ MTK_PULL_PU_PD_TYPE,/*247*/
 MTK_PULL_PU_PD_TYPE,/*248*/ MTK_PULL_PU_PD_TYPE,/*249*/
 MTK_PULL_PU_PD_TYPE,/*250*/ MTK_PULL_PU_PD_TYPE,/*251*/
 MTK_PULL_PU_PD_TYPE,/*252*/ MTK_PULL_PU_PD_TYPE,/*253*/
 MTK_PULL_PU_PD_TYPE,/*254*/ MTK_PULL_PU_PD_TYPE,/*255*/
 MTK_PULL_PU_PD_TYPE,/*256*/ MTK_PULL_PU_PD_TYPE,/*257*/
 MTK_PULL_PU_PD_TYPE,/*258*/ MTK_PULL_PUPD_R1R0_TYPE,/*259*/
 MTK_PULL_PUPD_R1R0_TYPE,/*260*/ MTK_PULL_PUPD_R1R0_TYPE,/*261*/
 MTK_PULL_PUPD_R1R0_TYPE,/*262*/ MTK_PULL_PUPD_R1R0_TYPE,/*263*/
 MTK_PULL_PUPD_R1R0_TYPE,/*264*/ MTK_PULL_PUPD_R1R0_TYPE,/*265*/
 MTK_PULL_PUPD_R1R0_TYPE,/*266*/ MTK_PULL_PUPD_R1R0_TYPE,/*267*/
 MTK_PULL_PUPD_R1R0_TYPE,/*268*/ MTK_PULL_PUPD_R1R0_TYPE,/*269*/
 MTK_PULL_PUPD_R1R0_TYPE,/*270*/
};

static const struct mtk_pin_reg_calc mt8196_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8196_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8196_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8196_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8196_pin_do_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8196_pin_smt_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8196_pin_ies_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8196_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8196_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8196_pin_r1_range),
 [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8196_pin_pu_range),
 [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8196_pin_pd_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8196_pin_drv_range),
 [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8196_pin_drv_adv_range),
 [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8196_pin_rsel_range),
};

static const char * const mt8196_pinctrl_register_base_names[] = {
 "iocfg0""iocfg_rt""iocfg_rm1""iocfg_rm2",
 "iocfg_rb""iocfg_bm1""iocfg_bm2""iocfg_bm3",
 "iocfg_lt""iocfg_lm1""iocfg_lm2""iocfg_lb1",
 "iocfg_lb2""iocfg_tm1""iocfg_tm2""iocfg_tm3",
};

static const struct mtk_eint_hw mt8196_eint_hw = {
 .port_mask = 0xf,
 .ports     = 3,
 .ap_num    = 293,
 .db_cnt    = 32,
 .db_time   = debounce_time_mt6765,
};

static const struct mtk_pin_soc mt8196_data = {
 .reg_cal = mt8196_reg_cals,
 .pins = mtk_pins_mt8196,
 .npins = ARRAY_SIZE(mtk_pins_mt8196),
 .ngrps = ARRAY_SIZE(mtk_pins_mt8196),
 .eint_hw = &mt8196_eint_hw,
 .eint_pin = eint_pins_mt8196,
 .nfuncs = 8,
 .gpio_m = 0,
 .base_names = mt8196_pinctrl_register_base_names,
 .nbase_names = ARRAY_SIZE(mt8196_pinctrl_register_base_names),
 .pull_type = mt8196_pull_type,
 .pin_rsel = mt8196_pin_rsel_val_range,
 .npin_rsel = ARRAY_SIZE(mt8196_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_get = mtk_pinconf_adv_drive_get_raw,
 .adv_drive_set = mtk_pinconf_adv_drive_set_raw,
};

static const struct of_device_id mt8196_pinctrl_of_match[] = {
 { .compatible = "mediatek,mt8196-pinctrl", .data = &mt8196_data },
 { /* sentinel */ }
};

static struct platform_driver mt8196_pinctrl_driver = {
 .driver = {
  .name = "mt8196-pinctrl",
  .of_match_table = mt8196_pinctrl_of_match,
  .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops),
 },
 .probe = mtk_paris_pinctrl_probe,
};

static int __init mt8196_pinctrl_init(void)
{
 return platform_driver_register(&mt8196_pinctrl_driver);
}
arch_initcall(mt8196_pinctrl_init);

MODULE_DESCRIPTION("MediaTek MT8196 Pinctrl Driver");

Messung V0.5 in Prozent
C=94 H=96 G=94

¤ Dauer der Verarbeitung: 0.58 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.