Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2232224/?format=api
{ "id": 2232224, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2232224/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260504003421.2545713-3-mikhail.kshevetskiy@iopsys.eu/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/1.2/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": "<20260504003421.2545713-3-mikhail.kshevetskiy@iopsys.eu>", "list_archive_url": null, "date": "2026-05-04T00:34:14", "name": "[v3,2/9] pinctrl: add more pinconf/pinctrl definitions", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "99f19b95dc81c57383d794c2f7830b2653178121", "submitter": { "id": 84987, "url": "http://patchwork.ozlabs.org/api/1.2/people/84987/?format=api", "name": "Mikhail Kshevetskiy", "email": "mikhail.kshevetskiy@iopsys.eu" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260504003421.2545713-3-mikhail.kshevetskiy@iopsys.eu/mbox/", "series": [ { "id": 502598, "url": "http://patchwork.ozlabs.org/api/1.2/series/502598/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=502598", "date": "2026-05-04T00:34:12", "name": "pinctrl: add support of Airoha SoCs", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/502598/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2232224/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2232224/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=iopsys.eu header.i=@iopsys.eu header.a=rsa-sha256\n header.s=selector1 header.b=ng45EHDe;\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=pass (p=reject dis=none) header.from=iopsys.eu", "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=iopsys.eu header.i=@iopsys.eu header.b=\"ng45EHDe\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=iopsys.eu", "phobos.denx.de;\n spf=pass smtp.mailfrom=mikhail.kshevetskiy@genexis.eu", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=iopsys.eu;" ], "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 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g82jV08yyz1yJ0\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 04 May 2026 10:35:10 +1000 (AEST)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 2837E84656;\n\tMon, 4 May 2026 02:34:47 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id F35028464D; Mon, 4 May 2026 02:34:45 +0200 (CEST)", "from AM0PR02CU008.outbound.protection.outlook.com\n (mail-westeuropeazlp170130006.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c201::6])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id F419884605\n for <u-boot@lists.denx.de>; Mon, 4 May 2026 02:34:43 +0200 (CEST)", "from VI1PR08MB10029.eurprd08.prod.outlook.com\n (2603:10a6:800:1c6::15) by DU0PR08MB8662.eurprd08.prod.outlook.com\n (2603:10a6:10:402::11) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May\n 2026 00:34:42 +0000", "from VI1PR08MB10029.eurprd08.prod.outlook.com\n ([fe80::5e67:2d67:644b:9681]) by VI1PR08MB10029.eurprd08.prod.outlook.com\n ([fe80::5e67:2d67:644b:9681%6]) with mapi id 15.20.9846.025; Mon, 4 May 2026\n 00:34:42 +0000" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_PASS autolearn=no\n autolearn_force=no version=3.4.2", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=SzfaorUpwVAjjbNqYRrsrAolH04g5OkSWT5GJ6kp6iZF9IsklNRgNb/l5FKm5tun9HTmC7U9XulGOXUQvoK76HqbpmuX+K+sw1jGlrDKnOrKYzRYfMP3pZVtCSfrFFKjFDjYxDQlZhK8aSUMe7C6ZfUjdvty0YeLxfFMIDi+YlEuI+o1BHV7tqACS/O/hbTdTUpZ1gwIsg2811n9Nxc26Tlp2+Ac6gov1QYr2XGPTNeMEdIRJ/D9fSZpq7euluQOkbyW6gD6ga6TXOpv9EaVhuojPlvMHjc4S9/YomWfnLbEgER4f6+PSxpkaW2Qm1RiZ/kxQPSp3++Xc9K3pSc20g==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\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=81mIX4A5l8chV4yjp/FNxXOsXcyzxT8V4QMyBmdXwRE=;\n b=gID+2q0YP/TGLEFIZhnytUzLOIgxm+vSUVCl3kqbNgCCABwngp5Wc942OTRi91nxMEZ/GrkJJqn7RM3/PqDwEmNeA/QhfqQ3F+t3XsKUFyuj9aLFukJVj0fNGiMPz1akbHNQ6x47DYtRbgLtbU6rWOb+L0v08daGa5Qfkr+lASmYB88FHUc1h7WAcNVcV/Y6rhIOZYDESqbP1h2cKmQep2f+1de5JKKyajokpMp1CniKeZToRoEoLp5ZGumzvBdbvl/nqCGLjrvPxcz8axnrYqi6DY7guESYUJZ1nXzMVNAxNj4Lp3hmMASuxKZHoiibyyZumgolOafjLyJj1/Op1w==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=genexis.eu; dmarc=pass action=none header.from=iopsys.eu;\n dkim=pass header.d=iopsys.eu; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=iopsys.eu;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=81mIX4A5l8chV4yjp/FNxXOsXcyzxT8V4QMyBmdXwRE=;\n b=ng45EHDex/AiVJG5u1cqv0SSf4f1r0CTfZxvSW02YnxF81KlraHRSTiuCtR5SW//N5FZDmmgBzrGDL+U7egXhNLj1LXeaPlJ/B3v+n5/UH8hcdPqFlaTXN7y/eMECghRQSj1j7nRKGzQEhY3D2QF5rkX+kHLnaM+UlghM8zxkh9JGVqLgV+S5cciwtBXRbhiUgdR5UD7/5NtGha/Tkgfx2qZr3tsCx+BosmdzXcKVpKjaM+jJ27sTOC6WOpOelCqWxlVCrjmBn9v1FxjduLbH+TuzHjdJiOgzdQlhRXi3KRGyU2h834/ZqHrZvYvMfGQmwiN40WDQj9/WaG+8bYqWQ==", "From": "Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>", "To": "Tom Rini <trini@konsulko.com>, Christian Marangi <ansuelsmth@gmail.com>,\n Simon Glass <sjg@chromium.org>,\n Marek Vasut <marek.vasut+renesas@mailbox.org>, Peng Fan <peng.fan@nxp.com>,\n Michael Trimarchi <michael@amarulasolutions.com>,\n Anis Chali <chalianis1@gmail.com>, Michal Simek <michal.simek@amd.com>,\n Dan Carpenter <dan.carpenter@linaro.org>,\n Sean Anderson <sean.anderson@linux.dev>, Yao Zi <me@ziyao.cc>,\n \"Yury Norov (NVIDIA)\" <yury.norov@gmail.com>,\n Geert Uytterhoeven <geert+renesas@glider.be>,\n Alexandre Belloni <alexandre.belloni@bootlin.com>,\n Crt Mori <cmo@melexis.com>, Richard Genoud <richard.genoud@bootlin.com>,\n u-boot@lists.denx.de, David Lechner <dlechner@baylibre.com>,\n Lorenzo Bianconi <lorenzo@kernel.org>,\n Markus Gothe <markus.gothe@genexis.eu>,\n Matheus Sampaio Queiroga <srherobrine20@gmail.com>,\n Benjamin Larsson <benjamin.larsson@genexis.eu>", "Cc": "Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>", "Subject": "[PATCH v3 2/9] pinctrl: add more pinconf/pinctrl definitions", "Date": "Mon, 4 May 2026 03:34:14 +0300", "Message-ID": "<20260504003421.2545713-3-mikhail.kshevetskiy@iopsys.eu>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260504003421.2545713-1-mikhail.kshevetskiy@iopsys.eu>", "References": "<20260504003421.2545713-1-mikhail.kshevetskiy@iopsys.eu>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "GV2PEPF00023A03.SWEP280.PROD.OUTLOOK.COM\n (2603:10a6:158:400::2aa) To VI1PR08MB10029.eurprd08.prod.outlook.com\n (2603:10a6:800:1c6::15)", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "VI1PR08MB10029:EE_|DU0PR08MB8662:EE_", "X-MS-Office365-Filtering-Correlation-Id": "ff34b7a9-1757-4edd-ab7c-08dea974eeac", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|366016|52116014|7416014|376014|38350700014|921020|56012099003|22082099003|18002099003;", "X-Microsoft-Antispam-Message-Info": "\n lym0JghsFysdFku/1feSR6qBrYn8aB5Bsd0lzfjt2TQQiIxCtC+fNlxh/43C431lxeqWMzWXVLh1vGAO8VR+y90AgLVTybYcelVTOUemrCuD00vJDE9FvHSiNKYpH7ldjvD59MSSzg0OaY6HY68UjAg5ACeK2EC+0uZaooEOwVIHmjEJPTLHukDk8/ELbw567/VcRVwP7Td1fBHt9wMTlRtbHf9975khZhrbCNeWKkCx8m4InnDY03doF/JYyDJ8fN9Sy5U17RDigeea+N8mVzc/kZwSoz0u92qyfkafyJBG/gmfsngLlazJ/2aKokswlNSj/UuMJT+0LalXOtSIdG5PTTEH0m56letwr0irf8EWC8Ae3xmtTZYnpUv+PjGrN7izoRWIkk8h4BmaJFyYC+mzlCOrvapl0/LvuZRjXgmwC7ccqXA8FMYc5iHCy+ZlrAskA5smafTkDnqyxy+tzXRelDn0KAxT/jUMA/aP4lGQ3Q+r7uaCSFM/970ZngoTTjcTN1IoImVjS9+SeJQF/qDlS4cSJEVZ5/yovGbHyzJFbHQBnsp4Qe/R7GnRs5C18HZ17yxCf/6iYYjSz/NmjSmo1EyHtJU7nl9Gkvthqu8BestyANoGMFY07Miz4AtkAmt8AqSlK53Jpyf/4zEBVjqbvunWrrROXBouBpTgVF+U2AQ3AzrxN95d84B4eV/jpUlDYYFJ/zL4RR8WpIs+o3UHUBv8+EWJaKYOhoHpI1sGgGPgR/3CbbjgwUBeUGo/Tb+he/zPkMRXZu9G/Yr6bw==", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:VI1PR08MB10029.eurprd08.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(1800799024)(366016)(52116014)(7416014)(376014)(38350700014)(921020)(56012099003)(22082099003)(18002099003);\n DIR:OUT; SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n JACpzjoJRnOovDF/UbGIvQivl8BigRZsnnbVzq1V4cSTJXs0KaSQwt6iw0ADW5EWsKmKihno6/pe2WkCDqFPePBAJSQsqlzI2LEvWh6rdhrVlSknP9oDeKbv0ym4ytJrMBmat8bOurasf953o1cnZi54ZSFM0yAooZCzxfY7qnCbkh0xRYV/Qe6SkQPIZZCpW6o6etjHkveqkfytkpbSLNhoOZCOu8xAEsUSxF/oGvXk3TT8qJvKEJ2e/sGduy0PxT8cC8ml8SXEK1MlrlH0iR7nU/LAwm2NFcV5PBgwyMptyHAxtwLbV3QvltuGPMJXRjO4Z5dp5ndqsIlqOOlNdjrH27S1Q8FHqT1Ox9OPBztb+RFB14Q69Oy8xvFyYX1IsNNslv2y7pIN27K24o2K3dXhTIG1aYdPwOdRzqXLILK46UTcqhiKMH3SbVKKgI66nebqrDvIf6anFEKW0pEqE9Yhki51yXLazw9TyzPtylPYa31/cUx3dI+IpkAjzjCQjrrZ/a6Ka8djiGE1RtYFmfal9JiyqGgaAqipwG1O4fvXnqjcChXujmwwLhcfWVA90mM1glyX2mneJUfGqUuwjS/aWSsIPt5pLwch8GjgRj8aIQjR4HqbrH1jAE1HicQX4a9yc+QZrMuFQkKqRFPpT/OQJOgNeKfMgGT7MqcZSj4xOWvyC+lnhxOVejyNP3f+cqleKiXMrpxkI50lZrN7NQYgsIIVYXV4ZAmWtiRL0N3625ZF+4Ph3342QWSI3bMVAfT0f/a+k5AF5pOX5nUExdGoYHWF9WLwRjh83DwJnDWQssB/D0PHowLQR++euFPY2NWqSkvjFufQMAtxz6otg2dawMoIDrnZH2v2cbc4UYOk744A7QWCx/mRZw1rDjG9O0iHNpfso8LxAFUCFZ381yEBbigrxfTn2gui6MfubqKMGqoLrKD21bljfSrdfMnNgLlY0MkUd2o5VLgQEeeQ1Pz+BieSigWtiKp8Z3mOz7z1HMQrL9DUbEBfKnQBeZ6xMjUANwQ9hdoWlSsnfe7gFXu8zzWVYWrqly8/nDXsIhCj4AfotuLguPCQxo5MSkRmEF9DXrR4RRtiC662Yf7rdwgaGLIN9khMj3TccjoYp6c5I/cdKIY3tQJip/BXGqin4+WJbPNETA0+YKfE5DC/T8fvR/bLiDwh6i2zVfVMEhcfBPVY43D/DTVv/3ug4kubTRueKAhxfa9iaeTtjsI1mPbP88Qg56ZP6buvSowJeQsDhVOsQk/3D0CNEzI0HdoW6vhQKVdJD5VJkg3dBK3yaWPmEqT6h5N/nxYWrPfhvbTMWaPmJnE8XSaREeiLHdx1WB8gwYdzG0xWIv8Hldur2651GDA6RNygk836jOZebel0M/SfLobXRCEAU0XFEaMqc1YLsu69w8jILBHLxURsMKUzlJoZYXtwiRkY8PkvzQyy1k5+vtUDg0qlJFQCeUxYKKtSsto3ioDbWLK1st2JKvBSG3XgTWxbt+DrhbwuGYphFHDMmLQHfQ/k9GeTlhwig3Khr3omM/SPLbvv3T8TAraVrhqZ9Cr0LlASMQF403azWcAPbZ5PkS+URJ13bp7b3arm0bRLAK++tOnGJ2GtyRtEIAmEQBNaIKT7sbi1sYBWP94BYshgLU/tsWTOtQcuD629SjNXg7No2Aeg3NbnewlAo8jwQliqHurj4stygwCpNXgtmf6UJ2OgVpH4fFTFWG8X6lIofe2hulR1QksEBYfJRiYDSQpEYeYpd7Zhm8A=", "X-OriginatorOrg": "iopsys.eu", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ff34b7a9-1757-4edd-ab7c-08dea974eeac", "X-MS-Exchange-CrossTenant-AuthSource": "VI1PR08MB10029.eurprd08.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 May 2026 00:34:42.0997 (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "8d891be1-7bce-4216-9a99-bee9de02ba58", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n ARYWxZSOF4jHJxgbpKW1gwYfbVz2gOSL4d+lm/eC/6TDFB+8QMxaUP98ypQG2yQ8dL06YXyjFU89BuOiuJ7vpN+guFUJ4z4rKeUgpIVfeJk=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DU0PR08MB8662", "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": "These pinconf/pinctrl definitions will be used by the next patches.\n\nThe definitions was taken from public headers of linux-7.0. It's used\nby several linux pinctrl drivers, so it might be helpful for U-Boot as\nwell.\n\nPinconf definitions are placed near the corresponding U-Boot definitions\nin file include/dm/pinctrl.h. Pin/group/function definitions stored within\nthe same path as in linux (include/linux/pinctrl/pinctrl.h).\n\nSigned-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>\n---\n include/dm/pinctrl.h | 28 +++++++++++++\n include/linux/pinctrl/pinctrl.h | 74 +++++++++++++++++++++++++++++++++\n 2 files changed, 102 insertions(+)\n create mode 100644 include/linux/pinctrl/pinctrl.h", "diff": "diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h\nindex e41baea6200..36db47802c7 100644\n--- a/include/dm/pinctrl.h\n+++ b/include/dm/pinctrl.h\n@@ -481,6 +481,34 @@ enum pin_config_param {\n \tPIN_CONFIG_MAX = 255, /* 0xFF */\n };\n \n+/*\n+ * Helpful configuration macro to be used in tables etc.\n+ */\n+#define PIN_CONF_PACKED(p, a) ((a << 8) | ((unsigned long) p & 0xffUL))\n+\n+/*\n+ * The following inlines stuffs a configuration parameter and data value\n+ * into and out of an unsigned long argument, as used by the generic pin config\n+ * system. We put the parameter in the lower 8 bits and the argument in the\n+ * upper 24 bits.\n+ */\n+\n+static inline enum pin_config_param pinconf_to_config_param(unsigned long config)\n+{\n+\treturn (enum pin_config_param) (config & 0xffUL);\n+}\n+\n+static inline u32 pinconf_to_config_argument(unsigned long config)\n+{\n+\treturn (u32) ((config >> 8) & 0xffffffUL);\n+}\n+\n+static inline unsigned long pinconf_to_config_packed(enum pin_config_param param,\n+\t\t\t u32 argument)\n+{\n+\treturn PIN_CONF_PACKED(param, argument);\n+}\n+\n #if CONFIG_IS_ENABLED(PINCTRL_GENERIC)\n /**\n * pinctrl_generic_set_state() - Generic set_state operation\ndiff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h\nnew file mode 100644\nindex 00000000000..32b56e0ab18\n--- /dev/null\n+++ b/include/linux/pinctrl/pinctrl.h\n@@ -0,0 +1,74 @@\n+/* SPDX-License-Identifier: GPL-2.0-only */\n+\n+#ifndef __LINUX_PINCTRL_PINCTRL_H\n+#define __LINUX_PINCTRL_PINCTRL_H\n+\n+#include <linux/types.h>\n+\n+/**\n+ * struct pingroup - provides information on pingroup\n+ * @name: a name for pingroup\n+ * @pins: an array of pins in the pingroup\n+ * @npins: number of pins in the pingroup\n+ */\n+struct pingroup {\n+\tconst char *name;\n+\tconst unsigned int *pins;\n+\tsize_t npins;\n+};\n+\n+/* Convenience macro to define a single named or anonymous pingroup */\n+#define PINCTRL_PINGROUP(_name, _pins, _npins)\t\\\n+(struct pingroup) {\t\t\t\t\\\n+\t.name = _name,\t\t\t\t\\\n+\t.pins = _pins,\t\t\t\t\\\n+\t.npins = _npins,\t\t\t\\\n+}\n+\n+/**\n+ * struct pinctrl_pin_desc - boards/machines provide information on their\n+ * pins, pads or other muxable units in this struct\n+ * @number: unique pin number from the global pin number space\n+ * @name: a name for this pin\n+ * @drv_data: driver-defined per-pin data. pinctrl core does not touch this\n+ */\n+struct pinctrl_pin_desc {\n+\tunsigned int number;\n+\tconst char *name;\n+\tvoid *drv_data;\n+};\n+\n+/* Convenience macro to define a single named or anonymous pin descriptor */\n+#define PINCTRL_PIN(_number, _name)\t\t\\\n+(struct pinctrl_pin_desc) {\t\t\t\\\n+\t.number = _number,\t\t\t\\\n+\t.name = _name,\t\t\t\t\\\n+}\n+\n+#define PINCTRL_PIN_ANON(_number)\t\t\\\n+(struct pinctrl_pin_desc) {\t\t\t\\\n+\t.number = _number,\t\t\t\\\n+}\n+\n+/**\n+ * struct pinfunction - Description about a function\n+ * @name: Name of the function\n+ * @groups: An array of groups for this function\n+ * @ngroups: Number of groups in @groups\n+ * @flags: Additional pin function flags\n+ */\n+struct pinfunction {\n+\tconst char *name;\n+\tconst char * const *groups;\n+\tsize_t ngroups;\n+};\n+\n+/* Convenience macro to define a single named pinfunction */\n+#define PINCTRL_PINFUNCTION(_name, _groups, _ngroups)\t\\\n+(struct pinfunction) {\t\t\t\t\t\\\n+\t.name = (_name),\t\t\t\t\\\n+\t.groups = (_groups),\t\t\t\t\\\n+\t.ngroups = (_ngroups),\t\t\t\t\\\n+}\n+\n+#endif /* __LINUX_PINCTRL_PINCTRL_H */\n", "prefixes": [ "v3", "2/9" ] }