get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2232224/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2232224,
    "url": "http://patchwork.ozlabs.org/api/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/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/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/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"
    ]
}