Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194793/?format=api
{ "id": 2194793, "url": "http://patchwork.ozlabs.org/api/patches/2194793/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260209-mtk-pinctl-mt8189-v1-3-a7a3069eda6c@baylibre.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260209-mtk-pinctl-mt8189-v1-3-a7a3069eda6c@baylibre.com>", "list_archive_url": null, "date": "2026-02-09T23:34:19", "name": "[3/3] pinctrl: mediatek: add support for mt8189", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "21c77d4c1071d9b3952edcf3db40f8668d6259a2", "submitter": { "id": 87228, "url": "http://patchwork.ozlabs.org/api/people/87228/?format=api", "name": "David Lechner", "email": "dlechner@baylibre.com" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260209-mtk-pinctl-mt8189-v1-3-a7a3069eda6c@baylibre.com/mbox/", "series": [ { "id": 491580, "url": "http://patchwork.ozlabs.org/api/series/491580/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=491580", "date": "2026-02-09T23:34:16", "name": "pinctrl: mediatek: support for mt8189", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491580/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2194793/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2194793/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=baylibre-com.20230601.gappssmtp.com\n header.i=@baylibre-com.20230601.gappssmtp.com header.a=rsa-sha256\n header.s=20230601 header.b=XIfXMI9k;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=none (p=none dis=none) header.from=baylibre.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=baylibre-com.20230601.gappssmtp.com\n header.i=@baylibre-com.20230601.gappssmtp.com header.b=\"XIfXMI9k\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=none (p=none dis=none) header.from=baylibre.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=dlechner@baylibre.com" ], "Received": [ "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f91WP19WSz1xwG\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 10:44:33 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 48BF083CEA;\n\tTue, 10 Feb 2026 00:43:56 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 5CEB98366F; Tue, 10 Feb 2026 00:35:18 +0100 (CET)", "from mail-oi1-x234.google.com (mail-oi1-x234.google.com\n [IPv6:2607:f8b0:4864:20::234])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 6AC8A805D7\n for <u-boot@lists.denx.de>; Tue, 10 Feb 2026 00:35:14 +0100 (CET)", "by mail-oi1-x234.google.com with SMTP id\n 5614622812f47-45ca17ef16eso1231203b6e.0\n for <u-boot@lists.denx.de>; Mon, 09 Feb 2026 15:35:14 -0800 (PST)", "from [127.0.1.1] ([2600:8803:e7e4:500:cee0:eb0c:b683:ad1d])\n by smtp.gmail.com with ESMTPSA id\n 5614622812f47-4631407de2dsm5304309b6e.16.2026.02.09.15.35.10\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 09 Feb 2026 15:35:12 -0800 (PST)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,\n UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1770680113;\n x=1771284913;\n darn=lists.denx.de;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n :reply-to; bh=6F91Sidtl15/2NCJkhLP0SiQjpqF1SMD/1w6kfPwM1A=;\n b=XIfXMI9kUw/u/h31+R6OLDNpWqW7MLBmxeq5Eccinvp/Y4C5d1h8+713sTW9TF7A9I\n JVfGuBZHWA2JlAyQXatnt7L14t0/GO1g0YL9mAsQW79boCMTb1isTluSTIUKf7Rv74HC\n 5vYt7o0qc2cbONLWRHSk1Y0kfDhD5FxK9rpgYzlfir3cnBAikxsx1q5rW2ujKAeur0E+\n L3/xynsVguJkQCjUTYmLbCxVWld9nqDzscFCGbNS7XOkcKm+RrpABj3bYv8u2pkaEwTK\n VbVyuMqgqhIcej/UlqkX9/Od7hHaQojPq5tWzRoBFym2954KYdlI5YttP6egrOBmpxiN\n SVKg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770680113; x=1771284913;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=6F91Sidtl15/2NCJkhLP0SiQjpqF1SMD/1w6kfPwM1A=;\n b=fI9VbObz2jILMEjQAQDUxsLiWi1ACyRplXNNhGsjaWpQF/I/kKQuXHpi1gC9EVFhC1\n YB9tyo6j0oJZfER24lEMVZ5zjVleRA/oYvsIC06y9kkMeHZJDOGLnpfJy3aspkqn/eko\n +cCLHaybkuUugJM66PSjpGfqDPmSuZVTU5npGPUB+oT2t52TSTvWQZOoGxh0eXYyCkvf\n ofe1XIWLA0dDc0tj3hxc3Qte2I1t3tBVEhTu8zISVEyEas0o3hK4tUdJaXkIZWfgKJ2F\n P9yVuX44pBCtE/XAOGyuuiyXejPJxTx1pRGOVoiCUtv+l4XsyL9cxwer90OJIDDHLx+D\n feRA==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCXFwcn6i2k3Q5bNsORxm1s46F2eNvpqFFfv2OpIL8VFZMIDpTjyjOIc28NI1VFnLcp2uvzMmSU=@lists.denx.de", "X-Gm-Message-State": "AOJu0YzGJ0/wwYgJJKLZUE212+DIJdlVJ5PKstxgw/m0PekhkKchn9UL\n kYuGWU2Sgk4sc+nO5WrnioyN8ys70eTbDpwADd/TUB5r8xPYc8HI+v9V3GFiahqq6UI=", "X-Gm-Gg": "AZuq6aI1PgE/XeqlBGnzXbHeooUm7Qv6ICLlWh+69wuoC2ND4YIzz1l0ZQEbGzbNNrK\n QyRlBLy0/icqdhMRmKjD47DJ5lhlItBoAQSEx9wLmLgClxGTxk2/MtP9cvFpQkyMK34GY0O37lk\n GgM/JY5i/M7JDzT/LHEL0bNgy4ojiUbUjE/n/qHzRFy/Ic8D9uspwPKod6jlZ35mUzlhOtLzb6v\n Q0k+BKjNTItHzY6K2ZVf3/ax8EfHXAzAazTKP+1rxmM3C182jSrpllp7SA4tmvqffpTgiUgwOUj\n YEtJhZLScTo4Kq6DSUYdEh1wBjoAq3NUU6OYvBHehAAzoSiCpqfe4s3b4Az0u6XxS9S6LKqX7mA\n 4D2wxXqpMISN45LGINLWxvBPShtQcJa/cY1AcAME74jrjbRWDU9XY3jL/Ip5Xzuaw1XQarWocV5\n AUjVVE26rR25hG40yEwD2nbh9By7k=", "X-Received": "by 2002:a05:6808:470b:b0:45c:8045:89a6 with SMTP id\n 5614622812f47-462fcbb2b76mr6203064b6e.59.1770680112884;\n Mon, 09 Feb 2026 15:35:12 -0800 (PST)", "From": "David Lechner <dlechner@baylibre.com>", "Date": "Mon, 09 Feb 2026 17:34:19 -0600", "Subject": "[PATCH 3/3] pinctrl: mediatek: add support for mt8189", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260209-mtk-pinctl-mt8189-v1-3-a7a3069eda6c@baylibre.com>", "References": "<20260209-mtk-pinctl-mt8189-v1-0-a7a3069eda6c@baylibre.com>", "In-Reply-To": "<20260209-mtk-pinctl-mt8189-v1-0-a7a3069eda6c@baylibre.com>", "To": "Ryder Lee <ryder.lee@mediatek.com>, Weijie Gao <weijie.gao@mediatek.com>,\n Chunfeng Yun <chunfeng.yun@mediatek.com>,\n Igor Belwon <igor.belwon@mentallysanemainliners.org>,\n GSS_MTK_Uboot_upstream <GSS_MTK_Uboot_upstream@mediatek.com>,\n Tom Rini <trini@konsulko.com>", "Cc": "Julien Stephan <jstephan@baylibre.com>, u-boot@lists.denx.de,\n Bo-Chen Chen <rex-bc.chen@mediatek.com>,\n David Lechner <dlechner@baylibre.com>", "X-Mailer": "b4 0.14.3", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=63854;\n i=dlechner@baylibre.com; h=from:subject:message-id;\n bh=7su+LWA7F6G55Wa36JzeDxRxYvUayhSv7wpO0teLiAQ=;\n b=owEBhAF7/pANAwAKAcLMIAH/AY/AAcsmYgBpim8iHMvlXQXHP1jnPguNVE+8EPO9PuIgW9Rjb\n offv9gDRk+JAUoEAAEKADQWIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaYpvIhYcZGxlY2huZXJA\n YmF5bGlicmUuY29tAAoJEMLMIAH/AY/AHKQH/jrACyxuZfEVV43LtMxZxp8UdgnTTAQVHfQXmr9\n 37cd7iqbFFE3xqVlJkzZCuxCm1S0tsI8qcoxBxppnfPVtyAyTiD7Fne9ky8/kGB2ro1ODTvbo8M\n mWyVikW+NpTSqyFz9O7hFREb/n7F+CaQF1onK26Pa45ZSXAd/q38ItPtZKeGsLu83le4VUCO1Md\n M9DJw1yF5fnoEqlwQtyC++YEMG8Z+5ErYcq655F5pPsraY+05dUXnq5+Td2H3VkCk08P45HPVL0\n 3y+50EXVJDQ2fRQdY/lSXcPMEyc6TTBzzOoJ0RoqafHzqFV63/M7btHqlzOpnK1DiMksHRLdDpl\n BylU=", "X-Developer-Key": "i=dlechner@baylibre.com; a=openpgp;\n fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03", "X-Mailman-Approved-At": "Tue, 10 Feb 2026 00:43:55 +0100", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "From: Bo-Chen Chen <rex-bc.chen@mediatek.com>\n\nAdd pinctrl support for mt8189.\n\nSigned-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>\nCo-developed-by: David Lechner <dlechner@baylibre.com>\nSigned-off-by: David Lechner <dlechner@baylibre.com>\n---\n drivers/pinctrl/mediatek/Kconfig | 4 +\n drivers/pinctrl/mediatek/Makefile | 1 +\n drivers/pinctrl/mediatek/pinctrl-mt8189.c | 1276 +++++++++++++++++++++++++++++\n 3 files changed, 1281 insertions(+)", "diff": "diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig\nindex 8a588d17c4b..ca6980c7a77 100644\n--- a/drivers/pinctrl/mediatek/Kconfig\n+++ b/drivers/pinctrl/mediatek/Kconfig\n@@ -38,6 +38,10 @@ config PINCTRL_MT8188\n \tbool \"MT8188 SoC pinctrl driver\"\n \tselect PINCTRL_MTK\n \n+config PINCTRL_MT8189\n+\tbool \"MT8189 SoC pinctrl driver\"\n+\tselect PINCTRL_MTK\n+\n config PINCTRL_MT8365\n \tbool \"MT8365 SoC pinctrl driver\"\n \tselect PINCTRL_MTK\ndiff --git a/drivers/pinctrl/mediatek/Makefile b/drivers/pinctrl/mediatek/Makefile\nindex b9116c073ea..c61e13dfeb8 100644\n--- a/drivers/pinctrl/mediatek/Makefile\n+++ b/drivers/pinctrl/mediatek/Makefile\n@@ -11,6 +11,7 @@ obj-$(CONFIG_PINCTRL_MT7986) += pinctrl-mt7986.o\n obj-$(CONFIG_PINCTRL_MT7987) += pinctrl-mt7987.o\n obj-$(CONFIG_PINCTRL_MT7988) += pinctrl-mt7988.o\n obj-$(CONFIG_PINCTRL_MT8188) += pinctrl-mt8188.o\n+obj-$(CONFIG_PINCTRL_MT8189) += pinctrl-mt8189.o\n obj-$(CONFIG_PINCTRL_MT8365) += pinctrl-mt8365.o\n obj-$(CONFIG_PINCTRL_MT8512) += pinctrl-mt8512.o\n obj-$(CONFIG_PINCTRL_MT8516) += pinctrl-mt8516.o\ndiff --git a/drivers/pinctrl/mediatek/pinctrl-mt8189.c b/drivers/pinctrl/mediatek/pinctrl-mt8189.c\nnew file mode 100644\nindex 00000000000..b798f3c019b\n--- /dev/null\n+++ b/drivers/pinctrl/mediatek/pinctrl-mt8189.c\n@@ -0,0 +1,1276 @@\n+// SPDX-License-Identifier: GPL-2.0-only\n+/*\n+ * Copyright (C) 2026 MediaTek Inc.\n+ * Author: Bo-Chen Chen <rex-bc.chen@mediatek.com>\n+ */\n+#include <dm.h>\n+#include \"pinctrl-mtk-common.h\"\n+\n+enum {\n+\tIO_BASE,\n+\tIO_BASE_LM,\n+\tIO_BASE_RB0,\n+\tIO_BASE_RB1,\n+\tIO_BASE_BM0,\n+\tIO_BASE_BM1,\n+\tIO_BASE_BM2,\n+\tIO_BASE_LT0,\n+\tIO_BASE_LT1,\n+\tIO_BASE_RT,\n+\tIO_BASE_EINT0,\n+\tIO_BASE_EINT1,\n+\tIO_BASE_EINT2,\n+\tIO_BASE_EINT3,\n+\tIO_BASE_EINT4,\n+};\n+\n+#define PIN_FIELD_IOCFG0(s_pin, e_pin, s_addr, x_addrs, s_bit, x_bits) \\\n+\tPIN_FIELD_BASE_CALC(s_pin, e_pin, IO_BASE, s_addr, x_addrs, s_bit, \\\n+\t\t\t x_bits, 32, 0)\n+\n+#define PIN_FIELD_BASE(pin, i_base, s_addr, s_bit, x_bits) \\\n+\tPIN_FIELD_BASE_CALC(pin, pin, i_base, s_addr, 0x10, s_bit, x_bits, \\\n+\t\t\t 32, 0)\n+\n+static const struct mtk_pin_field_calc mt8189_pin_mode_range[] = {\n+\tPIN_FIELD_IOCFG0(0, 182, 0x0300, 0x10, 0, 4),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_dir_range[] = {\n+\tPIN_FIELD_IOCFG0(0, 182, 0x0000, 0x10, 0, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_di_range[] = {\n+\tPIN_FIELD_IOCFG0(0, 182, 0x0200, 0x10, 0, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_do_range[] = {\n+\tPIN_FIELD_IOCFG0(0, 182, 0x0100, 0x10, 0, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_smt_range[] = {\n+\tPIN_FIELD_BASE(0, IO_BASE_RB0, 0x00e0, 5, 1),\n+\tPIN_FIELD_BASE(1, IO_BASE_RB1, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(2, IO_BASE_RB1, 0x00c0, 4, 1),\n+\tPIN_FIELD_BASE(3, IO_BASE_RB1, 0x00c0, 5, 1),\n+\tPIN_FIELD_BASE(4, IO_BASE_RB1, 0x00c0, 6, 1),\n+\tPIN_FIELD_BASE(5, IO_BASE_RB1, 0x00c0, 7, 1),\n+\tPIN_FIELD_BASE(6, IO_BASE_RB0, 0x00e0, 6, 1),\n+\tPIN_FIELD_BASE(7, IO_BASE_RB0, 0x00e0, 7, 1),\n+\tPIN_FIELD_BASE(8, IO_BASE_RB0, 0x00e0, 8, 1),\n+\tPIN_FIELD_BASE(9, IO_BASE_RB0, 0x00e0, 9, 1),\n+\tPIN_FIELD_BASE(10, IO_BASE_RB0, 0x00e0, 10, 1),\n+\tPIN_FIELD_BASE(11, IO_BASE_RB0, 0x00e0, 11, 1),\n+\tPIN_FIELD_BASE(12, IO_BASE_BM1, 0x00e0, 5, 1),\n+\tPIN_FIELD_BASE(13, IO_BASE_BM1, 0x00e0, 6, 1),\n+\tPIN_FIELD_BASE(14, IO_BASE_BM2, 0x00f0, 0, 1),\n+\tPIN_FIELD_BASE(15, IO_BASE_BM2, 0x00f0, 1, 1),\n+\tPIN_FIELD_BASE(16, IO_BASE_BM1, 0x00e0, 7, 1),\n+\tPIN_FIELD_BASE(17, IO_BASE_BM1, 0x00e0, 8, 1),\n+\tPIN_FIELD_BASE(18, IO_BASE_RB0, 0x00e0, 0, 1),\n+\tPIN_FIELD_BASE(19, IO_BASE_RB0, 0x00e0, 2, 1),\n+\tPIN_FIELD_BASE(20, IO_BASE_RB0, 0x00e0, 1, 1),\n+\tPIN_FIELD_BASE(21, IO_BASE_RB0, 0x00e0, 3, 1),\n+\tPIN_FIELD_BASE(22, IO_BASE_RT, 0x00f0, 0, 1),\n+\tPIN_FIELD_BASE(23, IO_BASE_RT, 0x00f0, 1, 1),\n+\tPIN_FIELD_BASE(24, IO_BASE_RT, 0x00f0, 2, 1),\n+\tPIN_FIELD_BASE(25, IO_BASE_LM, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(26, IO_BASE_LM, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(27, IO_BASE_BM1, 0x00e0, 1, 1),\n+\tPIN_FIELD_BASE(28, IO_BASE_BM1, 0x00e0, 2, 1),\n+\tPIN_FIELD_BASE(29, IO_BASE_LM, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(30, IO_BASE_BM1, 0x00e0, 0, 1),\n+\tPIN_FIELD_BASE(31, IO_BASE_BM2, 0x00f0, 19, 1),\n+\tPIN_FIELD_BASE(32, IO_BASE_BM0, 0x00c0, 30, 1),\n+\tPIN_FIELD_BASE(33, IO_BASE_BM2, 0x00f0, 21, 1),\n+\tPIN_FIELD_BASE(34, IO_BASE_BM2, 0x00f0, 20, 1),\n+\tPIN_FIELD_BASE(35, IO_BASE_BM2, 0x00f0, 23, 1),\n+\tPIN_FIELD_BASE(36, IO_BASE_BM2, 0x00f0, 22, 1),\n+\tPIN_FIELD_BASE(37, IO_BASE_BM2, 0x00f0, 25, 1),\n+\tPIN_FIELD_BASE(38, IO_BASE_BM2, 0x00f0, 24, 1),\n+\tPIN_FIELD_BASE(39, IO_BASE_BM2, 0x00f0, 5, 1),\n+\tPIN_FIELD_BASE(40, IO_BASE_BM2, 0x00f0, 2, 1),\n+\tPIN_FIELD_BASE(41, IO_BASE_BM2, 0x00f0, 3, 1),\n+\tPIN_FIELD_BASE(42, IO_BASE_BM2, 0x00f0, 4, 1),\n+\tPIN_FIELD_BASE(43, IO_BASE_BM2, 0x00f0, 6, 1),\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x00e0, 20, 1),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x00e0, 21, 1),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x00e0, 22, 1),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x00e0, 23, 1),\n+\tPIN_FIELD_BASE(48, IO_BASE_LM, 0x00c0, 5, 1),\n+\tPIN_FIELD_BASE(49, IO_BASE_LM, 0x00c0, 4, 1),\n+\tPIN_FIELD_BASE(50, IO_BASE_LM, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(51, IO_BASE_RB1, 0x00c0, 8, 1),\n+\tPIN_FIELD_BASE(52, IO_BASE_RB1, 0x00c0, 10, 1),\n+\tPIN_FIELD_BASE(53, IO_BASE_RB1, 0x00c0, 9, 1),\n+\tPIN_FIELD_BASE(54, IO_BASE_RB1, 0x00c0, 11, 1),\n+\tPIN_FIELD_BASE(55, IO_BASE_LM, 0x00c0, 6, 1),\n+\tPIN_FIELD_BASE(56, IO_BASE_LM, 0x00c0, 7, 1),\n+\tPIN_FIELD_BASE(57, IO_BASE_BM1, 0x00e0, 13, 1),\n+\tPIN_FIELD_BASE(58, IO_BASE_BM1, 0x00e0, 17, 1),\n+\tPIN_FIELD_BASE(59, IO_BASE_BM1, 0x00e0, 14, 1),\n+\tPIN_FIELD_BASE(60, IO_BASE_BM1, 0x00e0, 18, 1),\n+\tPIN_FIELD_BASE(61, IO_BASE_BM1, 0x00e0, 15, 1),\n+\tPIN_FIELD_BASE(62, IO_BASE_BM1, 0x00e0, 19, 1),\n+\tPIN_FIELD_BASE(63, IO_BASE_BM1, 0x00e0, 16, 1),\n+\tPIN_FIELD_BASE(64, IO_BASE_BM1, 0x00e0, 20, 1),\n+\tPIN_FIELD_BASE(65, IO_BASE_RT, 0x00f0, 10, 1),\n+\tPIN_FIELD_BASE(66, IO_BASE_RT, 0x00f0, 12, 1),\n+\tPIN_FIELD_BASE(67, IO_BASE_RT, 0x00f0, 11, 1),\n+\tPIN_FIELD_BASE(68, IO_BASE_RT, 0x00f0, 13, 1),\n+\tPIN_FIELD_BASE(69, IO_BASE_BM1, 0x00e0, 22, 1),\n+\tPIN_FIELD_BASE(70, IO_BASE_BM1, 0x00e0, 21, 1),\n+\tPIN_FIELD_BASE(71, IO_BASE_BM1, 0x00e0, 24, 1),\n+\tPIN_FIELD_BASE(72, IO_BASE_BM1, 0x00e0, 23, 1),\n+\tPIN_FIELD_BASE(73, IO_BASE_BM1, 0x00e0, 26, 1),\n+\tPIN_FIELD_BASE(74, IO_BASE_BM1, 0x00e0, 25, 1),\n+\tPIN_FIELD_BASE(75, IO_BASE_BM2, 0x00f0, 13, 1),\n+\tPIN_FIELD_BASE(76, IO_BASE_BM1, 0x00e0, 27, 1),\n+\tPIN_FIELD_BASE(77, IO_BASE_RB1, 0x00c0, 13, 1),\n+\tPIN_FIELD_BASE(78, IO_BASE_RB1, 0x00c0, 12, 1),\n+\tPIN_FIELD_BASE(79, IO_BASE_RB1, 0x00c0, 15, 1),\n+\tPIN_FIELD_BASE(80, IO_BASE_RB1, 0x00c0, 14, 1),\n+\tPIN_FIELD_BASE(81, IO_BASE_BM1, 0x00e0, 29, 1),\n+\tPIN_FIELD_BASE(82, IO_BASE_BM1, 0x00e0, 28, 1),\n+\tPIN_FIELD_BASE(83, IO_BASE_BM1, 0x00e0, 30, 1),\n+\tPIN_FIELD_BASE(84, IO_BASE_RB0, 0x00e0, 24, 1),\n+\tPIN_FIELD_BASE(85, IO_BASE_RB0, 0x00e0, 25, 1),\n+\tPIN_FIELD_BASE(86, IO_BASE_RB0, 0x00e0, 26, 1),\n+\tPIN_FIELD_BASE(87, IO_BASE_RB0, 0x00e0, 27, 1),\n+\tPIN_FIELD_BASE(88, IO_BASE_LT0, 0x0120, 20, 1),\n+\tPIN_FIELD_BASE(89, IO_BASE_LT0, 0x0120, 19, 1),\n+\tPIN_FIELD_BASE(90, IO_BASE_LT0, 0x0120, 22, 1),\n+\tPIN_FIELD_BASE(91, IO_BASE_LT0, 0x0120, 21, 1),\n+\tPIN_FIELD_BASE(92, IO_BASE_LT0, 0x0120, 16, 1),\n+\tPIN_FIELD_BASE(93, IO_BASE_LT0, 0x0120, 17, 1),\n+\tPIN_FIELD_BASE(94, IO_BASE_LT0, 0x0120, 23, 1),\n+\tPIN_FIELD_BASE(95, IO_BASE_LT0, 0x0120, 15, 1),\n+\tPIN_FIELD_BASE(96, IO_BASE_LT0, 0x0120, 18, 1),\n+\tPIN_FIELD_BASE(97, IO_BASE_LT0, 0x0120, 0, 1),\n+\tPIN_FIELD_BASE(98, IO_BASE_LT0, 0x0120, 5, 1),\n+\tPIN_FIELD_BASE(99, IO_BASE_LT0, 0x0120, 3, 1),\n+\tPIN_FIELD_BASE(100, IO_BASE_LT0, 0x0120, 4, 1),\n+\tPIN_FIELD_BASE(101, IO_BASE_LT0, 0x0120, 1, 1),\n+\tPIN_FIELD_BASE(102, IO_BASE_LT0, 0x0120, 2, 1),\n+\tPIN_FIELD_BASE(103, IO_BASE_RB0, 0x00e0, 15, 1),\n+\tPIN_FIELD_BASE(104, IO_BASE_RB0, 0x00e0, 12, 1),\n+\tPIN_FIELD_BASE(105, IO_BASE_RB0, 0x00e0, 14, 1),\n+\tPIN_FIELD_BASE(106, IO_BASE_RB0, 0x00e0, 13, 1),\n+\tPIN_FIELD_BASE(107, IO_BASE_RB0, 0x00e0, 19, 1),\n+\tPIN_FIELD_BASE(108, IO_BASE_RB0, 0x00e0, 16, 1),\n+\tPIN_FIELD_BASE(109, IO_BASE_RB0, 0x00e0, 18, 1),\n+\tPIN_FIELD_BASE(110, IO_BASE_RB0, 0x00e0, 17, 1),\n+\tPIN_FIELD_BASE(111, IO_BASE_RB0, 0x00e0, 4, 1),\n+\tPIN_FIELD_BASE(112, IO_BASE_RB1, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(113, IO_BASE_RB1, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(114, IO_BASE_RB1, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(115, IO_BASE_BM1, 0x00e0, 9, 1),\n+\tPIN_FIELD_BASE(116, IO_BASE_BM1, 0x00e0, 12, 1),\n+\tPIN_FIELD_BASE(117, IO_BASE_BM1, 0x00e0, 10, 1),\n+\tPIN_FIELD_BASE(118, IO_BASE_BM1, 0x00e0, 11, 1),\n+\tPIN_FIELD_BASE(119, IO_BASE_BM0, 0x00c0, 26, 1),\n+\tPIN_FIELD_BASE(120, IO_BASE_BM0, 0x00c0, 25, 1),\n+\tPIN_FIELD_BASE(121, IO_BASE_BM0, 0x00c0, 24, 1),\n+\tPIN_FIELD_BASE(122, IO_BASE_BM0, 0x00c0, 23, 1),\n+\tPIN_FIELD_BASE(123, IO_BASE_BM0, 0x00c0, 19, 1),\n+\tPIN_FIELD_BASE(124, IO_BASE_BM0, 0x00c0, 18, 1),\n+\tPIN_FIELD_BASE(125, IO_BASE_BM0, 0x00c0, 17, 1),\n+\tPIN_FIELD_BASE(126, IO_BASE_BM0, 0x00c0, 16, 1),\n+\tPIN_FIELD_BASE(127, IO_BASE_BM0, 0x00c0, 22, 1),\n+\tPIN_FIELD_BASE(128, IO_BASE_BM0, 0x00c0, 15, 1),\n+\tPIN_FIELD_BASE(129, IO_BASE_BM0, 0x00c0, 20, 1),\n+\tPIN_FIELD_BASE(130, IO_BASE_BM0, 0x00c0, 27, 1),\n+\tPIN_FIELD_BASE(131, IO_BASE_BM0, 0x00c0, 13, 1),\n+\tPIN_FIELD_BASE(132, IO_BASE_BM0, 0x00c0, 14, 1),\n+\tPIN_FIELD_BASE(133, IO_BASE_BM0, 0x00c0, 28, 1),\n+\tPIN_FIELD_BASE(134, IO_BASE_BM0, 0x00c0, 21, 1),\n+\tPIN_FIELD_BASE(135, IO_BASE_BM0, 0x00c0, 11, 1),\n+\tPIN_FIELD_BASE(136, IO_BASE_BM0, 0x00c0, 12, 1),\n+\tPIN_FIELD_BASE(137, IO_BASE_BM1, 0x00e0, 3, 1),\n+\tPIN_FIELD_BASE(138, IO_BASE_BM1, 0x00e0, 4, 1),\n+\tPIN_FIELD_BASE(139, IO_BASE_BM0, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(140, IO_BASE_BM0, 0x00c0, 4, 1),\n+\tPIN_FIELD_BASE(141, IO_BASE_BM0, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(142, IO_BASE_BM0, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(143, IO_BASE_BM0, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(144, IO_BASE_BM0, 0x00c0, 5, 1),\n+\tPIN_FIELD_BASE(145, IO_BASE_BM0, 0x00c0, 6, 1),\n+\tPIN_FIELD_BASE(146, IO_BASE_BM0, 0x00c0, 7, 1),\n+\tPIN_FIELD_BASE(147, IO_BASE_BM0, 0x00c0, 8, 1),\n+\tPIN_FIELD_BASE(148, IO_BASE_BM0, 0x00c0, 9, 1),\n+\tPIN_FIELD_BASE(149, IO_BASE_BM0, 0x00c0, 10, 1),\n+\tPIN_FIELD_BASE(150, IO_BASE_BM2, 0x00f0, 14, 1),\n+\tPIN_FIELD_BASE(151, IO_BASE_BM0, 0x00c0, 29, 1),\n+\tPIN_FIELD_BASE(152, IO_BASE_BM2, 0x00f0, 15, 1),\n+\tPIN_FIELD_BASE(153, IO_BASE_BM2, 0x00f0, 16, 1),\n+\tPIN_FIELD_BASE(154, IO_BASE_BM2, 0x00f0, 17, 1),\n+\tPIN_FIELD_BASE(155, IO_BASE_BM2, 0x00f0, 18, 1),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x0120, 12, 1),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x0120, 11, 1),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x0120, 10, 1),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x0120, 14, 1),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x0120, 7, 1),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x0120, 6, 1),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x0120, 9, 1),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x0120, 8, 1),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x0120, 13, 1),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x00f0, 8, 1),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x00f0, 7, 1),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x00f0, 9, 1),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x00f0, 10, 1),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x00f0, 11, 1),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x00f0, 12, 1),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x00f0, 5, 1),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x00f0, 4, 1),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x00f0, 6, 1),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x00f0, 7, 1),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x00f0, 8, 1),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x00f0, 9, 1),\n+\tPIN_FIELD_BASE(180, IO_BASE_LT0, 0x0120, 24, 1),\n+\tPIN_FIELD_BASE(181, IO_BASE_LT0, 0x0120, 25, 1),\n+\tPIN_FIELD_BASE(182, IO_BASE_RT, 0x00f0, 3, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_ies_range[] = {\n+\tPIN_FIELD_BASE(0, IO_BASE_RB0, 0x0050, 5, 1),\n+\tPIN_FIELD_BASE(1, IO_BASE_RB1, 0x0050, 3, 1),\n+\tPIN_FIELD_BASE(2, IO_BASE_RB1, 0x0050, 4, 1),\n+\tPIN_FIELD_BASE(3, IO_BASE_RB1, 0x0050, 5, 1),\n+\tPIN_FIELD_BASE(4, IO_BASE_RB1, 0x0050, 6, 1),\n+\tPIN_FIELD_BASE(5, IO_BASE_RB1, 0x0050, 7, 1),\n+\tPIN_FIELD_BASE(6, IO_BASE_RB0, 0x0050, 6, 1),\n+\tPIN_FIELD_BASE(7, IO_BASE_RB0, 0x0050, 7, 1),\n+\tPIN_FIELD_BASE(8, IO_BASE_RB0, 0x0050, 8, 1),\n+\tPIN_FIELD_BASE(9, IO_BASE_RB0, 0x0050, 9, 1),\n+\tPIN_FIELD_BASE(10, IO_BASE_RB0, 0x0050, 10, 1),\n+\tPIN_FIELD_BASE(11, IO_BASE_RB0, 0x0050, 11, 1),\n+\tPIN_FIELD_BASE(12, IO_BASE_BM1, 0x0070, 5, 1),\n+\tPIN_FIELD_BASE(13, IO_BASE_BM1, 0x0070, 6, 1),\n+\tPIN_FIELD_BASE(14, IO_BASE_BM2, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(15, IO_BASE_BM2, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(16, IO_BASE_BM1, 0x0070, 7, 1),\n+\tPIN_FIELD_BASE(17, IO_BASE_BM1, 0x0070, 8, 1),\n+\tPIN_FIELD_BASE(18, IO_BASE_RB0, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(19, IO_BASE_RB0, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(20, IO_BASE_RB0, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(21, IO_BASE_RB0, 0x0050, 3, 1),\n+\tPIN_FIELD_BASE(22, IO_BASE_RT, 0x0040, 0, 1),\n+\tPIN_FIELD_BASE(23, IO_BASE_RT, 0x0040, 1, 1),\n+\tPIN_FIELD_BASE(24, IO_BASE_RT, 0x0040, 2, 1),\n+\tPIN_FIELD_BASE(25, IO_BASE_LM, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(26, IO_BASE_LM, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(27, IO_BASE_BM1, 0x0070, 1, 1),\n+\tPIN_FIELD_BASE(28, IO_BASE_BM1, 0x0070, 2, 1),\n+\tPIN_FIELD_BASE(29, IO_BASE_LM, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(30, IO_BASE_BM1, 0x0070, 0, 1),\n+\tPIN_FIELD_BASE(31, IO_BASE_BM2, 0x0050, 19, 1),\n+\tPIN_FIELD_BASE(32, IO_BASE_BM0, 0x0050, 30, 1),\n+\tPIN_FIELD_BASE(33, IO_BASE_BM2, 0x0050, 21, 1),\n+\tPIN_FIELD_BASE(34, IO_BASE_BM2, 0x0050, 20, 1),\n+\tPIN_FIELD_BASE(35, IO_BASE_BM2, 0x0050, 23, 1),\n+\tPIN_FIELD_BASE(36, IO_BASE_BM2, 0x0050, 22, 1),\n+\tPIN_FIELD_BASE(37, IO_BASE_BM2, 0x0050, 25, 1),\n+\tPIN_FIELD_BASE(38, IO_BASE_BM2, 0x0050, 24, 1),\n+\tPIN_FIELD_BASE(39, IO_BASE_BM2, 0x0050, 5, 1),\n+\tPIN_FIELD_BASE(40, IO_BASE_BM2, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(41, IO_BASE_BM2, 0x0050, 3, 1),\n+\tPIN_FIELD_BASE(42, IO_BASE_BM2, 0x0050, 4, 1),\n+\tPIN_FIELD_BASE(43, IO_BASE_BM2, 0x0050, 6, 1),\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x0050, 20, 1),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x0050, 21, 1),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x0050, 22, 1),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x0050, 23, 1),\n+\tPIN_FIELD_BASE(48, IO_BASE_LM, 0x0050, 5, 1),\n+\tPIN_FIELD_BASE(49, IO_BASE_LM, 0x0050, 4, 1),\n+\tPIN_FIELD_BASE(50, IO_BASE_LM, 0x0050, 3, 1),\n+\tPIN_FIELD_BASE(51, IO_BASE_RB1, 0x0050, 8, 1),\n+\tPIN_FIELD_BASE(52, IO_BASE_RB1, 0x0050, 10, 1),\n+\tPIN_FIELD_BASE(53, IO_BASE_RB1, 0x0050, 9, 1),\n+\tPIN_FIELD_BASE(54, IO_BASE_RB1, 0x0050, 11, 1),\n+\tPIN_FIELD_BASE(55, IO_BASE_LM, 0x0050, 6, 1),\n+\tPIN_FIELD_BASE(56, IO_BASE_LM, 0x0050, 7, 1),\n+\tPIN_FIELD_BASE(57, IO_BASE_BM1, 0x0070, 13, 1),\n+\tPIN_FIELD_BASE(58, IO_BASE_BM1, 0x0070, 17, 1),\n+\tPIN_FIELD_BASE(59, IO_BASE_BM1, 0x0070, 14, 1),\n+\tPIN_FIELD_BASE(60, IO_BASE_BM1, 0x0070, 18, 1),\n+\tPIN_FIELD_BASE(61, IO_BASE_BM1, 0x0070, 15, 1),\n+\tPIN_FIELD_BASE(62, IO_BASE_BM1, 0x0070, 19, 1),\n+\tPIN_FIELD_BASE(63, IO_BASE_BM1, 0x0070, 16, 1),\n+\tPIN_FIELD_BASE(64, IO_BASE_BM1, 0x0070, 20, 1),\n+\tPIN_FIELD_BASE(65, IO_BASE_RT, 0x0040, 10, 1),\n+\tPIN_FIELD_BASE(66, IO_BASE_RT, 0x0040, 12, 1),\n+\tPIN_FIELD_BASE(67, IO_BASE_RT, 0x0040, 11, 1),\n+\tPIN_FIELD_BASE(68, IO_BASE_RT, 0x0040, 13, 1),\n+\tPIN_FIELD_BASE(69, IO_BASE_BM1, 0x0070, 22, 1),\n+\tPIN_FIELD_BASE(70, IO_BASE_BM1, 0x0070, 21, 1),\n+\tPIN_FIELD_BASE(71, IO_BASE_BM1, 0x0070, 24, 1),\n+\tPIN_FIELD_BASE(72, IO_BASE_BM1, 0x0070, 23, 1),\n+\tPIN_FIELD_BASE(73, IO_BASE_BM1, 0x0070, 26, 1),\n+\tPIN_FIELD_BASE(74, IO_BASE_BM1, 0x0070, 25, 1),\n+\tPIN_FIELD_BASE(75, IO_BASE_BM2, 0x0050, 13, 1),\n+\tPIN_FIELD_BASE(76, IO_BASE_BM1, 0x0070, 27, 1),\n+\tPIN_FIELD_BASE(77, IO_BASE_RB1, 0x0050, 13, 1),\n+\tPIN_FIELD_BASE(78, IO_BASE_RB1, 0x0050, 12, 1),\n+\tPIN_FIELD_BASE(79, IO_BASE_RB1, 0x0050, 15, 1),\n+\tPIN_FIELD_BASE(80, IO_BASE_RB1, 0x0050, 14, 1),\n+\tPIN_FIELD_BASE(81, IO_BASE_BM1, 0x0070, 29, 1),\n+\tPIN_FIELD_BASE(82, IO_BASE_BM1, 0x0070, 28, 1),\n+\tPIN_FIELD_BASE(83, IO_BASE_BM1, 0x0070, 30, 1),\n+\tPIN_FIELD_BASE(84, IO_BASE_RB0, 0x0050, 24, 1),\n+\tPIN_FIELD_BASE(85, IO_BASE_RB0, 0x0050, 25, 1),\n+\tPIN_FIELD_BASE(86, IO_BASE_RB0, 0x0050, 26, 1),\n+\tPIN_FIELD_BASE(87, IO_BASE_RB0, 0x0050, 27, 1),\n+\tPIN_FIELD_BASE(88, IO_BASE_LT0, 0x0060, 20, 1),\n+\tPIN_FIELD_BASE(89, IO_BASE_LT0, 0x0060, 19, 1),\n+\tPIN_FIELD_BASE(90, IO_BASE_LT0, 0x0060, 22, 1),\n+\tPIN_FIELD_BASE(91, IO_BASE_LT0, 0x0060, 21, 1),\n+\tPIN_FIELD_BASE(92, IO_BASE_LT0, 0x0060, 16, 1),\n+\tPIN_FIELD_BASE(93, IO_BASE_LT0, 0x0060, 17, 1),\n+\tPIN_FIELD_BASE(94, IO_BASE_LT0, 0x0060, 23, 1),\n+\tPIN_FIELD_BASE(95, IO_BASE_LT0, 0x0060, 15, 1),\n+\tPIN_FIELD_BASE(96, IO_BASE_LT0, 0x0060, 18, 1),\n+\tPIN_FIELD_BASE(97, IO_BASE_LT0, 0x0060, 0, 1),\n+\tPIN_FIELD_BASE(98, IO_BASE_LT0, 0x0060, 5, 1),\n+\tPIN_FIELD_BASE(99, IO_BASE_LT0, 0x0060, 3, 1),\n+\tPIN_FIELD_BASE(100, IO_BASE_LT0, 0x0060, 4, 1),\n+\tPIN_FIELD_BASE(101, IO_BASE_LT0, 0x0060, 1, 1),\n+\tPIN_FIELD_BASE(102, IO_BASE_LT0, 0x0060, 2, 1),\n+\tPIN_FIELD_BASE(103, IO_BASE_RB0, 0x0050, 15, 1),\n+\tPIN_FIELD_BASE(104, IO_BASE_RB0, 0x0050, 12, 1),\n+\tPIN_FIELD_BASE(105, IO_BASE_RB0, 0x0050, 14, 1),\n+\tPIN_FIELD_BASE(106, IO_BASE_RB0, 0x0050, 13, 1),\n+\tPIN_FIELD_BASE(107, IO_BASE_RB0, 0x0050, 19, 1),\n+\tPIN_FIELD_BASE(108, IO_BASE_RB0, 0x0050, 16, 1),\n+\tPIN_FIELD_BASE(109, IO_BASE_RB0, 0x0050, 18, 1),\n+\tPIN_FIELD_BASE(110, IO_BASE_RB0, 0x0050, 17, 1),\n+\tPIN_FIELD_BASE(111, IO_BASE_RB0, 0x0050, 4, 1),\n+\tPIN_FIELD_BASE(112, IO_BASE_RB1, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(113, IO_BASE_RB1, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(114, IO_BASE_RB1, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(115, IO_BASE_BM1, 0x0070, 9, 1),\n+\tPIN_FIELD_BASE(116, IO_BASE_BM1, 0x0070, 12, 1),\n+\tPIN_FIELD_BASE(117, IO_BASE_BM1, 0x0070, 10, 1),\n+\tPIN_FIELD_BASE(118, IO_BASE_BM1, 0x0070, 11, 1),\n+\tPIN_FIELD_BASE(119, IO_BASE_BM0, 0x0050, 26, 1),\n+\tPIN_FIELD_BASE(120, IO_BASE_BM0, 0x0050, 25, 1),\n+\tPIN_FIELD_BASE(121, IO_BASE_BM0, 0x0050, 24, 1),\n+\tPIN_FIELD_BASE(122, IO_BASE_BM0, 0x0050, 23, 1),\n+\tPIN_FIELD_BASE(123, IO_BASE_BM0, 0x0050, 19, 1),\n+\tPIN_FIELD_BASE(124, IO_BASE_BM0, 0x0050, 18, 1),\n+\tPIN_FIELD_BASE(125, IO_BASE_BM0, 0x0050, 17, 1),\n+\tPIN_FIELD_BASE(126, IO_BASE_BM0, 0x0050, 16, 1),\n+\tPIN_FIELD_BASE(127, IO_BASE_BM0, 0x0050, 22, 1),\n+\tPIN_FIELD_BASE(128, IO_BASE_BM0, 0x0050, 15, 1),\n+\tPIN_FIELD_BASE(129, IO_BASE_BM0, 0x0050, 20, 1),\n+\tPIN_FIELD_BASE(130, IO_BASE_BM0, 0x0050, 27, 1),\n+\tPIN_FIELD_BASE(131, IO_BASE_BM0, 0x0050, 13, 1),\n+\tPIN_FIELD_BASE(132, IO_BASE_BM0, 0x0050, 14, 1),\n+\tPIN_FIELD_BASE(133, IO_BASE_BM0, 0x0050, 28, 1),\n+\tPIN_FIELD_BASE(134, IO_BASE_BM0, 0x0050, 21, 1),\n+\tPIN_FIELD_BASE(135, IO_BASE_BM0, 0x0050, 11, 1),\n+\tPIN_FIELD_BASE(136, IO_BASE_BM0, 0x0050, 12, 1),\n+\tPIN_FIELD_BASE(137, IO_BASE_BM1, 0x0070, 3, 1),\n+\tPIN_FIELD_BASE(138, IO_BASE_BM1, 0x0070, 4, 1),\n+\tPIN_FIELD_BASE(139, IO_BASE_BM0, 0x0050, 3, 1),\n+\tPIN_FIELD_BASE(140, IO_BASE_BM0, 0x0050, 4, 1),\n+\tPIN_FIELD_BASE(141, IO_BASE_BM0, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(142, IO_BASE_BM0, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(143, IO_BASE_BM0, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(144, IO_BASE_BM0, 0x0050, 5, 1),\n+\tPIN_FIELD_BASE(145, IO_BASE_BM0, 0x0050, 6, 1),\n+\tPIN_FIELD_BASE(146, IO_BASE_BM0, 0x0050, 7, 1),\n+\tPIN_FIELD_BASE(147, IO_BASE_BM0, 0x0050, 8, 1),\n+\tPIN_FIELD_BASE(148, IO_BASE_BM0, 0x0050, 9, 1),\n+\tPIN_FIELD_BASE(149, IO_BASE_BM0, 0x0050, 10, 1),\n+\tPIN_FIELD_BASE(150, IO_BASE_BM2, 0x0050, 14, 1),\n+\tPIN_FIELD_BASE(151, IO_BASE_BM0, 0x0050, 29, 1),\n+\tPIN_FIELD_BASE(152, IO_BASE_BM2, 0x0050, 15, 1),\n+\tPIN_FIELD_BASE(153, IO_BASE_BM2, 0x0050, 16, 1),\n+\tPIN_FIELD_BASE(154, IO_BASE_BM2, 0x0050, 17, 1),\n+\tPIN_FIELD_BASE(155, IO_BASE_BM2, 0x0050, 18, 1),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x0060, 12, 1),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x0060, 11, 1),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x0060, 10, 1),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0020, 2, 1),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x0060, 14, 1),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x0060, 7, 1),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x0060, 6, 1),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0020, 1, 1),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x0060, 9, 1),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x0060, 8, 1),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0020, 0, 1),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x0060, 13, 1),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x0050, 8, 1),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x0050, 7, 1),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x0050, 9, 1),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x0050, 10, 1),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x0050, 11, 1),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x0050, 12, 1),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x0040, 5, 1),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x0040, 4, 1),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x0040, 6, 1),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x0040, 7, 1),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x0040, 8, 1),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x0040, 9, 1),\n+\tPIN_FIELD_BASE(180, IO_BASE_LT0, 0x0060, 24, 1),\n+\tPIN_FIELD_BASE(181, IO_BASE_LT0, 0x0060, 25, 1),\n+\tPIN_FIELD_BASE(182, IO_BASE_RT, 0x0040, 3, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_pupd_range[] = {\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x00a0, 6, 1),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x00a0, 5, 1),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x00a0, 4, 1),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0050, 2, 1),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x00a0, 8, 1),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x00a0, 1, 1),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x00a0, 0, 1),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0050, 1, 1),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x00a0, 3, 1),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x00a0, 2, 1),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0050, 0, 1),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x00a0, 7, 1),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x0080, 5, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_r0_range[] = {\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x00b0, 0, 1),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x00b0, 1, 1),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x00b0, 2, 1),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x00b0, 3, 1),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x00c0, 6, 1),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x00c0, 5, 1),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x00c0, 4, 1),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0060, 2, 1),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x00c0, 8, 1),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0060, 1, 1),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0060, 0, 1),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x00c0, 7, 1),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x00b0, 1, 1),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x00b0, 0, 1),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x00b0, 2, 1),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x00b0, 3, 1),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x00b0, 4, 1),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x00b0, 5, 1),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x00a0, 1, 1),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x00a0, 0, 1),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x00a0, 2, 1),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x00a0, 3, 1),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x00a0, 4, 1),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x00a0, 5, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_r1_range[] = {\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x00d0, 6, 1),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x00d0, 5, 1),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x00d0, 4, 1),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0070, 2, 1),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x00d0, 8, 1),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x00d0, 1, 1),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x00d0, 0, 1),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0070, 1, 1),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x00d0, 3, 1),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x00d0, 2, 1),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0070, 0, 1),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x00d0, 7, 1),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x00c0, 1, 1),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x00c0, 0, 1),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x00c0, 2, 1),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x00c0, 3, 1),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x00c0, 4, 1),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x00c0, 5, 1),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x00b0, 1, 1),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x00b0, 0, 1),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x00b0, 2, 1),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x00b0, 3, 1),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x00b0, 4, 1),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x00b0, 5, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_pu_range[] = {\n+\tPIN_FIELD_BASE(0, IO_BASE_RB0, 0x00a0, 5, 1),\n+\tPIN_FIELD_BASE(1, IO_BASE_RB1, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(2, IO_BASE_RB1, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(3, IO_BASE_RB1, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(4, IO_BASE_RB1, 0x0090, 6, 1),\n+\tPIN_FIELD_BASE(5, IO_BASE_RB1, 0x0090, 7, 1),\n+\tPIN_FIELD_BASE(6, IO_BASE_RB0, 0x00a0, 6, 1),\n+\tPIN_FIELD_BASE(7, IO_BASE_RB0, 0x00a0, 7, 1),\n+\tPIN_FIELD_BASE(8, IO_BASE_RB0, 0x00a0, 8, 1),\n+\tPIN_FIELD_BASE(9, IO_BASE_RB0, 0x00a0, 9, 1),\n+\tPIN_FIELD_BASE(10, IO_BASE_RB0, 0x00a0, 10, 1),\n+\tPIN_FIELD_BASE(11, IO_BASE_RB0, 0x00a0, 11, 1),\n+\tPIN_FIELD_BASE(12, IO_BASE_BM1, 0x00b0, 5, 1),\n+\tPIN_FIELD_BASE(13, IO_BASE_BM1, 0x00b0, 6, 1),\n+\tPIN_FIELD_BASE(14, IO_BASE_BM2, 0x00a0, 0, 1),\n+\tPIN_FIELD_BASE(15, IO_BASE_BM2, 0x00a0, 1, 1),\n+\tPIN_FIELD_BASE(16, IO_BASE_BM1, 0x00b0, 7, 1),\n+\tPIN_FIELD_BASE(17, IO_BASE_BM1, 0x00b0, 8, 1),\n+\tPIN_FIELD_BASE(18, IO_BASE_RB0, 0x00a0, 0, 1),\n+\tPIN_FIELD_BASE(19, IO_BASE_RB0, 0x00a0, 2, 1),\n+\tPIN_FIELD_BASE(20, IO_BASE_RB0, 0x00a0, 1, 1),\n+\tPIN_FIELD_BASE(21, IO_BASE_RB0, 0x00a0, 3, 1),\n+\tPIN_FIELD_BASE(22, IO_BASE_RT, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(23, IO_BASE_RT, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(24, IO_BASE_RT, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(25, IO_BASE_LM, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(26, IO_BASE_LM, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(27, IO_BASE_BM1, 0x00b0, 1, 1),\n+\tPIN_FIELD_BASE(28, IO_BASE_BM1, 0x00b0, 2, 1),\n+\tPIN_FIELD_BASE(29, IO_BASE_LM, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(30, IO_BASE_BM1, 0x00b0, 0, 1),\n+\tPIN_FIELD_BASE(31, IO_BASE_BM2, 0x00a0, 13, 1),\n+\tPIN_FIELD_BASE(32, IO_BASE_BM0, 0x0090, 30, 1),\n+\tPIN_FIELD_BASE(33, IO_BASE_BM2, 0x00a0, 15, 1),\n+\tPIN_FIELD_BASE(34, IO_BASE_BM2, 0x00a0, 14, 1),\n+\tPIN_FIELD_BASE(35, IO_BASE_BM2, 0x00a0, 17, 1),\n+\tPIN_FIELD_BASE(36, IO_BASE_BM2, 0x00a0, 16, 1),\n+\tPIN_FIELD_BASE(37, IO_BASE_BM2, 0x00a0, 19, 1),\n+\tPIN_FIELD_BASE(38, IO_BASE_BM2, 0x00a0, 18, 1),\n+\tPIN_FIELD_BASE(39, IO_BASE_BM2, 0x00a0, 5, 1),\n+\tPIN_FIELD_BASE(40, IO_BASE_BM2, 0x00a0, 2, 1),\n+\tPIN_FIELD_BASE(41, IO_BASE_BM2, 0x00a0, 3, 1),\n+\tPIN_FIELD_BASE(42, IO_BASE_BM2, 0x00a0, 4, 1),\n+\tPIN_FIELD_BASE(43, IO_BASE_BM2, 0x00a0, 6, 1),\n+\tPIN_FIELD_BASE(48, IO_BASE_LM, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(49, IO_BASE_LM, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(50, IO_BASE_LM, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(51, IO_BASE_RB1, 0x0090, 8, 1),\n+\tPIN_FIELD_BASE(52, IO_BASE_RB1, 0x0090, 10, 1),\n+\tPIN_FIELD_BASE(53, IO_BASE_RB1, 0x0090, 9, 1),\n+\tPIN_FIELD_BASE(54, IO_BASE_RB1, 0x0090, 11, 1),\n+\tPIN_FIELD_BASE(55, IO_BASE_LM, 0x0090, 6, 1),\n+\tPIN_FIELD_BASE(56, IO_BASE_LM, 0x0090, 7, 1),\n+\tPIN_FIELD_BASE(57, IO_BASE_BM1, 0x00b0, 13, 1),\n+\tPIN_FIELD_BASE(58, IO_BASE_BM1, 0x00b0, 17, 1),\n+\tPIN_FIELD_BASE(59, IO_BASE_BM1, 0x00b0, 14, 1),\n+\tPIN_FIELD_BASE(60, IO_BASE_BM1, 0x00b0, 18, 1),\n+\tPIN_FIELD_BASE(61, IO_BASE_BM1, 0x00b0, 15, 1),\n+\tPIN_FIELD_BASE(62, IO_BASE_BM1, 0x00b0, 19, 1),\n+\tPIN_FIELD_BASE(63, IO_BASE_BM1, 0x00b0, 16, 1),\n+\tPIN_FIELD_BASE(64, IO_BASE_BM1, 0x00b0, 20, 1),\n+\tPIN_FIELD_BASE(65, IO_BASE_RT, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(66, IO_BASE_RT, 0x0090, 6, 1),\n+\tPIN_FIELD_BASE(67, IO_BASE_RT, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(68, IO_BASE_RT, 0x0090, 7, 1),\n+\tPIN_FIELD_BASE(69, IO_BASE_BM1, 0x00b0, 22, 1),\n+\tPIN_FIELD_BASE(70, IO_BASE_BM1, 0x00b0, 21, 1),\n+\tPIN_FIELD_BASE(71, IO_BASE_BM1, 0x00b0, 24, 1),\n+\tPIN_FIELD_BASE(72, IO_BASE_BM1, 0x00b0, 23, 1),\n+\tPIN_FIELD_BASE(73, IO_BASE_BM1, 0x00b0, 26, 1),\n+\tPIN_FIELD_BASE(74, IO_BASE_BM1, 0x00b0, 25, 1),\n+\tPIN_FIELD_BASE(75, IO_BASE_BM2, 0x00a0, 7, 1),\n+\tPIN_FIELD_BASE(76, IO_BASE_BM1, 0x00b0, 27, 1),\n+\tPIN_FIELD_BASE(77, IO_BASE_RB1, 0x0090, 13, 1),\n+\tPIN_FIELD_BASE(78, IO_BASE_RB1, 0x0090, 12, 1),\n+\tPIN_FIELD_BASE(79, IO_BASE_RB1, 0x0090, 15, 1),\n+\tPIN_FIELD_BASE(80, IO_BASE_RB1, 0x0090, 14, 1),\n+\tPIN_FIELD_BASE(81, IO_BASE_BM1, 0x00b0, 29, 1),\n+\tPIN_FIELD_BASE(82, IO_BASE_BM1, 0x00b0, 28, 1),\n+\tPIN_FIELD_BASE(83, IO_BASE_BM1, 0x00b0, 30, 1),\n+\tPIN_FIELD_BASE(84, IO_BASE_RB0, 0x00a0, 22, 1),\n+\tPIN_FIELD_BASE(85, IO_BASE_RB0, 0x00a0, 23, 1),\n+\tPIN_FIELD_BASE(86, IO_BASE_RB0, 0x00a0, 24, 1),\n+\tPIN_FIELD_BASE(87, IO_BASE_RB0, 0x00a0, 25, 1),\n+\tPIN_FIELD_BASE(88, IO_BASE_LT0, 0x00b0, 11, 1),\n+\tPIN_FIELD_BASE(89, IO_BASE_LT0, 0x00b0, 10, 1),\n+\tPIN_FIELD_BASE(90, IO_BASE_LT0, 0x00b0, 13, 1),\n+\tPIN_FIELD_BASE(91, IO_BASE_LT0, 0x00b0, 12, 1),\n+\tPIN_FIELD_BASE(92, IO_BASE_LT0, 0x00b0, 7, 1),\n+\tPIN_FIELD_BASE(93, IO_BASE_LT0, 0x00b0, 8, 1),\n+\tPIN_FIELD_BASE(94, IO_BASE_LT0, 0x00b0, 14, 1),\n+\tPIN_FIELD_BASE(95, IO_BASE_LT0, 0x00b0, 6, 1),\n+\tPIN_FIELD_BASE(96, IO_BASE_LT0, 0x00b0, 9, 1),\n+\tPIN_FIELD_BASE(97, IO_BASE_LT0, 0x00b0, 0, 1),\n+\tPIN_FIELD_BASE(98, IO_BASE_LT0, 0x00b0, 5, 1),\n+\tPIN_FIELD_BASE(99, IO_BASE_LT0, 0x00b0, 3, 1),\n+\tPIN_FIELD_BASE(100, IO_BASE_LT0, 0x00b0, 4, 1),\n+\tPIN_FIELD_BASE(101, IO_BASE_LT0, 0x00b0, 1, 1),\n+\tPIN_FIELD_BASE(102, IO_BASE_LT0, 0x00b0, 2, 1),\n+\tPIN_FIELD_BASE(103, IO_BASE_RB0, 0x00a0, 15, 1),\n+\tPIN_FIELD_BASE(104, IO_BASE_RB0, 0x00a0, 12, 1),\n+\tPIN_FIELD_BASE(105, IO_BASE_RB0, 0x00a0, 14, 1),\n+\tPIN_FIELD_BASE(106, IO_BASE_RB0, 0x00a0, 13, 1),\n+\tPIN_FIELD_BASE(107, IO_BASE_RB0, 0x00a0, 19, 1),\n+\tPIN_FIELD_BASE(108, IO_BASE_RB0, 0x00a0, 16, 1),\n+\tPIN_FIELD_BASE(109, IO_BASE_RB0, 0x00a0, 18, 1),\n+\tPIN_FIELD_BASE(110, IO_BASE_RB0, 0x00a0, 17, 1),\n+\tPIN_FIELD_BASE(111, IO_BASE_RB0, 0x00a0, 4, 1),\n+\tPIN_FIELD_BASE(112, IO_BASE_RB1, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(113, IO_BASE_RB1, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(114, IO_BASE_RB1, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(115, IO_BASE_BM1, 0x00b0, 9, 1),\n+\tPIN_FIELD_BASE(116, IO_BASE_BM1, 0x00b0, 12, 1),\n+\tPIN_FIELD_BASE(117, IO_BASE_BM1, 0x00b0, 10, 1),\n+\tPIN_FIELD_BASE(118, IO_BASE_BM1, 0x00b0, 11, 1),\n+\tPIN_FIELD_BASE(119, IO_BASE_BM0, 0x0090, 26, 1),\n+\tPIN_FIELD_BASE(120, IO_BASE_BM0, 0x0090, 25, 1),\n+\tPIN_FIELD_BASE(121, IO_BASE_BM0, 0x0090, 24, 1),\n+\tPIN_FIELD_BASE(122, IO_BASE_BM0, 0x0090, 23, 1),\n+\tPIN_FIELD_BASE(123, IO_BASE_BM0, 0x0090, 19, 1),\n+\tPIN_FIELD_BASE(124, IO_BASE_BM0, 0x0090, 18, 1),\n+\tPIN_FIELD_BASE(125, IO_BASE_BM0, 0x0090, 17, 1),\n+\tPIN_FIELD_BASE(126, IO_BASE_BM0, 0x0090, 16, 1),\n+\tPIN_FIELD_BASE(127, IO_BASE_BM0, 0x0090, 22, 1),\n+\tPIN_FIELD_BASE(128, IO_BASE_BM0, 0x0090, 15, 1),\n+\tPIN_FIELD_BASE(129, IO_BASE_BM0, 0x0090, 20, 1),\n+\tPIN_FIELD_BASE(130, IO_BASE_BM0, 0x0090, 27, 1),\n+\tPIN_FIELD_BASE(131, IO_BASE_BM0, 0x0090, 13, 1),\n+\tPIN_FIELD_BASE(132, IO_BASE_BM0, 0x0090, 14, 1),\n+\tPIN_FIELD_BASE(133, IO_BASE_BM0, 0x0090, 28, 1),\n+\tPIN_FIELD_BASE(134, IO_BASE_BM0, 0x0090, 21, 1),\n+\tPIN_FIELD_BASE(135, IO_BASE_BM0, 0x0090, 11, 1),\n+\tPIN_FIELD_BASE(136, IO_BASE_BM0, 0x0090, 12, 1),\n+\tPIN_FIELD_BASE(137, IO_BASE_BM1, 0x00b0, 3, 1),\n+\tPIN_FIELD_BASE(138, IO_BASE_BM1, 0x00b0, 4, 1),\n+\tPIN_FIELD_BASE(139, IO_BASE_BM0, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(140, IO_BASE_BM0, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(141, IO_BASE_BM0, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(142, IO_BASE_BM0, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(143, IO_BASE_BM0, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(144, IO_BASE_BM0, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(145, IO_BASE_BM0, 0x0090, 6, 1),\n+\tPIN_FIELD_BASE(146, IO_BASE_BM0, 0x0090, 7, 1),\n+\tPIN_FIELD_BASE(147, IO_BASE_BM0, 0x0090, 8, 1),\n+\tPIN_FIELD_BASE(148, IO_BASE_BM0, 0x0090, 9, 1),\n+\tPIN_FIELD_BASE(149, IO_BASE_BM0, 0x0090, 10, 1),\n+\tPIN_FIELD_BASE(150, IO_BASE_BM2, 0x00a0, 8, 1),\n+\tPIN_FIELD_BASE(151, IO_BASE_BM0, 0x0090, 29, 1),\n+\tPIN_FIELD_BASE(152, IO_BASE_BM2, 0x00a0, 9, 1),\n+\tPIN_FIELD_BASE(153, IO_BASE_BM2, 0x00a0, 10, 1),\n+\tPIN_FIELD_BASE(154, IO_BASE_BM2, 0x00a0, 11, 1),\n+\tPIN_FIELD_BASE(155, IO_BASE_BM2, 0x00a0, 12, 1),\n+\tPIN_FIELD_BASE(180, IO_BASE_LT0, 0x00b0, 15, 1),\n+\tPIN_FIELD_BASE(181, IO_BASE_LT0, 0x00b0, 16, 1),\n+\tPIN_FIELD_BASE(182, IO_BASE_RT, 0x0090, 3, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_pd_range[] = {\n+\tPIN_FIELD_BASE(0, IO_BASE_RB0, 0x0080, 5, 1),\n+\tPIN_FIELD_BASE(1, IO_BASE_RB1, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(2, IO_BASE_RB1, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(3, IO_BASE_RB1, 0x0080, 5, 1),\n+\tPIN_FIELD_BASE(4, IO_BASE_RB1, 0x0080, 6, 1),\n+\tPIN_FIELD_BASE(5, IO_BASE_RB1, 0x0080, 7, 1),\n+\tPIN_FIELD_BASE(6, IO_BASE_RB0, 0x0080, 6, 1),\n+\tPIN_FIELD_BASE(7, IO_BASE_RB0, 0x0080, 7, 1),\n+\tPIN_FIELD_BASE(8, IO_BASE_RB0, 0x0080, 8, 1),\n+\tPIN_FIELD_BASE(9, IO_BASE_RB0, 0x0080, 9, 1),\n+\tPIN_FIELD_BASE(10, IO_BASE_RB0, 0x0080, 10, 1),\n+\tPIN_FIELD_BASE(11, IO_BASE_RB0, 0x0080, 11, 1),\n+\tPIN_FIELD_BASE(12, IO_BASE_BM1, 0x00a0, 5, 1),\n+\tPIN_FIELD_BASE(13, IO_BASE_BM1, 0x00a0, 6, 1),\n+\tPIN_FIELD_BASE(14, IO_BASE_BM2, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(15, IO_BASE_BM2, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(16, IO_BASE_BM1, 0x00a0, 7, 1),\n+\tPIN_FIELD_BASE(17, IO_BASE_BM1, 0x00a0, 8, 1),\n+\tPIN_FIELD_BASE(18, IO_BASE_RB0, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(19, IO_BASE_RB0, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(20, IO_BASE_RB0, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(21, IO_BASE_RB0, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(22, IO_BASE_RT, 0x0070, 0, 1),\n+\tPIN_FIELD_BASE(23, IO_BASE_RT, 0x0070, 1, 1),\n+\tPIN_FIELD_BASE(24, IO_BASE_RT, 0x0070, 2, 1),\n+\tPIN_FIELD_BASE(25, IO_BASE_LM, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(26, IO_BASE_LM, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(27, IO_BASE_BM1, 0x00a0, 1, 1),\n+\tPIN_FIELD_BASE(28, IO_BASE_BM1, 0x00a0, 2, 1),\n+\tPIN_FIELD_BASE(29, IO_BASE_LM, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(30, IO_BASE_BM1, 0x00a0, 0, 1),\n+\tPIN_FIELD_BASE(31, IO_BASE_BM2, 0x0080, 13, 1),\n+\tPIN_FIELD_BASE(32, IO_BASE_BM0, 0x0080, 30, 1),\n+\tPIN_FIELD_BASE(33, IO_BASE_BM2, 0x0080, 15, 1),\n+\tPIN_FIELD_BASE(34, IO_BASE_BM2, 0x0080, 14, 1),\n+\tPIN_FIELD_BASE(35, IO_BASE_BM2, 0x0080, 17, 1),\n+\tPIN_FIELD_BASE(36, IO_BASE_BM2, 0x0080, 16, 1),\n+\tPIN_FIELD_BASE(37, IO_BASE_BM2, 0x0080, 19, 1),\n+\tPIN_FIELD_BASE(38, IO_BASE_BM2, 0x0080, 18, 1),\n+\tPIN_FIELD_BASE(39, IO_BASE_BM2, 0x0080, 5, 1),\n+\tPIN_FIELD_BASE(40, IO_BASE_BM2, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(41, IO_BASE_BM2, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(42, IO_BASE_BM2, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(43, IO_BASE_BM2, 0x0080, 6, 1),\n+\tPIN_FIELD_BASE(48, IO_BASE_LM, 0x0080, 5, 1),\n+\tPIN_FIELD_BASE(49, IO_BASE_LM, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(50, IO_BASE_LM, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(51, IO_BASE_RB1, 0x0080, 8, 1),\n+\tPIN_FIELD_BASE(52, IO_BASE_RB1, 0x0080, 10, 1),\n+\tPIN_FIELD_BASE(53, IO_BASE_RB1, 0x0080, 9, 1),\n+\tPIN_FIELD_BASE(54, IO_BASE_RB1, 0x0080, 11, 1),\n+\tPIN_FIELD_BASE(55, IO_BASE_LM, 0x0080, 6, 1),\n+\tPIN_FIELD_BASE(56, IO_BASE_LM, 0x0080, 7, 1),\n+\tPIN_FIELD_BASE(57, IO_BASE_BM1, 0x00a0, 13, 1),\n+\tPIN_FIELD_BASE(58, IO_BASE_BM1, 0x00a0, 17, 1),\n+\tPIN_FIELD_BASE(59, IO_BASE_BM1, 0x00a0, 14, 1),\n+\tPIN_FIELD_BASE(60, IO_BASE_BM1, 0x00a0, 18, 1),\n+\tPIN_FIELD_BASE(61, IO_BASE_BM1, 0x00a0, 15, 1),\n+\tPIN_FIELD_BASE(62, IO_BASE_BM1, 0x00a0, 19, 1),\n+\tPIN_FIELD_BASE(63, IO_BASE_BM1, 0x00a0, 16, 1),\n+\tPIN_FIELD_BASE(64, IO_BASE_BM1, 0x00a0, 20, 1),\n+\tPIN_FIELD_BASE(65, IO_BASE_RT, 0x0070, 4, 1),\n+\tPIN_FIELD_BASE(66, IO_BASE_RT, 0x0070, 6, 1),\n+\tPIN_FIELD_BASE(67, IO_BASE_RT, 0x0070, 5, 1),\n+\tPIN_FIELD_BASE(68, IO_BASE_RT, 0x0070, 7, 1),\n+\tPIN_FIELD_BASE(69, IO_BASE_BM1, 0x00a0, 22, 1),\n+\tPIN_FIELD_BASE(70, IO_BASE_BM1, 0x00a0, 21, 1),\n+\tPIN_FIELD_BASE(71, IO_BASE_BM1, 0x00a0, 24, 1),\n+\tPIN_FIELD_BASE(72, IO_BASE_BM1, 0x00a0, 23, 1),\n+\tPIN_FIELD_BASE(73, IO_BASE_BM1, 0x00a0, 26, 1),\n+\tPIN_FIELD_BASE(74, IO_BASE_BM1, 0x00a0, 25, 1),\n+\tPIN_FIELD_BASE(75, IO_BASE_BM2, 0x0080, 7, 1),\n+\tPIN_FIELD_BASE(76, IO_BASE_BM1, 0x00a0, 27, 1),\n+\tPIN_FIELD_BASE(77, IO_BASE_RB1, 0x0080, 13, 1),\n+\tPIN_FIELD_BASE(78, IO_BASE_RB1, 0x0080, 12, 1),\n+\tPIN_FIELD_BASE(79, IO_BASE_RB1, 0x0080, 15, 1),\n+\tPIN_FIELD_BASE(80, IO_BASE_RB1, 0x0080, 14, 1),\n+\tPIN_FIELD_BASE(81, IO_BASE_BM1, 0x00a0, 29, 1),\n+\tPIN_FIELD_BASE(82, IO_BASE_BM1, 0x00a0, 28, 1),\n+\tPIN_FIELD_BASE(83, IO_BASE_BM1, 0x00a0, 30, 1),\n+\tPIN_FIELD_BASE(84, IO_BASE_RB0, 0x0080, 22, 1),\n+\tPIN_FIELD_BASE(85, IO_BASE_RB0, 0x0080, 23, 1),\n+\tPIN_FIELD_BASE(86, IO_BASE_RB0, 0x0080, 24, 1),\n+\tPIN_FIELD_BASE(87, IO_BASE_RB0, 0x0080, 25, 1),\n+\tPIN_FIELD_BASE(88, IO_BASE_LT0, 0x0090, 11, 1),\n+\tPIN_FIELD_BASE(89, IO_BASE_LT0, 0x0090, 10, 1),\n+\tPIN_FIELD_BASE(90, IO_BASE_LT0, 0x0090, 13, 1),\n+\tPIN_FIELD_BASE(91, IO_BASE_LT0, 0x0090, 12, 1),\n+\tPIN_FIELD_BASE(92, IO_BASE_LT0, 0x0090, 7, 1),\n+\tPIN_FIELD_BASE(93, IO_BASE_LT0, 0x0090, 8, 1),\n+\tPIN_FIELD_BASE(94, IO_BASE_LT0, 0x0090, 14, 1),\n+\tPIN_FIELD_BASE(95, IO_BASE_LT0, 0x0090, 6, 1),\n+\tPIN_FIELD_BASE(96, IO_BASE_LT0, 0x0090, 9, 1),\n+\tPIN_FIELD_BASE(97, IO_BASE_LT0, 0x0090, 0, 1),\n+\tPIN_FIELD_BASE(98, IO_BASE_LT0, 0x0090, 5, 1),\n+\tPIN_FIELD_BASE(99, IO_BASE_LT0, 0x0090, 3, 1),\n+\tPIN_FIELD_BASE(100, IO_BASE_LT0, 0x0090, 4, 1),\n+\tPIN_FIELD_BASE(101, IO_BASE_LT0, 0x0090, 1, 1),\n+\tPIN_FIELD_BASE(102, IO_BASE_LT0, 0x0090, 2, 1),\n+\tPIN_FIELD_BASE(103, IO_BASE_RB0, 0x0080, 15, 1),\n+\tPIN_FIELD_BASE(104, IO_BASE_RB0, 0x0080, 12, 1),\n+\tPIN_FIELD_BASE(105, IO_BASE_RB0, 0x0080, 14, 1),\n+\tPIN_FIELD_BASE(106, IO_BASE_RB0, 0x0080, 13, 1),\n+\tPIN_FIELD_BASE(107, IO_BASE_RB0, 0x0080, 19, 1),\n+\tPIN_FIELD_BASE(108, IO_BASE_RB0, 0x0080, 16, 1),\n+\tPIN_FIELD_BASE(109, IO_BASE_RB0, 0x0080, 18, 1),\n+\tPIN_FIELD_BASE(110, IO_BASE_RB0, 0x0080, 17, 1),\n+\tPIN_FIELD_BASE(111, IO_BASE_RB0, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(112, IO_BASE_RB1, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(113, IO_BASE_RB1, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(114, IO_BASE_RB1, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(115, IO_BASE_BM1, 0x00a0, 9, 1),\n+\tPIN_FIELD_BASE(116, IO_BASE_BM1, 0x00a0, 12, 1),\n+\tPIN_FIELD_BASE(117, IO_BASE_BM1, 0x00a0, 10, 1),\n+\tPIN_FIELD_BASE(118, IO_BASE_BM1, 0x00a0, 11, 1),\n+\tPIN_FIELD_BASE(119, IO_BASE_BM0, 0x0080, 26, 1),\n+\tPIN_FIELD_BASE(120, IO_BASE_BM0, 0x0080, 25, 1),\n+\tPIN_FIELD_BASE(121, IO_BASE_BM0, 0x0080, 24, 1),\n+\tPIN_FIELD_BASE(122, IO_BASE_BM0, 0x0080, 23, 1),\n+\tPIN_FIELD_BASE(123, IO_BASE_BM0, 0x0080, 19, 1),\n+\tPIN_FIELD_BASE(124, IO_BASE_BM0, 0x0080, 18, 1),\n+\tPIN_FIELD_BASE(125, IO_BASE_BM0, 0x0080, 17, 1),\n+\tPIN_FIELD_BASE(126, IO_BASE_BM0, 0x0080, 16, 1),\n+\tPIN_FIELD_BASE(127, IO_BASE_BM0, 0x0080, 22, 1),\n+\tPIN_FIELD_BASE(128, IO_BASE_BM0, 0x0080, 15, 1),\n+\tPIN_FIELD_BASE(129, IO_BASE_BM0, 0x0080, 20, 1),\n+\tPIN_FIELD_BASE(130, IO_BASE_BM0, 0x0080, 27, 1),\n+\tPIN_FIELD_BASE(131, IO_BASE_BM0, 0x0080, 13, 1),\n+\tPIN_FIELD_BASE(132, IO_BASE_BM0, 0x0080, 14, 1),\n+\tPIN_FIELD_BASE(133, IO_BASE_BM0, 0x0080, 28, 1),\n+\tPIN_FIELD_BASE(134, IO_BASE_BM0, 0x0080, 21, 1),\n+\tPIN_FIELD_BASE(135, IO_BASE_BM0, 0x0080, 11, 1),\n+\tPIN_FIELD_BASE(136, IO_BASE_BM0, 0x0080, 12, 1),\n+\tPIN_FIELD_BASE(137, IO_BASE_BM1, 0x00a0, 3, 1),\n+\tPIN_FIELD_BASE(138, IO_BASE_BM1, 0x00a0, 4, 1),\n+\tPIN_FIELD_BASE(139, IO_BASE_BM0, 0x0080, 3, 1),\n+\tPIN_FIELD_BASE(140, IO_BASE_BM0, 0x0080, 4, 1),\n+\tPIN_FIELD_BASE(141, IO_BASE_BM0, 0x0080, 0, 1),\n+\tPIN_FIELD_BASE(142, IO_BASE_BM0, 0x0080, 1, 1),\n+\tPIN_FIELD_BASE(143, IO_BASE_BM0, 0x0080, 2, 1),\n+\tPIN_FIELD_BASE(144, IO_BASE_BM0, 0x0080, 5, 1),\n+\tPIN_FIELD_BASE(145, IO_BASE_BM0, 0x0080, 6, 1),\n+\tPIN_FIELD_BASE(146, IO_BASE_BM0, 0x0080, 7, 1),\n+\tPIN_FIELD_BASE(147, IO_BASE_BM0, 0x0080, 8, 1),\n+\tPIN_FIELD_BASE(148, IO_BASE_BM0, 0x0080, 9, 1),\n+\tPIN_FIELD_BASE(149, IO_BASE_BM0, 0x0080, 10, 1),\n+\tPIN_FIELD_BASE(150, IO_BASE_BM2, 0x0080, 8, 1),\n+\tPIN_FIELD_BASE(151, IO_BASE_BM0, 0x0080, 29, 1),\n+\tPIN_FIELD_BASE(152, IO_BASE_BM2, 0x0080, 9, 1),\n+\tPIN_FIELD_BASE(153, IO_BASE_BM2, 0x0080, 10, 1),\n+\tPIN_FIELD_BASE(154, IO_BASE_BM2, 0x0080, 11, 1),\n+\tPIN_FIELD_BASE(155, IO_BASE_BM2, 0x0080, 12, 1),\n+\tPIN_FIELD_BASE(180, IO_BASE_LT0, 0x0090, 15, 1),\n+\tPIN_FIELD_BASE(181, IO_BASE_LT0, 0x0090, 16, 1),\n+\tPIN_FIELD_BASE(182, IO_BASE_RT, 0x0070, 3, 1),\n+};\n+\n+static const struct mtk_pin_field_calc mt8189_pin_drv_range[] = {\n+\tPIN_FIELD_BASE(0, IO_BASE_RB0, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(1, IO_BASE_RB1, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(2, IO_BASE_RB1, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(3, IO_BASE_RB1, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(4, IO_BASE_RB1, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(5, IO_BASE_RB1, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(6, IO_BASE_RB0, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(7, IO_BASE_RB0, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(8, IO_BASE_RB0, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(9, IO_BASE_RB0, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(10, IO_BASE_RB0, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(11, IO_BASE_RB0, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(12, IO_BASE_BM1, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(13, IO_BASE_BM1, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(14, IO_BASE_BM2, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(15, IO_BASE_BM2, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(16, IO_BASE_BM1, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(17, IO_BASE_BM1, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(18, IO_BASE_RB0, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(19, IO_BASE_RB0, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(20, IO_BASE_RB0, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(21, IO_BASE_RB0, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(22, IO_BASE_RT, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(23, IO_BASE_RT, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(24, IO_BASE_RT, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(25, IO_BASE_LM, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(26, IO_BASE_LM, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(27, IO_BASE_BM1, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(28, IO_BASE_BM1, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(29, IO_BASE_LM, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(30, IO_BASE_BM1, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(31, IO_BASE_BM2, 0x0010, 27, 3),\n+\tPIN_FIELD_BASE(32, IO_BASE_BM0, 0x0030, 0, 3),\n+\tPIN_FIELD_BASE(33, IO_BASE_BM2, 0x0020, 3, 3),\n+\tPIN_FIELD_BASE(34, IO_BASE_BM2, 0x0020, 0, 3),\n+\tPIN_FIELD_BASE(35, IO_BASE_BM2, 0x0020, 9, 3),\n+\tPIN_FIELD_BASE(36, IO_BASE_BM2, 0x0020, 6, 3),\n+\tPIN_FIELD_BASE(37, IO_BASE_BM2, 0x0020, 15, 3),\n+\tPIN_FIELD_BASE(38, IO_BASE_BM2, 0x0020, 12, 3),\n+\tPIN_FIELD_BASE(39, IO_BASE_BM2, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(40, IO_BASE_BM2, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(41, IO_BASE_BM2, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(42, IO_BASE_BM2, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(43, IO_BASE_BM2, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(44, IO_BASE_RB0, 0x0020, 0, 3),\n+\tPIN_FIELD_BASE(45, IO_BASE_RB0, 0x0020, 3, 3),\n+\tPIN_FIELD_BASE(46, IO_BASE_RB0, 0x0020, 6, 3),\n+\tPIN_FIELD_BASE(47, IO_BASE_RB0, 0x0020, 9, 3),\n+\tPIN_FIELD_BASE(48, IO_BASE_LM, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(49, IO_BASE_LM, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(50, IO_BASE_LM, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(51, IO_BASE_RB1, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(52, IO_BASE_RB1, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(53, IO_BASE_RB1, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(54, IO_BASE_RB1, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(55, IO_BASE_LM, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(56, IO_BASE_LM, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(57, IO_BASE_BM1, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(58, IO_BASE_BM1, 0x0010, 21, 3),\n+\tPIN_FIELD_BASE(59, IO_BASE_BM1, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(60, IO_BASE_BM1, 0x0010, 24, 3),\n+\tPIN_FIELD_BASE(61, IO_BASE_BM1, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(62, IO_BASE_BM1, 0x0010, 27, 3),\n+\tPIN_FIELD_BASE(63, IO_BASE_BM1, 0x0010, 18, 3),\n+\tPIN_FIELD_BASE(64, IO_BASE_BM1, 0x0020, 0, 3),\n+\tPIN_FIELD_BASE(65, IO_BASE_RT, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(66, IO_BASE_RT, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(67, IO_BASE_RT, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(68, IO_BASE_RT, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(69, IO_BASE_BM1, 0x0020, 6, 3),\n+\tPIN_FIELD_BASE(70, IO_BASE_BM1, 0x0020, 3, 3),\n+\tPIN_FIELD_BASE(71, IO_BASE_BM1, 0x0020, 12, 3),\n+\tPIN_FIELD_BASE(72, IO_BASE_BM1, 0x0020, 9, 3),\n+\tPIN_FIELD_BASE(73, IO_BASE_BM1, 0x0020, 18, 3),\n+\tPIN_FIELD_BASE(74, IO_BASE_BM1, 0x0020, 15, 3),\n+\tPIN_FIELD_BASE(75, IO_BASE_BM2, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(76, IO_BASE_BM1, 0x0020, 21, 3),\n+\tPIN_FIELD_BASE(77, IO_BASE_RB1, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(78, IO_BASE_RB1, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(79, IO_BASE_RB1, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(80, IO_BASE_RB1, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(81, IO_BASE_BM1, 0x0020, 27, 3),\n+\tPIN_FIELD_BASE(82, IO_BASE_BM1, 0x0020, 24, 3),\n+\tPIN_FIELD_BASE(83, IO_BASE_BM1, 0x0030, 0, 3),\n+\tPIN_FIELD_BASE(84, IO_BASE_RB0, 0x0020, 12, 3),\n+\tPIN_FIELD_BASE(85, IO_BASE_RB0, 0x0020, 15, 3),\n+\tPIN_FIELD_BASE(86, IO_BASE_RB0, 0x0020, 18, 3),\n+\tPIN_FIELD_BASE(87, IO_BASE_RB0, 0x0020, 21, 3),\n+\tPIN_FIELD_BASE(88, IO_BASE_LT0, 0x0020, 0, 3),\n+\tPIN_FIELD_BASE(89, IO_BASE_LT0, 0x0010, 27, 3),\n+\tPIN_FIELD_BASE(90, IO_BASE_LT0, 0x0020, 6, 3),\n+\tPIN_FIELD_BASE(91, IO_BASE_LT0, 0x0020, 3, 3),\n+\tPIN_FIELD_BASE(92, IO_BASE_LT0, 0x0010, 18, 3),\n+\tPIN_FIELD_BASE(93, IO_BASE_LT0, 0x0010, 21, 3),\n+\tPIN_FIELD_BASE(94, IO_BASE_LT0, 0x0020, 9, 3),\n+\tPIN_FIELD_BASE(95, IO_BASE_LT0, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(96, IO_BASE_LT0, 0x0010, 24, 3),\n+\tPIN_FIELD_BASE(97, IO_BASE_LT0, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(98, IO_BASE_LT0, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(99, IO_BASE_LT0, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(100, IO_BASE_LT0, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(101, IO_BASE_LT0, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(102, IO_BASE_LT0, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(103, IO_BASE_RB0, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(104, IO_BASE_RB0, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(105, IO_BASE_RB0, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(106, IO_BASE_RB0, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(107, IO_BASE_RB0, 0x0010, 27, 3),\n+\tPIN_FIELD_BASE(108, IO_BASE_RB0, 0x0010, 18, 3),\n+\tPIN_FIELD_BASE(109, IO_BASE_RB0, 0x0010, 24, 3),\n+\tPIN_FIELD_BASE(110, IO_BASE_RB0, 0x0010, 21, 3),\n+\tPIN_FIELD_BASE(111, IO_BASE_RB0, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(112, IO_BASE_RB1, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(113, IO_BASE_RB1, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(114, IO_BASE_RB1, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(115, IO_BASE_BM1, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(116, IO_BASE_BM1, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(117, IO_BASE_BM1, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(118, IO_BASE_BM1, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(119, IO_BASE_BM0, 0x0020, 18, 3),\n+\tPIN_FIELD_BASE(120, IO_BASE_BM0, 0x0020, 15, 3),\n+\tPIN_FIELD_BASE(121, IO_BASE_BM0, 0x0020, 12, 3),\n+\tPIN_FIELD_BASE(122, IO_BASE_BM0, 0x0020, 9, 3),\n+\tPIN_FIELD_BASE(123, IO_BASE_BM0, 0x0010, 27, 3),\n+\tPIN_FIELD_BASE(124, IO_BASE_BM0, 0x0010, 24, 3),\n+\tPIN_FIELD_BASE(125, IO_BASE_BM0, 0x0010, 21, 3),\n+\tPIN_FIELD_BASE(126, IO_BASE_BM0, 0x0010, 18, 3),\n+\tPIN_FIELD_BASE(127, IO_BASE_BM0, 0x0020, 6, 3),\n+\tPIN_FIELD_BASE(128, IO_BASE_BM0, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(129, IO_BASE_BM0, 0x0020, 0, 3),\n+\tPIN_FIELD_BASE(130, IO_BASE_BM0, 0x0020, 21, 3),\n+\tPIN_FIELD_BASE(131, IO_BASE_BM0, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(132, IO_BASE_BM0, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(133, IO_BASE_BM0, 0x0020, 24, 3),\n+\tPIN_FIELD_BASE(134, IO_BASE_BM0, 0x0020, 3, 3),\n+\tPIN_FIELD_BASE(135, IO_BASE_BM0, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(136, IO_BASE_BM0, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(137, IO_BASE_BM1, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(138, IO_BASE_BM1, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(139, IO_BASE_BM0, 0x0000, 9, 3),\n+\tPIN_FIELD_BASE(140, IO_BASE_BM0, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(141, IO_BASE_BM0, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(142, IO_BASE_BM0, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(143, IO_BASE_BM0, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(144, IO_BASE_BM0, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(145, IO_BASE_BM0, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(146, IO_BASE_BM0, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(147, IO_BASE_BM0, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(148, IO_BASE_BM0, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(149, IO_BASE_BM0, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(150, IO_BASE_BM2, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(151, IO_BASE_BM0, 0x0020, 27, 3),\n+\tPIN_FIELD_BASE(152, IO_BASE_BM2, 0x0010, 15, 3),\n+\tPIN_FIELD_BASE(153, IO_BASE_BM2, 0x0010, 18, 3),\n+\tPIN_FIELD_BASE(154, IO_BASE_BM2, 0x0010, 21, 3),\n+\tPIN_FIELD_BASE(155, IO_BASE_BM2, 0x0010, 24, 3),\n+\tPIN_FIELD_BASE(156, IO_BASE_LT0, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(157, IO_BASE_LT0, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(158, IO_BASE_LT0, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(159, IO_BASE_LT1, 0x0000, 6, 3),\n+\tPIN_FIELD_BASE(160, IO_BASE_LT0, 0x0010, 12, 3),\n+\tPIN_FIELD_BASE(161, IO_BASE_LT0, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(162, IO_BASE_LT0, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(163, IO_BASE_LT1, 0x0000, 3, 3),\n+\tPIN_FIELD_BASE(164, IO_BASE_LT0, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(165, IO_BASE_LT0, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(166, IO_BASE_LT1, 0x0000, 0, 3),\n+\tPIN_FIELD_BASE(167, IO_BASE_LT0, 0x0010, 9, 3),\n+\tPIN_FIELD_BASE(168, IO_BASE_BM2, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(169, IO_BASE_BM2, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(170, IO_BASE_BM2, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(171, IO_BASE_BM2, 0x0010, 0, 3),\n+\tPIN_FIELD_BASE(172, IO_BASE_BM2, 0x0010, 3, 3),\n+\tPIN_FIELD_BASE(173, IO_BASE_BM2, 0x0010, 6, 3),\n+\tPIN_FIELD_BASE(174, IO_BASE_RT, 0x0000, 15, 3),\n+\tPIN_FIELD_BASE(175, IO_BASE_RT, 0x0000, 12, 3),\n+\tPIN_FIELD_BASE(176, IO_BASE_RT, 0x0000, 18, 3),\n+\tPIN_FIELD_BASE(177, IO_BASE_RT, 0x0000, 21, 3),\n+\tPIN_FIELD_BASE(178, IO_BASE_RT, 0x0000, 24, 3),\n+\tPIN_FIELD_BASE(179, IO_BASE_RT, 0x0000, 27, 3),\n+\tPIN_FIELD_BASE(180, IO_BASE_LT0, 0x0020, 12, 3),\n+\tPIN_FIELD_BASE(181, IO_BASE_LT0, 0x0020, 15, 3),\n+\tPIN_FIELD_BASE(182, IO_BASE_RT, 0x0000, 9, 3),\n+};\n+\n+static const struct mtk_pin_reg_calc mt8189_reg_cals[PINCTRL_PIN_REG_MAX] = {\n+\t[PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8189_pin_mode_range),\n+\t[PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8189_pin_dir_range),\n+\t[PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8189_pin_di_range),\n+\t[PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8189_pin_do_range),\n+\t[PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8189_pin_smt_range),\n+\t[PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8189_pin_ies_range),\n+\t[PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8189_pin_pupd_range),\n+\t[PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8189_pin_r0_range),\n+\t[PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8189_pin_r1_range),\n+\t[PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8189_pin_pu_range),\n+\t[PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8189_pin_pd_range),\n+\t[PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8189_pin_drv_range),\n+};\n+\n+static const char * const mt8189_pinctrl_register_base_names[] = {\n+\t[IO_BASE] = \"base\",\n+\t[IO_BASE_LM] = \"lm\",\n+\t[IO_BASE_RB0] = \"rb0\",\n+\t[IO_BASE_RB1] = \"rb1\",\n+\t[IO_BASE_BM0] = \"bm0\",\n+\t[IO_BASE_BM1] = \"bm1\",\n+\t[IO_BASE_BM2] = \"bm2\",\n+\t[IO_BASE_LT0] = \"lt0\",\n+\t[IO_BASE_LT1] = \"lt1\",\n+\t[IO_BASE_RT] = \"rt\",\n+\t[IO_BASE_EINT0] = \"eint0\",\n+\t[IO_BASE_EINT1] = \"eint1\",\n+\t[IO_BASE_EINT2] = \"eint2\",\n+\t[IO_BASE_EINT3] = \"eint3\",\n+\t[IO_BASE_EINT4] = \"eint4\",\n+};\n+\n+static const struct mtk_pin_desc mt8189_pins[] = {\n+\tMTK_TYPED_PIN(0, \"GPIO00\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(1, \"GPIO01\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(2, \"GPIO02\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(3, \"GPIO03\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(4, \"GPIO04\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(5, \"GPIO05\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(6, \"GPIO06\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(7, \"GPIO07\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(8, \"GPIO08\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(9, \"GPIO09\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(10, \"GPIO10\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(11, \"GPIO11\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(12, \"GPIO12\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(13, \"GPIO13\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(14, \"GPIO14\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(15, \"GPIO15\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(16, \"GPIO16\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(17, \"GPIO17\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(18, \"GPIO18\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(19, \"GPIO19\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(20, \"GPIO20\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(21, \"GPIO21\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(22, \"GPIO22\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(23, \"GPIO23\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(24, \"GPIO24\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(25, \"GPIO25\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(26, \"GPIO26\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(27, \"GPIO27\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(28, \"GPIO28\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(29, \"GPIO29\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(30, \"GPIO30\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(31, \"GPIO31\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(32, \"GPIO32\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(33, \"GPIO33\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(34, \"GPIO34\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(35, \"GPIO35\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(36, \"GPIO36\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(37, \"GPIO37\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(38, \"GPIO38\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(39, \"GPIO39\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(40, \"GPIO40\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(41, \"GPIO41\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(42, \"GPIO42\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(43, \"GPIO43\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(44, \"GPIO44\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(45, \"GPIO45\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(46, \"GPIO46\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(47, \"GPIO47\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(48, \"GPIO48\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(49, \"GPIO49\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(50, \"GPIO50\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(51, \"GPIO51\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(52, \"GPIO52\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(53, \"GPIO53\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(54, \"GPIO54\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(55, \"GPIO55\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(56, \"GPIO56\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(57, \"GPIO57\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(58, \"GPIO58\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(59, \"GPIO59\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(60, \"GPIO60\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(61, \"GPIO61\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(62, \"GPIO62\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(63, \"GPIO63\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(64, \"GPIO64\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(65, \"GPIO65\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(66, \"GPIO66\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(67, \"GPIO67\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(68, \"GPIO68\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(69, \"GPIO69\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(70, \"GPIO70\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(71, \"GPIO71\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(72, \"GPIO72\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(73, \"GPIO73\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(74, \"GPIO74\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(75, \"GPIO75\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(76, \"GPIO76\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(77, \"GPIO77\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(78, \"GPIO78\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(79, \"GPIO79\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(80, \"GPIO80\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(81, \"GPIO81\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(82, \"GPIO82\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(83, \"GPIO83\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(84, \"GPIO84\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(85, \"GPIO85\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(86, \"GPIO86\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(87, \"GPIO87\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(88, \"GPIO88\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(89, \"GPIO89\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(90, \"GPIO90\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(91, \"GPIO91\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(92, \"GPIO92\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(93, \"GPIO93\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(94, \"GPIO94\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(95, \"GPIO95\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(96, \"GPIO96\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(97, \"GPIO97\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(98, \"GPIO98\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(99, \"GPIO99\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(100, \"GPIO100\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(101, \"GPIO101\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(102, \"GPIO102\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(103, \"GPIO103\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(104, \"GPIO104\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(105, \"GPIO105\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(106, \"GPIO106\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(107, \"GPIO107\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(108, \"GPIO108\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(109, \"GPIO109\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(110, \"GPIO110\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(111, \"GPIO111\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(112, \"GPIO112\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(113, \"GPIO113\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(114, \"GPIO114\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(115, \"GPIO115\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(116, \"GPIO116\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(117, \"GPIO117\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(118, \"GPIO118\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(119, \"GPIO119\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(120, \"GPIO120\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(121, \"GPIO121\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(122, \"GPIO122\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(123, \"GPIO123\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(124, \"GPIO124\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(125, \"GPIO125\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(126, \"GPIO126\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(127, \"GPIO127\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(128, \"GPIO128\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(129, \"GPIO129\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(130, \"GPIO130\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(131, \"GPIO131\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(132, \"GPIO132\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(133, \"GPIO133\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(134, \"GPIO134\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(135, \"GPIO135\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(136, \"GPIO136\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(137, \"GPIO137\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(138, \"GPIO138\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(139, \"GPIO139\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(140, \"GPIO140\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(141, \"GPIO141\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(142, \"GPIO142\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(143, \"GPIO143\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(144, \"GPIO144\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(145, \"GPIO145\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(146, \"GPIO146\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(147, \"GPIO147\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(148, \"GPIO148\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(149, \"GPIO149\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(150, \"GPIO150\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(151, \"GPIO151\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(152, \"GPIO152\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(153, \"GPIO153\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(154, \"GPIO154\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(155, \"GPIO155\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(156, \"GPIO156\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(157, \"GPIO157\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(158, \"GPIO158\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(159, \"GPIO159\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(160, \"GPIO160\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(161, \"GPIO161\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(162, \"GPIO162\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(163, \"GPIO163\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(164, \"GPIO164\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(165, \"GPIO165\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(166, \"GPIO166\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(167, \"GPIO167\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(168, \"GPIO168\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(169, \"GPIO169\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(170, \"GPIO170\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(171, \"GPIO171\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(172, \"GPIO172\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(173, \"GPIO173\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(174, \"GPIO174\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(175, \"GPIO175\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(176, \"GPIO176\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(177, \"GPIO177\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(178, \"GPIO178\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(179, \"GPIO179\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(180, \"GPIO180\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(181, \"GPIO181\", DRV_GRP4, DRV_GRP0),\n+\tMTK_TYPED_PIN(182, \"GPIO182\", DRV_GRP4, DRV_GRP0),\n+};\n+\n+static const struct mtk_io_type_desc mt8189_io_type_desc[] = {\n+\t[IO_TYPE_GRP0] = {\n+\t\t.name = \"mt8189\",\n+\t\t.bias_set = mtk_pinconf_bias_set_v1,\n+\t\t.drive_set = mtk_pinconf_drive_set_v1,\n+\t\t.input_enable = mtk_pinconf_input_enable_v1,\n+\t},\n+};\n+\n+static struct mtk_pinctrl_soc mt8189_data = {\n+\t.name = \"mt8189_pinctrl\",\n+\t.reg_cal = mt8189_reg_cals,\n+\t.pins = mt8189_pins,\n+\t.npins = ARRAY_SIZE(mt8189_pins),\n+\t.io_type = mt8189_io_type_desc,\n+\t.ntype = ARRAY_SIZE(mt8189_io_type_desc),\n+\t.base_names = mt8189_pinctrl_register_base_names,\n+\t.nbase_names = ARRAY_SIZE(mt8189_pinctrl_register_base_names),\n+\t.base_calc = 1,\n+\t.rev = MTK_PINCTRL_V1,\n+};\n+\n+static int mtk_pinctrl_mt8189_probe(struct udevice *dev)\n+{\n+\treturn mtk_pinctrl_common_probe(dev, &mt8189_data);\n+}\n+\n+static const struct udevice_id mt8189_pctrl_match[] = {\n+\t{ .compatible = \"mediatek,mt8189-pinctrl\" },\n+\t{ }\n+};\n+\n+U_BOOT_DRIVER(mt8189_pinctrl) = {\n+\t.name = \"mt8189_pinctrl\",\n+\t.id = UCLASS_PINCTRL,\n+\t.of_match = mt8189_pctrl_match,\n+\t.ops = &mtk_pinctrl_ops,\n+\t.probe = mtk_pinctrl_mt8189_probe,\n+\t.priv_auto = sizeof(struct mtk_pinctrl_priv),\n+};\n", "prefixes": [ "3/3" ] }