get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2229663,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2229663/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260428153448.980150-2-mikhail.kshevetskiy@iopsys.eu/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.1/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
    },
    "msgid": "<20260428153448.980150-2-mikhail.kshevetskiy@iopsys.eu>",
    "date": "2026-04-28T15:34:43",
    "name": "[v2,1/6] pinctrl: add missed pinconf/pinctrl definitions",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "99f19b95dc81c57383d794c2f7830b2653178121",
    "submitter": {
        "id": 84987,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/84987/?format=api",
        "name": "Mikhail Kshevetskiy",
        "email": "mikhail.kshevetskiy@iopsys.eu"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260428153448.980150-2-mikhail.kshevetskiy@iopsys.eu/mbox/",
    "series": [
        {
            "id": 501878,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501878/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=501878",
            "date": "2026-04-28T15:34:43",
            "name": "pinctrl: add support of Airoha SoCs",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/501878/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2229663/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2229663/checks/",
    "tags": {},
    "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=qgId7s8l;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; 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=\"qgId7s8l\";\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\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\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 4g4kym5JV3z1xrS\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 01:35:12 +1000 (AEST)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 81C29843D4;\n\tTue, 28 Apr 2026 17:35:06 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 3D94984605; Tue, 28 Apr 2026 17:35:05 +0200 (CEST)",
            "from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazlp170130007.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c20a::7])\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 6A0B98426E\n for <u-boot@lists.denx.de>; Tue, 28 Apr 2026 17:35:02 +0200 (CEST)",
            "from DU2PR08MB10037.eurprd08.prod.outlook.com (2603:10a6:10:49a::20)\n by PAXPR08MB6720.eurprd08.prod.outlook.com (2603:10a6:102:130::9)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Tue, 28 Apr\n 2026 15:34:58 +0000",
            "from DU2PR08MB10037.eurprd08.prod.outlook.com\n ([fe80::3c7:6d2e:8afe:e4dc]) by DU2PR08MB10037.eurprd08.prod.outlook.com\n ([fe80::3c7:6d2e:8afe:e4dc%5]) with mapi id 15.20.9846.025; Tue, 28 Apr 2026\n 15:34:58 +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=nIERwPAP8186xkf1//oODerdQI2JKbBcMdsKn422flsQUXQyi8ujn2uakPR66uZWtaXN31O/imUIkH+c4KM2KANQ6Q5M2391L2x1cOk9W8hiUhFHiQ+zE04x4+eePuf8s6XYC2RWpCX/KHOtZ9BPegwioH7HPIUmZLr99T2vfyHi+nqDL0IM5/dzSCmhM4QQsUWKwEe+xql022fo9+QOaERI0uLt+pZabNEGp24BqmiSFsX1mHBLhZdFTvt29xsabbjJrHF1S1Fkvz2MpAOtDMlOgB7odNEqOsaU/AkJkeN6qI2TbKC3KohUskC0WOtZjxm5IOMsiN7hLEHl2SiSxQ==",
        "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=jS1OMvRLFgeFb1d5XZEmq0MIIflUA4UlylOxNmmYhV8=;\n b=aq6dpehgkYKd08DHaW2QYnoyiV3ElZCVJHn8T3ZozhagBymUSxIVvRYUi11gRISzx7Glygpvi+weB5U1+vQAe132JX0hPZrhRduLqoKna1QKb2DI+nWaGYxGZy909bq4SDc3+Y+o3eBa0KzbfYZwvep9CXPXJlKu/qucbs/MbW+UIZT/CWPO/uKZHJB5iyCsuh7vRiLFI5DG1n7ukIcjr/DMewsqKoLX/KTiJAupZko8CdcnurNkUaF845bU9OfVqKbTQDArS5Qyc+nKPJhQCLRjQIoA1G4bWfPUijv0vlIcorByLKCykh0UlA7GVUvGQhBOjawYh3SH4U4rjemdkw==",
        "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=jS1OMvRLFgeFb1d5XZEmq0MIIflUA4UlylOxNmmYhV8=;\n b=qgId7s8lEe640UHI3jz1k1mn1Qe0D48eBez/2h5vdKVMUdGmju0PYl6GuJSlyxEwCiOQvak/vnlnocb0XTGLqSdvgBUkDBHSJeAAQfoLfoGUv0SsAAjh8pps0KPqpUwUeFBgBmGl7hf3a2AE20d+NDQ6OuIyjX7wHfKswvA4k38kFjiPTSB8R0B1wJ/TPcmjJ2linblgQdOO5u6RwymlyKbuTu1Tf/61pW0PkGNEAAG7VGMaxENF3mtdAEG4okHxBRCUOJno3Zf6/9pjaPYrNSeG7DlTtSYW6VS6sm4+18UavmV14eRB7XXPfDKbudYwFWmUyOiUFAjbLe4a79bhQA==",
        "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 Sean Anderson <sean.anderson@linux.dev>, Yao Zi <me@ziyao.cc>,\n Michal Simek <michal.simek@amd.com>, Anis Chali <chalianis1@gmail.com>,\n u-boot@lists.denx.de, 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>,\n David Lechner <dlechner@baylibre.com>",
        "Cc": "Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>",
        "Subject": "[PATCH v2 1/6] pinctrl: add missed pinconf/pinctrl definitions",
        "Date": "Tue, 28 Apr 2026 18:34:43 +0300",
        "Message-ID": "<20260428153448.980150-2-mikhail.kshevetskiy@iopsys.eu>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260428153448.980150-1-mikhail.kshevetskiy@iopsys.eu>",
        "References": "<20260428153448.980150-1-mikhail.kshevetskiy@iopsys.eu>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "FR0P281CA0078.DEUP281.PROD.OUTLOOK.COM\n (2603:10a6:d10:1e::17) To DU2PR08MB10037.eurprd08.prod.outlook.com\n (2603:10a6:10:49a::20)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "DU2PR08MB10037:EE_|PAXPR08MB6720:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "c51f8a06-eea9-4ba2-6c31-08dea53bb43d",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|366016|376014|7416014|52116014|56012099003|18002099003|22082099003|38350700014|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n mt3CnNTzBvUkppho/zmzoezQvbpU+4iigtihaWFa67bmVmbyMXmADQDD5vsm4igC7yTC3cjnfT6RkkFvpOMa2v/aLF5I1snm7vRZiazDoVibIBnwo6rvu8ifuTvc85irSEDuKFcnlm9ZKdUQDOJkrCBi9nrGtNUUzaKfNHOG9uiwRM8uf+jm9uyvXV3m1rLezp8IoaUGNJR+i41BWNvue75agNyh/0Q6HJayonu9zB3FMPYzQc6chZzE+xrrK8gwDNYOKXfvnDrnw4KxFxJAxh2V4qQ6wZjk/uW8vb7DEvvN+Yk9x+QGrE4YeL7k3JIV063aHE1bR6A+TjmNAWYmSffD/LwN/rhZtqJC4ut2h4idHIUS/KXejlUmG/tLpExxIA5BuypbcZKik2LryxKuglI19xQmzM867Y7FP/ipsVCH2PzOn0Ot5LqPciA6QoG4avurWGrqGQVzSYbTbLQ/7m87kDC65azHLh5uv8NENYhAHCGLeCdJGLUN/Y6wkyQ3Q5F19+DcsuFKqYwmJFzkB7lgAsBJrBma5LrZneizj9FHCRYRe+rqqkehs1DMaQ2fv/nXn9hZyoQnHUcpLTvHajs7XFZdP2zUwSoZC5OPrhc0I7vS36Giyy6g356JLJqHiKA0U5a/qF08BiYaGj0uvAXcpBGbGN8HfV8mtS2OOpskg+Bi3881CoNJactT/iPGb+ZkstTqA1HZ4sETrhesk6wzHGHswYEpQnzluErU/2n7TKR1q0JqLrVxoQQvAAe8g6Kuqt31/zs98pHJi9IeNLz9KsugHa0azjqeb6pQQbeCDSzCxzjHtTtWo+DsK5S+",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:DU2PR08MB10037.eurprd08.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(56012099003)(18002099003)(22082099003)(38350700014)(921020);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n 5bwieUyJWFfCDTtziTq9MSfMp6mOhui3x9PRuDySL5UFaTqxiSO2iQyBStkqvrnUWZ8h8TvF6DMwuW6nIbzZaFW2TAxk7OL8WTN8m5JFP4dYZ2EHkxLGiKrWgkR4VnbEE67/A9ZSgRMC/z9mtMV8EuItM9e0fylsgtTFHGHKdywl0NsLv55tBYPDpXOwRvOziK/gLdtUcpeu7yxb3f2b9E0xOsV94q1yRGKwfRD/7BnTDUjkNTXt0FCDWRwbCssVdTlkMKwuQBIKdbDP4mn5aLhBuoLKY9s8fJC02ca7UrQDyFCw5h6gkEabSe1YfJCAaHDnwqvQQGFRY7YwHttKr/BQUhdZkhFSv+y6NEmeGOLZsJ66KjRqwlpxIKTFO5ohNqZz/R0z6az94wDimMrWDe0vrgdzfJuw4qXT2eLBRR+TlhhES34fDIudwElPhnlVP3DcCHdh5OhxXLT599QVcS03GqdmFVKjLqBEIrWqloXCRdUzqATYftwAz1QR44GDlXLzcZJyrpkewx3iA4qpQFPU1amoPtbHM40vLc3rQ1tFl/05+jVm0u5e9HwQguJ7kwLPy32RoWGoNwa+KtZ63JByfTJpz8XP0VHBzTLQkARtDckydVVHJSa2YGVutJsLBa5KyHek2762oq7kr1kaEvtvr9Rd9HHzxdWgq86y2kpQIYIYx70SKPwhh5HB/E5ittW9UyvbWb2ry7jo9G6Rs7z6JoFjsKzP5o1qg0SdqRMED9jtUnM2VXp3i3ENKj1ov7jQDganSwyJeEcTs4B7U0MUpYLInoxOWw9ORb4rlX+URI2+hMetRqEz/QWeJP1MwTVksw75HTvDGVcbd9hCzVfkCpfpTdswTHAQmNgqyoUHmDzK32+JH5UsRCN6lB3xQ/ooOhvwr+kVQzNumsKDoARE5qZcDzmkG2EEddVfo+Y68RikHp7g1LHeRwwC3EGpikx1yxtxYd2ChJiBSo41G/GPkwo+vbhoc4mMNngjRsPUseuiMfzSErouz0yvMO/ki45oLvu5RlKrsCspOhjPVL+RoZYZceWypLScXNPVDSQrKjBYG8P0sc3dseGmHfwL+Jkn+8BZErvMEjVwzW1hLhAOuGyeb0Tjt5QAOVIaUOd+D46keLJWhCtnbPaI+jHtRb6W8+CPqwxZHKArg9L3fVwfzi1yH8oliJ3HVpX+Cmbh5ElAH/CeFW1vhuyA3L7xNMWIiaykwzKVY1zL3h5Bz8GraiRCisOQDsryy5u2mByxxKYVOT1DzN2hgZchuohgomDuqkLMNRCjw9DoRZqZxw9mFy4IGrJfazQvntlj5BOKkU2PQkKYrTuTqEEEeliNrMbALTRy3NYE4eV9UL5D1mhI4UzUvPLsdNjAnzYbYYGJswNDEcrEGoHNnEzKBRL3NiH/X6s67MDTA9vHWgEJ1MY5Py3gjBEpzluH3tCrCgojVDNLoXWq3XpbOddixkuBNy4LHb4EiKO6JsY5lq3m6NYyRgkjVlBRDOWBWgJqjweSTPOLZAs+jZA4NDRb/UuekbbCPguSywsFH1LRX7o4gpTnVxhqlpB0EOoTQuYN2shgZkXJhxRMubit7fzyZnRFUD8vKMA99l/xl3iEFsDhSwCQg5S4j1BeqV1HQwHr5ZyX9L/BQAyeejExJ4/VsHRkwSRiPyHuwVZYjCmT7h0A4PBVEOHyVczerafloeUGWiWfUwvEO7e0SjSWiGtch4fEFF69C1cw8aItrtTd4cb0h1prHHS1VnDbSsQRBlS3syI=",
        "X-OriginatorOrg": "iopsys.eu",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n c51f8a06-eea9-4ba2-6c31-08dea53bb43d",
        "X-MS-Exchange-CrossTenant-AuthSource": "DU2PR08MB10037.eurprd08.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "28 Apr 2026 15:34:58.0167 (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 FdK0uawfjy/jgYVTMeeQPCU1MOuSq6LmyxZ1ajsnQ4xTgSUxFirItrLg+CDYen54Gf9VM3JuZx0Qe3QC0SXXxssQD7EO+PkJF54oGYpDhb0=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PAXPR08MB6720",
        "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": "The code was taken from linux-7.0\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": [
        "v2",
        "1/6"
    ]
}