{"id":2227852,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2227852/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260424111330.702272-15-changhuang.liang@starfivetech.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260424111330.702272-15-changhuang.liang@starfivetech.com>","date":"2026-04-24T11:13:24","name":"[v1,14/20] pinctrl: starfive: Add StarFive JHB100 per2 controller driver","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"a89d4bc648fe7898a62f4cf47378081e25be0a9e","submitter":{"id":85771,"url":"http://patchwork.ozlabs.org/api/1.1/people/85771/?format=json","name":"Changhuang Liang","email":"changhuang.liang@starfivetech.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260424111330.702272-15-changhuang.liang@starfivetech.com/mbox/","series":[{"id":501347,"url":"http://patchwork.ozlabs.org/api/1.1/series/501347/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=501347","date":"2026-04-24T11:13:16","name":"Add basic pinctrl drivers for JHB100 SoC","version":1,"mbox":"http://patchwork.ozlabs.org/series/501347/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2227852/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2227852/checks/","tags":{},"headers":{"Return-Path":"\n <linux-gpio+bounces-35484-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35484-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=139.219.17.130","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=starfivetech.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=starfivetech.com;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g29md1ssFz1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 21:32:33 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id D23CB3023DA9\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:31:48 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6B7F23BB9E5;\n\tFri, 24 Apr 2026 11:31:41 +0000 (UTC)","from CHN02-BJS-obe.outbound.protection.partner.outlook.cn\n (mail-bjschn02on2130.outbound.protection.partner.outlook.cn [139.219.17.130])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DDBF03BA24F;\n\tFri, 24 Apr 2026 11:31:38 +0000 (UTC)","from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn\n (2406:e500:c550:17::6) by ZQ4PR01MB1156.CHNPR01.prod.partner.outlook.cn\n (2406:e500:c550:14::9) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr\n 2026 11:13:57 +0000","from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn\n ([fe80::e7d4:256c:b066:850d]) by\n ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%5])\n with mapi id 15.20.9846.021; Fri, 24 Apr 2026 11:13:57 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777030301; cv=fail;\n b=qR8LDgGihQ3q772vZTkEB7ar8dDt8dUuX9AjzBpcWx/F6R2Kvtrpsvigg9eRFO5ZJzGxDuX8TYHYsRJnb0n6Pqo9itL20zTz4s+RMJoQgRCnXQX767Cp0gH4tXncAL1572L5SsAyONew1i7sH9EWoozAGovXf13ZpqSxUKeFA3Y=","i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Ms2Lchkf3u9kh+VRBk0V0m3oYdNpseMozqt1MQUI+ra9ittzXk4kfZVjMM2q7D1OhQJQqePKjktFeBR15cuInlPozBEc/v6mT0/caBL8skO+pfL6s0eZGWkKxrEIpXPxd1fT2cMKiNp6FX4xsaIwsKD0hA1sTreyo9ImmL96ISNt/YQY9s+4OBGN5OwP9c9wakQhpmpE7cP3G9uZuMWb+7NbV2y98b2aKMMXXLB1VYicjCIr7DD1JXFqjoeYs+hdhXF94C3Hb/AuMHD54I7BjQa6WzxVqatKfKy6QR2Ibsm3NwBHfKnqt29Mt38qK0gUXMPeaLYa7FXNhI0kTPOtuw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777030301; c=relaxed/simple;\n\tbh=71DVKHuDV+KDZLCkHdP1o2ZdW6rHgmOPTzSF6ok6PXg=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=GhJRI8UukLNpYt36FPt3D3ZfE/mgYdDRnR888EsURaJiwcocK7fNuiZ/Ovk+ZMVE56EWVSTo2Hfqu4l8Bkjt2E7MV+AsOfVJ8aT4oAXGc6tP+yrybSQMAnhZgAu+3tcor+jhUWWh2U41nqzESDMvV2AtQ85hSFeTLRfr/kaa3kI=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=XKIWBk6uEye8vAuO1pm33yRYca12RGJVU+r8NIoOUsU=;\n b=gQZ/Flvb2WkVRDW8ZOnYsN/fOeFZPqvDHARgbs/P9ZtIIezDLZW0Sj7YPiOwg/j/HWYe+0q7UgnWMILJ7xyKOuTBBQNZUlmRNjExcAAUMlEl+aoerJctn2tsiVpKs4QW0F3gBv4PBV5GHWjYCOe8hKEi0xhAZhF9/lS6amZAONKuueLujvF46vqFPFY2K1W3MadayQZHGP2fiTuEZ7int/dC1+8a0UJcRwExCRcDxWjYp1bmlWaL5DsLzvKU1d3/lc4DmGs+UcqLXPFIBsXDDRCwm7mA24KT3SON7aHJQvo9tLUTZtk0h4iSZYd1EKdWIrcwxtuYDki0ziIgAyTjjQ=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com;\n spf=pass smtp.mailfrom=starfivetech.com;\n arc=fail smtp.client-ip=139.219.17.130","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=starfivetech.com; dmarc=pass action=none\n header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none"],"From":"Changhuang Liang <changhuang.liang@starfivetech.com>","To":"Linus Walleij <linusw@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tEmil Renner Berthing <kernel@esmil.dk>,\n\tPaul Walmsley <pjw@kernel.org>,\n\tAlbert Ou <aou@eecs.berkeley.edu>,\n\tPalmer Dabbelt <palmer@dabbelt.com>,\n\tAlexandre Ghiti <alex@ghiti.fr>,\n\tPhilipp Zabel <p.zabel@pengutronix.de>,\n\tBartosz Golaszewski <brgl@kernel.org>","Cc":"linux-gpio@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tLianfeng Ouyang <lianfeng.ouyang@starfivetech.com>,\n\tChanghuang Liang <changhuang.liang@starfivetech.com>","Subject":"[PATCH v1 14/20] pinctrl: starfive: Add StarFive JHB100 per2\n controller driver","Date":"Fri, 24 Apr 2026 04:13:24 -0700","Message-Id":"<20260424111330.702272-15-changhuang.liang@starfivetech.com>","X-Mailer":"git-send-email 2.25.1","In-Reply-To":"<20260424111330.702272-1-changhuang.liang@starfivetech.com>","References":"<20260424111330.702272-1-changhuang.liang@starfivetech.com>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"SHXPR01CA0025.CHNPR01.prod.partner.outlook.cn\n (2406:e500:c311:1b::34) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn\n (2406:e500:c550:17::6)","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"ZQ4PR01MB1202:EE_|ZQ4PR01MB1156:EE_","X-MS-Office365-Filtering-Correlation-Id":"cd059695-448d-4140-880c-08dea1f2940a","X-MS-Exchange-SenderADCheck":"1","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|7416014|52116014|376014|366016|1800799024|38350700014|921020|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n\tfn3Vg3TsbboS3ujYYnsM6KLSBRbjbFNZMAbcLtE8JJ2j697O5JnIPTlrRjonqWF3dC9RWVk2Xj6NKx4YuvcVT0ZNdI+FLA2Z4G7DHWpX8iwsKLgW+cy+gRy/6T1Zb9fP6heHnkbc28WtG4jU0u6usU9RuVtAVhD2xdqkypwulti6eGWq4A6lwJoodMqM//8bXPcjU82YA0SLyuXtb1UUogOlmV8z8+pV7IT73psGzHovSqIWmbeZ1iQ+mo1y6KNbrAFooo8mdhgUwT2RHsuiju/fTncD8PO00Jw+sXCd5uwpKmBIUkJHsjW2doglOhwljs1bbfLu+avlmrqgWxSKaTf3Gn22Q2rEAQSjQHa9LurioA6EPMQqAI+2LLPjAWxFK1NN/c9Ge4+Gc8jY7nh+3szr6QWiUMUaWGH3RqYsfgXg9ikjwsxjVCZvUyBx9/DCRPBvwhSH+h5Ipz8qagb5hzLYnWWrx0886Iza8Y/5iQz8IYZavWMWF0J1wjw+lZwoVoUm3u0o8Mczlxf4yzPOp80l5WazWiYfRy3H2aSz3OU5B8kHAL/LU7PGfKCOhjWMbcgxkgTn+gsj45KO/IC5+CCU4wBNGGYPQ6g9le0hd7E=","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(366016)(1800799024)(38350700014)(921020)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n OKp6QvgT9uKScjRueS7S4LZwq7b+VZ33ZjnpxG/PMVH2U3ENAaBAtXv/yyRCAEf+feUr/x1GKKjFYICK85oBbgxLGBVcyfsP9PIzSh/A/hdym1Su7lq7duiI071qUuS8MtORE0UK+2epp3uoUlsCi+etVjCEjzIPZ+cj+iJiLofUHhn1B66UkJVmvn0X4mikYalB0makrJ4TZQsGY9X8eA5CpEx6HAk6JBQY+5w7iZjzCQGGNIG2QyURo4VgtNUnNMnuJX/F4qdpmj62U0dKFMquxsobPXarmr18JcOI2QPZWyO+QrxTLIiYRgwvUGoaeGXHTwWJueHna1S6tHdLyglHaaWsDgRE7PVO4j/RgsqJ+P87FZFieCDl3zqKFrQqitu3vTBkLq81AGmRrsv3IU12+kL2ggixfU1+P8/SMdMPbZ7BWWZbKq8cTkUB5lnsXokhJbxk5gYWRqdGA8vGxxoXKIfNy7B1m/5zCovpcGGRzFjUYWGdnqTzuAj+N6deJe6Xht6O1dFVyfj+sD+GFyPLE9lWzjK3dTyUV/uuL0pxQbTl+QbFO5sA9h1C5gHnpotxlbPDVCW2GZEhLh8LKgoHi8farem8Rd4UrFJltO/Psa7f8qwmMNimJ2pKjJyTeve2BlYgQlpNitwtlkkC8+GiZ0SpWkSb2PrnFrMuGKaB7ug/oO/lPMDlbL9IsdquSy4IFLyTFpN0Nw+n/dK/zpTjP5DjXJ7XQb4Gffq31x/l6KnaPMQysJBw9pn+1BSTgTi4aHfL0RrFfW1QTHjIocwgZcsXxiIy3VMPMt0dTiV1f52D76NAA5kBEzaLABM3Le7IUiUhzemB0XiIsVrR67OKyEgd/3u6VUflpcmGKbBYBGKBxLivjPcGn2LiG6NIWCQFlrJD3jQ1OB12vm7etq1tkWiIFCpbIgRYhTKF3b+CGUCnn1o1rduhGw2KH1tgOdpI/iqik1b7WOx3aW6PrG/3WGudo2VtmN0NDmULxfNuApbPFIrTOFY9Eb7E0nlScdqSti1A2Z4fYyljbAMCkwQCCBCScX6uBX5kUC6fWbmKnx1Qnzv99fGkrbmbTfM4UZ6flWNMSvOFtWVDgd+gsm6kMNFofcDaqI0vHPWE30c6mAxOMmKvn/VZg3dVxW10NXCIndFyVDsyBCDrWsRm2pBWDz7jrajOV+lBz3FNWfzwEwK1GPeUsTOx5wpQqglQsC5i2a39jbHwTpUOd1I7yB2PoWJf4yaySBhEfPPt1FJk6KwWHSfc4yfmS9VXUUEeV0rBV/06mUQEdOXfm9n8ba8sjT0cLj/oyWjGebdJOVTdjOLZZnOdkaj0fygZbq6PJNyxeHvUKZIQubDdUsOPhjk/3zDcg2a0BT9rBvK9ikn2xzBHmQFgxsvPr9xcUhyFwo4Jkdlf8RJA7mytACcW3EXwIQkIsP5HSHCAHRBwwAsKzWe16iIKBvqhN0yJKlRZ8p7OKIfrTgKtD1kv/Kw1hJZERjCQqQo8y3m4NvS+MmJGQYTZR79hJhoaxVFv096bNgTYAz8bBVT7bxsRR/B/DVNpgnYq7VjFDDzROue4tcLrSBOG/7FY+D83pAEWkujMrOvYsH1u+wglfOpqxdeUT+o60S9eF+DXENsQi3Zu6FC5ixloTZAo5AJXITFPnjngMhs4jIaQhmFn5Z0I7BYifU5vJ03fy3ohDPNTw0AsNoqSI/Y4dWwD/xW2UALwQwSc0A566Upd76ouveaMM1QD7x0p+1dfjKeifPF2xmnvx8z04ZbvZ4S5WozwOXRFYJUo","X-OriginatorOrg":"starfivetech.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n cd059695-448d-4140-880c-08dea1f2940a","X-MS-Exchange-CrossTenant-AuthSource":"\n ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"24 Apr 2026 11:13:57.2186\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"06fe3fa3-1221-43d3-861b-5a4ee687a85c","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 4QiFwjAamil2SywrehiAXly4hhhWrAvGvn1638epbqF4TVGF/SZ7yKrbPBGUNtKdMQefEV0dYCMvOwxXEK2lFgChADdf+/R/PqvpUQOibLCUcbuHNP6d+E42Zh5DUlD7","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"ZQ4PR01MB1156"},"content":"Add pinctrl driver for StarFive JHB100 SoC Peripheral-2(per2) pinctrl\ncontroller.\n\nSigned-off-by: Lianfeng Ouyang <lianfeng.ouyang@starfivetech.com>\nSigned-off-by: Changhuang Liang <changhuang.liang@starfivetech.com>\n---\n drivers/pinctrl/starfive/Kconfig              |  12 +++\n drivers/pinctrl/starfive/Makefile             |   1 +\n .../starfive/pinctrl-starfive-jhb100-per2.c   | 102 ++++++++++++++++++\n 3 files changed, 115 insertions(+)\n create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2.c","diff":"diff --git a/drivers/pinctrl/starfive/Kconfig b/drivers/pinctrl/starfive/Kconfig\nindex c5937207b2d3..765379bf3d52 100644\n--- a/drivers/pinctrl/starfive/Kconfig\n+++ b/drivers/pinctrl/starfive/Kconfig\n@@ -83,6 +83,18 @@ config PINCTRL_STARFIVE_JHB100_PER1\n \t  peripherals supporting inputs, outputs, configuring pull-up/pull-down\n \t  and interrupts on input changes.\n \n+config PINCTRL_STARFIVE_JHB100_PER2\n+\ttristate \"StarFive JHB100 SoC Peripheral-2 pinctrl and GPIO driver\"\n+\tdepends on ARCH_STARFIVE || COMPILE_TEST\n+\tdepends on OF\n+\tselect PINCTRL_STARFIVE_JHB100\n+\tdefault ARCH_STARFIVE\n+\thelp\n+\t  Say yes here to support Peripheral-2 pin control on the StarFive JHB100 SoC.\n+\t  This also provides an interface to the GPIO pins not used by other\n+\t  peripherals supporting inputs, outputs, configuring pull-up/pull-down\n+\t  and interrupts on input changes.\n+\n config PINCTRL_STARFIVE_JHB100_SYS0\n \ttristate \"StarFive JHB100 SoC System-0 pinctrl and GPIO driver\"\n \tdepends on ARCH_STARFIVE || COMPILE_TEST\ndiff --git a/drivers/pinctrl/starfive/Makefile b/drivers/pinctrl/starfive/Makefile\nindex 6beef7e313ef..33213bd1919f 100644\n--- a/drivers/pinctrl/starfive/Makefile\n+++ b/drivers/pinctrl/starfive/Makefile\n@@ -9,6 +9,7 @@ obj-$(CONFIG_PINCTRL_STARFIVE_JH7110_AON)\t+= pinctrl-starfive-jh7110-aon.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100)\t\t+= pinctrl-starfive-jhb100.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_PER0)\t+= pinctrl-starfive-jhb100-per0.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_PER1)\t+= pinctrl-starfive-jhb100-per1.o\n+obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_PER2)\t+= pinctrl-starfive-jhb100-per2.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_SYS0)\t+= pinctrl-starfive-jhb100-sys0.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_SYS0H)\t+= pinctrl-starfive-jhb100-sys0h.o\n obj-$(CONFIG_PINCTRL_STARFIVE_JHB100_SYS1)\t+= pinctrl-starfive-jhb100-sys1.o\ndiff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2.c b/drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2.c\nnew file mode 100644\nindex 000000000000..d4c2927f1014\n--- /dev/null\n+++ b/drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2.c\n@@ -0,0 +1,102 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+/*\n+ * Pinctrl / GPIO driver for StarFive JHB100 SoC Peripheral-2 domain\n+ *\n+ * Copyright (C) 2024 StarFive Technology Co., Ltd.\n+ * Author: Alex Soo <yuklin.soo@starfivetech.com>\n+ *\n+ */\n+\n+#include <linux/mod_devicetable.h>\n+#include <linux/platform_device.h>\n+\n+#include \"pinctrl-starfive-jhb100.h\"\n+\n+static const struct jhb100_pin_layout_desc jhb100_per2_pl_desc[] = {\n+\t{ .pin_start = 0, .pin_cnt = 15, .name = \"gpio\", .gpio_func_sel = 0 },\n+\t{ .pin_start = 15, .pin_cnt = 1, .name = \"gpio\", .gpio_func_sel = -1 },\n+\t{ .pin_start = 16, .pin_cnt = 15, .name = \"gpio\", .gpio_func_sel = 0 },\n+\t{ 0xff },\n+};\n+\n+static struct config_reg_layout_desc jhb100_per2_pinctrl_rl_desc[] = {\n+\t{\n+\t\t.pin_start\t\t\t= 0,\n+\t\t.pin_cnt\t\t\t= 19,\n+\t\t.drive_strength_2bit\t\t= { .shift = 0, .width = 2 },\n+\t\t.input_enable\t\t\t= { .shift = 2, .width = 1 },\n+\t\t.pull_down\t\t\t= { .shift = 3, .width = 1 },\n+\t\t.pull_up\t\t\t= { .shift = 4, .width = 1 },\n+\t\t.slew_rate\t\t\t= { .shift = 5, .width = 1 },\n+\t\t.schmitt_trigger_select\t\t= { .shift = 6, .width = 1 },\n+\t\t.reserved\t\t\t= { .shift = 7, .width = 8 },\n+\t\t.debounce_width\t\t\t= { .shift = 15, .width = 17 },\n+\t},\n+\t{\n+\t\t.pin_start\t\t\t= 19,\n+\t\t.pin_cnt\t\t\t= 12,\n+\t\t.input_enable\t\t\t= { .shift = 0, .width = 1 },\n+\t\t.slew_rate\t\t\t= { .shift = 1, .width = 1 },\n+\t\t.vsel\t\t\t\t= { .shift = 2, .width = 2,\n+\t\t\t\t\t\t    .func = BIT(PER2_GMAC_RGMII_FUNC) |\n+\t\t\t\t\t\t\t    BIT(PER2_GMAC_RMII_FUNC) },\n+\t\t.reserved\t\t\t= {.shift = 4, .width = 11 },\n+\t\t.debounce_width\t\t\t= {.shift = 15, .width = 17 },\n+\t},\n+\t{ 0xff },\n+};\n+\n+static const struct pinvref_desc pinvref_desc_per2[] = {\n+\t{\n+\t\t.name = \"gpionw\",\n+\t\t.range = BIT(JHB100_PINVREF_1_8V) | BIT(JHB100_PINVREF_2_5V) |\n+\t\t\t BIT(JHB100_PINVREF_3_3V)\n+\t},\n+\t{ NULL },\n+};\n+\n+struct starfive_pinctrl_regs jhb100_per2_pinctrl_regs = {\n+\t.vref\t\t\t= { .reg = 0x00, .pv_desc = pinvref_desc_per2 },\n+\t.config\t\t\t= { .reg = 0x04, .width_per_pin = 1 },\n+\t.output\t\t\t= { .reg = 0x80, .width_per_pin = 1 },\n+\t.output_en\t\t= { .reg = 0x84, .width_per_pin = 1 },\n+\t.gpio_status\t\t= { .reg = 0x88, .width_per_pin = 1 },\n+\t.func_sel\t\t= { .reg = 0x8c, .width_per_pin = 2 },\n+\t.irq_en\t\t\t= { .reg = 0x94, .width_per_pin = 1 },\n+\t.irq_status\t\t= { .reg = 0x98, .width_per_pin = 1 },\n+\t.irq_clr\t\t= { .reg = 0x9c, .width_per_pin = 1 },\n+\t.irq_trigger\t\t= { .reg = 0xa0, .width_per_pin = 1 },\n+\t.irq_level\t\t= { .reg = 0xa4, .width_per_pin = 1 },\n+\t.irq_both_edge\t\t= { .reg = 0xa8, .width_per_pin = 1 },\n+\t.irq_edge\t\t= { .reg = 0xac, .width_per_pin = 1 },\n+};\n+\n+static const struct jhb100_pinctrl_domain_info jhb100_per2_pinctrl_info = {\n+\t.name\t\t\t= \"jhb100-per2\",\n+\t.gc_base\t\t= -1,\n+\t.pl_desc\t\t= jhb100_per2_pl_desc,\n+\t.crl_desc\t\t= jhb100_per2_pinctrl_rl_desc,\n+\t.regs\t\t\t= &jhb100_per2_pinctrl_regs,\n+};\n+\n+static const struct of_device_id jhb100_per2_pinctrl_of_match[] = {\n+\t{\n+\t\t.compatible = \"starfive,jhb100-per2-pinctrl\",\n+\t\t.data = &jhb100_per2_pinctrl_info,\n+\t},\n+\t{ /* sentinel */ }\n+};\n+MODULE_DEVICE_TABLE(of, jhb100_per2_pinctrl_of_match);\n+\n+static struct platform_driver jhb100_per2_pinctrl_driver = {\n+\t.probe = jhb100_pinctrl_probe,\n+\t.driver = {\n+\t\t.name = \"starfive-jhb100-per2-pinctrl\",\n+\t\t.of_match_table = jhb100_per2_pinctrl_of_match,\n+\t},\n+};\n+module_platform_driver(jhb100_per2_pinctrl_driver);\n+\n+MODULE_DESCRIPTION(\"Pinctrl driver for StarFive JHB100 SoC Peripheral-2 domain\");\n+MODULE_AUTHOR(\"Alex Soo <yuklin.soo@starfivetech.com>\");\n+MODULE_LICENSE(\"GPL\");\n","prefixes":["v1","14/20"]}