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

Quelle  pinctrl-mt6779.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2019 MediaTek Inc.
 * Author: Andy Teng <andy.teng@mediatek.com>
 *
 */


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

/* MT6779 have multiple bases to program pin configuration listed as the below:
 * gpio:0x10005000,     iocfg_rm:0x11C20000, iocfg_br:0x11D10000,
 * 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 mt6779_pin_mode_range[] = {
 PIN_FIELD_BASE(0700x0300, 0x10, 04),
 PIN_FIELD_BASE(81500x0310, 0x10, 04),
 PIN_FIELD_BASE(162300x0320, 0x10, 04),
 PIN_FIELD_BASE(243100x0330, 0x10, 04),
 PIN_FIELD_BASE(323900x0340, 0x10, 04),
 PIN_FIELD_BASE(404700x0350, 0x10, 04),
 PIN_FIELD_BASE(485500x0360, 0x10, 04),
 PIN_FIELD_BASE(566300x0370, 0x10, 04),
 PIN_FIELD_BASE(647100x0380, 0x10, 04),
 PIN_FIELD_BASE(727900x0390, 0x10, 04),
 PIN_FIELD_BASE(808700x03A0, 0x10, 04),
 PIN_FIELD_BASE(889500x03B0, 0x10, 04),
 PIN_FIELD_BASE(9610300x03C0, 0x10, 04),
 PIN_FIELD_BASE(10411100x03D0, 0x10, 04),
 PIN_FIELD_BASE(11211900x03E0, 0x10, 04),
 PIN_FIELD_BASE(12012700x03F0, 0x10, 04),
 PIN_FIELD_BASE(12813500x0400, 0x10, 04),
 PIN_FIELD_BASE(13614300x0410, 0x10, 04),
 PIN_FIELD_BASE(14415100x0420, 0x10, 04),
 PIN_FIELD_BASE(15215900x0430, 0x10, 04),
 PIN_FIELD_BASE(16016700x0440, 0x10, 04),
 PIN_FIELD_BASE(16817500x0450, 0x10, 04),
 PIN_FIELD_BASE(17618300x0460, 0x10, 04),
 PIN_FIELD_BASE(18419100x0470, 0x10, 04),
 PIN_FIELD_BASE(19219900x0480, 0x10, 04),
 PIN_FIELD_BASE(20020200x0490, 0x10, 04),
};

static const struct mtk_pin_field_calc mt6779_pin_dir_range[] = {
 PIN_FIELD_BASE(03100x0000, 0x10, 01),
 PIN_FIELD_BASE(326300x0010, 0x10, 01),
 PIN_FIELD_BASE(649500x0020, 0x10, 01),
 PIN_FIELD_BASE(9612700x0030, 0x10, 01),
 PIN_FIELD_BASE(12815900x0040, 0x10, 01),
 PIN_FIELD_BASE(16019100x0050, 0x10, 01),
 PIN_FIELD_BASE(19220200x0060, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6779_pin_di_range[] = {
 PIN_FIELD_BASE(03100x0200, 0x10, 01),
 PIN_FIELD_BASE(326300x0210, 0x10, 01),
 PIN_FIELD_BASE(649500x0220, 0x10, 01),
 PIN_FIELD_BASE(9612700x0230, 0x10, 01),
 PIN_FIELD_BASE(12815900x0240, 0x10, 01),
 PIN_FIELD_BASE(16019100x0250, 0x10, 01),
 PIN_FIELD_BASE(19220200x0260, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6779_pin_do_range[] = {
 PIN_FIELD_BASE(03100x0100, 0x10, 01),
 PIN_FIELD_BASE(326300x0110, 0x10, 01),
 PIN_FIELD_BASE(649500x0120, 0x10, 01),
 PIN_FIELD_BASE(9612700x0130, 0x10, 01),
 PIN_FIELD_BASE(12815900x0140, 0x10, 01),
 PIN_FIELD_BASE(16019100x0150, 0x10, 01),
 PIN_FIELD_BASE(19220200x0160, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6779_pin_ies_range[] = {
 PIN_FIELD_BASE(0960x0030, 0x10, 31),
 PIN_FIELD_BASE(101630x0050, 0x10, 01),
 PIN_FIELD_BASE(171860x0030, 0x10, 281),
 PIN_FIELD_BASE(191960x0030, 0x10, 271),
 PIN_FIELD_BASE(202060x0030, 0x10, 261),
 PIN_FIELD_BASE(212460x0030, 0x10, 191),
 PIN_FIELD_BASE(252560x0030, 0x10, 301),
 PIN_FIELD_BASE(262660x0030, 0x10, 231),
 PIN_FIELD_BASE(272760x0030, 0x10, 01),
 PIN_FIELD_BASE(282960x0030, 0x10, 241),
 PIN_FIELD_BASE(303060x0030, 0x10, 161),
 PIN_FIELD_BASE(313160x0030, 0x10, 131),
 PIN_FIELD_BASE(323260x0030, 0x10, 151),
 PIN_FIELD_BASE(333360x0030, 0x10, 171),
 PIN_FIELD_BASE(343460x0030, 0x10, 141),
 PIN_FIELD_BASE(353560x0040, 0x10, 41),
 PIN_FIELD_BASE(363660x0030, 0x10, 311),
 PIN_FIELD_BASE(373760x0040, 0x10, 51),
 PIN_FIELD_BASE(384160x0040, 0x10, 01),
 PIN_FIELD_BASE(424360x0030, 0x10, 11),
 PIN_FIELD_BASE(444460x0030, 0x10, 181),
 PIN_FIELD_BASE(454530x0050, 0x10, 141),
 PIN_FIELD_BASE(464630x0050, 0x10, 221),
 PIN_FIELD_BASE(474730x0050, 0x10, 251),
 PIN_FIELD_BASE(484830x0050, 0x10, 241),
 PIN_FIELD_BASE(494930x0050, 0x10, 261),
 PIN_FIELD_BASE(505030x0050, 0x10, 231),
 PIN_FIELD_BASE(515130x0050, 0x10, 111),
 PIN_FIELD_BASE(525230x0050, 0x10, 191),
 PIN_FIELD_BASE(535430x0050, 0x10, 271),
 PIN_FIELD_BASE(555530x0050, 0x10, 131),
 PIN_FIELD_BASE(565630x0050, 0x10, 211),
 PIN_FIELD_BASE(575730x0050, 0x10, 101),
 PIN_FIELD_BASE(585830x0050, 0x10, 91),
 PIN_FIELD_BASE(596030x0050, 0x10, 71),
 PIN_FIELD_BASE(616130x0050, 0x10, 121),
 PIN_FIELD_BASE(626230x0050, 0x10, 201),
 PIN_FIELD_BASE(636330x0050, 0x10, 171),
 PIN_FIELD_BASE(646430x0050, 0x10, 161),
 PIN_FIELD_BASE(656530x0050, 0x10, 181),
 PIN_FIELD_BASE(666630x0050, 0x10, 151),
 PIN_FIELD_BASE(676720x0060, 0x10, 71),
 PIN_FIELD_BASE(686820x0060, 0x10, 61),
 PIN_FIELD_BASE(696920x0060, 0x10, 81),
 PIN_FIELD_BASE(707120x0060, 0x10, 41),
 PIN_FIELD_BASE(727240x0020, 0x10, 31),
 PIN_FIELD_BASE(737340x0020, 0x10, 21),
 PIN_FIELD_BASE(747440x0020, 0x10, 11),
 PIN_FIELD_BASE(757540x0020, 0x10, 41),
 PIN_FIELD_BASE(767640x0020, 0x10, 121),
 PIN_FIELD_BASE(777740x0020, 0x10, 111),
 PIN_FIELD_BASE(787820x0050, 0x10, 181),
 PIN_FIELD_BASE(797920x0050, 0x10, 171),
 PIN_FIELD_BASE(808120x0050, 0x10, 191),
 PIN_FIELD_BASE(828820x0050, 0x10, 11),
 PIN_FIELD_BASE(898920x0050, 0x10, 161),
 PIN_FIELD_BASE(909020x0050, 0x10, 151),
 PIN_FIELD_BASE(919120x0050, 0x10, 141),
 PIN_FIELD_BASE(929220x0050, 0x10, 81),
 PIN_FIELD_BASE(939340x0020, 0x10, 01),
 PIN_FIELD_BASE(949420x0050, 0x10, 01),
 PIN_FIELD_BASE(959540x0020, 0x10, 71),
 PIN_FIELD_BASE(969640x0020, 0x10, 51),
 PIN_FIELD_BASE(979740x0020, 0x10, 81),
 PIN_FIELD_BASE(989840x0020, 0x10, 61),
 PIN_FIELD_BASE(999920x0060, 0x10, 91),
 PIN_FIELD_BASE(10010020x0060, 0x10, 121),
 PIN_FIELD_BASE(10110120x0060, 0x10, 101),
 PIN_FIELD_BASE(10210220x0060, 0x10, 131),
 PIN_FIELD_BASE(10310320x0060, 0x10, 111),
 PIN_FIELD_BASE(10410420x0060, 0x10, 141),
 PIN_FIELD_BASE(10510520x0050, 0x10, 101),
 PIN_FIELD_BASE(10610620x0050, 0x10, 91),
 PIN_FIELD_BASE(10710820x0050, 0x10, 121),
 PIN_FIELD_BASE(10910920x0050, 0x10, 111),
 PIN_FIELD_BASE(11011020x0060, 0x10, 161),
 PIN_FIELD_BASE(11111120x0060, 0x10, 181),
 PIN_FIELD_BASE(11211220x0060, 0x10, 151),
 PIN_FIELD_BASE(11311320x0060, 0x10, 171),
 PIN_FIELD_BASE(11411520x0050, 0x10, 261),
 PIN_FIELD_BASE(11611720x0050, 0x10, 211),
 PIN_FIELD_BASE(11811820x0050, 0x10, 311),
 PIN_FIELD_BASE(11911920x0060, 0x10, 01),
 PIN_FIELD_BASE(12012120x0050, 0x10, 231),
 PIN_FIELD_BASE(12212320x0050, 0x10, 281),
 PIN_FIELD_BASE(12412520x0060, 0x10, 11),
 PIN_FIELD_BASE(12612710x0030, 0x10, 81),
 PIN_FIELD_BASE(12812910x0030, 0x10, 171),
 PIN_FIELD_BASE(13013010x0030, 0x10, 161),
 PIN_FIELD_BASE(13113110x0030, 0x10, 191),
 PIN_FIELD_BASE(13213210x0030, 0x10, 211),
 PIN_FIELD_BASE(13313310x0030, 0x10, 201),
 PIN_FIELD_BASE(13413510x0030, 0x10, 21),
 PIN_FIELD_BASE(13613610x0030, 0x10, 71),
 PIN_FIELD_BASE(13713710x0030, 0x10, 41),
 PIN_FIELD_BASE(13813810x0030, 0x10, 61),
 PIN_FIELD_BASE(13913910x0030, 0x10, 51),
 PIN_FIELD_BASE(14014110x0030, 0x10, 01),
 PIN_FIELD_BASE(14214210x0030, 0x10, 151),
 PIN_FIELD_BASE(14314350x0020, 0x10, 151),
 PIN_FIELD_BASE(14414450x0020, 0x10, 171),
 PIN_FIELD_BASE(14514550x0020, 0x10, 161),
 PIN_FIELD_BASE(14614650x0020, 0x10, 121),
 PIN_FIELD_BASE(14715550x0020, 0x10, 01),
 PIN_FIELD_BASE(15615750x0020, 0x10, 221),
 PIN_FIELD_BASE(15815850x0020, 0x10, 211),
 PIN_FIELD_BASE(15915950x0020, 0x10, 241),
 PIN_FIELD_BASE(16016150x0020, 0x10, 191),
 PIN_FIELD_BASE(16216650x0020, 0x10, 251),
 PIN_FIELD_BASE(16716870x0010, 0x10, 11),
 PIN_FIELD_BASE(16916970x0010, 0x10, 41),
 PIN_FIELD_BASE(17017070x0010, 0x10, 61),
 PIN_FIELD_BASE(17117170x0010, 0x10, 81),
 PIN_FIELD_BASE(17217270x0010, 0x10, 31),
 PIN_FIELD_BASE(17317370x0010, 0x10, 71),
 PIN_FIELD_BASE(17417570x0010, 0x10, 91),
 PIN_FIELD_BASE(17617670x0010, 0x10, 01),
 PIN_FIELD_BASE(17717770x0010, 0x10, 51),
 PIN_FIELD_BASE(17817870x0010, 0x10, 111),
 PIN_FIELD_BASE(17917940x0020, 0x10, 131),
 PIN_FIELD_BASE(18018040x0020, 0x10, 101),
 PIN_FIELD_BASE(18118310x0030, 0x10, 221),
 PIN_FIELD_BASE(18418410x0030, 0x10, 121),
 PIN_FIELD_BASE(18518510x0030, 0x10, 111),
 PIN_FIELD_BASE(18618610x0030, 0x10, 131),
 PIN_FIELD_BASE(18718710x0030, 0x10, 101),
 PIN_FIELD_BASE(18818810x0030, 0x10, 141),
 PIN_FIELD_BASE(18918950x0020, 0x10, 91),
 PIN_FIELD_BASE(19019050x0020, 0x10, 181),
 PIN_FIELD_BASE(19119250x0020, 0x10, 131),
 PIN_FIELD_BASE(19319450x0020, 0x10, 101),
 PIN_FIELD_BASE(19519520x0050, 0x10, 301),
 PIN_FIELD_BASE(19619620x0050, 0x10, 251),
 PIN_FIELD_BASE(19719720x0060, 0x10, 31),
 PIN_FIELD_BASE(19819940x0020, 0x10, 141),
 PIN_FIELD_BASE(20020160x0040, 0x10, 61),
 PIN_FIELD_BASE(20220240x0020, 0x10, 91),
};

static const struct mtk_pin_field_calc mt6779_pin_smt_range[] = {
 PINS_FIELD_BASE(0960x00c0, 0x10, 31),
 PIN_FIELD_BASE(101130x00e0, 0x10, 01),
 PINS_FIELD_BASE(121530x00e0, 0x10, 21),
 PIN_FIELD_BASE(161630x00e0, 0x10, 31),
 PINS_FIELD_BASE(172060x00c0, 0x10, 111),
 PINS_FIELD_BASE(212460x00c0, 0x10, 71),
 PIN_FIELD_BASE(252560x00c0, 0x10, 121),
 PIN_FIELD_BASE(262660x00c0, 0x10, 81),
 PIN_FIELD_BASE(272760x00c0, 0x10, 01),
 PIN_FIELD_BASE(282960x00c0, 0x10, 91),
 PINS_FIELD_BASE(303260x00c0, 0x10, 41),
 PIN_FIELD_BASE(333360x00c0, 0x10, 51),
 PIN_FIELD_BASE(343460x00c0, 0x10, 41),
 PINS_FIELD_BASE(354160x00c0, 0x10, 131),
 PIN_FIELD_BASE(424360x00c0, 0x10, 11),
 PIN_FIELD_BASE(444460x00c0, 0x10, 61),
 PIN_FIELD_BASE(454530x00e0, 0x10, 81),
 PIN_FIELD_BASE(464630x00e0, 0x10, 131),
 PINS_FIELD_BASE(475030x00e0, 0x10, 141),
 PIN_FIELD_BASE(515130x00e0, 0x10, 51),
 PIN_FIELD_BASE(525230x00e0, 0x10, 101),
 PIN_FIELD_BASE(535430x00e0, 0x10, 151),
 PIN_FIELD_BASE(555530x00e0, 0x10, 71),
 PIN_FIELD_BASE(565630x00e0, 0x10, 121),
 PINS_FIELD_BASE(576030x00e0, 0x10, 41),
 PIN_FIELD_BASE(616130x00e0, 0x10, 61),
 PIN_FIELD_BASE(626230x00e0, 0x10, 111),
 PINS_FIELD_BASE(636630x00e0, 0x10, 91),
 PINS_FIELD_BASE(676920x00e0, 0x10, 111),
 PIN_FIELD_BASE(707120x00e0, 0x10, 101),
 PINS_FIELD_BASE(727540x0070, 0x10, 11),
 PINS_FIELD_BASE(767740x0070, 0x10, 41),
 PINS_FIELD_BASE(788620x00e0, 0x10, 11),
 PINS_FIELD_BASE(879220x00e0, 0x10, 21),
 PIN_FIELD_BASE(939340x0070, 0x10, 01),
 PIN_FIELD_BASE(949420x00e0, 0x10, 21),
 PINS_FIELD_BASE(959840x0070, 0x10, 21),
 PINS_FIELD_BASE(9910420x00e0, 0x10, 121),
 PINS_FIELD_BASE(10510920x00e0, 0x10, 01),
 PIN_FIELD_BASE(11011020x00e0, 0x10, 141),
 PIN_FIELD_BASE(11111120x00e0, 0x10, 161),
 PIN_FIELD_BASE(11211220x00e0, 0x10, 131),
 PIN_FIELD_BASE(11311320x00e0, 0x10, 151),
 PINS_FIELD_BASE(11411520x00e0, 0x10, 41),
 PIN_FIELD_BASE(11611720x00e0, 0x10, 51),
 PINS_FIELD_BASE(11811920x00e0, 0x10, 41),
 PIN_FIELD_BASE(12012120x00e0, 0x10, 71),
 PINS_FIELD_BASE(12212520x00e0, 0x10, 31),
 PINS_FIELD_BASE(12612710x00c0, 0x10, 51),
 PINS_FIELD_BASE(12813010x00c0, 0x10, 91),
 PINS_FIELD_BASE(13113310x00c0, 0x10, 101),
 PIN_FIELD_BASE(13413510x00c0, 0x10, 21),
 PINS_FIELD_BASE(13613910x00c0, 0x10, 41),
 PIN_FIELD_BASE(14014110x00c0, 0x10, 01),
 PIN_FIELD_BASE(14214210x00c0, 0x10, 81),
 PINS_FIELD_BASE(14314650x0060, 0x10, 11),
 PINS_FIELD_BASE(14715550x0060, 0x10, 01),
 PIN_FIELD_BASE(15615750x0060, 0x10, 61),
 PIN_FIELD_BASE(15815850x0060, 0x10, 51),
 PIN_FIELD_BASE(15915950x0060, 0x10, 81),
 PIN_FIELD_BASE(16016150x0060, 0x10, 31),
 PINS_FIELD_BASE(16216650x0060, 0x10, 21),
 PIN_FIELD_BASE(16716770x0060, 0x10, 11),
 PINS_FIELD_BASE(16817470x0060, 0x10, 21),
 PIN_FIELD_BASE(17517570x0060, 0x10, 31),
 PIN_FIELD_BASE(17617670x0060, 0x10, 01),
 PINS_FIELD_BASE(17717870x0060, 0x10, 21),
 PINS_FIELD_BASE(17918040x0070, 0x10, 41),
 PIN_FIELD_BASE(18118310x00c0, 0x10, 111),
 PINS_FIELD_BASE(18418710x00c0, 0x10, 61),
 PIN_FIELD_BASE(18818810x00c0, 0x10, 71),
 PINS_FIELD_BASE(18919450x0060, 0x10, 11),
 PIN_FIELD_BASE(19519520x00e0, 0x10, 31),
 PIN_FIELD_BASE(19619620x00e0, 0x10, 91),
 PIN_FIELD_BASE(19719720x00e0, 0x10, 31),
 PIN_FIELD_BASE(19819940x0070, 0x10, 51),
 PIN_FIELD_BASE(20020160x00c0, 0x10, 141),
 PIN_FIELD_BASE(20220240x0070, 0x10, 31),
};

static const struct mtk_pin_field_calc mt6779_pin_pu_range[] = {
 PIN_FIELD_BASE(0960x0070, 0x10, 31),
 PIN_FIELD_BASE(161630x0080, 0x10, 01),
 PIN_FIELD_BASE(171860x0070, 0x10, 281),
 PIN_FIELD_BASE(191960x0070, 0x10, 271),
 PIN_FIELD_BASE(202060x0070, 0x10, 261),
 PIN_FIELD_BASE(212460x0070, 0x10, 191),
 PIN_FIELD_BASE(252560x0070, 0x10, 301),
 PIN_FIELD_BASE(262660x0070, 0x10, 231),
 PIN_FIELD_BASE(272760x0070, 0x10, 01),
 PIN_FIELD_BASE(282960x0070, 0x10, 241),
 PIN_FIELD_BASE(303060x0070, 0x10, 161),
 PIN_FIELD_BASE(313160x0070, 0x10, 131),
 PIN_FIELD_BASE(323260x0070, 0x10, 151),
 PIN_FIELD_BASE(333360x0070, 0x10, 171),
 PIN_FIELD_BASE(343460x0070, 0x10, 141),
 PIN_FIELD_BASE(353560x0080, 0x10, 51),
 PIN_FIELD_BASE(363660x0080, 0x10, 01),
 PIN_FIELD_BASE(373760x0080, 0x10, 61),
 PIN_FIELD_BASE(384160x0080, 0x10, 11),
 PIN_FIELD_BASE(424360x0070, 0x10, 11),
 PIN_FIELD_BASE(444460x0070, 0x10, 181),
 PIN_FIELD_BASE(454530x0080, 0x10, 41),
 PIN_FIELD_BASE(464630x0080, 0x10, 121),
 PIN_FIELD_BASE(474730x0080, 0x10, 151),
 PIN_FIELD_BASE(484830x0080, 0x10, 141),
 PIN_FIELD_BASE(494930x0080, 0x10, 161),
 PIN_FIELD_BASE(505030x0080, 0x10, 131),
 PIN_FIELD_BASE(515130x0080, 0x10, 11),
 PIN_FIELD_BASE(525230x0080, 0x10, 91),
 PIN_FIELD_BASE(535430x0080, 0x10, 181),
 PIN_FIELD_BASE(555530x0080, 0x10, 31),
 PIN_FIELD_BASE(565630x0080, 0x10, 111),
 PIN_FIELD_BASE(616130x0080, 0x10, 21),
 PIN_FIELD_BASE(626230x0080, 0x10, 101),
 PIN_FIELD_BASE(636330x0080, 0x10, 71),
 PIN_FIELD_BASE(646430x0080, 0x10, 61),
 PIN_FIELD_BASE(656530x0080, 0x10, 81),
 PIN_FIELD_BASE(666630x0080, 0x10, 51),
 PIN_FIELD_BASE(676720x00a0, 0x10, 71),
 PIN_FIELD_BASE(686820x00a0, 0x10, 61),
 PIN_FIELD_BASE(696920x00a0, 0x10, 81),
 PIN_FIELD_BASE(707120x00a0, 0x10, 41),
 PIN_FIELD_BASE(727240x0040, 0x10, 31),
 PIN_FIELD_BASE(737340x0040, 0x10, 21),
 PIN_FIELD_BASE(747440x0040, 0x10, 11),
 PIN_FIELD_BASE(757540x0040, 0x10, 41),
 PIN_FIELD_BASE(767640x0040, 0x10, 121),
 PIN_FIELD_BASE(777740x0040, 0x10, 111),
 PIN_FIELD_BASE(787820x0090, 0x10, 181),
 PIN_FIELD_BASE(797920x0090, 0x10, 171),
 PIN_FIELD_BASE(808120x0090, 0x10, 191),
 PIN_FIELD_BASE(828820x0090, 0x10, 11),
 PIN_FIELD_BASE(898920x0090, 0x10, 161),
 PIN_FIELD_BASE(909020x0090, 0x10, 151),
 PIN_FIELD_BASE(919120x0090, 0x10, 141),
 PIN_FIELD_BASE(929220x0090, 0x10, 81),
 PIN_FIELD_BASE(939340x0040, 0x10, 01),
 PIN_FIELD_BASE(949420x0090, 0x10, 01),
 PIN_FIELD_BASE(959540x0040, 0x10, 71),
 PIN_FIELD_BASE(969640x0040, 0x10, 51),
 PIN_FIELD_BASE(979740x0040, 0x10, 81),
 PIN_FIELD_BASE(989840x0040, 0x10, 61),
 PIN_FIELD_BASE(999920x00a0, 0x10, 91),
 PIN_FIELD_BASE(10010020x00a0, 0x10, 121),
 PIN_FIELD_BASE(10110120x00a0, 0x10, 101),
 PIN_FIELD_BASE(10210220x00a0, 0x10, 131),
 PIN_FIELD_BASE(10310320x00a0, 0x10, 111),
 PIN_FIELD_BASE(10410420x00a0, 0x10, 141),
 PIN_FIELD_BASE(10510520x0090, 0x10, 101),
 PIN_FIELD_BASE(10610620x0090, 0x10, 91),
 PIN_FIELD_BASE(10710820x0090, 0x10, 121),
 PIN_FIELD_BASE(10910920x0090, 0x10, 111),
 PIN_FIELD_BASE(11011020x00a0, 0x10, 161),
 PIN_FIELD_BASE(11111120x00a0, 0x10, 181),
 PIN_FIELD_BASE(11211220x00a0, 0x10, 151),
 PIN_FIELD_BASE(11311320x00a0, 0x10, 171),
 PIN_FIELD_BASE(11411520x0090, 0x10, 261),
 PIN_FIELD_BASE(11611720x0090, 0x10, 211),
 PIN_FIELD_BASE(11811820x0090, 0x10, 311),
 PIN_FIELD_BASE(11911920x00a0, 0x10, 01),
 PIN_FIELD_BASE(12012120x0090, 0x10, 231),
 PIN_FIELD_BASE(12212320x0090, 0x10, 281),
 PIN_FIELD_BASE(12412520x00a0, 0x10, 11),
 PIN_FIELD_BASE(12612710x0070, 0x10, 21),
 PIN_FIELD_BASE(14014110x0070, 0x10, 01),
 PIN_FIELD_BASE(14214210x0070, 0x10, 91),
 PIN_FIELD_BASE(14314350x0040, 0x10, 151),
 PIN_FIELD_BASE(14414450x0040, 0x10, 171),
 PIN_FIELD_BASE(14514550x0040, 0x10, 161),
 PIN_FIELD_BASE(14614650x0040, 0x10, 121),
 PIN_FIELD_BASE(14715550x0040, 0x10, 01),
 PIN_FIELD_BASE(15615750x0040, 0x10, 221),
 PIN_FIELD_BASE(15815850x0040, 0x10, 211),
 PIN_FIELD_BASE(15915950x0040, 0x10, 241),
 PIN_FIELD_BASE(16016150x0040, 0x10, 191),
 PIN_FIELD_BASE(16216650x0040, 0x10, 251),
 PIN_FIELD_BASE(17917940x0040, 0x10, 131),
 PIN_FIELD_BASE(18018040x0040, 0x10, 101),
 PIN_FIELD_BASE(18118310x0070, 0x10, 101),
 PIN_FIELD_BASE(18418410x0070, 0x10, 61),
 PIN_FIELD_BASE(18518510x0070, 0x10, 51),
 PIN_FIELD_BASE(18618610x0070, 0x10, 71),
 PIN_FIELD_BASE(18718710x0070, 0x10, 41),
 PIN_FIELD_BASE(18818810x0070, 0x10, 81),
 PIN_FIELD_BASE(18918950x0040, 0x10, 91),
 PIN_FIELD_BASE(19019050x0040, 0x10, 181),
 PIN_FIELD_BASE(19119250x0040, 0x10, 131),
 PIN_FIELD_BASE(19319450x0040, 0x10, 101),
 PIN_FIELD_BASE(19519520x0090, 0x10, 301),
 PIN_FIELD_BASE(19619620x0090, 0x10, 251),
 PIN_FIELD_BASE(19719720x00a0, 0x10, 31),
 PIN_FIELD_BASE(19819940x0040, 0x10, 141),
 PIN_FIELD_BASE(20020160x0080, 0x10, 71),
 PIN_FIELD_BASE(20220240x0040, 0x10, 91),
};

static const struct mtk_pin_field_calc mt6779_pin_pd_range[] = {
 PIN_FIELD_BASE(0960x0050, 0x10, 31),
 PIN_FIELD_BASE(161630x0060, 0x10, 01),
 PIN_FIELD_BASE(171860x0050, 0x10, 281),
 PIN_FIELD_BASE(191960x0050, 0x10, 271),
 PIN_FIELD_BASE(202060x0050, 0x10, 261),
 PIN_FIELD_BASE(212460x0050, 0x10, 191),
 PIN_FIELD_BASE(252560x0050, 0x10, 301),
 PIN_FIELD_BASE(262660x0050, 0x10, 231),
 PIN_FIELD_BASE(272760x0050, 0x10, 01),
 PIN_FIELD_BASE(282960x0050, 0x10, 241),
 PIN_FIELD_BASE(303060x0050, 0x10, 161),
 PIN_FIELD_BASE(313160x0050, 0x10, 131),
 PIN_FIELD_BASE(323260x0050, 0x10, 151),
 PIN_FIELD_BASE(333360x0050, 0x10, 171),
 PIN_FIELD_BASE(343460x0050, 0x10, 141),
 PIN_FIELD_BASE(353560x0060, 0x10, 51),
 PIN_FIELD_BASE(363660x0060, 0x10, 01),
 PIN_FIELD_BASE(373760x0060, 0x10, 61),
 PIN_FIELD_BASE(384160x0060, 0x10, 11),
 PIN_FIELD_BASE(424360x0050, 0x10, 11),
 PIN_FIELD_BASE(444460x0050, 0x10, 181),
 PIN_FIELD_BASE(454530x0060, 0x10, 41),
 PIN_FIELD_BASE(464630x0060, 0x10, 121),
 PIN_FIELD_BASE(474730x0060, 0x10, 151),
 PIN_FIELD_BASE(484830x0060, 0x10, 141),
 PIN_FIELD_BASE(494930x0060, 0x10, 161),
 PIN_FIELD_BASE(505030x0060, 0x10, 131),
 PIN_FIELD_BASE(515130x0060, 0x10, 11),
 PIN_FIELD_BASE(525230x0060, 0x10, 91),
 PIN_FIELD_BASE(535430x0060, 0x10, 181),
 PIN_FIELD_BASE(555530x0060, 0x10, 31),
 PIN_FIELD_BASE(565630x0060, 0x10, 111),
 PIN_FIELD_BASE(616130x0060, 0x10, 21),
 PIN_FIELD_BASE(626230x0060, 0x10, 101),
 PIN_FIELD_BASE(636330x0060, 0x10, 71),
 PIN_FIELD_BASE(646430x0060, 0x10, 61),
 PIN_FIELD_BASE(656530x0060, 0x10, 81),
 PIN_FIELD_BASE(666630x0060, 0x10, 51),
 PIN_FIELD_BASE(676720x0080, 0x10, 71),
 PIN_FIELD_BASE(686820x0080, 0x10, 61),
 PIN_FIELD_BASE(696920x0080, 0x10, 81),
 PIN_FIELD_BASE(707120x0080, 0x10, 41),
 PIN_FIELD_BASE(727240x0030, 0x10, 31),
 PIN_FIELD_BASE(737340x0030, 0x10, 21),
 PIN_FIELD_BASE(747440x0030, 0x10, 11),
 PIN_FIELD_BASE(757540x0030, 0x10, 41),
 PIN_FIELD_BASE(767640x0030, 0x10, 121),
 PIN_FIELD_BASE(777740x0030, 0x10, 111),
 PIN_FIELD_BASE(787820x0070, 0x10, 181),
 PIN_FIELD_BASE(797920x0070, 0x10, 171),
 PIN_FIELD_BASE(808120x0070, 0x10, 191),
 PIN_FIELD_BASE(828820x0070, 0x10, 11),
 PIN_FIELD_BASE(898920x0070, 0x10, 161),
 PIN_FIELD_BASE(909020x0070, 0x10, 151),
 PIN_FIELD_BASE(919120x0070, 0x10, 141),
 PIN_FIELD_BASE(929220x0070, 0x10, 81),
 PIN_FIELD_BASE(939340x0030, 0x10, 01),
 PIN_FIELD_BASE(949420x0070, 0x10, 01),
 PIN_FIELD_BASE(959540x0030, 0x10, 71),
 PIN_FIELD_BASE(969640x0030, 0x10, 51),
 PIN_FIELD_BASE(979740x0030, 0x10, 81),
 PIN_FIELD_BASE(989840x0030, 0x10, 61),
 PIN_FIELD_BASE(999920x0080, 0x10, 91),
 PIN_FIELD_BASE(10010020x0080, 0x10, 121),
 PIN_FIELD_BASE(10110120x0080, 0x10, 101),
 PIN_FIELD_BASE(10210220x0080, 0x10, 131),
 PIN_FIELD_BASE(10310320x0080, 0x10, 111),
 PIN_FIELD_BASE(10410420x0080, 0x10, 141),
 PIN_FIELD_BASE(10510520x0070, 0x10, 101),
 PIN_FIELD_BASE(10610620x0070, 0x10, 91),
 PIN_FIELD_BASE(10710820x0070, 0x10, 121),
 PIN_FIELD_BASE(10910920x0070, 0x10, 111),
 PIN_FIELD_BASE(11011020x0080, 0x10, 161),
 PIN_FIELD_BASE(11111120x0080, 0x10, 181),
 PIN_FIELD_BASE(11211220x0080, 0x10, 151),
 PIN_FIELD_BASE(11311320x0080, 0x10, 171),
 PIN_FIELD_BASE(11411520x0070, 0x10, 261),
 PIN_FIELD_BASE(11611720x0070, 0x10, 211),
 PIN_FIELD_BASE(11811820x0070, 0x10, 311),
 PIN_FIELD_BASE(11911920x0080, 0x10, 01),
 PIN_FIELD_BASE(12012120x0070, 0x10, 231),
 PIN_FIELD_BASE(12212320x0070, 0x10, 281),
 PIN_FIELD_BASE(12412520x0080, 0x10, 11),
 PIN_FIELD_BASE(12612710x0050, 0x10, 21),
 PIN_FIELD_BASE(14014110x0050, 0x10, 01),
 PIN_FIELD_BASE(14214210x0050, 0x10, 91),
 PIN_FIELD_BASE(14314350x0030, 0x10, 151),
 PIN_FIELD_BASE(14414450x0030, 0x10, 171),
 PIN_FIELD_BASE(14514550x0030, 0x10, 161),
 PIN_FIELD_BASE(14614650x0030, 0x10, 121),
 PIN_FIELD_BASE(14715550x0030, 0x10, 01),
 PIN_FIELD_BASE(15615750x0030, 0x10, 221),
 PIN_FIELD_BASE(15815850x0030, 0x10, 211),
 PIN_FIELD_BASE(15915950x0030, 0x10, 241),
 PIN_FIELD_BASE(16016150x0030, 0x10, 191),
 PIN_FIELD_BASE(16216650x0030, 0x10, 251),
 PIN_FIELD_BASE(17917940x0030, 0x10, 131),
 PIN_FIELD_BASE(18018040x0030, 0x10, 101),
 PIN_FIELD_BASE(18118310x0050, 0x10, 101),
 PIN_FIELD_BASE(18418410x0050, 0x10, 61),
 PIN_FIELD_BASE(18518510x0050, 0x10, 51),
 PIN_FIELD_BASE(18618610x0050, 0x10, 71),
 PIN_FIELD_BASE(18718710x0050, 0x10, 41),
 PIN_FIELD_BASE(18818810x0050, 0x10, 81),
 PIN_FIELD_BASE(18918950x0030, 0x10, 91),
 PIN_FIELD_BASE(19019050x0030, 0x10, 181),
 PIN_FIELD_BASE(19119250x0030, 0x10, 131),
 PIN_FIELD_BASE(19319450x0030, 0x10, 101),
 PIN_FIELD_BASE(19519520x0070, 0x10, 301),
 PIN_FIELD_BASE(19619620x0070, 0x10, 251),
 PIN_FIELD_BASE(19719720x0080, 0x10, 31),
 PIN_FIELD_BASE(19819940x0030, 0x10, 141),
 PIN_FIELD_BASE(20020160x0060, 0x10, 71),
 PIN_FIELD_BASE(20220240x0030, 0x10, 91),
};

static const struct mtk_pin_field_calc mt6779_pin_drv_range[] = {
 PINS_FIELD_BASE(0960x0000, 0x10, 93),
 PIN_FIELD_BASE(101630x0000, 0x10, 03),
 PINS_FIELD_BASE(171960x0010, 0x10, 33),
 PIN_FIELD_BASE(202060x0010, 0x10, 63),
 PINS_FIELD_BASE(212460x0000, 0x10, 213),
 PIN_FIELD_BASE(252560x0010, 0x10, 93),
 PIN_FIELD_BASE(262660x0000, 0x10, 243),
 PIN_FIELD_BASE(272760x0000, 0x10, 03),
 PIN_FIELD_BASE(282860x0000, 0x10, 273),
 PIN_FIELD_BASE(292960x0010, 0x10, 03),
 PINS_FIELD_BASE(303260x0000, 0x10, 123),
 PIN_FIELD_BASE(333360x0000, 0x10, 153),
 PIN_FIELD_BASE(343460x0000, 0x10, 123),
 PINS_FIELD_BASE(354160x0010, 0x10, 123),
 PIN_FIELD_BASE(424360x0000, 0x10, 33),
 PIN_FIELD_BASE(444460x0000, 0x10, 183),
 PIN_FIELD_BASE(454530x0010, 0x10, 123),
 PIN_FIELD_BASE(464630x0020, 0x10, 03),
 PINS_FIELD_BASE(474930x0020, 0x10, 33),
 PIN_FIELD_BASE(505030x0020, 0x10, 63),
 PIN_FIELD_BASE(515130x0010, 0x10, 33),
 PIN_FIELD_BASE(525230x0010, 0x10, 213),
 PINS_FIELD_BASE(535430x0020, 0x10, 93),
 PIN_FIELD_BASE(555530x0010, 0x10, 93),
 PIN_FIELD_BASE(565630x0010, 0x10, 273),
 PIN_FIELD_BASE(575730x0010, 0x10, 03),
 PIN_FIELD_BASE(585830x0000, 0x10, 273),
 PIN_FIELD_BASE(596030x0000, 0x10, 213),
 PIN_FIELD_BASE(616130x0010, 0x10, 63),
 PIN_FIELD_BASE(626230x0010, 0x10, 243),
 PINS_FIELD_BASE(636530x0010, 0x10, 153),
 PIN_FIELD_BASE(666630x0010, 0x10, 183),
 PINS_FIELD_BASE(676920x0010, 0x10, 33),
 PIN_FIELD_BASE(707120x0010, 0x10, 03),
 PINS_FIELD_BASE(727540x0000, 0x10, 03),
 PINS_FIELD_BASE(767740x0000, 0x10, 153),
 PINS_FIELD_BASE(788620x0000, 0x10, 33),
 PINS_FIELD_BASE(879220x0000, 0x10, 63),
 PIN_FIELD_BASE(939340x0000, 0x10, 33),
 PIN_FIELD_BASE(949420x0000, 0x10, 63),
 PINS_FIELD_BASE(959640x0000, 0x10, 63),
 PINS_FIELD_BASE(979840x0000, 0x10, 93),
 PINS_FIELD_BASE(9910020x0010, 0x10, 63),
 PINS_FIELD_BASE(10110220x0010, 0x10, 93),
 PINS_FIELD_BASE(10310420x0010, 0x10, 123),
 PINS_FIELD_BASE(10510920x0000, 0x10, 03),
 PIN_FIELD_BASE(11011020x0010, 0x10, 183),
 PIN_FIELD_BASE(11111120x0010, 0x10, 243),
 PIN_FIELD_BASE(11211220x0010, 0x10, 153),
 PIN_FIELD_BASE(11311320x0010, 0x10, 213),
 PINS_FIELD_BASE(11411520x0000, 0x10, 123),
 PIN_FIELD_BASE(11611720x0000, 0x10, 153),
 PINS_FIELD_BASE(11811920x0000, 0x10, 123),
 PIN_FIELD_BASE(12012120x0000, 0x10, 213),
 PINS_FIELD_BASE(12212520x0000, 0x10, 93),
 PINS_FIELD_BASE(12612710x0000, 0x10, 123),
 PIN_FIELD_BASE(12812810x0000, 0x10, 292),
 PIN_FIELD_BASE(12912910x0010, 0x10, 02),
 PIN_FIELD_BASE(13013010x0000, 0x10, 272),
 PIN_FIELD_BASE(13113110x0010, 0x10, 22),
 PIN_FIELD_BASE(13213210x0010, 0x10, 62),
 PIN_FIELD_BASE(13313310x0010, 0x10, 42),
 PIN_FIELD_BASE(13413510x0000, 0x10, 33),
 PINS_FIELD_BASE(13613910x0000, 0x10, 93),
 PINS_FIELD_BASE(14014110x0000, 0x10, 03),
 PIN_FIELD_BASE(14214210x0000, 0x10, 243),
 PINS_FIELD_BASE(14314650x0000, 0x10, 33),
 PINS_FIELD_BASE(14715550x0000, 0x10, 03),
 PIN_FIELD_BASE(15615750x0000, 0x10, 213),
 PIN_FIELD_BASE(15815850x0000, 0x10, 153),
 PIN_FIELD_BASE(15915950x0000, 0x10, 273),
 PIN_FIELD_BASE(16016150x0000, 0x10, 93),
 PINS_FIELD_BASE(16216650x0000, 0x10, 183),
 PIN_FIELD_BASE(16716770x0000, 0x10, 33),
 PINS_FIELD_BASE(16817470x0000, 0x10, 63),
 PIN_FIELD_BASE(17517570x0000, 0x10, 93),
 PIN_FIELD_BASE(17617670x0000, 0x10, 03),
 PINS_FIELD_BASE(17717870x0000, 0x10, 63),
 PIN_FIELD_BASE(17918040x0000, 0x10, 153),
 PIN_FIELD_BASE(18118310x0010, 0x10, 83),
 PINS_FIELD_BASE(18418610x0000, 0x10, 153),
 PIN_FIELD_BASE(18718810x0000, 0x10, 183),
 PIN_FIELD_BASE(18918950x0000, 0x10, 63),
 PINS_FIELD_BASE(19019450x0000, 0x10, 33),
 PIN_FIELD_BASE(19519520x0000, 0x10, 93),
 PIN_FIELD_BASE(19619620x0000, 0x10, 273),
 PIN_FIELD_BASE(19719720x0000, 0x10, 93),
 PIN_FIELD_BASE(19819940x0000, 0x10, 213),
 PINS_FIELD_BASE(20020160x0010, 0x10, 153),
 PIN_FIELD_BASE(20220240x0000, 0x10, 123),
};

static const struct mtk_pin_field_calc mt6779_pin_pupd_range[] = {
 PIN_FIELD_BASE(101530x0070, 0x10, 01),
 PIN_FIELD_BASE(575730x0070, 0x10, 91),
 PIN_FIELD_BASE(585830x0070, 0x10, 81),
 PIN_FIELD_BASE(596030x0070, 0x10, 61),
 PIN_FIELD_BASE(12812910x0060, 0x10, 71),
 PIN_FIELD_BASE(13013010x0060, 0x10, 61),
 PIN_FIELD_BASE(13113110x0060, 0x10, 91),
 PIN_FIELD_BASE(13213210x0060, 0x10, 111),
 PIN_FIELD_BASE(13313310x0060, 0x10, 101),
 PIN_FIELD_BASE(13413510x0060, 0x10, 01),
 PIN_FIELD_BASE(13613610x0060, 0x10, 51),
 PIN_FIELD_BASE(13713710x0060, 0x10, 21),
 PIN_FIELD_BASE(13813810x0060, 0x10, 41),
 PIN_FIELD_BASE(13913910x0060, 0x10, 31),
 PIN_FIELD_BASE(16716870x0020, 0x10, 11),
 PIN_FIELD_BASE(16916970x0020, 0x10, 41),
 PIN_FIELD_BASE(17017070x0020, 0x10, 61),
 PIN_FIELD_BASE(17117170x0020, 0x10, 81),
 PIN_FIELD_BASE(17217270x0020, 0x10, 31),
 PIN_FIELD_BASE(17317370x0020, 0x10, 71),
 PIN_FIELD_BASE(17417570x0020, 0x10, 91),
 PIN_FIELD_BASE(17617670x0020, 0x10, 01),
 PIN_FIELD_BASE(17717770x0020, 0x10, 51),
 PIN_FIELD_BASE(17817870x0020, 0x10, 111),
};

static const struct mtk_pin_field_calc mt6779_pin_r0_range[] = {
 PIN_FIELD_BASE(101530x0090, 0x10, 01),
 PIN_FIELD_BASE(575730x0090, 0x10, 91),
 PIN_FIELD_BASE(585830x0090, 0x10, 81),
 PIN_FIELD_BASE(596030x0090, 0x10, 61),
 PIN_FIELD_BASE(12812910x0080, 0x10, 71),
 PIN_FIELD_BASE(13013010x0080, 0x10, 61),
 PIN_FIELD_BASE(13113110x0080, 0x10, 91),
 PIN_FIELD_BASE(13213210x0080, 0x10, 111),
 PIN_FIELD_BASE(13313310x0080, 0x10, 101),
 PIN_FIELD_BASE(13413510x0080, 0x10, 01),
 PIN_FIELD_BASE(13613610x0080, 0x10, 51),
 PIN_FIELD_BASE(13713710x0080, 0x10, 21),
 PIN_FIELD_BASE(13813810x0080, 0x10, 41),
 PIN_FIELD_BASE(13913910x0080, 0x10, 31),
 PIN_FIELD_BASE(16716870x0030, 0x10, 11),
 PIN_FIELD_BASE(16916970x0030, 0x10, 41),
 PIN_FIELD_BASE(17017070x0030, 0x10, 61),
 PIN_FIELD_BASE(17117170x0030, 0x10, 81),
 PIN_FIELD_BASE(17217270x0030, 0x10, 31),
 PIN_FIELD_BASE(17317370x0030, 0x10, 71),
 PIN_FIELD_BASE(17417570x0030, 0x10, 91),
 PIN_FIELD_BASE(17617670x0030, 0x10, 01),
 PIN_FIELD_BASE(17717770x0030, 0x10, 51),
 PIN_FIELD_BASE(17817870x0030, 0x10, 111),
};

static const struct mtk_pin_field_calc mt6779_pin_r1_range[] = {
 PIN_FIELD_BASE(101530x00a0, 0x10, 01),
 PIN_FIELD_BASE(575730x00a0, 0x10, 91),
 PIN_FIELD_BASE(585830x00a0, 0x10, 81),
 PIN_FIELD_BASE(596030x00a0, 0x10, 61),
 PIN_FIELD_BASE(12812910x0090, 0x10, 71),
 PIN_FIELD_BASE(13013010x0090, 0x10, 61),
 PIN_FIELD_BASE(13113110x0090, 0x10, 91),
 PIN_FIELD_BASE(13213210x0090, 0x10, 111),
 PIN_FIELD_BASE(13313310x0090, 0x10, 101),
 PIN_FIELD_BASE(13413510x0090, 0x10, 01),
 PIN_FIELD_BASE(13613610x0090, 0x10, 51),
 PIN_FIELD_BASE(13713710x0090, 0x10, 21),
 PIN_FIELD_BASE(13813810x0090, 0x10, 41),
 PIN_FIELD_BASE(13913910x0090, 0x10, 31),
 PIN_FIELD_BASE(16716870x0040, 0x10, 11),
 PIN_FIELD_BASE(16916970x0040, 0x10, 41),
 PIN_FIELD_BASE(17017070x0040, 0x10, 61),
 PIN_FIELD_BASE(17117170x0040, 0x10, 81),
 PIN_FIELD_BASE(17217270x0040, 0x10, 31),
 PIN_FIELD_BASE(17317370x0040, 0x10, 71),
 PIN_FIELD_BASE(17417570x0040, 0x10, 91),
 PIN_FIELD_BASE(17617670x0040, 0x10, 01),
 PIN_FIELD_BASE(17717770x0040, 0x10, 51),
 PIN_FIELD_BASE(17817870x0040, 0x10, 111),
};

static const struct mtk_pin_reg_calc mt6779_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6779_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6779_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6779_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6779_pin_do_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6779_pin_smt_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6779_pin_ies_range),
 [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt6779_pin_pu_range),
 [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt6779_pin_pd_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6779_pin_drv_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6779_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6779_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6779_pin_r1_range),
};

static const char * const mt6779_pinctrl_register_base_names[] = {
 "gpio""iocfg_rm""iocfg_br""iocfg_lm""iocfg_lb",
 "iocfg_rt""iocfg_lt""iocfg_tl",
};

static const struct mtk_eint_hw mt6779_eint_hw = {
 .port_mask = 7,
 .ports     = 6,
 .ap_num    = 195,
 .db_cnt    = 13,
 .db_time   = debounce_time_mt2701,
};

static const struct mtk_pin_soc mt6779_data = {
 .reg_cal = mt6779_reg_cals,
 .pins = mtk_pins_mt6779,
 .npins = ARRAY_SIZE(mtk_pins_mt6779),
 .ngrps = ARRAY_SIZE(mtk_pins_mt6779),
 .eint_hw = &mt6779_eint_hw,
 .gpio_m = 0,
 .ies_present = true,
 .base_names = mt6779_pinctrl_register_base_names,
 .nbase_names = ARRAY_SIZE(mt6779_pinctrl_register_base_names),
 .bias_set_combo = mtk_pinconf_bias_set_combo,
 .bias_get_combo = mtk_pinconf_bias_get_combo,
 .drive_set = mtk_pinconf_drive_set_raw,
 .drive_get = mtk_pinconf_drive_get_raw,
 .adv_pull_get = mtk_pinconf_adv_pull_get,
 .adv_pull_set = mtk_pinconf_adv_pull_set,
};

static const struct of_device_id mt6779_pinctrl_of_match[] = {
 { .compatible = "mediatek,mt6779-pinctrl", .data = &mt6779_data },
 { }
};
MODULE_DEVICE_TABLE(of, mt6779_pinctrl_of_match);

static struct platform_driver mt6779_pinctrl_driver = {
 .driver = {
  .name = "mt6779-pinctrl",
  .of_match_table = mt6779_pinctrl_of_match,
 },
 .probe = mtk_paris_pinctrl_probe,
};

static int __init mt6779_pinctrl_init(void)
{
 return platform_driver_register(&mt6779_pinctrl_driver);
}
arch_initcall(mt6779_pinctrl_init);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("MediaTek MT6779 Pinctrl Driver");

Messung V0.5 in Prozent
C=97 H=100 G=98

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