get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195290,
    "url": "http://patchwork.ozlabs.org/api/patches/2195290/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260210170814.406883-3-shenwei.wang@nxp.com/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/projects/42/?format=api",
        "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": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260210170814.406883-3-shenwei.wang@nxp.com>",
    "list_archive_url": null,
    "date": "2026-02-10T17:08:12",
    "name": "[v7,2/4] docs: driver-api: gpio: rpmsg gpio driver over rpmsg bus",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "4f189043bdafe0969e7ead0cf39c7459d79a6da7",
    "submitter": {
        "id": 74153,
        "url": "http://patchwork.ozlabs.org/api/people/74153/?format=api",
        "name": "Shenwei Wang",
        "email": "shenwei.wang@nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260210170814.406883-3-shenwei.wang@nxp.com/mbox/",
    "series": [
        {
            "id": 491713,
            "url": "http://patchwork.ozlabs.org/api/series/491713/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=491713",
            "date": "2026-02-10T17:08:12",
            "name": "Enable Remote GPIO over RPMSG on i.MX Platform",
            "version": 7,
            "mbox": "http://patchwork.ozlabs.org/series/491713/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195290/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195290/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-31566-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\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=V2aSihEm;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-31566-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"V2aSihEm\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.84.29",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4f9Shg73bzz1xwG\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 04:09:07 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 864A8303EE9C\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 17:08:51 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D9DBD3816FA;\n\tTue, 10 Feb 2026 17:08:49 +0000 (UTC)",
            "from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010029.outbound.protection.outlook.com [52.101.84.29])\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 007A5374180;\n\tTue, 10 Feb 2026 17:08:47 +0000 (UTC)",
            "from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11)\n by FRWPR04MB11284.eurprd04.prod.outlook.com (2603:10a6:d10:19e::8) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8; Tue, 10 Feb\n 2026 17:08:45 +0000",
            "from PAXPR04MB9185.eurprd04.prod.outlook.com\n ([fe80::b4c0:6119:2228:2ceb]) by PAXPR04MB9185.eurprd04.prod.outlook.com\n ([fe80::b4c0:6119:2228:2ceb%4]) with mapi id 15.20.9611.006; Tue, 10 Feb 2026\n 17:08:45 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770743329; cv=fail;\n b=b4YPFoIFuakDR2tlXEGPWdEh4m7iD3puyb2eRua1jMjOegDmeVvwhFRHDLpuOKUAX19Y9Af84qghGsJnYggAc5Is3a3NC9cASQvqDbKpg/96+oM6xAIcWNZpNQTi0O+WzX4Bmwse+Z5W4muefRGRCkhabqKur7FSLck+5Op8UYA=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=YKR8pk3GTrNMy5X+/uzlbfwBZ/xlW65O/vNaqmiAcQnZkHENjb/pcQpp3iQkAukTGByVIe62RYvzKYbysmK2824dnIn+V3KI3j6s95jhmtqrPoGWNwyHIqBd/yUs+q2KbmiherCdTSaaR6Th2BfA+tPGQSpq7APrfRkOBgK/xel4Wj3Hwt8zDuayAawk/QyAIiuldOfH7WL8ppZ2LgLhaDsjzhm+IlT0cjFIhnEddfC4EiWwCrzustKhQRwoYYSIyEMQG1JBuxT3S2YJL7mTXBSRGTf1jfQ3wbM3YEjt2SYD1ijo/9OWbsgBWki2wtFcjghrZlWl9lVzV+6ziXxeqg=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770743329; c=relaxed/simple;\n\tbh=N38VAq6Arjr2X538y88r8z8OjYp8hHe1fL026vSh6Gw=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=Brw7QLG5+TgUMMS5mvj3Xylckmj4nQf1+qXTGbbKLCAQYUKUEpIgMfAMoKoxScfw3ThH0EjkPzXijx5jMCU+mg5KJETMFIiPQSaeua7C0OMgqvnKrxylsqjd3g61tsvWU1zKSskQOvrLaJCqm0u48SX7UaRp8kVx136BUH1t1PM=",
            "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=zTr8k7wuw+cdbwhFl/Ngv2Gor4tOSzMKlKWMPISzeYs=;\n b=WC4qmGilgnsx4zlOT6L2NXGijj1QtFzgDPM/KhTD0sqFo2odtdotTWEtJCXvIaaIvGCCaTdrNNrpWZQg54S1ywz6EvdXil31Kv+6H38LIpI5AYanVT6JxL5cTmCvotTuWa7BWb4w+ii+E+UCIsY2rVpNOkiugcxhmBVcMU1v3NCwPhqxxuHzWus3kBlJWPFiKupZqC9EDbbMSkCgrN2nywJAMg/3zEoUVOwkP49U54nppaIpeJDws9mFNUzstW5OV27I20SgCzFLPfCNnnE+mGsXmy3x4zab5ekFYk+HzndYsi6PWaIVFjP9X8TI2wjPVtSvVv5ke5R0FOQB7diOTA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=V2aSihEm; arc=fail smtp.client-ip=52.101.84.29",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=zTr8k7wuw+cdbwhFl/Ngv2Gor4tOSzMKlKWMPISzeYs=;\n b=V2aSihEmHUaGkpciOri1E7pt02OKw34jLMEzwia/aZ2rcIMcvg5ITMKmKUW0bRDYkZ14kJ5JvvgRcb/kA47MYX6zMZmzEUQDTTYh7k9GIJ4OnWDi8QaTdVFjDOXknYkmYY/l0x676eVkYQdewMNIcEcySfqCtGiT2m6XTQnfQ4R9wrU0xEws6ooS82aGKcE7ZVQdAlys+dfQO+mizEhZw3/OMCBkV/JIz+YekfHN9e730uSzqYRqzjrphywDDgygj12SlmUfnGpnuJUnoMW/7dLDNEneXWMlW1wpv21jVTZTmNy6aIVhOS0OVcT23JmuXb6pNJ7iuInSUFWnn/B+6w==",
        "From": "Shenwei Wang <shenwei.wang@nxp.com>",
        "To": "Linus Walleij <linusw@kernel.org>,\n\tBartosz Golaszewski <brgl@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tBjorn Andersson <andersson@kernel.org>,\n\tMathieu Poirier <mathieu.poirier@linaro.org>,\n\tShawn Guo <shawnguo@kernel.org>,\n\tSascha Hauer <s.hauer@pengutronix.de>,\n\tJonathan Corbet <corbet@lwn.net>",
        "Cc": "Pengutronix Kernel Team <kernel@pengutronix.de>,\n\tFabio Estevam <festevam@gmail.com>,\n\tShenwei Wang <shenwei.wang@nxp.com>,\n\tPeng Fan <peng.fan@nxp.com>,\n\tlinux-gpio@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-remoteproc@vger.kernel.org,\n\timx@lists.linux.dev,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-doc@vger.kernel.org,\n\tlinux-imx@nxp.com,\n\tarnaud.pouliquen@foss.st.com",
        "Subject": "[PATCH v7 2/4] docs: driver-api: gpio: rpmsg gpio driver over rpmsg\n bus",
        "Date": "Tue, 10 Feb 2026 11:08:12 -0600",
        "Message-ID": "<20260210170814.406883-3-shenwei.wang@nxp.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260210170814.406883-1-shenwei.wang@nxp.com>",
        "References": "<20260210170814.406883-1-shenwei.wang@nxp.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SJ0PR03CA0007.namprd03.prod.outlook.com\n (2603:10b6:a03:33a::12) To PAXPR04MB9185.eurprd04.prod.outlook.com\n (2603:10a6:102:231::11)",
        "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": "PAXPR04MB9185:EE_|FRWPR04MB11284:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "df9b8049-9679-4f71-c042-08de68c70c81",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|52116014|376014|7416014|1800799024|19092799006|366016|38350700014|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n eIVOo8ORPy+0qp2DgJqS6UMMNfyXBPFlfaSKjUzrfIPL3jeqF4MUYtR6BfLnWXQIRBiiwoTj9Gpf9j899TM8KOrktq+EmlCa/tJ+p5NYSKxJRp67ETWx8yAScJkeNlBllwY+s/t4FzkcGRcWv2qvtwrwbGlxnXafhz8dnyVh17tf3n8wXT3JGe8mxzya58a4B/HImIq1UEtFV5F4Zsx4kSg0TMh1v9nFIdx7FPHa8VJt7hwK0/aznbmpJ5Kh2K4qYFkyRveXXkpKSzNmtsg8k5ZCWDWsarorqu2hS6Lju/RaXaroobxfq45xyzF1+j2qdlbJgKIXLyC5T+ELs3Tc1H7TKSce7HSSfPbN/DBYi+HZOLhs0egOreO3vLbrcQMb9pTC/4TVINIlnqPFHooP4XANBVnildzLIP1ffbfvvRnWKizjRawt0t2XR/tGdHDgp7CAjUi8nRomVQTHPwy9ZvzMuvURz1WkffWl6P19CdKbBwFslz6zhjqMQnQJui/ODF6/Ov0yGVWJbY7mn1QT8mjl7atSbXk4siQK4CzkacGl5IMVQ21yg8oaA3YNgEzR2QSWiCatE5+O+kTA9pSsoltEQjSQSqjyxjK+OnfRbKPGvCWS1GrKVifGPj4sDO3jlq5HITS3nFx27v8OB9OFL9LloQEdIZBNi0bEdq3gBL8uCtNhSvaK7fR/LcC86n9uyLHpnwQATpplT4aUVTYb3+RShw6DokPpUXfp491Hqfm98oNXLtiKoxUEBaVGgmCSe9DRzGnpTJhs3q9y+rTjLCBuH0K+keM6sA1vN/MlzgDv3oDaoP04qfG2S5FG+AKmgJLlqOB31Do++hRsawKD+H75ei9WVauzxRfhfBYBI6i0fd3djEFxAvEoxuEJPJG15WJ9fM1cfIKEY9nInPq/sHFh1lB1G0lSk9pWU3XC/YnahJG93Ym4iOuVKYDnxsAn7IYBYyTub1jvBkdSRArYu0Mw41K+GX8Rw4gSNcS2n3n+0SvUbS+RK8sSxIO0t9+hzMRDvKrx9t0xZN+BHkLfmeYf/8Yx1dR47ztSqW9hDXKkpI9petjbsv5egdBUDUR2YMNyOJrGEjzj12MTVm+dD+oZQ76ypX8P5IEXzzwsu0ejmojwxBQlO7wICJP1tFxdpYU6IaJVsJBVTb7qA6zRJZbEr13Cav3M1Wrmne+lc89XdAG8bGlGYFyxUfCJ2wMR16TH13aHl+tsUIkBanw0idsRDG8oVcimpF/aBJi2UlVfSM22VaD4DIqqPw5LWrP7nom7Py6xLnt8Rd03nePruaFgkG9IhMgp8FF+pWhXFFrQz0NWM91ziKASAw50F/Xf2rn5lI2uvSo/KVORiYn/EoF26hVfv0s8Yz5sd3P1urQXU/pgfKy55bp2ShTsiVe6gH/eLf18YDMLJMd737YDYq8HrRQVrMM0x2/6DFgDoxnuQj1zAKp9nwwBOVTffaCqYV7YnJKqeztE66uvjWazapKccApovpuNSlcx9bq0l832s6RnZdpXIaa2Tqgp4MAaYTgdZrZmV99D3Le8n0IXmZwwc9SDszGniBQ+IXQLsaAQ7IIDApFjTVVwr3g+pZetzGbvCMsu5CfrJZSjw92R3v4vP0pGrMMCf0C49tuxKMLpaMPhTdZTA7EQms2bUoWi",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(7416014)(1800799024)(19092799006)(366016)(38350700014)(921020);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n U6xm5nE9e9hCd2PvGXEkAjPWY/LCHNaD2zFc9tMSvl+0YCBHIr1gHhD8O4XdoMQaMsVaCZWUN6YvS9cN2QkTTNgihlTWJrdB/nvEv/Kh0kcZdiAyKsj9A6NsRbw9eeEHGLyIaehlxAsdnOfdkHScWYZldG0ZG6pI2Pk9bs+fFHhd6BhGRJkoM8wV+2eOWkB7mg8alAI0DE4vYjKREOQ/n+c8SRTpk+E6jo7i6ILvnRB8sYSSA5bWjf0xpLnmDKBzQxeQFHKSfNIWnibSpdk9JC8Tz22e3ueuas0hF0aagJ3d0jw/Pp41kioedaZ/U+w09Cu/eUHPwIvkq1S4B1dTKvbN8MLopzRy2NzjyG18jdq7M8Wee12EHDn26nDXX0toTGWIyDmtCp2qlGe/j3pUjdDHYfAxORc9IcNE+rMYnOS3FoJv4Ns3JfHmoJyDCTkuTJOTUPCULXExbCtWNqmeFpAPCbSbRj3wksU/+qR610fIhi9QcOU+qcboX4uBLHBm4k32WuxGcT7oG94Pj28Ct4em2hN3kOQ5l9teEsQhExRX+mW4ZTp4SbLpp1jCFQ85Ig/eskOjGiTX8h679LDVM0gcEwMo7JHcf92cU9kQTv3EI5FxzeA1uPqKkUojuQsUvCyF7YYoXySW7bAFndBg8OdGply9QkurNv5xxvSBZ4KEeKFevi3BlDEQM8AlazYwgerO3hkw7brp3faoIKB4fqsAZV/q+R82VRTBxWdjWRPXsafHDxFkMdenDCS5gJR4BdYOEG5x7Sdh5K7lFaJyNIi/0dvlasKOY5/+qKDTOvscwV8uKQVhKIBFXCnj4Y2mANq11GyAxirahs17OK8rOtN3pJR2k+cmtoauqVCAnwGD+t4iNQkjV63yb9JvM/uThmoLgn3DiNWz9ltl4xgMsg4Q7byRO62cdDR346unnRFm5DN65DueharQVsgPQ1B+MHHLikW5hhUZSdHYNbRg8CLiEUaakx6famW4144jxxQ7PLUrIe2wmpY7EX5XwfpwLYLqHMtXPBN8mqXF5aBZ7+12ehMYlzQstbOWLkl2tUdlxoow0JbBb9VQNBerUV6JeIqlti9FUC3XVUaPKWUN9iP0lkupZ7SZqiNMnYbqfKXNOmYPQyEQqSSPs9Cnr24I/qVAUAl/s8KkVS34xvecmxlyAkjK2tXQwPnmMMNflgL2h5aYiIm6Zgs1cB/y2qxoU/RK2aZMsyOxL4YyNCxy+hj2pGG8s0xfK/Hr9I/0clMRzQfz0RdAEajLQLJpRiiYDiw7FoHRvnic718d/qUHmlj6ICHR4Q2il9C4I3+XXSLQlaeV07arkl+ewLVdgaccz3iMkcoI5RF+3W+Y+CFd4hOcdexMWdi01qq4dcmEHoFp7qc4x6/GLd9/nxOmCf8Oo/iuNkVws9fKll7jrh7xgCOKnGRAAl6S7oVA67zkvju2ERAmJVR1aauuXbxVri4MloLoHlle/zUN3yECwQDZVOEb8FX0ySINMIcRSVNu3MlG6a/PgQPTP1tsvcRxOYbYnw8pOW0yR1Qe96MFzSGu46Bd5TID0aWYIi9mtn8KiaTbPNmFXAHR3vzwPysXE8kd5YpU9o5tOXis9n7sZbYH+Ib7mGh3Un+7HYFXzVJNrmsSCqBVbB+lBdZePHkSN/4pBcKUL85CZCqNSoHT9Vr2T4dXXchZrPJnwqkXEjoW0q7jEcts2q0qic5jYg1kHUiFfBP4BxAjvMNdTNdpRUCiPg==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n df9b8049-9679-4f71-c042-08de68c70c81",
        "X-MS-Exchange-CrossTenant-AuthSource": "PAXPR04MB9185.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Feb 2026 17:08:45.2256\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n rSSsaP3mYXLEF4aLDN+xoR1m6ulAUr9bMXw7qaDu1xcFaxiuMgrAppXBlyxNZJANRShia3+GFYpVyG2VpDOC1w==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "FRWPR04MB11284"
    },
    "content": "Describes the gpio rpmsg transport protocol over the rpmsg bus between\nthe remote system and Linux.\n\nSigned-off-by: Shenwei Wang <shenwei.wang@nxp.com>\n---\n Documentation/driver-api/gpio/gpio-rpmsg.rst | 236 +++++++++++++++++++\n Documentation/driver-api/gpio/index.rst      |   1 +\n 2 files changed, 237 insertions(+)\n create mode 100644 Documentation/driver-api/gpio/gpio-rpmsg.rst",
    "diff": "diff --git a/Documentation/driver-api/gpio/gpio-rpmsg.rst b/Documentation/driver-api/gpio/gpio-rpmsg.rst\nnew file mode 100644\nindex 000000000000..6964de309471\n--- /dev/null\n+++ b/Documentation/driver-api/gpio/gpio-rpmsg.rst\n@@ -0,0 +1,236 @@\n+.. SPDX-License-Identifier: GPL-2.0-or-later\n+\n+GPIO RPMSG Protocol\n+===================\n+\n+The GPIO RPMSG transport protocol is used for communication and interaction\n+with GPIO controllers located on remote cores on the RPMSG bus.\n+\n+Message Format\n+--------------\n+\n+The RPMSG message consists of a 14-byte packet with the following layout:\n+\n+.. code-block:: none\n+\n+   +-----+-------+--------+-----+-----+------------+-----+-----+-----+----+\n+   |0x00 |0x01   |0x02    |0x03 |0x04 |0x05..0x09  |0x0A |0x0B |0x0C |0x0D|\n+   | ID  |vendor |version |type |cmd  |reserved[5] |line |port |  data    |\n+   +-----+-------+--------+-----+-----+------------+-----+-----+-----+----+\n+\n+- **ID (Message Identification Code)**: Must be 0x5. Indicates the GPIO message.\n+\n+- **Vendor**: Vendor ID number.\n+  - 0: Reserved\n+  - 1: NXP\n+\n+- **Version**: Vendor-specific version number (such as software release).\n+\n+- **Type (Message Type)**: The message type can be one of:\n+\n+  - 0: GPIO_RPMSG_SETUP\n+  - 1: GPIO_RPMSG_REPLY\n+  - 2: GPIO_RPMSG_NOTIFY\n+\n+- **Cmd**: Command code, used for GPIO_RPMSG_SETUP messages.\n+\n+- **reserved[5]**: Reserved bytes. Should always be 0.\n+\n+- **line**: The GPIO line(pin) index of the port.\n+\n+- **port**: The GPIO port(bank) index.\n+\n+- **data**: See details in the command description below.\n+\n+GPIO Commands\n+-------------\n+\n+Commands are specified in the **Cmd** field for **GPIO_RPMSG_SETUP** (Type=0) messages.\n+\n+The SETUP message is always sent from Linux to the remote firmware. Each\n+SETUP corresponds to a single REPLY message. The GPIO driver should\n+serialize messages and determine whether a REPLY message is required. If a\n+REPLY message is expected but not received within the specified timeout\n+period (currently 1 second in the Linux driver), the driver should return\n+-ETIMEOUT.\n+\n+GPIO_RPMSG_INPUT_INIT (Cmd=0)\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 0   | 0   |  0        |line |port | val | wk |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **val**: Interrupt trigger type.\n+\n+  - 0: Interrupt disabled\n+  - 1: Rising edge trigger\n+  - 2: Falling edge trigger\n+  - 3: Both edge trigger\n+  - 4: Low level trigger\n+  - 5: High level trigger\n+\n+- **wk**: Wakeup enable.\n+\n+  The remote system should always aim to stay in a power-efficient state by\n+  shutting down or clock-gating the GPIO blocks that aren't in use. Since\n+  the remoteproc driver is responsible for managing the power states of the\n+  remote firmware, the GPIO driver does not require to know the firmware's\n+  running states.\n+\n+  When the wakeup bit is set, the remote firmware should configure the line\n+  as a wakeup source. The firmware should send the notification message to\n+  Linux after it is woken from the GPIO line.\n+\n+  - 0: Disable wakeup from GPIO\n+  - 1: Enable wakeup from GPIO\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 1   | 1   |  0        |line |port | err | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **err**: Error code from the remote core.\n+\n+  - 0: Success\n+  - 1: General error (Early remote software only returns this unclassified error)\n+  - 2: Not supported (A command is not supported by the remote firmware)\n+  - 3: Resource not available (The resource is not allocated to Linux)\n+  - 4: Resource busy (The resource is already in use)\n+  - 5: Parameter error\n+\n+GPIO_RPMSG_OUTPUT_INIT (Cmd=1)\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 0   | 1   |  0        |line |port | val | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **val**: Output level.\n+\n+  - 0: Low\n+  - 1: High\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 1   | 1   |  0        |line |port | err | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+GPIO_RPMSG_INPUT_GET (Cmd=2)\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 0   | 2   |  0        |line |port | 0   | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+-----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D |\n+   | 5   | 1   | 0   | 1   | 2   |  0        |line |port | err |level|\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+-----+\n+\n+- **err**: See above for definitions.\n+\n+- **level**: Input level.\n+\n+  - 0: Low\n+  - 1: High\n+\n+GPIO_RPMSG_GET_DIRECTION (Cmd=3)\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 0   | 3   |  0        |line |port | 0   | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+-----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D |\n+   | 5   | 1   | 0   | 1   | 3   |  0        |line |port | err | dir |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+-----+\n+\n+- **err**: See above for definitions.\n+\n+- **dir**: Direction.\n+\n+  - 0: Output\n+  - 1: Input\n+\n+GPIO_RPMSG_NOTIFY_REPLY (Cmd=4)\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+The reply message for the notification is optional. The remote firmware can\n+implement it to simulate the interrupt acknowledgment behavior.\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 0   | 4   |  0        |line |port |level| 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **line**: The GPIO line(pin) index of the port.\n+- **port**: The GPIO port(bank) index.\n+\n+Notification Message\n+--------------------\n+\n+Notifications are sent with **Type=2 (GPIO_RPMSG_NOTIFY)**:\n+\n+When a GPIO line asserts an interrupt on the remote processor, the firmware\n+should immediately mask the corresponding interrupt source and send a\n+notification message to the Linux. Upon completion of the interrupt\n+handling on the Linux side, the driver should issue a\n+**GPIO_RPMSG_INPUT_INIT** command to the firmware to unmask the interrupt.\n+\n+A Notification message can arrive between a SETUP and its REPLY message,\n+and the driver is expected to handle this scenario.\n+\n+.. code-block:: none\n+\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+   |0x00 |0x01 |0x02 |0x03 |0x04 |0x05..0x09 |0x0A |0x0B |0x0C |0x0D|\n+   | 5   | 1   | 0   | 2   | 0   |  0        |line |port |type | 0  |\n+   +-----+-----+-----+-----+-----+-----------+-----+-----+-----+----+\n+\n+- **line**: The GPIO line(pin) index of the port.\n+- **port**: The GPIO port(bank) index.\n+- **type**: Optional pamameter to indicate the trigger event type.\n+\ndiff --git a/Documentation/driver-api/gpio/index.rst b/Documentation/driver-api/gpio/index.rst\nindex bee58f709b9a..e5eb1f82f01f 100644\n--- a/Documentation/driver-api/gpio/index.rst\n+++ b/Documentation/driver-api/gpio/index.rst\n@@ -16,6 +16,7 @@ Contents:\n    drivers-on-gpio\n    bt8xxgpio\n    pca953x\n+   gpio-rpmsg\n \n Core\n ====\n",
    "prefixes": [
        "v7",
        "2/4"
    ]
}