Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2226904/?format=api
{ "id": 2226904, "url": "http://patchwork.ozlabs.org/api/patches/2226904/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260422212849.1240591-2-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": "<20260422212849.1240591-2-shenwei.wang@nxp.com>", "list_archive_url": null, "date": "2026-04-22T21:28:46", "name": "[v13,1/4] docs: driver-api: gpio: rpmsg gpio driver over rpmsg bus", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5c987b32cb8a9319b12dfc22669077db7809e8f4", "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/20260422212849.1240591-2-shenwei.wang@nxp.com/mbox/", "series": [ { "id": 501113, "url": "http://patchwork.ozlabs.org/api/series/501113/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=501113", "date": "2026-04-22T21:28:45", "name": "Enable Remote GPIO over RPMSG on i.MX Platform", "version": 13, "mbox": "http://patchwork.ozlabs.org/series/501113/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2226904/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2226904/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-gpio+bounces-35376-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=kVBbLuOx;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35376-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=\"kVBbLuOx\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.162.33", "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 sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::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 4g1CBv6ksgz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 07:33:27 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 1E2EA3086899\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:30:23 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 26BBD376BFB;\n\tWed, 22 Apr 2026 21:30:22 +0000 (UTC)", "from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazon11013033.outbound.protection.outlook.com\n [40.107.162.33])\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 53CD6373BE7;\n\tWed, 22 Apr 2026 21:30:19 +0000 (UTC)", "from AS8PR04MB9176.eurprd04.prod.outlook.com (2603:10a6:20b:44b::7)\n by PR3PR04MB7449.eurprd04.prod.outlook.com (2603:10a6:102:86::7) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Wed, 22 Apr\n 2026 21:30:16 +0000", "from AS8PR04MB9176.eurprd04.prod.outlook.com\n ([fe80::ba87:1cd1:53d9:fcd7]) by AS8PR04MB9176.eurprd04.prod.outlook.com\n ([fe80::ba87:1cd1:53d9:fcd7%6]) with mapi id 15.20.9846.019; Wed, 22 Apr 2026\n 21:30:16 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776893421; cv=fail;\n b=atR7ezAmYPxA+HyacK1eaYoBhrD1YzCfBBQ/DgzOimh9zntOPVB7IvcxJVVbgAaNhhsbsHWO1OyBsRfmHuWftUNfjZtRqlJxKF/CdPLPx1RBaOUxMjSpKODQzOiKxhvK2PGP8VKfOmbHlZtvaJ7nBjjj5Z1G6C5LHrUuGGJlExQ=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ay/0vmxmo1vqj3RiYFLrWj5R3Twh6ug1sfqwYhw6MmR+z06sulDBinAPfu81qCS141eVYoq4jgD55hGBVF5CYy1CBjgVE84shdlOwrC3cZVt0cFkpW3gqUY8oOGKbXvNgE6f74rv9lE7KKMFs3FehD/9eRtaZRUzkyYXjvjwNwyOIVfTkAOtchBeXi574rVBK4Y2s6nBOevJPkAoeUkBg6/CxzHWbvIHFHzB0o8ZQyJffg12bA5540YF86MLudoRx1tznMU28lF5jGn6P8F8rOpMJHb1QacliTCAFOSSVBBWi7SOlgFF/mz/E0+a2ZVuriOklNA2MMcCjqj/wZ3xXg==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776893421; c=relaxed/simple;\n\tbh=Sq6M/k0DD9yIAkOdFeotr8JNq5GxkDqXAKkY8xcFaCI=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=t3tEMa8T8Cjwtamoj7+zYsFHJ4gF891qMMUkzRHc+AWDkQrmkpaiTcMNFDgxoIxbOMVugs+XRk54YzcVSM2KZRu8JyLQjVVmo10qcWjXUFbbFnRtDXHHTvt3AN+u0FAyEp/gNzwqLgdyF0PbDZz4Q5ugfyP3NFR9wBEUnliL5n4=", "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=jKHDLdvg1YJf9UnmktdQnTqEYCINMhF05ST4Y7Kk+6Q=;\n b=OxCx0aruffkAJx2UD1RCwMrc1f9NscLC+U4Fb9fFqcgP+X+jvAraL6xadRTomQUavogUhx06yhSh7fZeWCSjS+kuyMRgpSFzuKJyYfyVeIcJaVcHsuu1n5j23X2Dx4b+eFoDkdcD56D/49fZBLLe1bQVrgs2U92l6VkQMhFwTXvtOtPxGocVqNcj6yzVT0eRQlnsrCZjHT6eBCPwKSoc6ag6+nrqqM+BiNCDWC1rx+PxmIiMkb/MRIMKWAHzUaNXAgLtVSSPwWh4qWt75LexB8eTqugsm7a6yKU8Pd0/B9zpXUqS/MCwH82cGMfqIJk78DCluSaiP3c4sc1SBioJHA==" ], "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=kVBbLuOx; arc=fail smtp.client-ip=40.107.162.33", "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=jKHDLdvg1YJf9UnmktdQnTqEYCINMhF05ST4Y7Kk+6Q=;\n b=kVBbLuOxnvTqmAfqOzzk4Vc3UIeq4J5hLZXiqRIYogn/m/0w332XJHbQJRC3YlGOFg6KfiNn2GZ5OUbZLyKJ2bXTCe33Sm1ZRU1AvW0IuAzkzjU668HASzBOqHT1axpRh5aN2ODinTcgFTjAncNgMFEGqtdeu28kYjA29qhMR9D6nYrJG0iZyAn3a2AaTfoKiragrL2lILBBZDD6RCbZxXODDqmLogUYp9cQZBljUl49GpBkuWTTP+pCD2vcGqGpd4czmRbjfy23hwPWqVv2WD9mfVObpCPFz9wBYkV+HeR2r/3XxBpraR9WV/AyuGp7mRbz5OM7THLRtbaqa9CEIA==", "From": "Shenwei Wang <shenwei.wang@nxp.com>", "To": "Linus Walleij <linusw@kernel.org>,\n\tBartosz Golaszewski <brgl@kernel.org>,\n\tJonathan Corbet <corbet@lwn.net>,\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\tFrank Li <Frank.Li@nxp.com>,\n\tSascha Hauer <s.hauer@pengutronix.de>", "Cc": "Shuah Khan <skhan@linuxfoundation.org>,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-doc@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tPengutronix 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\tdevicetree@vger.kernel.org,\n\tlinux-remoteproc@vger.kernel.org,\n\timx@lists.linux.dev,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-imx@nxp.com", "Subject": "[PATCH v13 1/4] docs: driver-api: gpio: rpmsg gpio driver over rpmsg\n bus", "Date": "Wed, 22 Apr 2026 16:28:46 -0500", "Message-ID": "<20260422212849.1240591-2-shenwei.wang@nxp.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260422212849.1240591-1-shenwei.wang@nxp.com>", "References": "<20260422212849.1240591-1-shenwei.wang@nxp.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "BYAPR06CA0058.namprd06.prod.outlook.com\n (2603:10b6:a03:14b::35) 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": "AS8PR04MB9176:EE_|PR3PR04MB7449:EE_", "X-MS-Office365-Filtering-Correlation-Id": "3196bfa6-688d-4d32-7d4a-08dea0b65145", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|7416014|52116014|376014|1800799024|19092799006|366016|921020|38350700014|56012099003|18002099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n\tnyTuvo+MemQcf/+4WpUJN6UaMkHWTRoieJq4z5KMMzNdNxGTsaPpJirV7X2pipNzjOvIsbFHGjf2zJ902i9vSWRxquO50c1rImJPWj9YjPww7bDXB+gp1vu+0/d5lMb6YmQSEQhMwlC/sYWdjgjOtL2sqfQR67hOqrMDB9R2dCI7ykZy7tRBpZnPU7Hh/V20BHvqiAADX2R8xlkoZETd0ezczS3Ir1BICmrsvF6KEoBbdzqFZVEHheoTRygMDzhwr1WcWXCdMWubbkpDKb2WzYlaZJ02BNPBVEi0mGKFYLGH7pcwmMbnO1aVmm4D4I0PO6o++FcQ2SAj+LEZpouVwcGBlayk8VwT324V6ITgSCIzhpu8O51Y7Q+tbM3F0rZ38Ic/R8OlPfynHFtUypVdYzRHn9QOscOjQB5xHaB7quKQFOUOqWMCmvNOf8WSb5TJlMHmoN54fFtD11CXtjecrbKKpEys3m2ADM30F784V/HNiyqqtG3whonVdljOQZ9vnTjtt13oH8tVJMWVyVZC9n73OkvFxV7PQR9eSu5fkpvLFab3kxAVdRgXH0ed97efA080NwUriDSsZdoCj8Q9wUpVVgDQ2T1nM7Z/nJGARDSavYzFXFGd2iPZo1Tkf1yS4HJjZsd0D5Nwy99J+m89S4Omg5vTRJAb7wrXhZNxk0Oh0ZJKIJoV1dn6iZfe/+wkZ9/Hg/Dsp22kL5U2Y9qsMnO/6MqDg9KwwP9mI8t84Fs8yZrTkpfXjhCdRYsh1TqCAfB77CuUNQeAnegDU3qg2oXqKE90v50XRCWT6N2MjkisIE7mSjAtNVc8jQel9IPE", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9176.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(19092799006)(366016)(921020)(38350700014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n zv4gUfAz+be2l+wmwho3LnXpFTDmyAgb0OURGGOmhkeKhhruOiwFhr8LCccoeXJk35VGVauUlu4XnkK+iquRn2LLzavuiiY9DtgYOtl7PlzIeGeU5IIJWQMN0buduQ9r4u/MZB3KZ66hNvSyqx2yg5ql3TvYNvIP3IeIExwx211TIVTxr0xBUx+YGJ6vsMGU6hTAEcvfP1OCmTJHy08/95YTREfTcowBPt+isD5/pG210taj3tw4h0WY2VUenVU5hOi1adDo+bq7B2XW7Dg6WGsNcDSAejuEHy5bwArEtIw9EbXqjaGE3TyxyREjQIP06b/ZssXqTB3GeCPeCruA4P926l4PMc0+G6YZtDqK9eOfMU4jRCKi7NzkW5ZwT89U0SyFK4e965FEdaCdsfALa0hm0cvG9FLnSL6qDmjzOaAZKqbFQNpWUffWaSDLMk5TGW5ZFK/Ipgz+JSs+oIPdI52SxFrHnorjppdIpXEV1sxhfhYiRIdLON7CllaIBPUjsKf5k4+w2/GwyLXTDRue7KVY5AvDwMnH6cMx2z7bsLHtyP+oKWF9ealhbHHGHUv4jXJCwZfsSOMz0Jojz2lgCA2YcqYKhlPxSFdqF7oM9+zSYXSGBci5XFOiEcINPgxuzXocUNMhjFFFzNwHOuA+B5xZLEU7hcanUKOjTyuY15kUHdsOMhv8L1Cw+Ho0U82O7q+vjCJjB0MgDGn4zsfJOKPVUX2ripUPBDuZZn02KzI9XM8fY6Kc64WtyZf/dgCqlvi5UOa4iZHwJ1e2DXnHkWSU1pJjHwzHJxIMjwn1FYV+yscwwTwbcf0GVGo98cDGlj6DHn+OafpSTb9sZm12EeBbaPchkxbdBg4fSS+vq0zRUrdgruXPhaLQWHZILkXpo55Myfk1tb7q85z5phCzb05IiLn5/J9YcbsEE0QfRpcHYVzzrochPXs60Bmn7y0DQFPjeGeKrrDzw3r5xxqcym2uXosUDgIKmrH8MoWgUKBRuEz1X1e/0HrKm5j2rnie7Ikql2MVu1Hr92RmkKwJyN2QjQxiH6tZaIVFHQLD5AJWampWLSlnNPmY+rRfZfRrqPLE2m0/l8Uiz03zksJi11U6NHYaUFDPccRkgWQWpHb4elQHjcx0FC7MAqC+0lo7v5s/dzzbqz+vweSplGEz2SA/ADS8hmHMOwy0LR7BzGGiv9pXdkERAx1JFrXeiaFdjEYvyg52LG7QcNjd6JLMub+sAVnf5u49FwcbIECVJ0lbgeFZu9x1lw4hknnA7nKhy1VNHWSoOk+y2hwIIezGTW3yhndEILBJN+C9WPNH/Pn23N6nMaQ4zWZsxVqw0k5hNc0qLpZ+/ym5aIWLKPemNE9k+KFVueYaUoR08K1z1fhxcagD+t4UwMPAmxcTRzd1X90jvyllWlD9D6AmhQG7HXTs6U5/rIM0gQLoSUlxpjnWA6ANbS/quFmTGrnpzvxvqMjeNxzXEGPqO97HP6Tc27fYll9K0HTrXIQOJHqlMMVYcCwApQEZIXii6SyKRHJR90/dGzA63PDvb8/iKLMhtg8bCU5fPxsOAdw5gLEpDEtXAtQVnULL92fGKyaHiFeLzUOeqYC7A43P46zlwTLOyzbzDi/DOa6x1gTmEIbxC2yQ/4z9jHNpwuI1vcnF8s2QHkyoFq0LJnAVg0Bd+Hue3p/+e28Fl/JXzFocCoh2W6/FkS1hDQ5G6UdocwxYTgOWjb2YTpsnKeV6ATzh0bGw6A==", "X-OriginatorOrg": "nxp.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 3196bfa6-688d-4d32-7d4a-08dea0b65145", "X-MS-Exchange-CrossTenant-AuthSource": "PAXPR04MB9185.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "22 Apr 2026 21:30:16.4340\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 h/CZQ2fbSP09/YV2BjA3OZG9plD7gSJ+fMFnuvGkxiGGz4GijpXboTSmXQLyqHw3jhrbJktDSpqPfLT4yzvgrA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PR3PR04MB7449" }, "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 | 266 +++++++++++++++++++\n Documentation/driver-api/gpio/index.rst | 1 +\n 2 files changed, 267 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..abfde68c9b0a\n--- /dev/null\n+++ b/Documentation/driver-api/gpio/gpio-rpmsg.rst\n@@ -0,0 +1,266 @@\n+.. SPDX-License-Identifier: GPL-2.0-or-later\n+\n+GPIO RPMSG (Remote Processor Messaging) Protocol\n+================================================\n+\n+The GPIO RPMSG transport protocol is used for communication and interaction\n+with GPIO controllers on remote processors via the RPMSG bus.\n+\n+Message Format\n+--------------\n+\n+The RPMSG message consists of a 6-byte packet with the following layout:\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ |type |cmd |port |line | data |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **type (Message Type)**: The message type can be one of:\n+\n+ - 0: GPIO_RPMSG_SEND\n+ - 1: GPIO_RPMSG_REPLY\n+ - 2: GPIO_RPMSG_NOTIFY\n+\n+- **cmd**: Command code, used for GPIO_RPMSG_SEND messages.\n+\n+- **port**: The GPIO port (bank) index.\n+\n+- **line**: The GPIO line (pin) index of the port.\n+\n+- **data**: See details in the command description below.\n+\n+- **reply 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+\n+GPIO Commands\n+-------------\n+\n+Commands are specified in the **Cmd** field for **GPIO_RPMSG_SEND** (Type=0) messages.\n+\n+The SEND message is always sent from Linux to the remote firmware. Each\n+SEND 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+GET_DIRECTION (Cmd=2)\n+~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 0 | 2 |port |line | 0 | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 1 | 2 |port |line | err | dir|\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+- **dir**: Direction.\n+\n+ - 0: None\n+ - 1: Output\n+ - 2: Input\n+\n+SET_DIRECTION (Cmd=3)\n+~~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 0 | 3 |port |line | dir | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **dir**: Direction.\n+\n+ - 0: None\n+ - 1: Output\n+ - 2: Input\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 1 | 3 |port |line | err | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+\n+GET_VALUE (Cmd=4)\n+~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 0 | 4 |port |line | 0 | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+**Reply:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 1 | 4 |port |line | err | val|\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+- **val**: Line level.\n+\n+ - 0: Low\n+ - 1: High\n+\n+SET_VALUE (Cmd=5)\n+~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 0 | 5 |port |line | 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|\n+ | 1 | 5 |port |line | err | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+SET_IRQ_TYPE (Cmd=6)\n+~~~~~~~~~~~~~~~~~~~~\n+\n+**Request:**\n+\n+.. code-block:: none\n+\n+ +-----+-----+-----+-----+-----+----+\n+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|\n+ | 0 | 6 |port |line | val | wk |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **val**: IRQ types.\n+\n+ - 0: Interrupt disabled\n+ - 1: Rising edge trigger\n+ - 2: Falling edge trigger\n+ - 3: Both edge trigger\n+ - 4: High level trigger\n+ - 8: Low 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|\n+ | 1 | 6 |port |line | err | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **err**: See above for definitions.\n+\n+NOTIFY_REPLY (Cmd=10)\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|\n+ | 0 | 10 |port |line |level| 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **port**: The GPIO port (bank) index.\n+\n+- **line**: The GPIO line (pin) index of the port.\n+\n+- **level**: GPIO line status.\n+\n+Notification Message\n+--------------------\n+\n+Notifications are sent by the remote core and they have\n+**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+command **SET_IRQ_TYPE** to the firmware to unmask the interrupt.\n+\n+A Notification message can arrive between a SEND 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|\n+ | 2 | 0 |port |line |type | 0 |\n+ +-----+-----+-----+-----+-----+----+\n+\n+- **port**: The GPIO port (bank) index.\n+\n+- **line**: The GPIO line (pin) index of the port.\n+\n+- **type**: Optional parameter 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": [ "v13", "1/4" ] }