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

Quelle  pinctrl-mt8186.c

  Sprache: C
 

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


#include "pinctrl-mtk-mt8186.h"
#include "pinctrl-paris.h"

/* MT8186 have multiple bases to program pin configuration listed as the below:
 * iocfg[0]:0x10005000, iocfg[1]:0x10002000, iocfg[2]:0x10002200,
 * iocfg[3]:0x10002400, iocfg[4]:0x10002600, iocfg[5]:0x10002800,
 * iocfg[6]:0x10002C00.
 * _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 mt8186_pin_mode_range[] = {
 PIN_FIELD(01840x300, 0x10, 04),
};

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

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

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

static const struct mtk_pin_field_calc mt8186_pin_ies_range[] = {
 PIN_FIELD_BASE(0060x0030, 0x10, 131),
 PIN_FIELD_BASE(1160x0030, 0x10, 141),
 PIN_FIELD_BASE(2260x0030, 0x10, 171),
 PIN_FIELD_BASE(3360x0030, 0x10, 181),
 PIN_FIELD_BASE(4460x0030, 0x10, 191),
 PIN_FIELD_BASE(5560x0030, 0x10, 201),
 PIN_FIELD_BASE(6640x0020, 0x10, 191),
 PIN_FIELD_BASE(7740x0020, 0x10, 201),
 PIN_FIELD_BASE(8840x0020, 0x10, 211),
 PIN_FIELD_BASE(9940x0020, 0x10, 221),
 PIN_FIELD_BASE(101040x0020, 0x10, 161),
 PIN_FIELD_BASE(111140x0020, 0x10, 171),
 PIN_FIELD_BASE(121240x0020, 0x10, 181),
 PIN_FIELD_BASE(131330x0040, 0x10, 01),
 PIN_FIELD_BASE(141430x0040, 0x10, 11),
 PIN_FIELD_BASE(151560x0030, 0x10, 151),
 PIN_FIELD_BASE(161660x0030, 0x10, 161),
 PIN_FIELD_BASE(171750x0050, 0x10, 91),
 PIN_FIELD_BASE(181850x0050, 0x10, 101),
 PIN_FIELD_BASE(191950x0050, 0x10, 31),
 PIN_FIELD_BASE(202050x0050, 0x10, 61),
 PIN_FIELD_BASE(212150x0050, 0x10, 41),
 PIN_FIELD_BASE(222250x0050, 0x10, 71),
 PIN_FIELD_BASE(232350x0050, 0x10, 51),
 PIN_FIELD_BASE(242450x0050, 0x10, 81),
 PIN_FIELD_BASE(252550x0050, 0x10, 181),
 PIN_FIELD_BASE(262650x0050, 0x10, 151),
 PIN_FIELD_BASE(272750x0050, 0x10, 171),
 PIN_FIELD_BASE(282850x0050, 0x10, 161),
 PIN_FIELD_BASE(292960x0030, 0x10, 01),
 PIN_FIELD_BASE(303060x0030, 0x10, 11),
 PIN_FIELD_BASE(313160x0030, 0x10, 21),
 PIN_FIELD_BASE(323220x0040, 0x10, 251),
 PIN_FIELD_BASE(333320x0040, 0x10, 271),
 PIN_FIELD_BASE(343420x0040, 0x10, 261),
 PIN_FIELD_BASE(353520x0040, 0x10, 281),
 PIN_FIELD_BASE(363620x0040, 0x10, 91),
 PIN_FIELD_BASE(373720x0040, 0x10, 101),
 PIN_FIELD_BASE(383820x0040, 0x10, 121),
 PIN_FIELD_BASE(393920x0040, 0x10, 111),
 PIN_FIELD_BASE(404020x0040, 0x10, 131),
 PIN_FIELD_BASE(414120x0040, 0x10, 141),
 PIN_FIELD_BASE(424220x0040, 0x10, 161),
 PIN_FIELD_BASE(434320x0040, 0x10, 151),
 PIN_FIELD_BASE(444450x0060, 0x10, 01),
 PIN_FIELD_BASE(454550x0060, 0x10, 11),
 PIN_FIELD_BASE(464650x0060, 0x10, 31),
 PIN_FIELD_BASE(474750x0060, 0x10, 21),
 PIN_FIELD_BASE(484820x0040, 0x10, 171),
 PIN_FIELD_BASE(494920x0040, 0x10, 181),
 PIN_FIELD_BASE(505020x0040, 0x10, 201),
 PIN_FIELD_BASE(515120x0040, 0x10, 191),
 PIN_FIELD_BASE(525230x0040, 0x10, 181),
 PIN_FIELD_BASE(535330x0040, 0x10, 191),
 PIN_FIELD_BASE(545430x0040, 0x10, 211),
 PIN_FIELD_BASE(555530x0040, 0x10, 201),
 PIN_FIELD_BASE(565650x0050, 0x10, 121),
 PIN_FIELD_BASE(575750x0050, 0x10, 111),
 PIN_FIELD_BASE(585850x0050, 0x10, 131),
 PIN_FIELD_BASE(595950x0050, 0x10, 141),
 PIN_FIELD_BASE(606030x0040, 0x10, 271),
 PIN_FIELD_BASE(616130x0040, 0x10, 221),
 PIN_FIELD_BASE(626230x0040, 0x10, 281),
 PIN_FIELD_BASE(636330x0040, 0x10, 231),
 PIN_FIELD_BASE(646430x0040, 0x10, 241),
 PIN_FIELD_BASE(656530x0040, 0x10, 251),
 PIN_FIELD_BASE(666630x0040, 0x10, 261),
 PIN_FIELD_BASE(676710x0050, 0x10, 181),
 PIN_FIELD_BASE(686810x0050, 0x10, 81),
 PIN_FIELD_BASE(696910x0050, 0x10, 91),
 PIN_FIELD_BASE(707010x0050, 0x10, 191),
 PIN_FIELD_BASE(717110x0050, 0x10, 101),
 PIN_FIELD_BASE(727210x0050, 0x10, 111),
 PIN_FIELD_BASE(737310x0050, 0x10, 121),
 PIN_FIELD_BASE(747410x0050, 0x10, 131),
 PIN_FIELD_BASE(757510x0050, 0x10, 141),
 PIN_FIELD_BASE(767610x0050, 0x10, 151),
 PIN_FIELD_BASE(777710x0050, 0x10, 161),
 PIN_FIELD_BASE(787810x0050, 0x10, 171),
 PIN_FIELD_BASE(797950x0050, 0x10, 241),
 PIN_FIELD_BASE(808050x0050, 0x10, 251),
 PIN_FIELD_BASE(818150x0050, 0x10, 261),
 PIN_FIELD_BASE(828250x0050, 0x10, 271),
 PIN_FIELD_BASE(838360x0030, 0x10, 31),
 PIN_FIELD_BASE(848430x0040, 0x10, 41),
 PIN_FIELD_BASE(858530x0040, 0x10, 51),
 PIN_FIELD_BASE(868630x0040, 0x10, 61),
 PIN_FIELD_BASE(878730x0040, 0x10, 71),
 PIN_FIELD_BASE(888830x0040, 0x10, 81),
 PIN_FIELD_BASE(898930x0040, 0x10, 91),
 PIN_FIELD_BASE(909030x0040, 0x10, 21),
 PIN_FIELD_BASE(919130x0040, 0x10, 291),
 PIN_FIELD_BASE(929230x0040, 0x10, 311),
 PIN_FIELD_BASE(939330x0040, 0x10, 31),
 PIN_FIELD_BASE(949430x0040, 0x10, 301),
 PIN_FIELD_BASE(959530x0050, 0x10, 01),
 PIN_FIELD_BASE(969620x0040, 0x10, 11),
 PIN_FIELD_BASE(979720x0040, 0x10, 01),
 PIN_FIELD_BASE(989820x0040, 0x10, 21),
 PIN_FIELD_BASE(999940x0020, 0x10, 141),
 PIN_FIELD_BASE(10010040x0020, 0x10, 151),
 PIN_FIELD_BASE(10110140x0020, 0x10, 131),
 PIN_FIELD_BASE(10210240x0020, 0x10, 121),
 PIN_FIELD_BASE(10310340x0020, 0x10, 01),
 PIN_FIELD_BASE(10410440x0020, 0x10, 11),
 PIN_FIELD_BASE(10510540x0020, 0x10, 41),
 PIN_FIELD_BASE(10610640x0020, 0x10, 51),
 PIN_FIELD_BASE(10710740x0020, 0x10, 61),
 PIN_FIELD_BASE(10810840x0020, 0x10, 71),
 PIN_FIELD_BASE(10910940x0020, 0x10, 81),
 PIN_FIELD_BASE(11011040x0020, 0x10, 91),
 PIN_FIELD_BASE(11111140x0020, 0x10, 101),
 PIN_FIELD_BASE(11211240x0020, 0x10, 111),
 PIN_FIELD_BASE(11311340x0020, 0x10, 21),
 PIN_FIELD_BASE(11411440x0020, 0x10, 31),
 PIN_FIELD_BASE(11511530x0040, 0x10, 101),
 PIN_FIELD_BASE(11611630x0040, 0x10, 131),
 PIN_FIELD_BASE(11711730x0040, 0x10, 111),
 PIN_FIELD_BASE(11811830x0040, 0x10, 121),
 PIN_FIELD_BASE(11911950x0050, 0x10, 221),
 PIN_FIELD_BASE(12012050x0050, 0x10, 191),
 PIN_FIELD_BASE(12112150x0050, 0x10, 201),
 PIN_FIELD_BASE(12212250x0050, 0x10, 211),
 PIN_FIELD_BASE(12312350x0050, 0x10, 231),
 PIN_FIELD_BASE(12412450x0050, 0x10, 01),
 PIN_FIELD_BASE(12512550x0050, 0x10, 11),
 PIN_FIELD_BASE(12612650x0050, 0x10, 21),
 PIN_FIELD_BASE(12712730x0040, 0x10, 141),
 PIN_FIELD_BASE(12812830x0040, 0x10, 161),
 PIN_FIELD_BASE(12912950x0050, 0x10, 281),
 PIN_FIELD_BASE(13013050x0050, 0x10, 301),
 PIN_FIELD_BASE(13113150x0050, 0x10, 291),
 PIN_FIELD_BASE(13213250x0050, 0x10, 311),
 PIN_FIELD_BASE(13313310x0050, 0x10, 211),
 PIN_FIELD_BASE(13413410x0050, 0x10, 241),
 PIN_FIELD_BASE(13513560x0030, 0x10, 211),
 PIN_FIELD_BASE(13613660x0030, 0x10, 241),
 PIN_FIELD_BASE(13713710x0050, 0x10, 221),
 PIN_FIELD_BASE(13813810x0050, 0x10, 251),
 PIN_FIELD_BASE(13913920x0040, 0x10, 71),
 PIN_FIELD_BASE(14014020x0040, 0x10, 81),
 PIN_FIELD_BASE(14114130x0040, 0x10, 151),
 PIN_FIELD_BASE(14214230x0040, 0x10, 171),
 PIN_FIELD_BASE(14314360x0030, 0x10, 221),
 PIN_FIELD_BASE(14414460x0030, 0x10, 251),
 PIN_FIELD_BASE(14514560x0030, 0x10, 231),
 PIN_FIELD_BASE(14614660x0030, 0x10, 261),
 PIN_FIELD_BASE(14714740x0020, 0x10, 231),
 PIN_FIELD_BASE(14814840x0020, 0x10, 241),
 PIN_FIELD_BASE(14914940x0020, 0x10, 251),
 PIN_FIELD_BASE(15015040x0020, 0x10, 261),
 PIN_FIELD_BASE(15115140x0020, 0x10, 271),
 PIN_FIELD_BASE(15215240x0020, 0x10, 281),
 PIN_FIELD_BASE(15315340x0020, 0x10, 291),
 PIN_FIELD_BASE(15415440x0020, 0x10, 301),
 PIN_FIELD_BASE(15515540x0020, 0x10, 311),
 PIN_FIELD_BASE(15615640x0030, 0x10, 01),
 PIN_FIELD_BASE(15715720x0040, 0x10, 41),
 PIN_FIELD_BASE(15815820x0040, 0x10, 31),
 PIN_FIELD_BASE(15915920x0040, 0x10, 61),
 PIN_FIELD_BASE(16016020x0040, 0x10, 51),
 PIN_FIELD_BASE(16116120x0040, 0x10, 231),
 PIN_FIELD_BASE(16216220x0040, 0x10, 241),
 PIN_FIELD_BASE(16316310x0050, 0x10, 231),
 PIN_FIELD_BASE(16416410x0050, 0x10, 201),
 PIN_FIELD_BASE(16516510x0050, 0x10, 261),
 PIN_FIELD_BASE(16616610x0050, 0x10, 11),
 PIN_FIELD_BASE(16716710x0050, 0x10, 71),
 PIN_FIELD_BASE(16816810x0050, 0x10, 41),
 PIN_FIELD_BASE(16916910x0050, 0x10, 51),
 PIN_FIELD_BASE(17017010x0050, 0x10, 01),
 PIN_FIELD_BASE(17117110x0050, 0x10, 61),
 PIN_FIELD_BASE(17217210x0050, 0x10, 21),
 PIN_FIELD_BASE(17317310x0050, 0x10, 31),
 PIN_FIELD_BASE(17417460x0030, 0x10, 71),
 PIN_FIELD_BASE(17517560x0030, 0x10, 81),
 PIN_FIELD_BASE(17617660x0030, 0x10, 41),
 PIN_FIELD_BASE(17717760x0030, 0x10, 51),
 PIN_FIELD_BASE(17817860x0030, 0x10, 61),
 PIN_FIELD_BASE(17917960x0030, 0x10, 91),
 PIN_FIELD_BASE(18018060x0030, 0x10, 101),
 PIN_FIELD_BASE(18118160x0030, 0x10, 111),
 PIN_FIELD_BASE(18218260x0030, 0x10, 121),
 PIN_FIELD_BASE(18318320x0040, 0x10, 211),
 PIN_FIELD_BASE(18418420x0040, 0x10, 221),
};

static const struct mtk_pin_field_calc mt8186_pin_smt_range[] = {
 PIN_FIELD_BASE(0060x0080, 0x10, 01),
 PIN_FIELD_BASE(1160x0080, 0x10, 01),
 PIN_FIELD_BASE(2260x0080, 0x10, 01),
 PIN_FIELD_BASE(3360x0080, 0x10, 01),
 PIN_FIELD_BASE(4460x0080, 0x10, 11),
 PIN_FIELD_BASE(5560x0080, 0x10, 11),
 PIN_FIELD_BASE(6640x0090, 0x10, 01),
 PIN_FIELD_BASE(7740x0090, 0x10, 11),
 PIN_FIELD_BASE(8840x0090, 0x10, 11),
 PIN_FIELD_BASE(9940x0090, 0x10, 11),
 PIN_FIELD_BASE(101040x0090, 0x10, 01),
 PIN_FIELD_BASE(111140x0090, 0x10, 01),
 PIN_FIELD_BASE(121240x0090, 0x10, 01),
 PIN_FIELD_BASE(131330x00e0, 0x10, 111),
 PIN_FIELD_BASE(141430x00e0, 0x10, 111),
 PIN_FIELD_BASE(151560x0080, 0x10, 21),
 PIN_FIELD_BASE(161660x0080, 0x10, 21),
 PIN_FIELD_BASE(171750x00e0, 0x10, 31),
 PIN_FIELD_BASE(181850x00e0, 0x10, 71),
 PIN_FIELD_BASE(191950x00e0, 0x10, 61),
 PIN_FIELD_BASE(202050x00e0, 0x10, 51),
 PIN_FIELD_BASE(212150x00e0, 0x10, 61),
 PIN_FIELD_BASE(222250x00e0, 0x10, 51),
 PIN_FIELD_BASE(232350x00e0, 0x10, 71),
 PIN_FIELD_BASE(242450x00e0, 0x10, 101),
 PIN_FIELD_BASE(252550x00e0, 0x10, 71),
 PIN_FIELD_BASE(262650x00e0, 0x10, 61),
 PIN_FIELD_BASE(272750x00e0, 0x10, 61),
 PIN_FIELD_BASE(282850x00e0, 0x10, 71),
 PIN_FIELD_BASE(292960x0080, 0x10, 11),
 PIN_FIELD_BASE(303060x0080, 0x10, 11),
 PIN_FIELD_BASE(313160x0080, 0x10, 21),
 PIN_FIELD_BASE(323220x0090, 0x10, 21),
 PIN_FIELD_BASE(333320x0090, 0x10, 21),
 PIN_FIELD_BASE(343420x0090, 0x10, 11),
 PIN_FIELD_BASE(353520x0090, 0x10, 11),
 PIN_FIELD_BASE(363620x0090, 0x10, 31),
 PIN_FIELD_BASE(373720x0090, 0x10, 31),
 PIN_FIELD_BASE(383820x0090, 0x10, 41),
 PIN_FIELD_BASE(393920x0090, 0x10, 31),
 PIN_FIELD_BASE(404020x0090, 0x10, 51),
 PIN_FIELD_BASE(414120x0090, 0x10, 41),
 PIN_FIELD_BASE(424220x0090, 0x10, 41),
 PIN_FIELD_BASE(434320x0090, 0x10, 41),
 PIN_FIELD_BASE(444450x00e0, 0x10, 91),
 PIN_FIELD_BASE(454550x00e0, 0x10, 81),
 PIN_FIELD_BASE(464650x00e0, 0x10, 81),
 PIN_FIELD_BASE(474750x00e0, 0x10, 91),
 PIN_FIELD_BASE(484820x0090, 0x10, 51),
 PIN_FIELD_BASE(494920x0090, 0x10, 51),
 PIN_FIELD_BASE(505020x0090, 0x10, 51),
 PIN_FIELD_BASE(515120x0090, 0x10, 61),
 PIN_FIELD_BASE(525230x00e0, 0x10, 91),
 PIN_FIELD_BASE(535330x00e0, 0x10, 101),
 PIN_FIELD_BASE(545430x00e0, 0x10, 91),
 PIN_FIELD_BASE(555530x00e0, 0x10, 91),
 PIN_FIELD_BASE(565650x00e0, 0x10, 81),
 PIN_FIELD_BASE(575750x00e0, 0x10, 91),
 PIN_FIELD_BASE(585850x00e0, 0x10, 91),
 PIN_FIELD_BASE(595950x00e0, 0x10, 81),
 PIN_FIELD_BASE(606030x00e0, 0x10, 61),
 PIN_FIELD_BASE(616130x00e0, 0x10, 61),
 PIN_FIELD_BASE(626230x00e0, 0x10, 61),
 PIN_FIELD_BASE(636330x00e0, 0x10, 61),
 PIN_FIELD_BASE(646430x00e0, 0x10, 71),
 PIN_FIELD_BASE(656530x00e0, 0x10, 71),
 PIN_FIELD_BASE(666630x00e0, 0x10, 71),
 PIN_FIELD_BASE(676710x00f0, 0x10, 101),
 PIN_FIELD_BASE(686810x00f0, 0x10, 01),
 PIN_FIELD_BASE(696910x00f0, 0x10, 11),
 PIN_FIELD_BASE(707010x00f0, 0x10, 111),
 PIN_FIELD_BASE(717110x00f0, 0x10, 21),
 PIN_FIELD_BASE(727210x00f0, 0x10, 31),
 PIN_FIELD_BASE(737310x00f0, 0x10, 41),
 PIN_FIELD_BASE(747410x00f0, 0x10, 51),
 PIN_FIELD_BASE(757510x00f0, 0x10, 61),
 PIN_FIELD_BASE(767610x00f0, 0x10, 71),
 PIN_FIELD_BASE(777710x00f0, 0x10, 81),
 PIN_FIELD_BASE(787810x00f0, 0x10, 91),
 PIN_FIELD_BASE(797950x00e0, 0x10, 51),
 PIN_FIELD_BASE(808050x00e0, 0x10, 51),
 PIN_FIELD_BASE(818150x00e0, 0x10, 41),
 PIN_FIELD_BASE(828250x00e0, 0x10, 41),
 PIN_FIELD_BASE(838360x0080, 0x10, 21),
 PIN_FIELD_BASE(848430x00e0, 0x10, 01),
 PIN_FIELD_BASE(858530x00e0, 0x10, 11),
 PIN_FIELD_BASE(868630x00e0, 0x10, 21),
 PIN_FIELD_BASE(878730x00e0, 0x10, 31),
 PIN_FIELD_BASE(888830x00e0, 0x10, 41),
 PIN_FIELD_BASE(898930x00e0, 0x10, 51),
 PIN_FIELD_BASE(909030x00e0, 0x10, 71),
 PIN_FIELD_BASE(919130x00e0, 0x10, 81),
 PIN_FIELD_BASE(929230x00e0, 0x10, 81),
 PIN_FIELD_BASE(939330x00e0, 0x10, 81),
 PIN_FIELD_BASE(949430x00e0, 0x10, 81),
 PIN_FIELD_BASE(959530x00e0, 0x10, 91),
 PIN_FIELD_BASE(969620x0090, 0x10, 31),
 PIN_FIELD_BASE(979720x0090, 0x10, 21),
 PIN_FIELD_BASE(989820x0090, 0x10, 11),
 PIN_FIELD_BASE(999940x0090, 0x10, 41),
 PIN_FIELD_BASE(10010040x0090, 0x10, 41),
 PIN_FIELD_BASE(10110140x0090, 0x10, 41),
 PIN_FIELD_BASE(10210240x0090, 0x10, 51),
 PIN_FIELD_BASE(10310340x0090, 0x10, 51),
 PIN_FIELD_BASE(10410440x0090, 0x10, 51),
 PIN_FIELD_BASE(10510540x0090, 0x10, 51),
 PIN_FIELD_BASE(10610640x0090, 0x10, 61),
 PIN_FIELD_BASE(10710740x0090, 0x10, 61),
 PIN_FIELD_BASE(10810840x0090, 0x10, 61),
 PIN_FIELD_BASE(10910940x0090, 0x10, 61),
 PIN_FIELD_BASE(11011040x0090, 0x10, 71),
 PIN_FIELD_BASE(11111140x0090, 0x10, 71),
 PIN_FIELD_BASE(11211240x0090, 0x10, 71),
 PIN_FIELD_BASE(11311340x0090, 0x10, 71),
 PIN_FIELD_BASE(11411440x0090, 0x10, 81),
 PIN_FIELD_BASE(11511530x00e0, 0x10, 101),
 PIN_FIELD_BASE(11611630x00e0, 0x10, 111),
 PIN_FIELD_BASE(11711730x00e0, 0x10, 101),
 PIN_FIELD_BASE(11811830x00e0, 0x10, 101),
 PIN_FIELD_BASE(11911950x00e0, 0x10, 41),
 PIN_FIELD_BASE(12012050x00e0, 0x10, 41),
 PIN_FIELD_BASE(12112150x00e0, 0x10, 31),
 PIN_FIELD_BASE(12212250x00e0, 0x10, 31),
 PIN_FIELD_BASE(12312350x00e0, 0x10, 31),
 PIN_FIELD_BASE(12412450x00e0, 0x10, 01),
 PIN_FIELD_BASE(12512550x00e0, 0x10, 11),
 PIN_FIELD_BASE(12612650x00e0, 0x10, 21),
 PIN_FIELD_BASE(12712730x00e0, 0x10, 121),
 PIN_FIELD_BASE(12812830x00e0, 0x10, 141),
 PIN_FIELD_BASE(12912950x00e0, 0x10, 111),
 PIN_FIELD_BASE(13013050x00e0, 0x10, 131),
 PIN_FIELD_BASE(13113150x00e0, 0x10, 121),
 PIN_FIELD_BASE(13213250x00e0, 0x10, 141),
 PIN_FIELD_BASE(13313310x00f0, 0x10, 151),
 PIN_FIELD_BASE(13413410x00f0, 0x10, 171),
 PIN_FIELD_BASE(13513560x0080, 0x10, 61),
 PIN_FIELD_BASE(13613660x0080, 0x10, 91),
 PIN_FIELD_BASE(13713710x00f0, 0x10, 161),
 PIN_FIELD_BASE(13813810x00f0, 0x10, 181),
 PIN_FIELD_BASE(13913920x0090, 0x10, 71),
 PIN_FIELD_BASE(14014020x0090, 0x10, 81),
 PIN_FIELD_BASE(14114130x00e0, 0x10, 131),
 PIN_FIELD_BASE(14214230x00e0, 0x10, 151),
 PIN_FIELD_BASE(14314360x0080, 0x10, 71),
 PIN_FIELD_BASE(14414460x0080, 0x10, 101),
 PIN_FIELD_BASE(14514560x0080, 0x10, 81),
 PIN_FIELD_BASE(14614660x0080, 0x10, 111),
 PIN_FIELD_BASE(14714740x0090, 0x10, 21),
 PIN_FIELD_BASE(14814840x0090, 0x10, 21),
 PIN_FIELD_BASE(14914940x0090, 0x10, 21),
 PIN_FIELD_BASE(15015040x0090, 0x10, 21),
 PIN_FIELD_BASE(15115140x0090, 0x10, 31),
 PIN_FIELD_BASE(15215240x0090, 0x10, 11),
 PIN_FIELD_BASE(15315340x0090, 0x10, 31),
 PIN_FIELD_BASE(15415440x0090, 0x10, 31),
 PIN_FIELD_BASE(15515540x0090, 0x10, 31),
 PIN_FIELD_BASE(15615640x0090, 0x10, 41),
 PIN_FIELD_BASE(15715720x0090, 0x10, 01),
 PIN_FIELD_BASE(15815820x0090, 0x10, 01),
 PIN_FIELD_BASE(15915920x0090, 0x10, 01),
 PIN_FIELD_BASE(16016020x0090, 0x10, 01),
 PIN_FIELD_BASE(16116120x0090, 0x10, 21),
 PIN_FIELD_BASE(16216220x0090, 0x10, 11),
 PIN_FIELD_BASE(16316310x00f0, 0x10, 141),
 PIN_FIELD_BASE(16416410x00f0, 0x10, 121),
 PIN_FIELD_BASE(16516510x00f0, 0x10, 121),
 PIN_FIELD_BASE(16616610x00f0, 0x10, 131),
 PIN_FIELD_BASE(16716710x00f0, 0x10, 131),
 PIN_FIELD_BASE(16816810x00f0, 0x10, 121),
 PIN_FIELD_BASE(16916910x00f0, 0x10, 141),
 PIN_FIELD_BASE(17017010x00f0, 0x10, 131),
 PIN_FIELD_BASE(17117110x00f0, 0x10, 131),
 PIN_FIELD_BASE(17217210x00f0, 0x10, 141),
 PIN_FIELD_BASE(17317310x00f0, 0x10, 121),
 PIN_FIELD_BASE(17417460x0080, 0x10, 31),
 PIN_FIELD_BASE(17517560x0080, 0x10, 31),
 PIN_FIELD_BASE(17617660x0080, 0x10, 41),
 PIN_FIELD_BASE(17717760x0080, 0x10, 41),
 PIN_FIELD_BASE(17817860x0080, 0x10, 31),
 PIN_FIELD_BASE(17917960x0080, 0x10, 31),
 PIN_FIELD_BASE(18018060x0080, 0x10, 41),
 PIN_FIELD_BASE(18118160x0080, 0x10, 41),
 PIN_FIELD_BASE(18218260x0080, 0x10, 51),
 PIN_FIELD_BASE(18318320x0090, 0x10, 91),
 PIN_FIELD_BASE(18418420x0090, 0x10, 101),
};

static const struct mtk_pin_field_calc mt8186_pin_pu_range[] = {
 PIN_FIELD_BASE(0060x0050, 0x10, 131),
 PIN_FIELD_BASE(1160x0050, 0x10, 141),
 PIN_FIELD_BASE(2260x0050, 0x10, 171),
 PIN_FIELD_BASE(3360x0050, 0x10, 181),
 PIN_FIELD_BASE(4460x0050, 0x10, 191),
 PIN_FIELD_BASE(5560x0050, 0x10, 201),
 PIN_FIELD_BASE(6640x0060, 0x10, 191),
 PIN_FIELD_BASE(7740x0060, 0x10, 201),
 PIN_FIELD_BASE(8840x0060, 0x10, 211),
 PIN_FIELD_BASE(9940x0060, 0x10, 221),
 PIN_FIELD_BASE(101040x0060, 0x10, 161),
 PIN_FIELD_BASE(111140x0060, 0x10, 171),
 PIN_FIELD_BASE(121240x0060, 0x10, 181),
 PIN_FIELD_BASE(131330x0080, 0x10, 01),
 PIN_FIELD_BASE(141430x0080, 0x10, 11),
 PIN_FIELD_BASE(151560x0050, 0x10, 151),
 PIN_FIELD_BASE(161660x0050, 0x10, 161),
 PIN_FIELD_BASE(171750x0090, 0x10, 91),
 PIN_FIELD_BASE(181850x0090, 0x10, 101),
 PIN_FIELD_BASE(191950x0090, 0x10, 31),
 PIN_FIELD_BASE(202050x0090, 0x10, 61),
 PIN_FIELD_BASE(212150x0090, 0x10, 41),
 PIN_FIELD_BASE(222250x0090, 0x10, 71),
 PIN_FIELD_BASE(232350x0090, 0x10, 51),
 PIN_FIELD_BASE(242450x0090, 0x10, 81),
 PIN_FIELD_BASE(252550x0090, 0x10, 181),
 PIN_FIELD_BASE(262650x0090, 0x10, 151),
 PIN_FIELD_BASE(272750x0090, 0x10, 171),
 PIN_FIELD_BASE(282850x0090, 0x10, 161),
 PIN_FIELD_BASE(292960x0050, 0x10, 01),
 PIN_FIELD_BASE(303060x0050, 0x10, 11),
 PIN_FIELD_BASE(313160x0050, 0x10, 21),
 PIN_FIELD_BASE(323220x0060, 0x10, 251),
 PIN_FIELD_BASE(333320x0060, 0x10, 271),
 PIN_FIELD_BASE(343420x0060, 0x10, 261),
 PIN_FIELD_BASE(353520x0060, 0x10, 281),
 PIN_FIELD_BASE(363620x0060, 0x10, 91),
 PIN_FIELD_BASE(373720x0060, 0x10, 101),
 PIN_FIELD_BASE(383820x0060, 0x10, 121),
 PIN_FIELD_BASE(393920x0060, 0x10, 111),
 PIN_FIELD_BASE(404020x0060, 0x10, 131),
 PIN_FIELD_BASE(414120x0060, 0x10, 141),
 PIN_FIELD_BASE(424220x0060, 0x10, 161),
 PIN_FIELD_BASE(434320x0060, 0x10, 151),
 PIN_FIELD_BASE(444450x0090, 0x10, 281),
 PIN_FIELD_BASE(454550x0090, 0x10, 291),
 PIN_FIELD_BASE(464650x0090, 0x10, 311),
 PIN_FIELD_BASE(474750x0090, 0x10, 301),
 PIN_FIELD_BASE(484820x0060, 0x10, 171),
 PIN_FIELD_BASE(494920x0060, 0x10, 181),
 PIN_FIELD_BASE(505020x0060, 0x10, 201),
 PIN_FIELD_BASE(515120x0060, 0x10, 191),
 PIN_FIELD_BASE(525230x0080, 0x10, 121),
 PIN_FIELD_BASE(535330x0080, 0x10, 131),
 PIN_FIELD_BASE(545430x0080, 0x10, 151),
 PIN_FIELD_BASE(555530x0080, 0x10, 141),
 PIN_FIELD_BASE(565650x0090, 0x10, 121),
 PIN_FIELD_BASE(575750x0090, 0x10, 111),
 PIN_FIELD_BASE(585850x0090, 0x10, 131),
 PIN_FIELD_BASE(595950x0090, 0x10, 141),
 PIN_FIELD_BASE(606030x0080, 0x10, 211),
 PIN_FIELD_BASE(616130x0080, 0x10, 161),
 PIN_FIELD_BASE(626230x0080, 0x10, 221),
 PIN_FIELD_BASE(636330x0080, 0x10, 171),
 PIN_FIELD_BASE(646430x0080, 0x10, 181),
 PIN_FIELD_BASE(656530x0080, 0x10, 191),
 PIN_FIELD_BASE(666630x0080, 0x10, 201),
 PIN_FIELD_BASE(838360x0050, 0x10, 31),
 PIN_FIELD_BASE(909030x0080, 0x10, 21),
 PIN_FIELD_BASE(919130x0080, 0x10, 231),
 PIN_FIELD_BASE(929230x0080, 0x10, 251),
 PIN_FIELD_BASE(939330x0080, 0x10, 31),
 PIN_FIELD_BASE(949430x0080, 0x10, 241),
 PIN_FIELD_BASE(959530x0080, 0x10, 261),
 PIN_FIELD_BASE(969620x0060, 0x10, 11),
 PIN_FIELD_BASE(979720x0060, 0x10, 01),
 PIN_FIELD_BASE(989820x0060, 0x10, 21),
 PIN_FIELD_BASE(999940x0060, 0x10, 141),
 PIN_FIELD_BASE(10010040x0060, 0x10, 151),
 PIN_FIELD_BASE(10110140x0060, 0x10, 131),
 PIN_FIELD_BASE(10210240x0060, 0x10, 121),
 PIN_FIELD_BASE(10310340x0060, 0x10, 01),
 PIN_FIELD_BASE(10410440x0060, 0x10, 11),
 PIN_FIELD_BASE(10510540x0060, 0x10, 41),
 PIN_FIELD_BASE(10610640x0060, 0x10, 51),
 PIN_FIELD_BASE(10710740x0060, 0x10, 61),
 PIN_FIELD_BASE(10810840x0060, 0x10, 71),
 PIN_FIELD_BASE(10910940x0060, 0x10, 81),
 PIN_FIELD_BASE(11011040x0060, 0x10, 91),
 PIN_FIELD_BASE(11111140x0060, 0x10, 101),
 PIN_FIELD_BASE(11211240x0060, 0x10, 111),
 PIN_FIELD_BASE(11311340x0060, 0x10, 21),
 PIN_FIELD_BASE(11411440x0060, 0x10, 31),
 PIN_FIELD_BASE(11511530x0080, 0x10, 41),
 PIN_FIELD_BASE(11611630x0080, 0x10, 71),
 PIN_FIELD_BASE(11711730x0080, 0x10, 51),
 PIN_FIELD_BASE(11811830x0080, 0x10, 61),
 PIN_FIELD_BASE(11911950x0090, 0x10, 221),
 PIN_FIELD_BASE(12012050x0090, 0x10, 191),
 PIN_FIELD_BASE(12112150x0090, 0x10, 201),
 PIN_FIELD_BASE(12212250x0090, 0x10, 211),
 PIN_FIELD_BASE(12312350x0090, 0x10, 231),
 PIN_FIELD_BASE(12412450x0090, 0x10, 01),
 PIN_FIELD_BASE(12512550x0090, 0x10, 11),
 PIN_FIELD_BASE(12612650x0090, 0x10, 21),
 PIN_FIELD_BASE(12712730x0080, 0x10, 81),
 PIN_FIELD_BASE(12812830x0080, 0x10, 101),
 PIN_FIELD_BASE(12912950x0090, 0x10, 241),
 PIN_FIELD_BASE(13013050x0090, 0x10, 261),
 PIN_FIELD_BASE(13113150x0090, 0x10, 251),
 PIN_FIELD_BASE(13213250x0090, 0x10, 271),
 PIN_FIELD_BASE(13313310x0080, 0x10, 91),
 PIN_FIELD_BASE(13413410x0080, 0x10, 121),
 PIN_FIELD_BASE(13513560x0050, 0x10, 211),
 PIN_FIELD_BASE(13613660x0050, 0x10, 241),
 PIN_FIELD_BASE(13713710x0080, 0x10, 101),
 PIN_FIELD_BASE(13813810x0080, 0x10, 131),
 PIN_FIELD_BASE(13913920x0060, 0x10, 71),
 PIN_FIELD_BASE(14014020x0060, 0x10, 81),
 PIN_FIELD_BASE(14114130x0080, 0x10, 91),
 PIN_FIELD_BASE(14214230x0080, 0x10, 111),
 PIN_FIELD_BASE(14314360x0050, 0x10, 221),
 PIN_FIELD_BASE(14414460x0050, 0x10, 251),
 PIN_FIELD_BASE(14514560x0050, 0x10, 231),
 PIN_FIELD_BASE(14614660x0050, 0x10, 261),
 PIN_FIELD_BASE(14714740x0060, 0x10, 231),
 PIN_FIELD_BASE(14814840x0060, 0x10, 241),
 PIN_FIELD_BASE(14914940x0060, 0x10, 251),
 PIN_FIELD_BASE(15015040x0060, 0x10, 261),
 PIN_FIELD_BASE(15115140x0060, 0x10, 271),
 PIN_FIELD_BASE(15215240x0060, 0x10, 281),
 PIN_FIELD_BASE(15315340x0060, 0x10, 291),
 PIN_FIELD_BASE(15415440x0060, 0x10, 301),
 PIN_FIELD_BASE(15515540x0060, 0x10, 311),
 PIN_FIELD_BASE(15615640x0070, 0x10, 01),
 PIN_FIELD_BASE(15715720x0060, 0x10, 41),
 PIN_FIELD_BASE(15815820x0060, 0x10, 31),
 PIN_FIELD_BASE(15915920x0060, 0x10, 61),
 PIN_FIELD_BASE(16016020x0060, 0x10, 51),
 PIN_FIELD_BASE(16116120x0060, 0x10, 231),
 PIN_FIELD_BASE(16216220x0060, 0x10, 241),
 PIN_FIELD_BASE(16316310x0080, 0x10, 111),
 PIN_FIELD_BASE(16416410x0080, 0x10, 81),
 PIN_FIELD_BASE(16516510x0080, 0x10, 161),
 PIN_FIELD_BASE(16616610x0080, 0x10, 11),
 PIN_FIELD_BASE(16716710x0080, 0x10, 71),
 PIN_FIELD_BASE(16816810x0080, 0x10, 41),
 PIN_FIELD_BASE(16916910x0080, 0x10, 51),
 PIN_FIELD_BASE(17017010x0080, 0x10, 01),
 PIN_FIELD_BASE(17117110x0080, 0x10, 61),
 PIN_FIELD_BASE(17217210x0080, 0x10, 21),
 PIN_FIELD_BASE(17317310x0080, 0x10, 31),
 PIN_FIELD_BASE(17417460x0050, 0x10, 71),
 PIN_FIELD_BASE(17517560x0050, 0x10, 81),
 PIN_FIELD_BASE(17617660x0050, 0x10, 41),
 PIN_FIELD_BASE(17717760x0050, 0x10, 51),
 PIN_FIELD_BASE(17817860x0050, 0x10, 61),
 PIN_FIELD_BASE(17917960x0050, 0x10, 91),
 PIN_FIELD_BASE(18018060x0050, 0x10, 101),
 PIN_FIELD_BASE(18118160x0050, 0x10, 111),
 PIN_FIELD_BASE(18218260x0050, 0x10, 121),
 PIN_FIELD_BASE(18318320x0060, 0x10, 211),
 PIN_FIELD_BASE(18418420x0060, 0x10, 221),
};

static const struct mtk_pin_field_calc mt8186_pin_pd_range[] = {
 PIN_FIELD_BASE(0060x0040, 0x10, 131),
 PIN_FIELD_BASE(1160x0040, 0x10, 141),
 PIN_FIELD_BASE(2260x0040, 0x10, 171),
 PIN_FIELD_BASE(3360x0040, 0x10, 181),
 PIN_FIELD_BASE(4460x0040, 0x10, 191),
 PIN_FIELD_BASE(5560x0040, 0x10, 201),
 PIN_FIELD_BASE(6640x0040, 0x10, 191),
 PIN_FIELD_BASE(7740x0040, 0x10, 201),
 PIN_FIELD_BASE(8840x0040, 0x10, 211),
 PIN_FIELD_BASE(9940x0040, 0x10, 221),
 PIN_FIELD_BASE(101040x0040, 0x10, 161),
 PIN_FIELD_BASE(111140x0040, 0x10, 171),
 PIN_FIELD_BASE(121240x0040, 0x10, 181),
 PIN_FIELD_BASE(131330x0060, 0x10, 01),
 PIN_FIELD_BASE(141430x0060, 0x10, 11),
 PIN_FIELD_BASE(151560x0040, 0x10, 151),
 PIN_FIELD_BASE(161660x0040, 0x10, 161),
 PIN_FIELD_BASE(171750x0070, 0x10, 91),
 PIN_FIELD_BASE(181850x0070, 0x10, 101),
 PIN_FIELD_BASE(191950x0070, 0x10, 31),
 PIN_FIELD_BASE(202050x0070, 0x10, 61),
 PIN_FIELD_BASE(212150x0070, 0x10, 41),
 PIN_FIELD_BASE(222250x0070, 0x10, 71),
 PIN_FIELD_BASE(232350x0070, 0x10, 51),
 PIN_FIELD_BASE(242450x0070, 0x10, 81),
 PIN_FIELD_BASE(252550x0070, 0x10, 181),
 PIN_FIELD_BASE(262650x0070, 0x10, 151),
 PIN_FIELD_BASE(272750x0070, 0x10, 171),
 PIN_FIELD_BASE(282850x0070, 0x10, 161),
 PIN_FIELD_BASE(292960x0040, 0x10, 01),
 PIN_FIELD_BASE(303060x0040, 0x10, 11),
 PIN_FIELD_BASE(313160x0040, 0x10, 21),
 PIN_FIELD_BASE(323220x0050, 0x10, 251),
 PIN_FIELD_BASE(333320x0050, 0x10, 271),
 PIN_FIELD_BASE(343420x0050, 0x10, 261),
 PIN_FIELD_BASE(353520x0050, 0x10, 281),
 PIN_FIELD_BASE(363620x0050, 0x10, 91),
 PIN_FIELD_BASE(373720x0050, 0x10, 101),
 PIN_FIELD_BASE(383820x0050, 0x10, 121),
 PIN_FIELD_BASE(393920x0050, 0x10, 111),
 PIN_FIELD_BASE(404020x0050, 0x10, 131),
 PIN_FIELD_BASE(414120x0050, 0x10, 141),
 PIN_FIELD_BASE(424220x0050, 0x10, 161),
 PIN_FIELD_BASE(434320x0050, 0x10, 151),
 PIN_FIELD_BASE(444450x0070, 0x10, 281),
 PIN_FIELD_BASE(454550x0070, 0x10, 291),
 PIN_FIELD_BASE(464650x0070, 0x10, 311),
 PIN_FIELD_BASE(474750x0070, 0x10, 301),
 PIN_FIELD_BASE(484820x0050, 0x10, 171),
 PIN_FIELD_BASE(494920x0050, 0x10, 181),
 PIN_FIELD_BASE(505020x0050, 0x10, 201),
 PIN_FIELD_BASE(515120x0050, 0x10, 191),
 PIN_FIELD_BASE(525230x0060, 0x10, 121),
 PIN_FIELD_BASE(535330x0060, 0x10, 131),
 PIN_FIELD_BASE(545430x0060, 0x10, 151),
 PIN_FIELD_BASE(555530x0060, 0x10, 141),
 PIN_FIELD_BASE(565650x0070, 0x10, 121),
 PIN_FIELD_BASE(575750x0070, 0x10, 111),
 PIN_FIELD_BASE(585850x0070, 0x10, 131),
 PIN_FIELD_BASE(595950x0070, 0x10, 141),
 PIN_FIELD_BASE(606030x0060, 0x10, 211),
 PIN_FIELD_BASE(616130x0060, 0x10, 161),
 PIN_FIELD_BASE(626230x0060, 0x10, 221),
 PIN_FIELD_BASE(636330x0060, 0x10, 171),
 PIN_FIELD_BASE(646430x0060, 0x10, 181),
 PIN_FIELD_BASE(656530x0060, 0x10, 191),
 PIN_FIELD_BASE(666630x0060, 0x10, 201),
 PIN_FIELD_BASE(838360x0040, 0x10, 31),
 PIN_FIELD_BASE(909030x0060, 0x10, 21),
 PIN_FIELD_BASE(919130x0060, 0x10, 231),
 PIN_FIELD_BASE(929230x0060, 0x10, 251),
 PIN_FIELD_BASE(939330x0060, 0x10, 31),
 PIN_FIELD_BASE(949430x0060, 0x10, 241),
 PIN_FIELD_BASE(959530x0060, 0x10, 261),
 PIN_FIELD_BASE(969620x0050, 0x10, 11),
 PIN_FIELD_BASE(979720x0050, 0x10, 01),
 PIN_FIELD_BASE(989820x0050, 0x10, 21),
 PIN_FIELD_BASE(999940x0040, 0x10, 141),
 PIN_FIELD_BASE(10010040x0040, 0x10, 151),
 PIN_FIELD_BASE(10110140x0040, 0x10, 131),
 PIN_FIELD_BASE(10210240x0040, 0x10, 121),
 PIN_FIELD_BASE(10310340x0040, 0x10, 01),
 PIN_FIELD_BASE(10410440x0040, 0x10, 11),
 PIN_FIELD_BASE(10510540x0040, 0x10, 41),
 PIN_FIELD_BASE(10610640x0040, 0x10, 51),
 PIN_FIELD_BASE(10710740x0040, 0x10, 61),
 PIN_FIELD_BASE(10810840x0040, 0x10, 71),
 PIN_FIELD_BASE(10910940x0040, 0x10, 81),
 PIN_FIELD_BASE(11011040x0040, 0x10, 91),
 PIN_FIELD_BASE(11111140x0040, 0x10, 101),
 PIN_FIELD_BASE(11211240x0040, 0x10, 111),
 PIN_FIELD_BASE(11311340x0040, 0x10, 21),
 PIN_FIELD_BASE(11411440x0040, 0x10, 31),
 PIN_FIELD_BASE(11511530x0060, 0x10, 41),
 PIN_FIELD_BASE(11611630x0060, 0x10, 71),
 PIN_FIELD_BASE(11711730x0060, 0x10, 51),
 PIN_FIELD_BASE(11811830x0060, 0x10, 61),
 PIN_FIELD_BASE(11911950x0070, 0x10, 221),
 PIN_FIELD_BASE(12012050x0070, 0x10, 191),
 PIN_FIELD_BASE(12112150x0070, 0x10, 201),
 PIN_FIELD_BASE(12212250x0070, 0x10, 211),
 PIN_FIELD_BASE(12312350x0070, 0x10, 231),
 PIN_FIELD_BASE(12412450x0070, 0x10, 01),
 PIN_FIELD_BASE(12512550x0070, 0x10, 11),
 PIN_FIELD_BASE(12612650x0070, 0x10, 21),
 PIN_FIELD_BASE(12712730x0060, 0x10, 81),
 PIN_FIELD_BASE(12812830x0060, 0x10, 101),
 PIN_FIELD_BASE(12912950x0070, 0x10, 241),
 PIN_FIELD_BASE(13013050x0070, 0x10, 261),
 PIN_FIELD_BASE(13113150x0070, 0x10, 251),
 PIN_FIELD_BASE(13213250x0070, 0x10, 271),
 PIN_FIELD_BASE(13313310x0060, 0x10, 91),
 PIN_FIELD_BASE(13413410x0060, 0x10, 121),
 PIN_FIELD_BASE(13513560x0040, 0x10, 211),
 PIN_FIELD_BASE(13613660x0040, 0x10, 241),
 PIN_FIELD_BASE(13713710x0060, 0x10, 101),
 PIN_FIELD_BASE(13813810x0060, 0x10, 131),
 PIN_FIELD_BASE(13913920x0050, 0x10, 71),
 PIN_FIELD_BASE(14014020x0050, 0x10, 81),
 PIN_FIELD_BASE(14114130x0060, 0x10, 91),
 PIN_FIELD_BASE(14214230x0060, 0x10, 111),
 PIN_FIELD_BASE(14314360x0040, 0x10, 221),
 PIN_FIELD_BASE(14414460x0040, 0x10, 251),
 PIN_FIELD_BASE(14514560x0040, 0x10, 231),
 PIN_FIELD_BASE(14614660x0040, 0x10, 261),
 PIN_FIELD_BASE(14714740x0040, 0x10, 231),
 PIN_FIELD_BASE(14814840x0040, 0x10, 241),
 PIN_FIELD_BASE(14914940x0040, 0x10, 251),
 PIN_FIELD_BASE(15015040x0040, 0x10, 261),
 PIN_FIELD_BASE(15115140x0040, 0x10, 271),
 PIN_FIELD_BASE(15215240x0040, 0x10, 281),
 PIN_FIELD_BASE(15315340x0040, 0x10, 291),
 PIN_FIELD_BASE(15415440x0040, 0x10, 301),
 PIN_FIELD_BASE(15515540x0040, 0x10, 311),
 PIN_FIELD_BASE(15615640x0050, 0x10, 01),
 PIN_FIELD_BASE(15715720x0050, 0x10, 41),
 PIN_FIELD_BASE(15815820x0050, 0x10, 31),
 PIN_FIELD_BASE(15915920x0050, 0x10, 61),
 PIN_FIELD_BASE(16016020x0050, 0x10, 51),
 PIN_FIELD_BASE(16116120x0050, 0x10, 231),
 PIN_FIELD_BASE(16216220x0050, 0x10, 241),
 PIN_FIELD_BASE(16316310x0060, 0x10, 111),
 PIN_FIELD_BASE(16416410x0060, 0x10, 81),
 PIN_FIELD_BASE(16516510x0060, 0x10, 161),
 PIN_FIELD_BASE(16616610x0060, 0x10, 11),
 PIN_FIELD_BASE(16716710x0060, 0x10, 71),
 PIN_FIELD_BASE(16816810x0060, 0x10, 41),
 PIN_FIELD_BASE(16916910x0060, 0x10, 51),
 PIN_FIELD_BASE(17017010x0060, 0x10, 01),
 PIN_FIELD_BASE(17117110x0060, 0x10, 61),
 PIN_FIELD_BASE(17217210x0060, 0x10, 21),
 PIN_FIELD_BASE(17317310x0060, 0x10, 31),
 PIN_FIELD_BASE(17417460x0040, 0x10, 71),
 PIN_FIELD_BASE(17517560x0040, 0x10, 81),
 PIN_FIELD_BASE(17617660x0040, 0x10, 41),
 PIN_FIELD_BASE(17717760x0040, 0x10, 51),
 PIN_FIELD_BASE(17817860x0040, 0x10, 61),
 PIN_FIELD_BASE(17917960x0040, 0x10, 91),
 PIN_FIELD_BASE(18018060x0040, 0x10, 101),
 PIN_FIELD_BASE(18118160x0040, 0x10, 111),
 PIN_FIELD_BASE(18218260x0040, 0x10, 121),
 PIN_FIELD_BASE(18318320x0050, 0x10, 211),
 PIN_FIELD_BASE(18418420x0050, 0x10, 221),
};

static const struct mtk_pin_field_calc mt8186_pin_pupd_range[] = {
 PIN_FIELD_BASE(676710x0070, 0x10, 101),
 PIN_FIELD_BASE(686810x0070, 0x10, 01),
 PIN_FIELD_BASE(696910x0070, 0x10, 11),
 PIN_FIELD_BASE(707010x0070, 0x10, 111),
 PIN_FIELD_BASE(717110x0070, 0x10, 21),
 PIN_FIELD_BASE(727210x0070, 0x10, 31),
 PIN_FIELD_BASE(737310x0070, 0x10, 41),
 PIN_FIELD_BASE(747410x0070, 0x10, 51),
 PIN_FIELD_BASE(757510x0070, 0x10, 61),
 PIN_FIELD_BASE(767610x0070, 0x10, 71),
 PIN_FIELD_BASE(777710x0070, 0x10, 81),
 PIN_FIELD_BASE(787810x0070, 0x10, 91),
 PIN_FIELD_BASE(797950x0080, 0x10, 01),
 PIN_FIELD_BASE(808050x0080, 0x10, 11),
 PIN_FIELD_BASE(818150x0080, 0x10, 21),
 PIN_FIELD_BASE(828250x0080, 0x10, 31),
 PIN_FIELD_BASE(848430x0070, 0x10, 01),
 PIN_FIELD_BASE(858530x0070, 0x10, 11),
 PIN_FIELD_BASE(868630x0070, 0x10, 21),
 PIN_FIELD_BASE(878730x0070, 0x10, 31),
 PIN_FIELD_BASE(888830x0070, 0x10, 41),
 PIN_FIELD_BASE(898930x0070, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8186_pin_r0_range[] = {
 PIN_FIELD_BASE(676710x0090, 0x10, 101),
 PIN_FIELD_BASE(686810x0090, 0x10, 01),
 PIN_FIELD_BASE(696910x0090, 0x10, 11),
 PIN_FIELD_BASE(707010x0090, 0x10, 111),
 PIN_FIELD_BASE(717110x0090, 0x10, 21),
 PIN_FIELD_BASE(727210x0090, 0x10, 31),
 PIN_FIELD_BASE(737310x0090, 0x10, 41),
 PIN_FIELD_BASE(747410x0090, 0x10, 51),
 PIN_FIELD_BASE(757510x0090, 0x10, 61),
 PIN_FIELD_BASE(767610x0090, 0x10, 71),
 PIN_FIELD_BASE(777710x0090, 0x10, 81),
 PIN_FIELD_BASE(787810x0090, 0x10, 91),
 PIN_FIELD_BASE(797950x00a0, 0x10, 01),
 PIN_FIELD_BASE(808050x00a0, 0x10, 11),
 PIN_FIELD_BASE(818150x00a0, 0x10, 21),
 PIN_FIELD_BASE(828250x00a0, 0x10, 31),
 PIN_FIELD_BASE(848430x0090, 0x10, 01),
 PIN_FIELD_BASE(858530x0090, 0x10, 11),
 PIN_FIELD_BASE(868630x0090, 0x10, 21),
 PIN_FIELD_BASE(878730x0090, 0x10, 31),
 PIN_FIELD_BASE(888830x0090, 0x10, 41),
 PIN_FIELD_BASE(898930x0090, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8186_pin_r1_range[] = {
 PIN_FIELD_BASE(676710x00a0, 0x10, 101),
 PIN_FIELD_BASE(686810x00a0, 0x10, 01),
 PIN_FIELD_BASE(696910x00a0, 0x10, 11),
 PIN_FIELD_BASE(707010x00a0, 0x10, 111),
 PIN_FIELD_BASE(717110x00a0, 0x10, 21),
 PIN_FIELD_BASE(727210x00a0, 0x10, 31),
 PIN_FIELD_BASE(737310x00a0, 0x10, 41),
 PIN_FIELD_BASE(747410x00a0, 0x10, 51),
 PIN_FIELD_BASE(757510x00a0, 0x10, 61),
 PIN_FIELD_BASE(767610x00a0, 0x10, 71),
 PIN_FIELD_BASE(777710x00a0, 0x10, 81),
 PIN_FIELD_BASE(787810x00a0, 0x10, 91),
 PIN_FIELD_BASE(797950x00b0, 0x10, 01),
 PIN_FIELD_BASE(808050x00b0, 0x10, 11),
 PIN_FIELD_BASE(818150x00b0, 0x10, 21),
 PIN_FIELD_BASE(828250x00b0, 0x10, 31),
 PIN_FIELD_BASE(848430x00a0, 0x10, 01),
 PIN_FIELD_BASE(858530x00a0, 0x10, 11),
 PIN_FIELD_BASE(868630x00a0, 0x10, 21),
 PIN_FIELD_BASE(878730x00a0, 0x10, 31),
 PIN_FIELD_BASE(888830x00a0, 0x10, 41),
 PIN_FIELD_BASE(898930x00a0, 0x10, 51),
};

static const struct mtk_pin_field_calc mt8186_pin_drv_range[] = {
 PIN_FIELD_BASE(0060x0000, 0x10, 273),
 PIN_FIELD_BASE(1160x0000, 0x10, 273),
 PIN_FIELD_BASE(2260x0000, 0x10, 273),
 PIN_FIELD_BASE(3360x0000, 0x10, 273),
 PIN_FIELD_BASE(4460x0010, 0x10, 03),
 PIN_FIELD_BASE(5560x0010, 0x10, 03),
 PIN_FIELD_BASE(6640x0000, 0x10, 93),
 PIN_FIELD_BASE(7740x0000, 0x10, 93),
 PIN_FIELD_BASE(8840x0000, 0x10, 93),
 PIN_FIELD_BASE(9940x0000, 0x10, 123),
 PIN_FIELD_BASE(101040x0000, 0x10, 03),
 PIN_FIELD_BASE(111140x0000, 0x10, 33),
 PIN_FIELD_BASE(121240x0000, 0x10, 63),
 PIN_FIELD_BASE(131330x0000, 0x10, 03),
 PIN_FIELD_BASE(141430x0000, 0x10, 33),
 PIN_FIELD_BASE(151560x0010, 0x10, 33),
 PIN_FIELD_BASE(161660x0010, 0x10, 33),
 PIN_FIELD_BASE(171750x0000, 0x10, 213),
 PIN_FIELD_BASE(181850x0010, 0x10, 03),
 PIN_FIELD_BASE(191950x0000, 0x10, 273),
 PIN_FIELD_BASE(202050x0000, 0x10, 243),
 PIN_FIELD_BASE(212150x0000, 0x10, 273),
 PIN_FIELD_BASE(222250x0000, 0x10, 243),
 PIN_FIELD_BASE(232350x0010, 0x10, 03),
 PIN_FIELD_BASE(242450x0010, 0x10, 93),
 PIN_FIELD_BASE(252550x0010, 0x10, 03),
 PIN_FIELD_BASE(262650x0000, 0x10, 273),
 PIN_FIELD_BASE(272750x0000, 0x10, 273),
 PIN_FIELD_BASE(282850x0010, 0x10, 03),
 PIN_FIELD_BASE(292960x0010, 0x10, 03),
 PIN_FIELD_BASE(303060x0010, 0x10, 03),
 PIN_FIELD_BASE(313160x0010, 0x10, 33),
 PIN_FIELD_BASE(323220x0000, 0x10, 63),
 PIN_FIELD_BASE(333320x0000, 0x10, 63),
 PIN_FIELD_BASE(343420x0000, 0x10, 33),
 PIN_FIELD_BASE(353520x0000, 0x10, 33),
 PIN_FIELD_BASE(363620x0000, 0x10, 93),
 PIN_FIELD_BASE(373720x0000, 0x10, 93),
 PIN_FIELD_BASE(383820x0000, 0x10, 123),
 PIN_FIELD_BASE(393920x0000, 0x10, 93),
 PIN_FIELD_BASE(404020x0000, 0x10, 153),
 PIN_FIELD_BASE(414120x0000, 0x10, 123),
 PIN_FIELD_BASE(424220x0000, 0x10, 123),
 PIN_FIELD_BASE(434320x0000, 0x10, 123),
 PIN_FIELD_BASE(444450x0010, 0x10, 63),
 PIN_FIELD_BASE(454550x0010, 0x10, 33),
 PIN_FIELD_BASE(464650x0010, 0x10, 33),
 PIN_FIELD_BASE(474750x0010, 0x10, 63),
 PIN_FIELD_BASE(484820x0000, 0x10, 153),
 PIN_FIELD_BASE(494920x0000, 0x10, 153),
 PIN_FIELD_BASE(505020x0000, 0x10, 153),
 PIN_FIELD_BASE(515120x0000, 0x10, 183),
 PIN_FIELD_BASE(525230x0010, 0x10, 33),
 PIN_FIELD_BASE(535330x0010, 0x10, 63),
 PIN_FIELD_BASE(545430x0010, 0x10, 33),
 PIN_FIELD_BASE(555530x0010, 0x10, 33),
 PIN_FIELD_BASE(565650x0010, 0x10, 33),
 PIN_FIELD_BASE(575750x0010, 0x10, 63),
 PIN_FIELD_BASE(585850x0010, 0x10, 63),
 PIN_FIELD_BASE(595950x0010, 0x10, 33),
 PIN_FIELD_BASE(606030x0000, 0x10, 243),
 PIN_FIELD_BASE(616130x0000, 0x10, 243),
 PIN_FIELD_BASE(626230x0000, 0x10, 243),
 PIN_FIELD_BASE(636330x0000, 0x10, 243),
 PIN_FIELD_BASE(646430x0000, 0x10, 273),
 PIN_FIELD_BASE(656530x0000, 0x10, 273),
 PIN_FIELD_BASE(666630x0000, 0x10, 273),
 PIN_FIELD_BASE(676710x0010, 0x10, 03),
 PIN_FIELD_BASE(686810x0000, 0x10, 03),
 PIN_FIELD_BASE(696910x0000, 0x10, 33),
 PIN_FIELD_BASE(707010x0010, 0x10, 33),
 PIN_FIELD_BASE(717110x0000, 0x10, 63),
 PIN_FIELD_BASE(727210x0000, 0x10, 93),
 PIN_FIELD_BASE(737310x0000, 0x10, 123),
 PIN_FIELD_BASE(747410x0000, 0x10, 153),
 PIN_FIELD_BASE(757510x0000, 0x10, 183),
 PIN_FIELD_BASE(767610x0000, 0x10, 213),
 PIN_FIELD_BASE(777710x0000, 0x10, 243),
 PIN_FIELD_BASE(787810x0000, 0x10, 273),
 PIN_FIELD_BASE(797950x0000, 0x10, 243),
 PIN_FIELD_BASE(808050x0000, 0x10, 243),
 PIN_FIELD_BASE(818150x0000, 0x10, 213),
 PIN_FIELD_BASE(828250x0000, 0x10, 213),
 PIN_FIELD_BASE(838360x0010, 0x10, 33),
 PIN_FIELD_BASE(848430x0000, 0x10, 63),
 PIN_FIELD_BASE(858530x0000, 0x10, 93),
 PIN_FIELD_BASE(868630x0000, 0x10, 123),
 PIN_FIELD_BASE(878730x0000, 0x10, 153),
 PIN_FIELD_BASE(888830x0000, 0x10, 183),
 PIN_FIELD_BASE(898930x0000, 0x10, 213),
 PIN_FIELD_BASE(909030x0000, 0x10, 273),
 PIN_FIELD_BASE(919130x0010, 0x10, 03),
 PIN_FIELD_BASE(929230x0010, 0x10, 03),
 PIN_FIELD_BASE(939330x0010, 0x10, 03),
 PIN_FIELD_BASE(949430x0010, 0x10, 03),
 PIN_FIELD_BASE(959530x0010, 0x10, 33),
 PIN_FIELD_BASE(969620x0000, 0x10, 93),
 PIN_FIELD_BASE(979720x0000, 0x10, 63),
 PIN_FIELD_BASE(989820x0000, 0x10, 33),
 PIN_FIELD_BASE(999940x0000, 0x10, 183),
 PIN_FIELD_BASE(10010040x0000, 0x10, 183),
 PIN_FIELD_BASE(10110140x0000, 0x10, 213),
 PIN_FIELD_BASE(10210240x0000, 0x10, 213),
 PIN_FIELD_BASE(10310340x0000, 0x10, 213),
 PIN_FIELD_BASE(10410440x0000, 0x10, 213),
 PIN_FIELD_BASE(10510540x0000, 0x10, 243),
 PIN_FIELD_BASE(10610640x0000, 0x10, 243),
 PIN_FIELD_BASE(10710740x0000, 0x10, 243),
 PIN_FIELD_BASE(10810840x0000, 0x10, 243),
 PIN_FIELD_BASE(10910940x0000, 0x10, 273),
 PIN_FIELD_BASE(11011040x0000, 0x10, 273),
 PIN_FIELD_BASE(11111140x0000, 0x10, 273),
 PIN_FIELD_BASE(11211240x0000, 0x10, 273),
 PIN_FIELD_BASE(11311340x0010, 0x10, 03),
 PIN_FIELD_BASE(11411440x0010, 0x10, 03),
 PIN_FIELD_BASE(11511530x0010, 0x10, 63),
 PIN_FIELD_BASE(11611630x0010, 0x10, 93),
 PIN_FIELD_BASE(11711730x0010, 0x10, 63),
 PIN_FIELD_BASE(11811830x0010, 0x10, 63),
 PIN_FIELD_BASE(11911950x0000, 0x10, 183),
 PIN_FIELD_BASE(12012050x0000, 0x10, 93),
 PIN_FIELD_BASE(12112150x0000, 0x10, 123),
 PIN_FIELD_BASE(12212250x0000, 0x10, 153),
 PIN_FIELD_BASE(12312350x0000, 0x10, 213),
 PIN_FIELD_BASE(12412450x0000, 0x10, 03),
 PIN_FIELD_BASE(12512550x0000, 0x10, 33),
 PIN_FIELD_BASE(12612650x0000, 0x10, 63),
 PIN_FIELD_BASE(12712730x0010, 0x10, 123),
 PIN_FIELD_BASE(12812830x0010, 0x10, 183),
 PIN_FIELD_BASE(12912950x0010, 0x10, 123),
 PIN_FIELD_BASE(13013050x0010, 0x10, 183),
 PIN_FIELD_BASE(13113150x0010, 0x10, 153),
 PIN_FIELD_BASE(13213250x0010, 0x10, 213),
 PIN_FIELD_BASE(13313310x0010, 0x10, 153),
 PIN_FIELD_BASE(13413410x0010, 0x10, 213),
 PIN_FIELD_BASE(13513560x0010, 0x10, 63),
 PIN_FIELD_BASE(13613660x0010, 0x10, 153),
 PIN_FIELD_BASE(13713710x0010, 0x10, 183),
 PIN_FIELD_BASE(13813810x0010, 0x10, 243),
 PIN_FIELD_BASE(13913920x0000, 0x10, 213),
 PIN_FIELD_BASE(14014020x0000, 0x10, 243),
 PIN_FIELD_BASE(14114130x0010, 0x10, 153),
 PIN_FIELD_BASE(14214230x0010, 0x10, 213),
 PIN_FIELD_BASE(14314360x0010, 0x10, 93),
 PIN_FIELD_BASE(14414460x0010, 0x10, 183),
 PIN_FIELD_BASE(14514560x0010, 0x10, 123),
 PIN_FIELD_BASE(14614660x0010, 0x10, 213),
 PIN_FIELD_BASE(14714740x0000, 0x10, 123),
 PIN_FIELD_BASE(14814840x0000, 0x10, 123),
 PIN_FIELD_BASE(14914940x0000, 0x10, 123),
 PIN_FIELD_BASE(15015040x0000, 0x10, 153),
 PIN_FIELD_BASE(15115140x0000, 0x10, 153),
 PIN_FIELD_BASE(15215240x0000, 0x10, 93),
 PIN_FIELD_BASE(15315340x0000, 0x10, 153),
 PIN_FIELD_BASE(15415440x0000, 0x10, 153),
 PIN_FIELD_BASE(15515540x0000, 0x10, 183),
 PIN_FIELD_BASE(15615640x0000, 0x10, 183),
 PIN_FIELD_BASE(15715720x0000, 0x10, 03),
 PIN_FIELD_BASE(15815820x0000, 0x10, 03),
 PIN_FIELD_BASE(15915920x0000, 0x10, 03),
 PIN_FIELD_BASE(16016020x0000, 0x10, 03),
 PIN_FIELD_BASE(16116120x0000, 0x10, 63),
 PIN_FIELD_BASE(16216220x0000, 0x10, 33),
 PIN_FIELD_BASE(16316310x0010, 0x10, 123),
 PIN_FIELD_BASE(16516510x0010, 0x10, 63),
 PIN_FIELD_BASE(16616610x0010, 0x10, 63),
 PIN_FIELD_BASE(16716710x0010, 0x10, 93),
 PIN_FIELD_BASE(16816810x0010, 0x10, 63),
 PIN_FIELD_BASE(16916910x0010, 0x10, 123),
 PIN_FIELD_BASE(17017010x0010, 0x10, 93),
 PIN_FIELD_BASE(17117110x0010, 0x10, 93),
 PIN_FIELD_BASE(17217210x0010, 0x10, 93),
 PIN_FIELD_BASE(17317310x0010, 0x10, 63),
 PIN_FIELD_BASE(17417460x0000, 0x10, 93),
 PIN_FIELD_BASE(17517560x0000, 0x10, 123),
 PIN_FIELD_BASE(17617660x0000, 0x10, 03),
 PIN_FIELD_BASE(17717760x0000, 0x10, 33),
 PIN_FIELD_BASE(17817860x0000, 0x10, 63),
 PIN_FIELD_BASE(17917960x0000, 0x10, 153),
 PIN_FIELD_BASE(18018060x0000, 0x10, 183),
 PIN_FIELD_BASE(18118160x0000, 0x10, 213),
 PIN_FIELD_BASE(18218260x0000, 0x10, 243),
 PIN_FIELD_BASE(18318320x0000, 0x10, 273),
 PIN_FIELD_BASE(18418420x0010, 0x10, 03),
};

static const struct mtk_pin_field_calc mt8186_pin_drv_adv_range[] = {
 PIN_FIELD_BASE(12712730x0030, 0x10, 03),
 PIN_FIELD_BASE(12812830x0030, 0x10, 63),
 PIN_FIELD_BASE(12912950x0030, 0x10, 03),
 PIN_FIELD_BASE(13013050x0030, 0x10, 63),
 PIN_FIELD_BASE(13113150x0030, 0x10, 33),
 PIN_FIELD_BASE(13213250x0030, 0x10, 93),
 PIN_FIELD_BASE(13313310x0030, 0x10, 03),
 PIN_FIELD_BASE(13413410x0030, 0x10, 63),
 PIN_FIELD_BASE(13513560x0020, 0x10, 03),
 PIN_FIELD_BASE(13613660x0020, 0x10, 93),
 PIN_FIELD_BASE(13713710x0030, 0x10, 33),
 PIN_FIELD_BASE(13813810x0030, 0x10, 93),
 PIN_FIELD_BASE(13913920x0020, 0x10, 03),
 PIN_FIELD_BASE(14014020x0020, 0x10, 33),
 PIN_FIELD_BASE(14114130x0030, 0x10, 33),
 PIN_FIELD_BASE(14214230x0030, 0x10, 93),
 PIN_FIELD_BASE(14314360x0020, 0x10, 33),
 PIN_FIELD_BASE(14414460x0020, 0x10, 123),
 PIN_FIELD_BASE(14514560x0020, 0x10, 63),
 PIN_FIELD_BASE(14614660x0020, 0x10, 153),
};

static const struct mtk_pin_field_calc mt8186_pin_rsel_range[] = {
 PIN_FIELD_BASE(12712730x00d0, 0x10, 02),
 PIN_FIELD_BASE(12812830x00d0, 0x10, 42),
 PIN_FIELD_BASE(12912950x00d0, 0x10, 02),
 PIN_FIELD_BASE(13013050x00d0, 0x10, 42),
 PIN_FIELD_BASE(13113150x00d0, 0x10, 22),
 PIN_FIELD_BASE(13213250x00d0, 0x10, 62),
 PIN_FIELD_BASE(13313310x00e0, 0x10, 02),
 PIN_FIELD_BASE(13413410x00e0, 0x10, 42),
 PIN_FIELD_BASE(13513560x0070, 0x10, 02),
 PIN_FIELD_BASE(13613660x0070, 0x10, 62),
 PIN_FIELD_BASE(13713710x00e0, 0x10, 22),
 PIN_FIELD_BASE(13813810x00e0, 0x10, 62),
 PIN_FIELD_BASE(13913920x0080, 0x10, 02),
 PIN_FIELD_BASE(14014020x0080, 0x10, 22),
 PIN_FIELD_BASE(14114130x00d0, 0x10, 22),
 PIN_FIELD_BASE(14214230x00d0, 0x10, 62),
 PIN_FIELD_BASE(14314360x0070, 0x10, 22),
 PIN_FIELD_BASE(14414460x0070, 0x10, 82),
 PIN_FIELD_BASE(14514560x0070, 0x10, 42),
 PIN_FIELD_BASE(14614660x0070, 0x10, 102),
};

static const struct mtk_pin_rsel mt8186_pin_rsel_val_range[] = {
 PIN_RSEL(1271280x0, 7500075000),
 PIN_RSEL(1271280x1, 1000075000),
 PIN_RSEL(1271280x2, 50005000),
 PIN_RSEL(1271280x3, 10005000),
 PIN_RSEL(1291300x0, 7500075000),
 PIN_RSEL(1291300x1, 1000075000),
 PIN_RSEL(1291300x2, 50005000),
 PIN_RSEL(1291300x3, 10005000),
 PIN_RSEL(1311320x0, 7500075000),
 PIN_RSEL(1311320x1, 1000075000),
 PIN_RSEL(1311320x2, 50005000),
 PIN_RSEL(1311320x3, 10005000),
 PIN_RSEL(1331340x0, 7500075000),
 PIN_RSEL(1331340x1, 1000075000),
 PIN_RSEL(1331340x2, 50005000),
 PIN_RSEL(1331340x3, 10005000),
 PIN_RSEL(1351360x0, 7500075000),
 PIN_RSEL(1351360x1, 1000075000),
 PIN_RSEL(1351360x2, 50005000),
 PIN_RSEL(1351360x3, 10005000),
 PIN_RSEL(1371380x0, 7500075000),
 PIN_RSEL(1371380x1, 1000075000),
 PIN_RSEL(1371380x2, 50005000),
 PIN_RSEL(1371380x3, 10005000),
 PIN_RSEL(1391400x0, 7500075000),
 PIN_RSEL(1391400x1, 1000075000),
 PIN_RSEL(1391400x2, 50005000),
 PIN_RSEL(1391400x3, 10005000),
 PIN_RSEL(1411420x0, 7500075000),
 PIN_RSEL(1411420x1, 1000075000),
 PIN_RSEL(1411420x2, 50005000),
 PIN_RSEL(1411420x3, 10005000),
 PIN_RSEL(1431440x0, 7500075000),
 PIN_RSEL(1431440x1, 1000075000),
 PIN_RSEL(1431440x2, 50005000),
 PIN_RSEL(1431440x3, 10005000),
 PIN_RSEL(1451460x0, 7500075000),
 PIN_RSEL(1451460x1, 1000075000),
 PIN_RSEL(1451460x2, 50005000),
 PIN_RSEL(1451460x3, 10005000),
};

static const unsigned int mt8186_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_TYPE,/*46*/ MTK_PULL_PU_PD_TYPE,/*47*/
 MTK_PULL_PU_PD_TYPE,/*48*/ MTK_PULL_PU_PD_TYPE,/*49*/
 MTK_PULL_PU_PD_TYPE,/*50*/ MTK_PULL_PU_PD_TYPE,/*51*/
 MTK_PULL_PU_PD_TYPE,/*52*/ MTK_PULL_PU_PD_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_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_PUPD_R1R0_TYPE,/*67*/
 MTK_PULL_PUPD_R1R0_TYPE,/*68*/ MTK_PULL_PUPD_R1R0_TYPE,/*69*/
 MTK_PULL_PUPD_R1R0_TYPE,/*70*/ MTK_PULL_PUPD_R1R0_TYPE,/*71*/
 MTK_PULL_PUPD_R1R0_TYPE,/*72*/ MTK_PULL_PUPD_R1R0_TYPE,/*73*/
 MTK_PULL_PUPD_R1R0_TYPE,/*74*/ MTK_PULL_PUPD_R1R0_TYPE,/*75*/
 MTK_PULL_PUPD_R1R0_TYPE,/*76*/ MTK_PULL_PUPD_R1R0_TYPE,/*77*/
 MTK_PULL_PUPD_R1R0_TYPE,/*78*/ MTK_PULL_PUPD_R1R0_TYPE,/*79*/
 MTK_PULL_PUPD_R1R0_TYPE,/*80*/ MTK_PULL_PUPD_R1R0_TYPE,/*81*/
 MTK_PULL_PUPD_R1R0_TYPE,/*82*/ MTK_PULL_PU_PD_TYPE,/*83*/
 MTK_PULL_PUPD_R1R0_TYPE,/*84*/ MTK_PULL_PUPD_R1R0_TYPE,/*85*/
 MTK_PULL_PUPD_R1R0_TYPE,/*86*/ MTK_PULL_PUPD_R1R0_TYPE,/*87*/
 MTK_PULL_PUPD_R1R0_TYPE,/*88*/ MTK_PULL_PUPD_R1R0_TYPE,/*89*/
 MTK_PULL_PU_PD_TYPE,/*90*/ MTK_PULL_PU_PD_TYPE,/*91*/
 MTK_PULL_PU_PD_TYPE,/*92*/ MTK_PULL_PU_PD_TYPE,/*93*/
 MTK_PULL_PU_PD_TYPE,/*94*/ MTK_PULL_PU_PD_TYPE,/*95*/
 MTK_PULL_PU_PD_TYPE,/*96*/ MTK_PULL_PU_PD_TYPE,/*97*/
 MTK_PULL_PU_PD_TYPE,/*98*/ MTK_PULL_PU_PD_TYPE,/*99*/
 MTK_PULL_PU_PD_TYPE,/*100*/ MTK_PULL_PU_PD_TYPE,/*101*/
 MTK_PULL_PU_PD_TYPE,/*102*/ MTK_PULL_PU_PD_TYPE,/*103*/
 MTK_PULL_PU_PD_TYPE,/*104*/ MTK_PULL_PU_PD_TYPE,/*105*/
 MTK_PULL_PU_PD_TYPE,/*106*/ MTK_PULL_PU_PD_TYPE,/*107*/
 MTK_PULL_PU_PD_TYPE,/*108*/ MTK_PULL_PU_PD_TYPE,/*109*/
 MTK_PULL_PU_PD_TYPE,/*110*/ MTK_PULL_PU_PD_TYPE,/*111*/
 MTK_PULL_PU_PD_TYPE,/*112*/ MTK_PULL_PU_PD_TYPE,/*113*/
 MTK_PULL_PU_PD_TYPE,/*114*/ MTK_PULL_PU_PD_TYPE,/*115*/
 MTK_PULL_PU_PD_TYPE,/*116*/ MTK_PULL_PU_PD_TYPE,/*117*/
 MTK_PULL_PU_PD_TYPE,/*118*/ MTK_PULL_PU_PD_TYPE,/*119*/
 MTK_PULL_PU_PD_TYPE,/*120*/ MTK_PULL_PU_PD_TYPE,/*121*/
 MTK_PULL_PU_PD_TYPE,/*122*/ MTK_PULL_PU_PD_TYPE,/*123*/
 MTK_PULL_PU_PD_TYPE,/*124*/ MTK_PULL_PU_PD_TYPE,/*125*/
 MTK_PULL_PU_PD_TYPE,/*126*/ MTK_PULL_PU_PD_RSEL_TYPE,/*127*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*128*/ MTK_PULL_PU_PD_RSEL_TYPE,/*129*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*130*/ MTK_PULL_PU_PD_RSEL_TYPE,/*131*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*132*/ MTK_PULL_PU_PD_RSEL_TYPE,/*133*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*134*/ MTK_PULL_PU_PD_RSEL_TYPE,/*135*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*136*/ MTK_PULL_PU_PD_RSEL_TYPE,/*137*/
 MTK_PULL_PU_PD_RSEL_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_RSEL_TYPE,/*143*/
 MTK_PULL_PU_PD_RSEL_TYPE,/*144*/ MTK_PULL_PU_PD_RSEL_TYPE,/*145*/
 MTK_PULL_PU_PD_RSEL_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_PU_PD_TYPE,/*152*/ MTK_PULL_PU_PD_TYPE,/*153*/
 MTK_PULL_PU_PD_TYPE,/*154*/ MTK_PULL_PU_PD_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_TYPE,/*160*/ MTK_PULL_PU_PD_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_PU_PD_TYPE,/*183*/
 MTK_PULL_PU_PD_TYPE,/*184*/
};

static const struct mtk_pin_reg_calc mt8186_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8186_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8186_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8186_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8186_pin_do_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8186_pin_smt_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8186_pin_ies_range),
 [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8186_pin_pu_range),
 [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8186_pin_pd_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8186_pin_drv_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8186_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8186_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8186_pin_r1_range),
 [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8186_pin_drv_adv_range),
 [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8186_pin_rsel_range),

};

static const char * const mt8186_pinctrl_register_base_names[] = {
 "iocfg0""iocfg_lt""iocfg_lm""iocfg_lb""iocfg_bl",
 "iocfg_rb""iocfg_rt",
};

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

static const struct mtk_pin_soc mt8186_data = {
 .reg_cal = mt8186_reg_cals,
 .pins = mtk_pins_mt8186,
 .npins = ARRAY_SIZE(mtk_pins_mt8186),
 .ngrps = ARRAY_SIZE(mtk_pins_mt8186),
 .nfuncs = 8,
 .gpio_m = 0,
 .eint_hw = &mt8186_eint_hw,
 .base_names = mt8186_pinctrl_register_base_names,
 .nbase_names = ARRAY_SIZE(mt8186_pinctrl_register_base_names),
 .pull_type = mt8186_pull_type,
 .pin_rsel = mt8186_pin_rsel_val_range,
 .npin_rsel = ARRAY_SIZE(mt8186_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 mt8186_pinctrl_of_match[] = {
 { .compatible = "mediatek,mt8186-pinctrl", .data = &mt8186_data },
 { }
};

static struct platform_driver mt8186_pinctrl_driver = {
 .driver = {
  .name = "mt8186-pinctrl",
  .of_match_table = mt8186_pinctrl_of_match,
  .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops),
 },
 .probe = mtk_paris_pinctrl_probe,
};

static int __init mt8186_pinctrl_init(void)
{
 return platform_driver_register(&mt8186_pinctrl_driver);
}

arch_initcall(mt8186_pinctrl_init);

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

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