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

Quelle  pinctrl-mt8192.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2019 MediaTek Inc.
 * Author: Zhiyong Tao <zhiyong.tao@mediatek.com>
 *
 */


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

/* MT8192 have multiple bases to program pin configuration listed as the below:
 * iocfg0:0x10005000, iocfg_rm:0x11C20000, iocfg_bm:0x11D10000,
 * iocfg_bl:0x11D30000, iocfg_br:0x11D40000, iocfg_lm:0x11E20000,
 * iocfg_lb:0x11E70000, iocfg_rt:0x11EA0000, iocfg_lt:0x11F20000,
 * iocfg_tl:0x11F30000
 * _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 mt8192_pin_mode_range[] = {
 PIN_FIELD(02280x300, 0x10, 04),
};

static const struct mtk_pin_field_calc mt8192_pin_dir_range[] = {
 PIN_FIELD(02280x0, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8192_pin_di_range[] = {
 PIN_FIELD(02280x200, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8192_pin_do_range[] = {
 PIN_FIELD(02280x100, 0x10, 01),
};

static const struct mtk_pin_field_calc mt8192_pin_smt_range[] = {
 PIN_FIELD_BASE(0040x00f0, 0x10, 81),
 PIN_FIELD_BASE(1140x00f0, 0x10, 81),
 PIN_FIELD_BASE(2240x00f0, 0x10, 81),
 PIN_FIELD_BASE(3340x00f0, 0x10, 81),
 PIN_FIELD_BASE(4440x00f0, 0x10, 81),
 PIN_FIELD_BASE(5540x00f0, 0x10, 91),
 PIN_FIELD_BASE(6640x00f0, 0x10, 91),
 PIN_FIELD_BASE(7740x00f0, 0x10, 91),
 PIN_FIELD_BASE(8840x00f0, 0x10, 91),
 PIN_FIELD_BASE(9940x00f0, 0x10, 51),
 PIN_FIELD_BASE(101060x0070, 0x10, 01),
 PIN_FIELD_BASE(111160x0070, 0x10, 11),
 PIN_FIELD_BASE(121260x0070, 0x10, 21),
 PIN_FIELD_BASE(131360x0070, 0x10, 31),
 PIN_FIELD_BASE(141460x0070, 0x10, 41),
 PIN_FIELD_BASE(151560x0070, 0x10, 51),
 PIN_FIELD_BASE(161680x0080, 0x10, 01),
 PIN_FIELD_BASE(171780x0080, 0x10, 01),
 PIN_FIELD_BASE(181870x0100, 0x10, 41),
 PIN_FIELD_BASE(191970x0100, 0x10, 41),
 PIN_FIELD_BASE(202070x0100, 0x10, 51),
 PIN_FIELD_BASE(212170x0100, 0x10, 51),
 PIN_FIELD_BASE(222220x00c0, 0x10, 31),
 PIN_FIELD_BASE(232320x00c0, 0x10, 31),
 PIN_FIELD_BASE(242420x00c0, 0x10, 31),
 PIN_FIELD_BASE(252520x00c0, 0x10, 31),
 PIN_FIELD_BASE(262630x00a0, 0x10, 101),
 PIN_FIELD_BASE(272730x00a0, 0x10, 101),
 PIN_FIELD_BASE(282830x00a0, 0x10, 111),
 PIN_FIELD_BASE(292930x00a0, 0x10, 111),
 PIN_FIELD_BASE(303030x00a0, 0x10, 111),
 PIN_FIELD_BASE(313130x00a0, 0x10, 111),
 PIN_FIELD_BASE(323230x00a0, 0x10, 121),
 PIN_FIELD_BASE(333330x00a0, 0x10, 121),
 PIN_FIELD_BASE(343430x00a0, 0x10, 121),
 PIN_FIELD_BASE(353530x00a0, 0x10, 121),
 PIN_FIELD_BASE(363620x00c0, 0x10, 21),
 PIN_FIELD_BASE(373720x00c0, 0x10, 21),
 PIN_FIELD_BASE(383820x00c0, 0x10, 21),
 PIN_FIELD_BASE(393920x00c0, 0x10, 21),
 PIN_FIELD_BASE(404080x0080, 0x10, 01),
 PIN_FIELD_BASE(414180x0080, 0x10, 01),
 PIN_FIELD_BASE(424280x0080, 0x10, 11),
 PIN_FIELD_BASE(434370x0100, 0x10, 41),
 PIN_FIELD_BASE(444470x0100, 0x10, 41),
 PIN_FIELD_BASE(454510x00c0, 0x10, 121),
 PIN_FIELD_BASE(464610x00c0, 0x10, 121),
 PIN_FIELD_BASE(474710x00c0, 0x10, 121),
 PIN_FIELD_BASE(484810x00c0, 0x10, 131),
 PIN_FIELD_BASE(494910x00c0, 0x10, 131),
 PIN_FIELD_BASE(505010x00c0, 0x10, 131),
 PIN_FIELD_BASE(515110x00c0, 0x10, 41),
 PIN_FIELD_BASE(525210x00c0, 0x10, 51),
 PIN_FIELD_BASE(535310x00c0, 0x10, 91),
 PIN_FIELD_BASE(545410x00c0, 0x10, 61),
 PIN_FIELD_BASE(555510x00c0, 0x10, 81),
 PIN_FIELD_BASE(565610x00c0, 0x10, 71),
 PIN_FIELD_BASE(575730x00a0, 0x10, 81),
 PIN_FIELD_BASE(585830x00a0, 0x10, 81),
 PIN_FIELD_BASE(595930x00a0, 0x10, 91),
 PIN_FIELD_BASE(606030x00a0, 0x10, 91),
 PIN_FIELD_BASE(616130x00a0, 0x10, 101),
 PIN_FIELD_BASE(626230x00a0, 0x10, 101),
 PIN_FIELD_BASE(636330x00a0, 0x10, 01),
 PIN_FIELD_BASE(646430x00a0, 0x10, 01),
 PIN_FIELD_BASE(656530x00a0, 0x10, 01),
 PIN_FIELD_BASE(666630x00a0, 0x10, 01),
 PIN_FIELD_BASE(676730x00a0, 0x10, 11),
 PIN_FIELD_BASE(686830x00a0, 0x10, 11),
 PIN_FIELD_BASE(696930x00a0, 0x10, 11),
 PIN_FIELD_BASE(707030x00a0, 0x10, 11),
 PIN_FIELD_BASE(717130x00a0, 0x10, 21),
 PIN_FIELD_BASE(727230x00a0, 0x10, 21),
 PIN_FIELD_BASE(737330x00a0, 0x10, 21),
 PIN_FIELD_BASE(747430x00a0, 0x10, 21),
 PIN_FIELD_BASE(757530x00a0, 0x10, 31),
 PIN_FIELD_BASE(767630x00a0, 0x10, 31),
 PIN_FIELD_BASE(777730x00a0, 0x10, 31),
 PIN_FIELD_BASE(787830x00a0, 0x10, 31),
 PIN_FIELD_BASE(797930x00a0, 0x10, 41),
 PIN_FIELD_BASE(808030x00a0, 0x10, 41),
 PIN_FIELD_BASE(818130x00a0, 0x10, 41),
 PIN_FIELD_BASE(828230x00a0, 0x10, 41),
 PIN_FIELD_BASE(838330x00a0, 0x10, 51),
 PIN_FIELD_BASE(848430x00a0, 0x10, 51),
 PIN_FIELD_BASE(858530x00a0, 0x10, 71),
 PIN_FIELD_BASE(868630x00a0, 0x10, 71),
 PIN_FIELD_BASE(878730x00a0, 0x10, 61),
 PIN_FIELD_BASE(888830x00a0, 0x10, 61),
 PIN_FIELD_BASE(898920x00c0, 0x10, 91),
 PIN_FIELD_BASE(909020x00c0, 0x10, 101),
 PIN_FIELD_BASE(919120x00c0, 0x10, 41),
 PIN_FIELD_BASE(929220x00c0, 0x10, 41),
 PIN_FIELD_BASE(939320x00c0, 0x10, 41),
 PIN_FIELD_BASE(949420x00c0, 0x10, 41),
 PIN_FIELD_BASE(959520x00c0, 0x10, 51),
 PIN_FIELD_BASE(969620x00c0, 0x10, 51),
 PIN_FIELD_BASE(979720x00c0, 0x10, 51),
 PIN_FIELD_BASE(989820x00c0, 0x10, 51),
 PIN_FIELD_BASE(999920x00c0, 0x10, 61),
 PIN_FIELD_BASE(10010020x00c0, 0x10, 61),
 PIN_FIELD_BASE(10110120x00c0, 0x10, 61),
 PIN_FIELD_BASE(10210220x00c0, 0x10, 61),
 PIN_FIELD_BASE(10310320x00c0, 0x10, 71),
 PIN_FIELD_BASE(10410420x00c0, 0x10, 71),
 PIN_FIELD_BASE(10510520x00c0, 0x10, 71),
 PIN_FIELD_BASE(10610620x00c0, 0x10, 71),
 PIN_FIELD_BASE(10710720x00c0, 0x10, 81),
 PIN_FIELD_BASE(10810820x00c0, 0x10, 81),
 PIN_FIELD_BASE(10910920x00c0, 0x10, 01),
 PIN_FIELD_BASE(11011020x00c0, 0x10, 81),
 PIN_FIELD_BASE(11111120x00c0, 0x10, 01),
 PIN_FIELD_BASE(11211220x00c0, 0x10, 01),
 PIN_FIELD_BASE(11311320x00c0, 0x10, 81),
 PIN_FIELD_BASE(11411420x00c0, 0x10, 11),
 PIN_FIELD_BASE(11511520x00c0, 0x10, 11),
 PIN_FIELD_BASE(11611620x00c0, 0x10, 11),
 PIN_FIELD_BASE(11711720x00c0, 0x10, 01),
 PIN_FIELD_BASE(11811840x00f0, 0x10, 121),
 PIN_FIELD_BASE(11911940x00f0, 0x10, 181),
 PIN_FIELD_BASE(12012040x00f0, 0x10, 171),
 PIN_FIELD_BASE(12112140x00f0, 0x10, 231),
 PIN_FIELD_BASE(12212240x00f0, 0x10, 161),
 PIN_FIELD_BASE(12312340x00f0, 0x10, 221),
 PIN_FIELD_BASE(12412440x00f0, 0x10, 151),
 PIN_FIELD_BASE(12512540x00f0, 0x10, 211),
 PIN_FIELD_BASE(12612640x00f0, 0x10, 61),
 PIN_FIELD_BASE(12712740x00f0, 0x10, 71),
 PIN_FIELD_BASE(12812840x00f0, 0x10, 101),
 PIN_FIELD_BASE(12912940x00f0, 0x10, 101),
 PIN_FIELD_BASE(13013040x00f0, 0x10, 31),
 PIN_FIELD_BASE(13113140x00f0, 0x10, 41),
 PIN_FIELD_BASE(13213240x00f0, 0x10, 111),
 PIN_FIELD_BASE(13313340x00f0, 0x10, 101),
 PIN_FIELD_BASE(13413440x00f0, 0x10, 101),
 PIN_FIELD_BASE(13513540x00f0, 0x10, 111),
 PIN_FIELD_BASE(13613640x00f0, 0x10, 01),
 PIN_FIELD_BASE(13713740x00f0, 0x10, 11),
 PIN_FIELD_BASE(13813840x00f0, 0x10, 21),
 PIN_FIELD_BASE(13913940x00f0, 0x10, 141),
 PIN_FIELD_BASE(14014040x00f0, 0x10, 201),
 PIN_FIELD_BASE(14114140x00f0, 0x10, 131),
 PIN_FIELD_BASE(14214240x00f0, 0x10, 191),
 PIN_FIELD_BASE(14314310x00c0, 0x10, 101),
 PIN_FIELD_BASE(14414410x00c0, 0x10, 101),
 PIN_FIELD_BASE(14514510x00c0, 0x10, 111),
 PIN_FIELD_BASE(14614610x00c0, 0x10, 101),
 PIN_FIELD_BASE(14714710x00c0, 0x10, 101),
 PIN_FIELD_BASE(14814810x00c0, 0x10, 31),
 PIN_FIELD_BASE(14914910x00c0, 0x10, 01),
 PIN_FIELD_BASE(15015010x00c0, 0x10, 11),
 PIN_FIELD_BASE(15115110x00c0, 0x10, 21),
 PIN_FIELD_BASE(15215270x0100, 0x10, 61),
 PIN_FIELD_BASE(15315370x0100, 0x10, 61),
 PIN_FIELD_BASE(15415470x0100, 0x10, 61),
 PIN_FIELD_BASE(15515570x0100, 0x10, 61),
 PIN_FIELD_BASE(15615670x0100, 0x10, 71),
 PIN_FIELD_BASE(15715770x0100, 0x10, 71),
 PIN_FIELD_BASE(15815870x0100, 0x10, 71),
 PIN_FIELD_BASE(15915970x0100, 0x10, 71),
 PIN_FIELD_BASE(16016070x0100, 0x10, 121),
 PIN_FIELD_BASE(16116170x0100, 0x10, 131),
 PIN_FIELD_BASE(16216270x0100, 0x10, 01),
 PIN_FIELD_BASE(16316370x0100, 0x10, 11),
 PIN_FIELD_BASE(16416470x0100, 0x10, 81),
 PIN_FIELD_BASE(16516570x0100, 0x10, 81),
 PIN_FIELD_BASE(16616670x0100, 0x10, 81),
 PIN_FIELD_BASE(16716770x0100, 0x10, 81),
 PIN_FIELD_BASE(16816870x0100, 0x10, 21),
 PIN_FIELD_BASE(16916970x0100, 0x10, 31),
 PIN_FIELD_BASE(17017070x0100, 0x10, 81),
 PIN_FIELD_BASE(17117170x0100, 0x10, 81),
 PIN_FIELD_BASE(17217270x0100, 0x10, 91),
 PIN_FIELD_BASE(17317370x0100, 0x10, 101),
 PIN_FIELD_BASE(17417470x0100, 0x10, 91),
 PIN_FIELD_BASE(17517570x0100, 0x10, 101),
 PIN_FIELD_BASE(17617670x0100, 0x10, 91),
 PIN_FIELD_BASE(17717770x0100, 0x10, 91),
 PIN_FIELD_BASE(17817870x0100, 0x10, 101),
 PIN_FIELD_BASE(17917970x0100, 0x10, 101),
 PIN_FIELD_BASE(18018070x0100, 0x10, 111),
 PIN_FIELD_BASE(18118170x0100, 0x10, 111),
 PIN_FIELD_BASE(18218270x0100, 0x10, 111),
 PIN_FIELD_BASE(18318390x0090, 0x10, 11),
 PIN_FIELD_BASE(18418490x0090, 0x10, 21),
 PIN_FIELD_BASE(18518590x0090, 0x10, 41),
 PIN_FIELD_BASE(18618690x0090, 0x10, 61),
 PIN_FIELD_BASE(18718790x0090, 0x10, 81),
 PIN_FIELD_BASE(18818890x0090, 0x10, 31),
 PIN_FIELD_BASE(18918990x0090, 0x10, 71),
 PIN_FIELD_BASE(19019090x0090, 0x10, 91),
 PIN_FIELD_BASE(19119190x0090, 0x10, 101),
 PIN_FIELD_BASE(19219290x0090, 0x10, 01),
 PIN_FIELD_BASE(19319390x0090, 0x10, 51),
 PIN_FIELD_BASE(19419490x0090, 0x10, 111),
 PIN_FIELD_BASE(19519550x0080, 0x10, 11),
 PIN_FIELD_BASE(19619650x0080, 0x10, 31),
 PIN_FIELD_BASE(19719750x0080, 0x10, 31),
 PIN_FIELD_BASE(19819850x0080, 0x10, 31),
 PIN_FIELD_BASE(19919950x0080, 0x10, 41),
 PIN_FIELD_BASE(20020080x0080, 0x10, 31),
 PIN_FIELD_BASE(20120180x0080, 0x10, 51),
 PIN_FIELD_BASE(20220250x0080, 0x10, 51),
 PIN_FIELD_BASE(20320350x0080, 0x10, 61),
 PIN_FIELD_BASE(20420480x0080, 0x10, 21),
 PIN_FIELD_BASE(20520580x0080, 0x10, 41),
 PIN_FIELD_BASE(20620650x0080, 0x10, 11),
 PIN_FIELD_BASE(20720750x0080, 0x10, 11),
 PIN_FIELD_BASE(20820850x0080, 0x10, 71),
 PIN_FIELD_BASE(20920950x0080, 0x10, 01),
 PIN_FIELD_BASE(21021050x0080, 0x10, 01),
 PIN_FIELD_BASE(21121150x0080, 0x10, 01),
 PIN_FIELD_BASE(21221250x0080, 0x10, 01),
 PIN_FIELD_BASE(21321350x0080, 0x10, 11),
 PIN_FIELD_BASE(21421450x0080, 0x10, 21),
 PIN_FIELD_BASE(21521550x0080, 0x10, 21),
 PIN_FIELD_BASE(21621650x0080, 0x10, 21),
 PIN_FIELD_BASE(21721750x0080, 0x10, 21),
 PIN_FIELD_BASE(21821850x0080, 0x10, 31),
 PIN_FIELD_BASE(21921950x0080, 0x10, 41),
};

static const struct mtk_pin_field_calc mt8192_pin_ies_range[] = {
 PIN_FIELD_BASE(0040x0070, 0x10, 91),
 PIN_FIELD_BASE(1140x0070, 0x10, 101),
 PIN_FIELD_BASE(2240x0070, 0x10, 111),
 PIN_FIELD_BASE(3340x0070, 0x10, 121),
 PIN_FIELD_BASE(4440x0070, 0x10, 131),
 PIN_FIELD_BASE(5540x0070, 0x10, 141),
 PIN_FIELD_BASE(6640x0070, 0x10, 151),
 PIN_FIELD_BASE(7740x0070, 0x10, 161),
 PIN_FIELD_BASE(8840x0070, 0x10, 171),
 PIN_FIELD_BASE(9940x0070, 0x10, 181),
 PIN_FIELD_BASE(101060x0010, 0x10, 01),
 PIN_FIELD_BASE(111160x0010, 0x10, 11),
 PIN_FIELD_BASE(121260x0010, 0x10, 21),
 PIN_FIELD_BASE(131360x0010, 0x10, 31),
 PIN_FIELD_BASE(141460x0010, 0x10, 41),
 PIN_FIELD_BASE(151560x0010, 0x10, 51),
 PIN_FIELD_BASE(161680x0030, 0x10, 21),
 PIN_FIELD_BASE(171780x0030, 0x10, 31),
 PIN_FIELD_BASE(181870x0050, 0x10, 211),
 PIN_FIELD_BASE(191970x0050, 0x10, 221),
 PIN_FIELD_BASE(202070x0050, 0x10, 231),
 PIN_FIELD_BASE(212170x0050, 0x10, 241),
 PIN_FIELD_BASE(222220x0050, 0x10, 31),
 PIN_FIELD_BASE(232320x0050, 0x10, 41),
 PIN_FIELD_BASE(242420x0050, 0x10, 51),
 PIN_FIELD_BASE(252520x0050, 0x10, 61),
 PIN_FIELD_BASE(262630x0040, 0x10, 51),
 PIN_FIELD_BASE(272730x0040, 0x10, 61),
 PIN_FIELD_BASE(282830x0040, 0x10, 71),
 PIN_FIELD_BASE(292930x0040, 0x10, 81),
 PIN_FIELD_BASE(303030x0040, 0x10, 91),
 PIN_FIELD_BASE(313130x0030, 0x10, 271),
 PIN_FIELD_BASE(323230x0030, 0x10, 241),
 PIN_FIELD_BASE(333330x0030, 0x10, 261),
 PIN_FIELD_BASE(343430x0030, 0x10, 231),
 PIN_FIELD_BASE(353530x0030, 0x10, 251),
 PIN_FIELD_BASE(363620x0050, 0x10, 201),
 PIN_FIELD_BASE(373720x0050, 0x10, 211),
 PIN_FIELD_BASE(383820x0050, 0x10, 221),
 PIN_FIELD_BASE(393920x0050, 0x10, 231),
 PIN_FIELD_BASE(404080x0030, 0x10, 01),
 PIN_FIELD_BASE(414180x0030, 0x10, 11),
 PIN_FIELD_BASE(424280x0030, 0x10, 41),
 PIN_FIELD_BASE(434370x0050, 0x10, 251),
 PIN_FIELD_BASE(444470x0050, 0x10, 261),
 PIN_FIELD_BASE(454510x0030, 0x10, 181),
 PIN_FIELD_BASE(464610x0030, 0x10, 201),
 PIN_FIELD_BASE(474710x0030, 0x10, 191),
 PIN_FIELD_BASE(484810x0030, 0x10, 161),
 PIN_FIELD_BASE(494910x0030, 0x10, 171),
 PIN_FIELD_BASE(505010x0030, 0x10, 151),
 PIN_FIELD_BASE(515110x0030, 0x10, 91),
 PIN_FIELD_BASE(525210x0030, 0x10, 101),
 PIN_FIELD_BASE(535310x0030, 0x10, 141),
 PIN_FIELD_BASE(545410x0030, 0x10, 111),
 PIN_FIELD_BASE(555510x0030, 0x10, 131),
 PIN_FIELD_BASE(565610x0030, 0x10, 121),
 PIN_FIELD_BASE(575730x0040, 0x10, 11),
 PIN_FIELD_BASE(585830x0040, 0x10, 21),
 PIN_FIELD_BASE(595930x0040, 0x10, 31),
 PIN_FIELD_BASE(606030x0040, 0x10, 41),
 PIN_FIELD_BASE(616130x0030, 0x10, 281),
 PIN_FIELD_BASE(626230x0030, 0x10, 221),
 PIN_FIELD_BASE(636330x0030, 0x10, 01),
 PIN_FIELD_BASE(646430x0030, 0x10, 11),
 PIN_FIELD_BASE(656530x0030, 0x10, 121),
 PIN_FIELD_BASE(666630x0030, 0x10, 151),
 PIN_FIELD_BASE(676730x0030, 0x10, 161),
 PIN_FIELD_BASE(686830x0030, 0x10, 171),
 PIN_FIELD_BASE(696930x0030, 0x10, 181),
 PIN_FIELD_BASE(707030x0030, 0x10, 191),
 PIN_FIELD_BASE(717130x0030, 0x10, 201),
 PIN_FIELD_BASE(727230x0030, 0x10, 211),
 PIN_FIELD_BASE(737330x0030, 0x10, 21),
 PIN_FIELD_BASE(747430x0030, 0x10, 31),
 PIN_FIELD_BASE(757530x0030, 0x10, 41),
 PIN_FIELD_BASE(767630x0030, 0x10, 51),
 PIN_FIELD_BASE(777730x0030, 0x10, 61),
 PIN_FIELD_BASE(787830x0030, 0x10, 71),
 PIN_FIELD_BASE(797930x0030, 0x10, 81),
 PIN_FIELD_BASE(808030x0030, 0x10, 91),
 PIN_FIELD_BASE(818130x0030, 0x10, 101),
 PIN_FIELD_BASE(828230x0030, 0x10, 111),
 PIN_FIELD_BASE(838330x0030, 0x10, 131),
 PIN_FIELD_BASE(848430x0030, 0x10, 141),
 PIN_FIELD_BASE(858530x0030, 0x10, 311),
 PIN_FIELD_BASE(868630x0040, 0x10, 01),
 PIN_FIELD_BASE(878730x0030, 0x10, 291),
 PIN_FIELD_BASE(888830x0030, 0x10, 301),
 PIN_FIELD_BASE(898920x0050, 0x10, 241),
 PIN_FIELD_BASE(909020x0050, 0x10, 251),
 PIN_FIELD_BASE(919120x0050, 0x10, 01),
 PIN_FIELD_BASE(929220x0060, 0x10, 11),
 PIN_FIELD_BASE(939320x0060, 0x10, 31),
 PIN_FIELD_BASE(949420x0060, 0x10, 21),
 PIN_FIELD_BASE(959520x0060, 0x10, 41),
 PIN_FIELD_BASE(969620x0050, 0x10, 311),
 PIN_FIELD_BASE(979720x0050, 0x10, 261),
 PIN_FIELD_BASE(989820x0060, 0x10, 01),
 PIN_FIELD_BASE(999920x0050, 0x10, 271),
 PIN_FIELD_BASE(10010020x0050, 0x10, 281),
 PIN_FIELD_BASE(10110120x0050, 0x10, 291),
 PIN_FIELD_BASE(10210220x0050, 0x10, 301),
 PIN_FIELD_BASE(10310320x0050, 0x10, 181),
 PIN_FIELD_BASE(10410420x0050, 0x10, 171),
 PIN_FIELD_BASE(10510520x0050, 0x10, 191),
 PIN_FIELD_BASE(10610620x0050, 0x10, 161),
 PIN_FIELD_BASE(10710720x0050, 0x10, 11),
 PIN_FIELD_BASE(10810820x0050, 0x10, 21),
 PIN_FIELD_BASE(10910920x0050, 0x10, 101),
 PIN_FIELD_BASE(11011020x0050, 0x10, 71),
 PIN_FIELD_BASE(11111120x0050, 0x10, 91),
 PIN_FIELD_BASE(11211220x0050, 0x10, 111),
 PIN_FIELD_BASE(11311320x0050, 0x10, 81),
 PIN_FIELD_BASE(11411420x0050, 0x10, 141),
 PIN_FIELD_BASE(11511520x0050, 0x10, 131),
 PIN_FIELD_BASE(11611620x0050, 0x10, 151),
 PIN_FIELD_BASE(11711720x0050, 0x10, 121),
 PIN_FIELD_BASE(11811840x0070, 0x10, 231),
 PIN_FIELD_BASE(11911940x0070, 0x10, 291),
 PIN_FIELD_BASE(12012040x0070, 0x10, 281),
 PIN_FIELD_BASE(12112140x0080, 0x10, 21),
 PIN_FIELD_BASE(12212240x0070, 0x10, 271),
 PIN_FIELD_BASE(12312340x0080, 0x10, 11),
 PIN_FIELD_BASE(12412440x0070, 0x10, 261),
 PIN_FIELD_BASE(12512540x0080, 0x10, 01),
 PIN_FIELD_BASE(12612640x0070, 0x10, 191),
 PIN_FIELD_BASE(12712740x0070, 0x10, 201),
 PIN_FIELD_BASE(12812840x0070, 0x10, 211),
 PIN_FIELD_BASE(12912940x0070, 0x10, 221),
 PIN_FIELD_BASE(13013040x0070, 0x10, 61),
 PIN_FIELD_BASE(13113140x0070, 0x10, 71),
 PIN_FIELD_BASE(13213240x0070, 0x10, 81),
 PIN_FIELD_BASE(13313340x0070, 0x10, 31),
 PIN_FIELD_BASE(13413440x0070, 0x10, 41),
 PIN_FIELD_BASE(13513540x0070, 0x10, 51),
 PIN_FIELD_BASE(13613640x0070, 0x10, 01),
 PIN_FIELD_BASE(13713740x0070, 0x10, 11),
 PIN_FIELD_BASE(13813840x0070, 0x10, 21),
 PIN_FIELD_BASE(13913940x0070, 0x10, 251),
 PIN_FIELD_BASE(14014040x0070, 0x10, 311),
 PIN_FIELD_BASE(14114140x0070, 0x10, 241),
 PIN_FIELD_BASE(14214240x0070, 0x10, 301),
 PIN_FIELD_BASE(14314310x0030, 0x10, 61),
 PIN_FIELD_BASE(14414410x0030, 0x10, 71),
 PIN_FIELD_BASE(14514510x0030, 0x10, 81),
 PIN_FIELD_BASE(14614610x0030, 0x10, 31),
 PIN_FIELD_BASE(14714710x0030, 0x10, 41),
 PIN_FIELD_BASE(14814810x0030, 0x10, 51),
 PIN_FIELD_BASE(14914910x0030, 0x10, 01),
 PIN_FIELD_BASE(15015010x0030, 0x10, 11),
 PIN_FIELD_BASE(15115110x0030, 0x10, 21),
 PIN_FIELD_BASE(15215270x0050, 0x10, 301),
 PIN_FIELD_BASE(15315370x0050, 0x10, 291),
 PIN_FIELD_BASE(15415470x0050, 0x10, 271),
 PIN_FIELD_BASE(15515570x0050, 0x10, 281),
 PIN_FIELD_BASE(15615670x0060, 0x10, 11),
 PIN_FIELD_BASE(15715770x0060, 0x10, 21),
 PIN_FIELD_BASE(15815870x0060, 0x10, 31),
 PIN_FIELD_BASE(15915970x0060, 0x10, 41),
 PIN_FIELD_BASE(16016070x0050, 0x10, 311),
 PIN_FIELD_BASE(16116170x0060, 0x10, 01),
 PIN_FIELD_BASE(16216270x0050, 0x10, 01),
 PIN_FIELD_BASE(16316370x0050, 0x10, 11),
 PIN_FIELD_BASE(16416470x0050, 0x10, 21),
 PIN_FIELD_BASE(16516570x0050, 0x10, 31),
 PIN_FIELD_BASE(16616670x0050, 0x10, 41),
 PIN_FIELD_BASE(16716770x0050, 0x10, 51),
 PIN_FIELD_BASE(16816870x0050, 0x10, 61),
 PIN_FIELD_BASE(16916970x0050, 0x10, 71),
 PIN_FIELD_BASE(17017070x0050, 0x10, 81),
 PIN_FIELD_BASE(17117170x0050, 0x10, 91),
 PIN_FIELD_BASE(17217270x0050, 0x10, 131),
 PIN_FIELD_BASE(17317370x0050, 0x10, 141),
 PIN_FIELD_BASE(17417470x0050, 0x10, 121),
 PIN_FIELD_BASE(17517570x0050, 0x10, 151),
 PIN_FIELD_BASE(17617670x0050, 0x10, 101),
 PIN_FIELD_BASE(17717770x0050, 0x10, 111),
 PIN_FIELD_BASE(17817870x0050, 0x10, 161),
 PIN_FIELD_BASE(17917970x0050, 0x10, 171),
 PIN_FIELD_BASE(18018070x0050, 0x10, 181),
 PIN_FIELD_BASE(18118170x0050, 0x10, 191),
 PIN_FIELD_BASE(18218270x0050, 0x10, 201),
 PIN_FIELD_BASE(18318390x0020, 0x10, 11),
 PIN_FIELD_BASE(18418490x0020, 0x10, 21),
 PIN_FIELD_BASE(18518590x0020, 0x10, 41),
 PIN_FIELD_BASE(18618690x0020, 0x10, 61),
 PIN_FIELD_BASE(18718790x0020, 0x10, 81),
 PIN_FIELD_BASE(18818890x0020, 0x10, 31),
 PIN_FIELD_BASE(18918990x0020, 0x10, 71),
 PIN_FIELD_BASE(19019090x0020, 0x10, 91),
 PIN_FIELD_BASE(19119190x0020, 0x10, 101),
 PIN_FIELD_BASE(19219290x0020, 0x10, 01),
 PIN_FIELD_BASE(19319390x0020, 0x10, 51),
 PIN_FIELD_BASE(19419490x0020, 0x10, 111),
 PIN_FIELD_BASE(19519550x0030, 0x10, 161),
 PIN_FIELD_BASE(19619650x0030, 0x10, 61),
 PIN_FIELD_BASE(19719750x0030, 0x10, 81),
 PIN_FIELD_BASE(19819850x0030, 0x10, 71),
 PIN_FIELD_BASE(19919950x0030, 0x10, 31),
 PIN_FIELD_BASE(20020080x0030, 0x10, 61),
 PIN_FIELD_BASE(20120180x0030, 0x10, 81),
 PIN_FIELD_BASE(20220250x0030, 0x10, 151),
 PIN_FIELD_BASE(20320350x0030, 0x10, 171),
 PIN_FIELD_BASE(20420480x0030, 0x10, 51),
 PIN_FIELD_BASE(20520580x0030, 0x10, 71),
 PIN_FIELD_BASE(20620650x0030, 0x10, 181),
 PIN_FIELD_BASE(20720750x0030, 0x10, 191),
 PIN_FIELD_BASE(20820850x0030, 0x10, 201),
 PIN_FIELD_BASE(20920950x0030, 0x10, 121),
 PIN_FIELD_BASE(21021050x0030, 0x10, 111),
 PIN_FIELD_BASE(21121150x0030, 0x10, 131),
 PIN_FIELD_BASE(21221250x0030, 0x10, 101),
 PIN_FIELD_BASE(21321350x0030, 0x10, 141),
 PIN_FIELD_BASE(21421450x0030, 0x10, 01),
 PIN_FIELD_BASE(21521550x0030, 0x10, 91),
 PIN_FIELD_BASE(21621650x0030, 0x10, 41),
 PIN_FIELD_BASE(21721750x0030, 0x10, 51),
 PIN_FIELD_BASE(21821850x0030, 0x10, 11),
 PIN_FIELD_BASE(21921950x0030, 0x10, 21),
};

static const struct mtk_pin_field_calc mt8192_pin_pu_range[] = {
 PIN_FIELD_BASE(0040x00b0, 0x10, 91),
 PIN_FIELD_BASE(1140x00b0, 0x10, 101),
 PIN_FIELD_BASE(2240x00b0, 0x10, 111),
 PIN_FIELD_BASE(3340x00b0, 0x10, 121),
 PIN_FIELD_BASE(4440x00b0, 0x10, 131),
 PIN_FIELD_BASE(5540x00b0, 0x10, 141),
 PIN_FIELD_BASE(6640x00b0, 0x10, 151),
 PIN_FIELD_BASE(7740x00b0, 0x10, 161),
 PIN_FIELD_BASE(8840x00b0, 0x10, 171),
 PIN_FIELD_BASE(9940x00b0, 0x10, 181),
 PIN_FIELD_BASE(161680x0050, 0x10, 21),
 PIN_FIELD_BASE(171780x0050, 0x10, 31),
 PIN_FIELD_BASE(181870x00a0, 0x10, 211),
 PIN_FIELD_BASE(191970x00a0, 0x10, 221),
 PIN_FIELD_BASE(202070x00a0, 0x10, 231),
 PIN_FIELD_BASE(212170x00a0, 0x10, 241),
 PIN_FIELD_BASE(222220x0090, 0x10, 31),
 PIN_FIELD_BASE(232320x0090, 0x10, 41),
 PIN_FIELD_BASE(242420x0090, 0x10, 51),
 PIN_FIELD_BASE(252520x0090, 0x10, 61),
 PIN_FIELD_BASE(262630x0080, 0x10, 51),
 PIN_FIELD_BASE(272730x0080, 0x10, 61),
 PIN_FIELD_BASE(282830x0080, 0x10, 71),
 PIN_FIELD_BASE(292930x0080, 0x10, 81),
 PIN_FIELD_BASE(303030x0080, 0x10, 91),
 PIN_FIELD_BASE(313130x0070, 0x10, 271),
 PIN_FIELD_BASE(323230x0070, 0x10, 241),
 PIN_FIELD_BASE(333330x0070, 0x10, 261),
 PIN_FIELD_BASE(343430x0070, 0x10, 231),
 PIN_FIELD_BASE(353530x0070, 0x10, 251),
 PIN_FIELD_BASE(363620x0090, 0x10, 201),
 PIN_FIELD_BASE(373720x0090, 0x10, 211),
 PIN_FIELD_BASE(383820x0090, 0x10, 221),
 PIN_FIELD_BASE(393920x0090, 0x10, 231),
 PIN_FIELD_BASE(404080x0050, 0x10, 01),
 PIN_FIELD_BASE(414180x0050, 0x10, 11),
 PIN_FIELD_BASE(424280x0050, 0x10, 41),
 PIN_FIELD_BASE(434370x00a0, 0x10, 251),
 PIN_FIELD_BASE(444470x00a0, 0x10, 261),
 PIN_FIELD_BASE(575730x0080, 0x10, 11),
 PIN_FIELD_BASE(585830x0080, 0x10, 21),
 PIN_FIELD_BASE(595930x0080, 0x10, 31),
 PIN_FIELD_BASE(606030x0080, 0x10, 41),
 PIN_FIELD_BASE(616130x0070, 0x10, 281),
 PIN_FIELD_BASE(626230x0070, 0x10, 221),
 PIN_FIELD_BASE(636330x0070, 0x10, 01),
 PIN_FIELD_BASE(646430x0070, 0x10, 11),
 PIN_FIELD_BASE(656530x0070, 0x10, 121),
 PIN_FIELD_BASE(666630x0070, 0x10, 151),
 PIN_FIELD_BASE(676730x0070, 0x10, 161),
 PIN_FIELD_BASE(686830x0070, 0x10, 171),
 PIN_FIELD_BASE(696930x0070, 0x10, 181),
 PIN_FIELD_BASE(707030x0070, 0x10, 191),
 PIN_FIELD_BASE(717130x0070, 0x10, 201),
 PIN_FIELD_BASE(727230x0070, 0x10, 211),
 PIN_FIELD_BASE(737330x0070, 0x10, 21),
 PIN_FIELD_BASE(747430x0070, 0x10, 31),
 PIN_FIELD_BASE(757530x0070, 0x10, 41),
 PIN_FIELD_BASE(767630x0070, 0x10, 51),
 PIN_FIELD_BASE(777730x0070, 0x10, 61),
 PIN_FIELD_BASE(787830x0070, 0x10, 71),
 PIN_FIELD_BASE(797930x0070, 0x10, 81),
 PIN_FIELD_BASE(808030x0070, 0x10, 91),
 PIN_FIELD_BASE(818130x0070, 0x10, 101),
 PIN_FIELD_BASE(828230x0070, 0x10, 111),
 PIN_FIELD_BASE(838330x0070, 0x10, 131),
 PIN_FIELD_BASE(848430x0070, 0x10, 141),
 PIN_FIELD_BASE(858530x0070, 0x10, 311),
 PIN_FIELD_BASE(868630x0080, 0x10, 01),
 PIN_FIELD_BASE(878730x0070, 0x10, 291),
 PIN_FIELD_BASE(888830x0070, 0x10, 301),
 PIN_FIELD_BASE(898920x0090, 0x10, 241),
 PIN_FIELD_BASE(909020x0090, 0x10, 251),
 PIN_FIELD_BASE(919120x0090, 0x10, 01),
 PIN_FIELD_BASE(929220x00a0, 0x10, 21),
 PIN_FIELD_BASE(939320x00a0, 0x10, 41),
 PIN_FIELD_BASE(949420x00a0, 0x10, 31),
 PIN_FIELD_BASE(959520x00a0, 0x10, 51),
 PIN_FIELD_BASE(969620x0090, 0x10, 311),
 PIN_FIELD_BASE(979720x0090, 0x10, 261),
 PIN_FIELD_BASE(989820x00a0, 0x10, 01),
 PIN_FIELD_BASE(999920x0090, 0x10, 271),
 PIN_FIELD_BASE(10010020x0090, 0x10, 281),
 PIN_FIELD_BASE(10110120x0090, 0x10, 291),
 PIN_FIELD_BASE(10210220x0090, 0x10, 301),
 PIN_FIELD_BASE(10310320x0090, 0x10, 181),
 PIN_FIELD_BASE(10410420x0090, 0x10, 171),
 PIN_FIELD_BASE(10510520x0090, 0x10, 191),
 PIN_FIELD_BASE(10610620x0090, 0x10, 161),
 PIN_FIELD_BASE(10710720x0090, 0x10, 11),
 PIN_FIELD_BASE(10810820x0090, 0x10, 21),
 PIN_FIELD_BASE(10910920x0090, 0x10, 101),
 PIN_FIELD_BASE(11011020x0090, 0x10, 71),
 PIN_FIELD_BASE(11111120x0090, 0x10, 91),
 PIN_FIELD_BASE(11211220x0090, 0x10, 111),
 PIN_FIELD_BASE(11311320x0090, 0x10, 81),
 PIN_FIELD_BASE(11411420x0090, 0x10, 141),
 PIN_FIELD_BASE(11511520x0090, 0x10, 131),
 PIN_FIELD_BASE(11611620x0090, 0x10, 151),
 PIN_FIELD_BASE(11711720x0090, 0x10, 121),
 PIN_FIELD_BASE(11811840x00b0, 0x10, 231),
 PIN_FIELD_BASE(11911940x00b0, 0x10, 291),
 PIN_FIELD_BASE(12012040x00b0, 0x10, 281),
 PIN_FIELD_BASE(12112140x00c0, 0x10, 21),
 PIN_FIELD_BASE(12212240x00b0, 0x10, 271),
 PIN_FIELD_BASE(12312340x00c0, 0x10, 11),
 PIN_FIELD_BASE(12412440x00b0, 0x10, 261),
 PIN_FIELD_BASE(12512540x00c0, 0x10, 01),
 PIN_FIELD_BASE(12612640x00b0, 0x10, 191),
 PIN_FIELD_BASE(12712740x00b0, 0x10, 201),
 PIN_FIELD_BASE(12812840x00b0, 0x10, 211),
 PIN_FIELD_BASE(12912940x00b0, 0x10, 221),
 PIN_FIELD_BASE(13013040x00b0, 0x10, 61),
 PIN_FIELD_BASE(13113140x00b0, 0x10, 71),
 PIN_FIELD_BASE(13213240x00b0, 0x10, 81),
 PIN_FIELD_BASE(13313340x00b0, 0x10, 31),
 PIN_FIELD_BASE(13413440x00b0, 0x10, 41),
 PIN_FIELD_BASE(13513540x00b0, 0x10, 51),
 PIN_FIELD_BASE(13613640x00b0, 0x10, 01),
 PIN_FIELD_BASE(13713740x00b0, 0x10, 11),
 PIN_FIELD_BASE(13813840x00b0, 0x10, 21),
 PIN_FIELD_BASE(13913940x00b0, 0x10, 251),
 PIN_FIELD_BASE(14014040x00b0, 0x10, 311),
 PIN_FIELD_BASE(14114140x00b0, 0x10, 241),
 PIN_FIELD_BASE(14214240x00b0, 0x10, 301),
 PIN_FIELD_BASE(14314310x0070, 0x10, 61),
 PIN_FIELD_BASE(14414410x0070, 0x10, 71),
 PIN_FIELD_BASE(14514510x0070, 0x10, 81),
 PIN_FIELD_BASE(14614610x0070, 0x10, 31),
 PIN_FIELD_BASE(14714710x0070, 0x10, 41),
 PIN_FIELD_BASE(14814810x0070, 0x10, 51),
 PIN_FIELD_BASE(14914910x0070, 0x10, 01),
 PIN_FIELD_BASE(15015010x0070, 0x10, 11),
 PIN_FIELD_BASE(15115110x0070, 0x10, 21),
 PIN_FIELD_BASE(15615670x00a0, 0x10, 291),
 PIN_FIELD_BASE(15715770x00a0, 0x10, 301),
 PIN_FIELD_BASE(15815870x00a0, 0x10, 311),
 PIN_FIELD_BASE(15915970x00b0, 0x10, 01),
 PIN_FIELD_BASE(16016070x00a0, 0x10, 271),
 PIN_FIELD_BASE(16116170x00a0, 0x10, 281),
 PIN_FIELD_BASE(16216270x00a0, 0x10, 01),
 PIN_FIELD_BASE(16316370x00a0, 0x10, 11),
 PIN_FIELD_BASE(16416470x00a0, 0x10, 21),
 PIN_FIELD_BASE(16516570x00a0, 0x10, 31),
 PIN_FIELD_BASE(16616670x00a0, 0x10, 41),
 PIN_FIELD_BASE(16716770x00a0, 0x10, 51),
 PIN_FIELD_BASE(16816870x00a0, 0x10, 61),
 PIN_FIELD_BASE(16916970x00a0, 0x10, 71),
 PIN_FIELD_BASE(17017070x00a0, 0x10, 81),
 PIN_FIELD_BASE(17117170x00a0, 0x10, 91),
 PIN_FIELD_BASE(17217270x00a0, 0x10, 131),
 PIN_FIELD_BASE(17317370x00a0, 0x10, 141),
 PIN_FIELD_BASE(17417470x00a0, 0x10, 121),
 PIN_FIELD_BASE(17517570x00a0, 0x10, 151),
 PIN_FIELD_BASE(17617670x00a0, 0x10, 101),
 PIN_FIELD_BASE(17717770x00a0, 0x10, 111),
 PIN_FIELD_BASE(17817870x00a0, 0x10, 161),
 PIN_FIELD_BASE(17917970x00a0, 0x10, 171),
 PIN_FIELD_BASE(18018070x00a0, 0x10, 181),
 PIN_FIELD_BASE(18118170x00a0, 0x10, 191),
 PIN_FIELD_BASE(18218270x00a0, 0x10, 201),
 PIN_FIELD_BASE(19519550x0050, 0x10, 161),
 PIN_FIELD_BASE(19619650x0050, 0x10, 61),
 PIN_FIELD_BASE(19719750x0050, 0x10, 81),
 PIN_FIELD_BASE(19819850x0050, 0x10, 71),
 PIN_FIELD_BASE(19919950x0050, 0x10, 31),
 PIN_FIELD_BASE(20020080x0050, 0x10, 61),
 PIN_FIELD_BASE(20120180x0050, 0x10, 81),
 PIN_FIELD_BASE(20220250x0050, 0x10, 151),
 PIN_FIELD_BASE(20320350x0050, 0x10, 171),
 PIN_FIELD_BASE(20420480x0050, 0x10, 51),
 PIN_FIELD_BASE(20520580x0050, 0x10, 71),
 PIN_FIELD_BASE(20620650x0050, 0x10, 181),
 PIN_FIELD_BASE(20720750x0050, 0x10, 191),
 PIN_FIELD_BASE(20820850x0050, 0x10, 201),
 PIN_FIELD_BASE(20920950x0050, 0x10, 121),
 PIN_FIELD_BASE(21021050x0050, 0x10, 111),
 PIN_FIELD_BASE(21121150x0050, 0x10, 131),
 PIN_FIELD_BASE(21221250x0050, 0x10, 101),
 PIN_FIELD_BASE(21321350x0050, 0x10, 141),
 PIN_FIELD_BASE(21421450x0050, 0x10, 01),
 PIN_FIELD_BASE(21521550x0050, 0x10, 91),
 PIN_FIELD_BASE(21621650x0050, 0x10, 41),
 PIN_FIELD_BASE(21721750x0050, 0x10, 51),
 PIN_FIELD_BASE(21821850x0050, 0x10, 11),
 PIN_FIELD_BASE(21921950x0050, 0x10, 21),
};

static const struct mtk_pin_field_calc mt8192_pin_pd_range[] = {
 PIN_FIELD_BASE(0040x0090, 0x10, 91),
 PIN_FIELD_BASE(1140x0090, 0x10, 101),
 PIN_FIELD_BASE(2240x0090, 0x10, 111),
 PIN_FIELD_BASE(3340x0090, 0x10, 121),
 PIN_FIELD_BASE(4440x0090, 0x10, 131),
 PIN_FIELD_BASE(5540x0090, 0x10, 141),
 PIN_FIELD_BASE(6640x0090, 0x10, 151),
 PIN_FIELD_BASE(7740x0090, 0x10, 161),
 PIN_FIELD_BASE(8840x0090, 0x10, 171),
 PIN_FIELD_BASE(9940x0090, 0x10, 181),
 PIN_FIELD_BASE(161680x0040, 0x10, 21),
 PIN_FIELD_BASE(171780x0040, 0x10, 31),
 PIN_FIELD_BASE(181870x0070, 0x10, 211),
 PIN_FIELD_BASE(191970x0070, 0x10, 221),
 PIN_FIELD_BASE(202070x0070, 0x10, 231),
 PIN_FIELD_BASE(212170x0070, 0x10, 241),
 PIN_FIELD_BASE(222220x0070, 0x10, 31),
 PIN_FIELD_BASE(232320x0070, 0x10, 41),
 PIN_FIELD_BASE(242420x0070, 0x10, 51),
 PIN_FIELD_BASE(252520x0070, 0x10, 61),
 PIN_FIELD_BASE(262630x0060, 0x10, 51),
 PIN_FIELD_BASE(272730x0060, 0x10, 61),
 PIN_FIELD_BASE(282830x0060, 0x10, 71),
 PIN_FIELD_BASE(292930x0060, 0x10, 81),
 PIN_FIELD_BASE(303030x0060, 0x10, 91),
 PIN_FIELD_BASE(313130x0050, 0x10, 271),
 PIN_FIELD_BASE(323230x0050, 0x10, 241),
 PIN_FIELD_BASE(333330x0050, 0x10, 261),
 PIN_FIELD_BASE(343430x0050, 0x10, 231),
 PIN_FIELD_BASE(353530x0050, 0x10, 251),
 PIN_FIELD_BASE(363620x0070, 0x10, 201),
 PIN_FIELD_BASE(373720x0070, 0x10, 211),
 PIN_FIELD_BASE(383820x0070, 0x10, 221),
 PIN_FIELD_BASE(393920x0070, 0x10, 231),
 PIN_FIELD_BASE(404080x0040, 0x10, 01),
 PIN_FIELD_BASE(414180x0040, 0x10, 11),
 PIN_FIELD_BASE(424280x0040, 0x10, 41),
 PIN_FIELD_BASE(434370x0070, 0x10, 251),
 PIN_FIELD_BASE(444470x0070, 0x10, 261),
 PIN_FIELD_BASE(575730x0060, 0x10, 11),
 PIN_FIELD_BASE(585830x0060, 0x10, 21),
 PIN_FIELD_BASE(595930x0060, 0x10, 31),
 PIN_FIELD_BASE(606030x0060, 0x10, 41),
 PIN_FIELD_BASE(616130x0050, 0x10, 281),
 PIN_FIELD_BASE(626230x0050, 0x10, 221),
 PIN_FIELD_BASE(636330x0050, 0x10, 01),
 PIN_FIELD_BASE(646430x0050, 0x10, 11),
 PIN_FIELD_BASE(656530x0050, 0x10, 121),
 PIN_FIELD_BASE(666630x0050, 0x10, 151),
 PIN_FIELD_BASE(676730x0050, 0x10, 161),
 PIN_FIELD_BASE(686830x0050, 0x10, 171),
 PIN_FIELD_BASE(696930x0050, 0x10, 181),
 PIN_FIELD_BASE(707030x0050, 0x10, 191),
 PIN_FIELD_BASE(717130x0050, 0x10, 201),
 PIN_FIELD_BASE(727230x0050, 0x10, 211),
 PIN_FIELD_BASE(737330x0050, 0x10, 21),
 PIN_FIELD_BASE(747430x0050, 0x10, 31),
 PIN_FIELD_BASE(757530x0050, 0x10, 41),
 PIN_FIELD_BASE(767630x0050, 0x10, 51),
 PIN_FIELD_BASE(777730x0050, 0x10, 61),
 PIN_FIELD_BASE(787830x0050, 0x10, 71),
 PIN_FIELD_BASE(797930x0050, 0x10, 81),
 PIN_FIELD_BASE(808030x0050, 0x10, 91),
 PIN_FIELD_BASE(818130x0050, 0x10, 101),
 PIN_FIELD_BASE(828230x0050, 0x10, 111),
 PIN_FIELD_BASE(838330x0050, 0x10, 131),
 PIN_FIELD_BASE(848430x0050, 0x10, 141),
 PIN_FIELD_BASE(858530x0050, 0x10, 311),
 PIN_FIELD_BASE(868630x0060, 0x10, 01),
 PIN_FIELD_BASE(878730x0050, 0x10, 291),
 PIN_FIELD_BASE(888830x0050, 0x10, 301),
 PIN_FIELD_BASE(898920x0070, 0x10, 241),
 PIN_FIELD_BASE(909020x0070, 0x10, 251),
 PIN_FIELD_BASE(919120x0070, 0x10, 01),
 PIN_FIELD_BASE(929220x0080, 0x10, 21),
 PIN_FIELD_BASE(939320x0080, 0x10, 41),
 PIN_FIELD_BASE(949420x0080, 0x10, 31),
 PIN_FIELD_BASE(959520x0080, 0x10, 51),
 PIN_FIELD_BASE(969620x0070, 0x10, 311),
 PIN_FIELD_BASE(979720x0070, 0x10, 261),
 PIN_FIELD_BASE(989820x0080, 0x10, 01),
 PIN_FIELD_BASE(999920x0070, 0x10, 271),
 PIN_FIELD_BASE(10010020x0070, 0x10, 281),
 PIN_FIELD_BASE(10110120x0070, 0x10, 291),
 PIN_FIELD_BASE(10210220x0070, 0x10, 301),
 PIN_FIELD_BASE(10310320x0070, 0x10, 181),
 PIN_FIELD_BASE(10410420x0070, 0x10, 171),
 PIN_FIELD_BASE(10510520x0070, 0x10, 191),
 PIN_FIELD_BASE(10610620x0070, 0x10, 161),
 PIN_FIELD_BASE(10710720x0070, 0x10, 11),
 PIN_FIELD_BASE(10810820x0070, 0x10, 21),
 PIN_FIELD_BASE(10910920x0070, 0x10, 101),
 PIN_FIELD_BASE(11011020x0070, 0x10, 71),
 PIN_FIELD_BASE(11111120x0070, 0x10, 91),
 PIN_FIELD_BASE(11211220x0070, 0x10, 111),
 PIN_FIELD_BASE(11311320x0070, 0x10, 81),
 PIN_FIELD_BASE(11411420x0070, 0x10, 141),
 PIN_FIELD_BASE(11511520x0070, 0x10, 131),
 PIN_FIELD_BASE(11611620x0070, 0x10, 151),
 PIN_FIELD_BASE(11711720x0070, 0x10, 121),
 PIN_FIELD_BASE(11811840x0090, 0x10, 231),
 PIN_FIELD_BASE(11911940x0090, 0x10, 291),
 PIN_FIELD_BASE(12012040x0090, 0x10, 281),
 PIN_FIELD_BASE(12112140x00a0, 0x10, 21),
 PIN_FIELD_BASE(12212240x0090, 0x10, 271),
 PIN_FIELD_BASE(12312340x00a0, 0x10, 11),
 PIN_FIELD_BASE(12412440x0090, 0x10, 261),
 PIN_FIELD_BASE(12512540x00a0, 0x10, 01),
 PIN_FIELD_BASE(12612640x0090, 0x10, 191),
 PIN_FIELD_BASE(12712740x0090, 0x10, 201),
 PIN_FIELD_BASE(12812840x0090, 0x10, 211),
 PIN_FIELD_BASE(12912940x0090, 0x10, 221),
 PIN_FIELD_BASE(13013040x0090, 0x10, 61),
 PIN_FIELD_BASE(13113140x0090, 0x10, 71),
 PIN_FIELD_BASE(13213240x0090, 0x10, 81),
 PIN_FIELD_BASE(13313340x0090, 0x10, 31),
 PIN_FIELD_BASE(13413440x0090, 0x10, 41),
 PIN_FIELD_BASE(13513540x0090, 0x10, 51),
 PIN_FIELD_BASE(13613640x0090, 0x10, 01),
 PIN_FIELD_BASE(13713740x0090, 0x10, 11),
 PIN_FIELD_BASE(13813840x0090, 0x10, 21),
 PIN_FIELD_BASE(13913940x0090, 0x10, 251),
 PIN_FIELD_BASE(14014040x0090, 0x10, 311),
 PIN_FIELD_BASE(14114140x0090, 0x10, 241),
 PIN_FIELD_BASE(14214240x0090, 0x10, 301),
 PIN_FIELD_BASE(14314310x0050, 0x10, 61),
 PIN_FIELD_BASE(14414410x0050, 0x10, 71),
 PIN_FIELD_BASE(14514510x0050, 0x10, 81),
 PIN_FIELD_BASE(14614610x0050, 0x10, 31),
 PIN_FIELD_BASE(14714710x0050, 0x10, 41),
 PIN_FIELD_BASE(14814810x0050, 0x10, 51),
 PIN_FIELD_BASE(14914910x0050, 0x10, 01),
 PIN_FIELD_BASE(15015010x0050, 0x10, 11),
 PIN_FIELD_BASE(15115110x0050, 0x10, 21),
 PIN_FIELD_BASE(15615670x0070, 0x10, 291),
 PIN_FIELD_BASE(15715770x0070, 0x10, 301),
 PIN_FIELD_BASE(15815870x0070, 0x10, 311),
 PIN_FIELD_BASE(15915970x0080, 0x10, 01),
 PIN_FIELD_BASE(16016070x0070, 0x10, 271),
 PIN_FIELD_BASE(16116170x0070, 0x10, 281),
 PIN_FIELD_BASE(16216270x0070, 0x10, 01),
 PIN_FIELD_BASE(16316370x0070, 0x10, 11),
 PIN_FIELD_BASE(16416470x0070, 0x10, 21),
 PIN_FIELD_BASE(16516570x0070, 0x10, 31),
 PIN_FIELD_BASE(16616670x0070, 0x10, 41),
 PIN_FIELD_BASE(16716770x0070, 0x10, 51),
 PIN_FIELD_BASE(16816870x0070, 0x10, 61),
 PIN_FIELD_BASE(16916970x0070, 0x10, 71),
 PIN_FIELD_BASE(17017070x0070, 0x10, 81),
 PIN_FIELD_BASE(17117170x0070, 0x10, 91),
 PIN_FIELD_BASE(17217270x0070, 0x10, 131),
 PIN_FIELD_BASE(17317370x0070, 0x10, 141),
 PIN_FIELD_BASE(17417470x0070, 0x10, 121),
 PIN_FIELD_BASE(17517570x0070, 0x10, 151),
 PIN_FIELD_BASE(17617670x0070, 0x10, 101),
 PIN_FIELD_BASE(17717770x0070, 0x10, 111),
 PIN_FIELD_BASE(17817870x0070, 0x10, 161),
 PIN_FIELD_BASE(17917970x0070, 0x10, 171),
 PIN_FIELD_BASE(18018070x0070, 0x10, 181),
 PIN_FIELD_BASE(18118170x0070, 0x10, 191),
 PIN_FIELD_BASE(18218270x0070, 0x10, 201),
 PIN_FIELD_BASE(19519550x0040, 0x10, 161),
 PIN_FIELD_BASE(19619650x0040, 0x10, 61),
 PIN_FIELD_BASE(19719750x0040, 0x10, 81),
 PIN_FIELD_BASE(19819850x0040, 0x10, 71),
 PIN_FIELD_BASE(19919950x0040, 0x10, 31),
 PIN_FIELD_BASE(20020080x0040, 0x10, 61),
 PIN_FIELD_BASE(20120180x0040, 0x10, 81),
 PIN_FIELD_BASE(20220250x0040, 0x10, 151),
 PIN_FIELD_BASE(20320350x0040, 0x10, 171),
 PIN_FIELD_BASE(20420480x0040, 0x10, 51),
 PIN_FIELD_BASE(20520580x0040, 0x10, 71),
 PIN_FIELD_BASE(20620650x0040, 0x10, 181),
 PIN_FIELD_BASE(20720750x0040, 0x10, 191),
 PIN_FIELD_BASE(20820850x0040, 0x10, 201),
 PIN_FIELD_BASE(20920950x0040, 0x10, 121),
 PIN_FIELD_BASE(21021050x0040, 0x10, 111),
 PIN_FIELD_BASE(21121150x0040, 0x10, 131),
 PIN_FIELD_BASE(21221250x0040, 0x10, 101),
 PIN_FIELD_BASE(21321350x0040, 0x10, 141),
 PIN_FIELD_BASE(21421450x0040, 0x10, 01),
 PIN_FIELD_BASE(21521550x0040, 0x10, 91),
 PIN_FIELD_BASE(21621650x0040, 0x10, 41),
 PIN_FIELD_BASE(21721750x0040, 0x10, 51),
 PIN_FIELD_BASE(21821850x0040, 0x10, 11),
 PIN_FIELD_BASE(21921950x0040, 0x10, 21),
};

static const struct mtk_pin_field_calc mt8192_pin_drv_range[] = {
 PIN_FIELD_BASE(0040x0000, 0x10, 183),
 PIN_FIELD_BASE(1140x0000, 0x10, 213),
 PIN_FIELD_BASE(2240x0000, 0x10, 243),
 PIN_FIELD_BASE(3340x0000, 0x10, 273),
 PIN_FIELD_BASE(4440x0010, 0x10, 03),
 PIN_FIELD_BASE(5540x0010, 0x10, 33),
 PIN_FIELD_BASE(6640x0010, 0x10, 63),
 PIN_FIELD_BASE(7740x0010, 0x10, 93),
 PIN_FIELD_BASE(8840x0010, 0x10, 123),
 PIN_FIELD_BASE(9940x0010, 0x10, 153),
 PIN_FIELD_BASE(101060x0000, 0x10, 03),
 PIN_FIELD_BASE(111160x0000, 0x10, 33),
 PIN_FIELD_BASE(121260x0000, 0x10, 63),
 PIN_FIELD_BASE(131360x0000, 0x10, 93),
 PIN_FIELD_BASE(141460x0000, 0x10, 123),
 PIN_FIELD_BASE(151560x0000, 0x10, 153),
 PIN_FIELD_BASE(161680x0000, 0x10, 03),
 PIN_FIELD_BASE(171780x0000, 0x10, 03),
 PIN_FIELD_BASE(181870x0010, 0x10, 153),
 PIN_FIELD_BASE(191970x0010, 0x10, 153),
 PIN_FIELD_BASE(202070x0010, 0x10, 183),
 PIN_FIELD_BASE(212170x0010, 0x10, 183),
 PIN_FIELD_BASE(222220x0000, 0x10, 63),
 PIN_FIELD_BASE(232320x0000, 0x10, 93),
 PIN_FIELD_BASE(242420x0000, 0x10, 123),
 PIN_FIELD_BASE(252520x0000, 0x10, 153),
 PIN_FIELD_BASE(262630x0000, 0x10, 153),
 PIN_FIELD_BASE(272730x0000, 0x10, 183),
 PIN_FIELD_BASE(282830x0000, 0x10, 213),
 PIN_FIELD_BASE(292930x0000, 0x10, 243),
 PIN_FIELD_BASE(303030x0000, 0x10, 273),
 PIN_FIELD_BASE(313130x0000, 0x10, 123),
 PIN_FIELD_BASE(323230x0000, 0x10, 33),
 PIN_FIELD_BASE(333330x0000, 0x10, 93),
 PIN_FIELD_BASE(343430x0000, 0x10, 03),
 PIN_FIELD_BASE(353530x0000, 0x10, 63),
 PIN_FIELD_BASE(363620x0010, 0x10, 213),
 PIN_FIELD_BASE(373720x0010, 0x10, 243),
 PIN_FIELD_BASE(383820x0010, 0x10, 273),
 PIN_FIELD_BASE(393920x0020, 0x10, 03),
 PIN_FIELD_BASE(404080x0000, 0x10, 03),
 PIN_FIELD_BASE(414180x0000, 0x10, 03),
 PIN_FIELD_BASE(424280x0000, 0x10, 33),
 PIN_FIELD_BASE(434370x0010, 0x10, 153),
 PIN_FIELD_BASE(444470x0010, 0x10, 153),
 PIN_FIELD_BASE(454510x0010, 0x10, 62),
 PIN_FIELD_BASE(464610x0010, 0x10, 62),
 PIN_FIELD_BASE(474710x0010, 0x10, 62),
 PIN_FIELD_BASE(484810x0010, 0x10, 82),
 PIN_FIELD_BASE(494910x0010, 0x10, 82),
 PIN_FIELD_BASE(505010x0010, 0x10, 82),
 PIN_FIELD_BASE(515110x0000, 0x10, 123),
 PIN_FIELD_BASE(525210x0000, 0x10, 153),
 PIN_FIELD_BASE(535310x0000, 0x10, 273),
 PIN_FIELD_BASE(545410x0000, 0x10, 183),
 PIN_FIELD_BASE(555510x0000, 0x10, 243),
 PIN_FIELD_BASE(565610x0000, 0x10, 213),
 PIN_FIELD_BASE(575730x0010, 0x10, 243),
 PIN_FIELD_BASE(585830x0010, 0x10, 243),
 PIN_FIELD_BASE(595930x0010, 0x10, 273),
 PIN_FIELD_BASE(606030x0010, 0x10, 273),
 PIN_FIELD_BASE(616130x0020, 0x10, 03),
 PIN_FIELD_BASE(626230x0020, 0x10, 03),
 PIN_FIELD_BASE(636330x0010, 0x10, 03),
 PIN_FIELD_BASE(646430x0010, 0x10, 03),
 PIN_FIELD_BASE(656530x0010, 0x10, 03),
 PIN_FIELD_BASE(666630x0010, 0x10, 03),
 PIN_FIELD_BASE(676730x0010, 0x10, 33),
 PIN_FIELD_BASE(686830x0010, 0x10, 33),
 PIN_FIELD_BASE(696930x0010, 0x10, 33),
 PIN_FIELD_BASE(707030x0010, 0x10, 33),
 PIN_FIELD_BASE(717130x0010, 0x10, 63),
 PIN_FIELD_BASE(727230x0010, 0x10, 63),
 PIN_FIELD_BASE(737330x0010, 0x10, 63),
 PIN_FIELD_BASE(747430x0010, 0x10, 63),
 PIN_FIELD_BASE(757530x0010, 0x10, 93),
 PIN_FIELD_BASE(767630x0010, 0x10, 93),
 PIN_FIELD_BASE(777730x0010, 0x10, 93),
 PIN_FIELD_BASE(787830x0010, 0x10, 93),
 PIN_FIELD_BASE(797930x0010, 0x10, 123),
 PIN_FIELD_BASE(808030x0010, 0x10, 123),
 PIN_FIELD_BASE(818130x0010, 0x10, 123),
 PIN_FIELD_BASE(828230x0010, 0x10, 123),
 PIN_FIELD_BASE(838330x0010, 0x10, 153),
 PIN_FIELD_BASE(848430x0010, 0x10, 153),
 PIN_FIELD_BASE(858530x0010, 0x10, 213),
 PIN_FIELD_BASE(868630x0010, 0x10, 213),
 PIN_FIELD_BASE(878730x0010, 0x10, 183),
 PIN_FIELD_BASE(888830x0010, 0x10, 183),
 PIN_FIELD_BASE(898920x0020, 0x10, 33),
 PIN_FIELD_BASE(909020x0020, 0x10, 63),
 PIN_FIELD_BASE(919120x0010, 0x10, 33),
 PIN_FIELD_BASE(929220x0010, 0x10, 33),
 PIN_FIELD_BASE(939320x0010, 0x10, 33),
 PIN_FIELD_BASE(949420x0010, 0x10, 33),
 PIN_FIELD_BASE(959520x0010, 0x10, 33),
 PIN_FIELD_BASE(969620x0020, 0x10, 243),
 PIN_FIELD_BASE(979720x0020, 0x10, 93),
 PIN_FIELD_BASE(989820x0020, 0x10, 273),
 PIN_FIELD_BASE(999920x0020, 0x10, 123),
 PIN_FIELD_BASE(10010020x0020, 0x10, 153),
 PIN_FIELD_BASE(10110120x0020, 0x10, 183),
 PIN_FIELD_BASE(10210220x0020, 0x10, 213),
 PIN_FIELD_BASE(10310320x0010, 0x10, 63),
 PIN_FIELD_BASE(10410420x0010, 0x10, 63),
 PIN_FIELD_BASE(10510520x0010, 0x10, 63),
 PIN_FIELD_BASE(10610620x0010, 0x10, 63),
 PIN_FIELD_BASE(10710720x0000, 0x10, 03),
 PIN_FIELD_BASE(10810820x0000, 0x10, 33),
 PIN_FIELD_BASE(10910920x0000, 0x10, 273),
 PIN_FIELD_BASE(11011020x0000, 0x10, 183),
 PIN_FIELD_BASE(11111120x0000, 0x10, 243),
 PIN_FIELD_BASE(11211220x0010, 0x10, 03),
 PIN_FIELD_BASE(11311320x0000, 0x10, 213),
 PIN_FIELD_BASE(11411420x0010, 0x10, 153),
 PIN_FIELD_BASE(11511520x0010, 0x10, 123),
 PIN_FIELD_BASE(11611620x0010, 0x10, 183),
 PIN_FIELD_BASE(11711720x0010, 0x10, 93),
 PIN_FIELD_BASE(11811840x0020, 0x10, 33),
 PIN_FIELD_BASE(11911940x0020, 0x10, 213),
 PIN_FIELD_BASE(12012040x0020, 0x10, 183),
 PIN_FIELD_BASE(12112140x0030, 0x10, 63),
 PIN_FIELD_BASE(12212240x0020, 0x10, 153),
 PIN_FIELD_BASE(12312340x0030, 0x10, 33),
 PIN_FIELD_BASE(12412440x0020, 0x10, 123),
 PIN_FIELD_BASE(12512540x0030, 0x10, 03),
 PIN_FIELD_BASE(12612640x0010, 0x10, 183),
 PIN_FIELD_BASE(12712740x0010, 0x10, 213),
 PIN_FIELD_BASE(12812840x0010, 0x10, 243),
 PIN_FIELD_BASE(12912940x0010, 0x10, 273),
 PIN_FIELD_BASE(13013040x0000, 0x10, 93),
 PIN_FIELD_BASE(13113140x0000, 0x10, 123),
 PIN_FIELD_BASE(13213240x0000, 0x10, 153),
 PIN_FIELD_BASE(13313340x0020, 0x10, 03),
 PIN_FIELD_BASE(13413440x0020, 0x10, 03),
 PIN_FIELD_BASE(13513540x0020, 0x10, 03),
 PIN_FIELD_BASE(13613640x0000, 0x10, 03),
 PIN_FIELD_BASE(13713740x0000, 0x10, 33),
 PIN_FIELD_BASE(13813840x0000, 0x10, 63),
 PIN_FIELD_BASE(13913940x0020, 0x10, 93),
 PIN_FIELD_BASE(14014040x0020, 0x10, 273),
 PIN_FIELD_BASE(14114140x0020, 0x10, 63),
 PIN_FIELD_BASE(14214240x0020, 0x10, 243),
 PIN_FIELD_BASE(14314310x0010, 0x10, 03),
 PIN_FIELD_BASE(14414410x0010, 0x10, 03),
 PIN_FIELD_BASE(14514510x0010, 0x10, 33),
 PIN_FIELD_BASE(14614610x0010, 0x10, 03),
 PIN_FIELD_BASE(14714710x0010, 0x10, 03),
 PIN_FIELD_BASE(14814810x0000, 0x10, 93),
 PIN_FIELD_BASE(14914910x0000, 0x10, 03),
 PIN_FIELD_BASE(15015010x0000, 0x10, 33),
 PIN_FIELD_BASE(15115110x0000, 0x10, 63),
 PIN_FIELD_BASE(15215270x0010, 0x10, 213),
 PIN_FIELD_BASE(15315370x0010, 0x10, 213),
 PIN_FIELD_BASE(15415470x0010, 0x10, 213),
 PIN_FIELD_BASE(15515570x0010, 0x10, 213),
 PIN_FIELD_BASE(15615670x0020, 0x10, 33),
 PIN_FIELD_BASE(15715770x0020, 0x10, 63),
 PIN_FIELD_BASE(15815870x0020, 0x10, 93),
 PIN_FIELD_BASE(15915970x0020, 0x10, 123),
 PIN_FIELD_BASE(16016070x0010, 0x10, 273),
 PIN_FIELD_BASE(16116170x0020, 0x10, 03),
 PIN_FIELD_BASE(16216270x0000, 0x10, 03),
 PIN_FIELD_BASE(16316370x0000, 0x10, 33),
 PIN_FIELD_BASE(16416470x0010, 0x10, 243),
 PIN_FIELD_BASE(16516570x0010, 0x10, 243),
 PIN_FIELD_BASE(16616670x0010, 0x10, 243),
 PIN_FIELD_BASE(16716770x0010, 0x10, 243),
 PIN_FIELD_BASE(16816870x0000, 0x10, 63),
 PIN_FIELD_BASE(16916970x0000, 0x10, 93),
 PIN_FIELD_BASE(17017070x0010, 0x10, 243),
 PIN_FIELD_BASE(17117170x0010, 0x10, 243),
 PIN_FIELD_BASE(17217270x0000, 0x10, 213),
 PIN_FIELD_BASE(17317370x0000, 0x10, 243),
 PIN_FIELD_BASE(17417470x0000, 0x10, 183),
 PIN_FIELD_BASE(17517570x0000, 0x10, 273),
 PIN_FIELD_BASE(17617670x0000, 0x10, 123),
 PIN_FIELD_BASE(17717770x0000, 0x10, 153),
 PIN_FIELD_BASE(17817870x0010, 0x10, 03),
 PIN_FIELD_BASE(17917970x0010, 0x10, 33),
 PIN_FIELD_BASE(18018070x0010, 0x10, 63),
 PIN_FIELD_BASE(18118170x0010, 0x10, 93),
 PIN_FIELD_BASE(18218270x0010, 0x10, 123),
 PIN_FIELD_BASE(18318390x0000, 0x10, 33),
 PIN_FIELD_BASE(18418490x0000, 0x10, 63),
 PIN_FIELD_BASE(18518590x0000, 0x10, 123),
 PIN_FIELD_BASE(18618690x0000, 0x10, 183),
 PIN_FIELD_BASE(18718790x0000, 0x10, 243),
 PIN_FIELD_BASE(18818890x0000, 0x10, 93),
 PIN_FIELD_BASE(18918990x0000, 0x10, 213),
 PIN_FIELD_BASE(19019090x0000, 0x10, 273),
 PIN_FIELD_BASE(19119190x0010, 0x10, 03),
 PIN_FIELD_BASE(19219290x0000, 0x10, 03),
 PIN_FIELD_BASE(19319390x0000, 0x10, 153),
 PIN_FIELD_BASE(19419490x0010, 0x10, 33),
 PIN_FIELD_BASE(19519550x0010, 0x10, 33),
 PIN_FIELD_BASE(19619650x0000, 0x10, 183),
 PIN_FIELD_BASE(19719750x0000, 0x10, 243),
 PIN_FIELD_BASE(19819850x0000, 0x10, 213),
 PIN_FIELD_BASE(19919950x0000, 0x10, 93),
 PIN_FIELD_BASE(20020080x0000, 0x10, 93),
 PIN_FIELD_BASE(20120180x0000, 0x10, 153),
 PIN_FIELD_BASE(20220250x0010, 0x10, 63),
 PIN_FIELD_BASE(20320350x0010, 0x10, 93),
 PIN_FIELD_BASE(20420480x0000, 0x10, 63),
 PIN_FIELD_BASE(20520580x0000, 0x10, 123),
 PIN_FIELD_BASE(20620650x0010, 0x10, 33),
 PIN_FIELD_BASE(20720750x0010, 0x10, 33),
 PIN_FIELD_BASE(20820850x0010, 0x10, 123),
 PIN_FIELD_BASE(20920950x0010, 0x10, 03),
 PIN_FIELD_BASE(21021050x0010, 0x10, 03),
 PIN_FIELD_BASE(21121150x0010, 0x10, 03),
 PIN_FIELD_BASE(21221250x0010, 0x10, 03),
 PIN_FIELD_BASE(21321350x0010, 0x10, 33),
 PIN_FIELD_BASE(21421450x0000, 0x10, 03),
 PIN_FIELD_BASE(21521550x0000, 0x10, 273),
 PIN_FIELD_BASE(21621650x0000, 0x10, 123),
 PIN_FIELD_BASE(21721750x0000, 0x10, 153),
 PIN_FIELD_BASE(21821850x0000, 0x10, 33),
 PIN_FIELD_BASE(21921950x0000, 0x10, 63),
};

static const struct mtk_pin_field_calc mt8192_pin_pupd_range[] = {
 PIN_FIELD_BASE(101060x0020, 0x10, 01),
 PIN_FIELD_BASE(111160x0020, 0x10, 11),
 PIN_FIELD_BASE(121260x0020, 0x10, 21),
 PIN_FIELD_BASE(131360x0020, 0x10, 31),
 PIN_FIELD_BASE(141460x0020, 0x10, 41),
 PIN_FIELD_BASE(151560x0020, 0x10, 51),
 PIN_FIELD_BASE(454510x0060, 0x10, 91),
 PIN_FIELD_BASE(464610x0060, 0x10, 111),
 PIN_FIELD_BASE(474710x0060, 0x10, 101),
 PIN_FIELD_BASE(484810x0060, 0x10, 71),
 PIN_FIELD_BASE(494910x0060, 0x10, 81),
 PIN_FIELD_BASE(505010x0060, 0x10, 61),
 PIN_FIELD_BASE(515110x0060, 0x10, 01),
 PIN_FIELD_BASE(525210x0060, 0x10, 11),
 PIN_FIELD_BASE(535310x0060, 0x10, 51),
 PIN_FIELD_BASE(545410x0060, 0x10, 21),
 PIN_FIELD_BASE(555510x0060, 0x10, 41),
 PIN_FIELD_BASE(565610x0060, 0x10, 31),
 PIN_FIELD_BASE(15215270x0090, 0x10, 31),
 PIN_FIELD_BASE(15315370x0090, 0x10, 21),
 PIN_FIELD_BASE(15415470x0090, 0x10, 01),
 PIN_FIELD_BASE(15515570x0090, 0x10, 11),
 PIN_FIELD_BASE(18318390x0030, 0x10, 11),
 PIN_FIELD_BASE(18418490x0030, 0x10, 21),
 PIN_FIELD_BASE(18518590x0030, 0x10, 41),
 PIN_FIELD_BASE(18618690x0030, 0x10, 61),
 PIN_FIELD_BASE(18718790x0030, 0x10, 81),
 PIN_FIELD_BASE(18818890x0030, 0x10, 31),
 PIN_FIELD_BASE(18918990x0030, 0x10, 71),
 PIN_FIELD_BASE(19019090x0030, 0x10, 91),
 PIN_FIELD_BASE(19119190x0030, 0x10, 101),
 PIN_FIELD_BASE(19219290x0030, 0x10, 01),
 PIN_FIELD_BASE(19319390x0030, 0x10, 51),
 PIN_FIELD_BASE(19419490x0030, 0x10, 111),
};

static const struct mtk_pin_field_calc mt8192_pin_r0_range[] = {
 PIN_FIELD_BASE(101060x0030, 0x10, 01),
 PIN_FIELD_BASE(111160x0030, 0x10, 11),
 PIN_FIELD_BASE(121260x0030, 0x10, 21),
 PIN_FIELD_BASE(131360x0030, 0x10, 31),
 PIN_FIELD_BASE(141460x0030, 0x10, 41),
 PIN_FIELD_BASE(151560x0030, 0x10, 51),
 PIN_FIELD_BASE(454510x0080, 0x10, 91),
 PIN_FIELD_BASE(464610x0080, 0x10, 111),
 PIN_FIELD_BASE(474710x0080, 0x10, 101),
 PIN_FIELD_BASE(484810x0080, 0x10, 71),
 PIN_FIELD_BASE(494910x0080, 0x10, 81),
 PIN_FIELD_BASE(505010x0080, 0x10, 61),
 PIN_FIELD_BASE(515110x0080, 0x10, 01),
 PIN_FIELD_BASE(525210x0080, 0x10, 11),
 PIN_FIELD_BASE(535310x0080, 0x10, 51),
 PIN_FIELD_BASE(545410x0080, 0x10, 21),
 PIN_FIELD_BASE(555510x0080, 0x10, 41),
 PIN_FIELD_BASE(565610x0080, 0x10, 31),
 PIN_FIELD_BASE(15215270x00c0, 0x10, 31),
 PIN_FIELD_BASE(15315370x00c0, 0x10, 21),
 PIN_FIELD_BASE(15415470x00c0, 0x10, 01),
 PIN_FIELD_BASE(15515570x00c0, 0x10, 11),
 PIN_FIELD_BASE(18318390x0040, 0x10, 11),
 PIN_FIELD_BASE(18418490x0040, 0x10, 21),
 PIN_FIELD_BASE(18518590x0040, 0x10, 41),
 PIN_FIELD_BASE(18618690x0040, 0x10, 61),
 PIN_FIELD_BASE(18718790x0040, 0x10, 81),
 PIN_FIELD_BASE(18818890x0040, 0x10, 31),
 PIN_FIELD_BASE(18918990x0040, 0x10, 71),
 PIN_FIELD_BASE(19019090x0040, 0x10, 91),
 PIN_FIELD_BASE(19119190x0040, 0x10, 101),
 PIN_FIELD_BASE(19219290x0040, 0x10, 01),
 PIN_FIELD_BASE(19319390x0040, 0x10, 51),
 PIN_FIELD_BASE(19419490x0040, 0x10, 111),
};

static const struct mtk_pin_field_calc mt8192_pin_r1_range[] = {
 PIN_FIELD_BASE(101060x0040, 0x10, 01),
 PIN_FIELD_BASE(111160x0040, 0x10, 11),
 PIN_FIELD_BASE(121260x0040, 0x10, 21),
 PIN_FIELD_BASE(131360x0040, 0x10, 31),
 PIN_FIELD_BASE(141460x0040, 0x10, 41),
 PIN_FIELD_BASE(151560x0040, 0x10, 51),
 PIN_FIELD_BASE(454510x0090, 0x10, 91),
 PIN_FIELD_BASE(464610x0090, 0x10, 111),
 PIN_FIELD_BASE(474710x0090, 0x10, 101),
 PIN_FIELD_BASE(484810x0090, 0x10, 71),
 PIN_FIELD_BASE(494910x0090, 0x10, 81),
 PIN_FIELD_BASE(505010x0090, 0x10, 61),
 PIN_FIELD_BASE(515110x0090, 0x10, 01),
 PIN_FIELD_BASE(525210x0090, 0x10, 11),
 PIN_FIELD_BASE(535310x0090, 0x10, 51),
 PIN_FIELD_BASE(545410x0090, 0x10, 21),
 PIN_FIELD_BASE(555510x0090, 0x10, 41),
 PIN_FIELD_BASE(565610x0090, 0x10, 31),
 PIN_FIELD_BASE(15215270x00d0, 0x10, 31),
 PIN_FIELD_BASE(15315370x00d0, 0x10, 21),
 PIN_FIELD_BASE(15415470x00d0, 0x10, 01),
 PIN_FIELD_BASE(15515570x00d0, 0x10, 11),
 PIN_FIELD_BASE(18318390x0050, 0x10, 11),
 PIN_FIELD_BASE(18418490x0050, 0x10, 21),
 PIN_FIELD_BASE(18518590x0050, 0x10, 41),
 PIN_FIELD_BASE(18618690x0050, 0x10, 61),
 PIN_FIELD_BASE(18718790x0050, 0x10, 81),
 PIN_FIELD_BASE(18818890x0050, 0x10, 31),
 PIN_FIELD_BASE(18918990x0050, 0x10, 71),
 PIN_FIELD_BASE(19019090x0050, 0x10, 91),
 PIN_FIELD_BASE(19119190x0050, 0x10, 101),
 PIN_FIELD_BASE(19219290x0050, 0x10, 01),
 PIN_FIELD_BASE(19319390x0050, 0x10, 51),
 PIN_FIELD_BASE(19419490x0050, 0x10, 111),
};

static const struct mtk_pin_field_calc mt8192_pin_drv_adv_range[] = {
 PIN_FIELD_BASE(898920x0040, 0x10, 05),
 PIN_FIELD_BASE(909020x0040, 0x10, 55),

 PIN_FIELD_BASE(11811840x0040, 0x10, 03),
 PIN_FIELD_BASE(11911940x0040, 0x10, 183),
 PIN_FIELD_BASE(12012040x0040, 0x10, 153),
 PIN_FIELD_BASE(12112140x0050, 0x10, 33),
 PIN_FIELD_BASE(12212240x0040, 0x10, 123),
 PIN_FIELD_BASE(12312340x0050, 0x10, 03),
 PIN_FIELD_BASE(12412440x0040, 0x10, 93),
 PIN_FIELD_BASE(12512540x0040, 0x10, 273),
 PIN_FIELD_BASE(13913940x0040, 0x10, 63),
 PIN_FIELD_BASE(14014040x0040, 0x10, 243),
 PIN_FIELD_BASE(14114140x0040, 0x10, 33),
 PIN_FIELD_BASE(14214240x0040, 0x10, 213),
 PIN_FIELD_BASE(16016070x0030, 0x10, 03),
 PIN_FIELD_BASE(16116170x0030, 0x10, 33),
 PIN_FIELD_BASE(20020080x0010, 0x10, 33),
 PIN_FIELD_BASE(20120180x0010, 0x10, 93),
 PIN_FIELD_BASE(20220250x0020, 0x10, 03),
 PIN_FIELD_BASE(20320350x0020, 0x10, 33),
 PIN_FIELD_BASE(20420480x0010, 0x10, 03),
 PIN_FIELD_BASE(20520580x0010, 0x10, 63),
};

static const struct mtk_pin_field_calc mt8192_pin_rsel_range[] = {
 PIN_FIELD_BASE(11811840x00e0, 0x10, 02),
 PIN_FIELD_BASE(11911940x00e0, 0x10, 122),
 PIN_FIELD_BASE(12012040x00e0, 0x10, 102),
 PIN_FIELD_BASE(12112140x00e0, 0x10, 222),
 PIN_FIELD_BASE(12212240x00e0, 0x10, 82),
 PIN_FIELD_BASE(12312340x00e0, 0x10, 202),
 PIN_FIELD_BASE(12412440x00e0, 0x10, 62),
 PIN_FIELD_BASE(12512540x00e0, 0x10, 182),
 PIN_FIELD_BASE(13913940x00e0, 0x10, 42),
 PIN_FIELD_BASE(14014040x00e0, 0x10, 162),
 PIN_FIELD_BASE(14114140x00e0, 0x10, 22),
 PIN_FIELD_BASE(14214240x00e0, 0x10, 142),
 PIN_FIELD_BASE(16016070x00f0, 0x10, 02),
 PIN_FIELD_BASE(16116170x00f0, 0x10, 22),
 PIN_FIELD_BASE(20020080x0070, 0x10, 22),
 PIN_FIELD_BASE(20120180x0070, 0x10, 62),
 PIN_FIELD_BASE(20220250x0070, 0x10, 02),
 PIN_FIELD_BASE(20320350x0070, 0x10, 22),
 PIN_FIELD_BASE(20420480x0070, 0x10, 02),
 PIN_FIELD_BASE(20520580x0070, 0x10, 42),
};

static const unsigned int mt8192_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_PUPD_R1R0_TYPE,/*10*/ MTK_PULL_PUPD_R1R0_TYPE,/*11*/
 MTK_PULL_PUPD_R1R0_TYPE,/*12*/ MTK_PULL_PUPD_R1R0_TYPE,/*13*/
 MTK_PULL_PUPD_R1R0_TYPE,/*14*/ MTK_PULL_PUPD_R1R0_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_PUPD_R1R0_TYPE,/*45*/
 MTK_PULL_PUPD_R1R0_TYPE,/*46*/ MTK_PULL_PUPD_R1R0_TYPE,/*47*/
 MTK_PULL_PUPD_R1R0_TYPE,/*48*/ MTK_PULL_PUPD_R1R0_TYPE,/*49*/
 MTK_PULL_PUPD_R1R0_TYPE,/*50*/ MTK_PULL_PUPD_R1R0_TYPE,/*51*/
 MTK_PULL_PUPD_R1R0_TYPE,/*52*/ MTK_PULL_PUPD_R1R0_TYPE,/*53*/
 MTK_PULL_PUPD_R1R0_TYPE,/*54*/ MTK_PULL_PUPD_R1R0_TYPE,/*55*/
 MTK_PULL_PUPD_R1R0_TYPE,/*56*/ MTK_PULL_PU_PD_TYPE,/*57*/
 MTK_PULL_PU_PD_TYPE,/*58*/ MTK_PULL_PU_PD_TYPE,/*59*/
 MTK_PULL_PU_PD_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_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_RSEL_TYPE,/*118*/ MTK_PULL_PU_PD_RSEL_TYPE,/*119*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*120*/ MTK_PULL_PU_PD_RSEL_TYPE,/*121*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*122*/ MTK_PULL_PU_PD_RSEL_TYPE,/*123*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*124*/ MTK_PULL_PU_PD_RSEL_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_PU_PD_TYPE,/*131*/
 MTK_PULL_PU_PD_TYPE,/*132*/ MTK_PULL_PU_PD_TYPE,/*133*/
 MTK_PULL_PU_PD_TYPE,/*134*/ MTK_PULL_PU_PD_TYPE,/*135*/
 MTK_PULL_PU_PD_TYPE,/*136*/ MTK_PULL_PU_PD_TYPE,/*137*/
 MTK_PULL_PU_PD_TYPE,/*138*/ MTK_PULL_PU_PD_RSEL_TYPE,/*139*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*140*/ MTK_PULL_PU_PD_RSEL_TYPE,/*141*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*142*/ MTK_PULL_PU_PD_TYPE,/*143*/
 MTK_PULL_PU_PD_TYPE,/*144*/ MTK_PULL_PU_PD_TYPE,/*145*/
 MTK_PULL_PU_PD_TYPE,/*146*/ MTK_PULL_PU_PD_TYPE,/*147*/
 MTK_PULL_PU_PD_TYPE,/*148*/ MTK_PULL_PU_PD_TYPE,/*149*/
 MTK_PULL_PU_PD_TYPE,/*150*/ MTK_PULL_PU_PD_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_PU_PD_TYPE,/*156*/ MTK_PULL_PU_PD_TYPE,/*157*/
 MTK_PULL_PU_PD_TYPE,/*158*/ MTK_PULL_PU_PD_TYPE,/*159*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*160*/ MTK_PULL_PU_PD_RSEL_TYPE,/*161*/
 MTK_PULL_PU_PD_TYPE,/*162*/ MTK_PULL_PU_PD_TYPE,/*163*/
 MTK_PULL_PU_PD_TYPE,/*164*/ MTK_PULL_PU_PD_TYPE,/*165*/
 MTK_PULL_PU_PD_TYPE,/*166*/ MTK_PULL_PU_PD_TYPE,/*167*/
 MTK_PULL_PU_PD_TYPE,/*168*/ MTK_PULL_PU_PD_TYPE,/*169*/
 MTK_PULL_PU_PD_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_TYPE,/*176*/ MTK_PULL_PU_PD_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_PUPD_R1R0_TYPE,/*183*/
 MTK_PULL_PUPD_R1R0_TYPE,/*184*/ MTK_PULL_PUPD_R1R0_TYPE,/*185*/
 MTK_PULL_PUPD_R1R0_TYPE,/*186*/ MTK_PULL_PUPD_R1R0_TYPE,/*187*/
 MTK_PULL_PUPD_R1R0_TYPE,/*188*/ MTK_PULL_PUPD_R1R0_TYPE,/*189*/
 MTK_PULL_PUPD_R1R0_TYPE,/*190*/ MTK_PULL_PUPD_R1R0_TYPE,/*191*/
 MTK_PULL_PUPD_R1R0_TYPE,/*192*/ MTK_PULL_PUPD_R1R0_TYPE,/*193*/
 MTK_PULL_PUPD_R1R0_TYPE,/*194*/ MTK_PULL_PU_PD_TYPE,/*195*/
 MTK_PULL_PU_PD_TYPE,/*196*/ MTK_PULL_PU_PD_TYPE,/*197*/
 MTK_PULL_PU_PD_TYPE,/*198*/ MTK_PULL_PU_PD_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_RSEL_TYPE,/*204*/ MTK_PULL_PU_PD_RSEL_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_TYPE,/*214*/ MTK_PULL_PU_PD_TYPE,/*215*/
 MTK_PULL_PU_PD_TYPE,/*216*/ MTK_PULL_PU_PD_TYPE,/*217*/
 MTK_PULL_PU_PD_TYPE,/*218*/ MTK_PULL_PU_PD_TYPE,/*219*/
};

static const char * const mt8192_pinctrl_register_base_names[] = {
 "iocfg0""iocfg_rm""iocfg_bm""iocfg_bl""iocfg_br",
 "iocfg_lm""iocfg_lb""iocfg_rt""iocfg_lt""iocfg_tl",
};

static const struct mtk_eint_hw mt8192_eint_hw = {
 .port_mask = 7,
 .ports     = 7,
 .ap_num    = 224,
 .db_cnt    = 32,
 .db_time   = debounce_time_mt6765,
};

static const struct mtk_pin_reg_calc mt8192_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8192_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8192_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8192_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8192_pin_do_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8192_pin_smt_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8192_pin_ies_range),
 [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8192_pin_pu_range),
 [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8192_pin_pd_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8192_pin_drv_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8192_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8192_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8192_pin_r1_range),
 [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8192_pin_drv_adv_range),
 [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8192_pin_rsel_range),
};

static const struct mtk_pin_soc mt8192_data = {
 .reg_cal = mt8192_reg_cals,
 .pins = mtk_pins_mt8192,
 .npins = ARRAY_SIZE(mtk_pins_mt8192),
 .ngrps = ARRAY_SIZE(mtk_pins_mt8192),
 .base_names = mt8192_pinctrl_register_base_names,
 .nbase_names = ARRAY_SIZE(mt8192_pinctrl_register_base_names),
 .pull_type = mt8192_pull_type,
 .eint_hw = &mt8192_eint_hw,
 .nfuncs = 8,
 .gpio_m = 0,
 .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 mt8192_pinctrl_of_match[] = {
 { .compatible = "mediatek,mt8192-pinctrl", .data = &mt8192_data },
 { }
};

static struct platform_driver mt8192_pinctrl_driver = {
 .driver = {
  .name = "mt8192-pinctrl",
  .of_match_table = mt8192_pinctrl_of_match,
  .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops),
 },
 .probe = mtk_paris_pinctrl_probe,
};

static int __init mt8192_pinctrl_init(void)
{
 return platform_driver_register(&mt8192_pinctrl_driver);
}
arch_initcall(mt8192_pinctrl_init);

MODULE_DESCRIPTION("MediaTek MT8192 Pinctrl Driver");

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

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