get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2227591,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2227591/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260424-ds90ub953-v6-2-7a84efbab316@oss.nxp.com/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": ""
    },
    "msgid": "<20260424-ds90ub953-v6-2-7a84efbab316@oss.nxp.com>",
    "date": "2026-04-24T01:42:25",
    "name": "[v6,2/4] media: i2c: ds90ub953: Add back channel GPIO support",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "83a5e08373a352a61b49bf98c8f967791b799d3b",
    "submitter": {
        "id": 86694,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/86694/?format=api",
        "name": "Guoniu Zhou",
        "email": "guoniu.zhou@oss.nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260424-ds90ub953-v6-2-7a84efbab316@oss.nxp.com/mbox/",
    "series": [
        {
            "id": 501274,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501274/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=501274",
            "date": "2026-04-24T01:42:23",
            "name": "media: i2c: ds90ub953: Add back channel GPIO support",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/501274/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2227591/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2227591/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-35450-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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-NXP1-onmicrosoft-com\n header.b=xdVtIpRn;\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-35450-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com\n header.i=@NXP1.onmicrosoft.com header.b=\"xdVtIpRn\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.72.25",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=oss.nxp.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.nxp.com",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=oss.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 4g1wfP0zxdz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:41:17 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id B2B7A3020FE6\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 01:40:19 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id B70F12773DA;\n\tFri, 24 Apr 2026 01:40:08 +0000 (UTC)",
            "from AM0PR02CU008.outbound.protection.outlook.com\n (mail-westeuropeazon11013025.outbound.protection.outlook.com [52.101.72.25])\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 EE1F1277C96;\n\tFri, 24 Apr 2026 01:40:06 +0000 (UTC)",
            "from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16)\n by VE1PR04MB7455.eurprd04.prod.outlook.com (2603:10a6:800:1a1::23) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr\n 2026 01:40:03 +0000",
            "from AS8PR04MB9080.eurprd04.prod.outlook.com\n ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com\n ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026\n 01:40:03 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776994808; cv=fail;\n b=Wiw1BnBY9BflVY2cZki6+1WB1exWA/cuKKurrMkKNF7ljPDzZzYY/7K1d1aGJupcIpToRJDmtN/9I8MrJ0Q6rtA5gkUjOX390z691YLTNCzmO2C+WG5eO+Q2hkdkUWzWNLahoLzglLbM6xi/LFFsyU76ClQNFOQEV2a6nVPKeZM=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Zn1Ci4ukIUrW0Dm3gp5EykA/Q/6HxaLBXpeNjSLP91kqmmAu+GWJ7Lg8XQSCVrLAj+AB6VvhGzKC6RivKwytv6xKhXYD6hFr/8TTZHMRLbRY8We911laf38xJJA+SpbSR7s7ywT+SUZvvPJmoYaaNVUvZS0UnxJmBFObnqUyUVT7UbbphqxefqdSxcLuQr+g4yDuEA6ABpwT1gKfOGd/CAYeEBIRTw2WqIVRM0nQhte2gk1Qaa7Gks6ZV2yY7hK7DopZ1OFJxNosmr4vyjyG39gjVgfj0AqJu0UkKXarRgiiPrHknTa0m+upLYYYnwC3E4IGYpR02CjYwdFJ3tHW6A=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776994808; c=relaxed/simple;\n\tbh=BYLUvPpfzaIBNeRQovwvRJKp2H9g8OyEni8+ktXRgvs=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=OShKb0TNwL2vOUfyWJb6BhgainWZ0xc8RsL26ZQrN3ebuEyZSCAvRu7SjhKnbHB/skAEnRb+tkHtQw5Xm+dVLsh1GapP0K96KktEZbEJSojeMZJZYD7yAclAzx3F6Gb4wgy49Pf8qTGeTDl27Pvg3QXkzp/TxI0FMn5rit9hMIU=",
            "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=62f+Qx0wlmDEkQvxsskjpFYSF7HYxHmyfReCsejF4Rc=;\n b=YwoBqixEz/6QL9GTjwKBp+ZzwKwEPvGVfXg60nTEjWc+nPiPWppFhqA0r34YkOx/0VKYIXqj0HxdpKcwI2wPUDE8cpASpHZCuI1xDZUfjo4/99miCksrHgG5w9fxVfeN1gikh3ef5oMRttM6CrT4J0CJ2MXuUij8hHJgIjU33TRoW4H8vzVjwX7IPlVLxQB+Edr/K4F+Ok49tw/T4RuLrlz+Vh2YB9AU8mItZx+SlYZOtI6Bb6XoOyDwMnwnh1eISYodSLPd94F5dUF52oootBTnKa5yft/EWU1GoywLV2wLWXy8ljaPttAjWoVhH8cYIY1/XGWC5Fyjm18AenG4Iw=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=oss.nxp.com;\n spf=pass smtp.mailfrom=oss.nxp.com;\n dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com\n header.i=@NXP1.onmicrosoft.com header.b=xdVtIpRn;\n arc=fail smtp.client-ip=52.101.72.25",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com;\n dkim=pass header.d=oss.nxp.com; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com;\n s=selector1-NXP1-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=62f+Qx0wlmDEkQvxsskjpFYSF7HYxHmyfReCsejF4Rc=;\n b=xdVtIpRnCQmD7yJdbk+L+nq7eENdHD7FQbZvQBYpRNliNPod0y77f4vFUt4ZoeN4zTLs4H48kGdXg+0YTno3AulAvT1GAarDyHGzB5+MBxY4YIQYKTnYX3Ro/kBnmnVzugUOLLQpSxPA0HrG4nfIlVKVGkUpy/5lt1B/eKkU7N4mlVypJLI5R4bRznvxBkJDOoWjS2jrnctGSpQt2Jwrp6AuIck+8VI/gLXrYWXJAHDibk00MMVneflcFYZnpt8PPw8DZQ5AlAM16E7wutIgRcfYrrp274qvQWdqRvYag5TqEp06rlpXzYKtKvwxKY8nRZ7pt76oft1vwMznypqncw==",
        "From": "Guoniu Zhou <guoniu.zhou@oss.nxp.com>",
        "Date": "Fri, 24 Apr 2026 09:42:25 +0800",
        "Subject": "[PATCH v6 2/4] media: i2c: ds90ub953: Add back channel GPIO\n support",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "Message-Id": "<20260424-ds90ub953-v6-2-7a84efbab316@oss.nxp.com>",
        "References": "<20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com>",
        "In-Reply-To": "<20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com>",
        "To": "Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,\n Mauro Carvalho Chehab <mchehab@kernel.org>, Rob Herring <robh@kernel.org>,\n Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>, Frank Li <Frank.Li@nxp.com>,\n Vladimir Zapolskiy <vz@mleia.com>, Linus Walleij <linusw@kernel.org>,\n Bartosz Golaszewski <brgl@kernel.org>",
        "Cc": "linux-media@vger.kernel.org, devicetree@vger.kernel.org,\n linux-kernel@vger.kernel.org, imx@lists.linux.dev,\n linux-gpio@vger.kernel.org, Guoniu Zhou <guoniu.zhou@nxp.com>",
        "X-Mailer": "b4 0.14.0",
        "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1776994953; l=3804;\n i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id;\n bh=gje9vH51hA/z/uPiO/U0Y8u7/GSL19gAMVItmcpKXyk=;\n b=q43dFBgNL4z/+VXHauQ9fUK8YnfNzkB9mxBz9RpCxdOv7i+f6tGklJiSgUT4AKbqjG+Ahf+V4\n WsyiVBodJJ0AGUVp7SjS7ueWGhty8eFzescrFZw6Okm6v3MVuNtxol+",
        "X-Developer-Key": "i=guoniu.zhou@oss.nxp.com; a=ed25519;\n pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo=",
        "X-ClientProxiedBy": "MA5P287CA0164.INDP287.PROD.OUTLOOK.COM\n (2603:1096:a01:1ba::16) To AS8PR04MB9080.eurprd04.prod.outlook.com\n (2603:10a6:20b:447::16)",
        "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-Exchange-MessageSentRepresentingType": "1",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "AS8PR04MB9080:EE_|VE1PR04MB7455:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "bab77a13-dd2c-46d9-e6e0-08dea1a267d2",
        "X-MS-Exchange-SharedMailbox-RoutingAgent-Processed": "True",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|7416014|376014|52116014|1800799024|19092799006|56012099003|22082099003|18002099003|38350700014;",
        "X-Microsoft-Antispam-Message-Info": "\n\tYoJI5KE5RITuPs+mO9YhtZlRw6zc/D7kUppwBUhqgBR87zxfgDJZY3V4Mxz7bQY6HV7KxVL3epBZJNgHWNH1x3df4HHZDcmmPBtlWE2iTchdWvgOa1D3+epSyoiyaCOJUE8M0ERtLXpO9m5D1SbXPLVwah/4x5A0DL7h+ZX0lJGrHSKcnCMxkkSKIUfprTHuD7uqFmVmLHb10V9rk0c0H3jAaJbF2A8L1Y7lq/Tzda7PnO6QylTI9FeDUrAFYjX16oh4oo49S9eccXpMjHTGtG/XA6MZpWSmADpIYsuLAxYht8P8kE4Wl3wwqAEfyW6tDb69/LT+uSEhzfyGR7SZeg942hRjKXic6pYvagm4J4CoIHXEM71SVZChPZVpoe5hkWOTME8N89M1ScaY9EAT9Pt8GG8W0GXw8xmVv6klHGUzDh5P2UcV7lcqKVBhcHJMkYgoSo4p/B+O7+Tb/ao4lU+7vFofAWJsW5cg6CRBPQODXOgcI3TgbrWApzsJfxE+uL1V41qPgpb/V5nZHLwogtw+r30N7kY3QyyoPgiWtOIkwgGvFy0nRPHEmwYVNJY74ZbxXh7hVJPY7FvBsun2AkAwLnTg24uIKZbW4jFH3un93NgOet4QEmMl7Scfp2HEbtWPlf3ZKRQg9xjaz2+iYfLcEnxrt5dKlUO8XT36wYSxmysx9HOIKleYV/b3PAjPdKNlaSN+sdJwUg2Cv0t0T9xfhfUXLXL2ajvDXNa2j/WbU0q5u9fqKULKnuiYtzNocxFKzfrka6IzkkMnJaFScmfWFWZoFKQNL8VQZS/7gz8=",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(52116014)(1800799024)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?I6++cmk8RV9ug4H1/BpuUEOrI38E?=\n\t=?utf-8?q?OmlAylnE6c9L8YOusGFsxE7CtRCJ+M0XG4V0eU5LImYEk/SDo492hpdABQSL4Q2gN?=\n\t=?utf-8?q?IhqYaRWL0b7ec1Gl0XM8unDk3ep4PEawiQHptdgQ5tM+zlGnPh2fkUtrV61PnJWy1?=\n\t=?utf-8?q?PZn7crmRZFpAl//NZzj8c0dBcuLeBdD7yn484Sjkw1MKzOtz/wB1EH5xnTLcnBlu6?=\n\t=?utf-8?q?a92iDIxhjUsfmHMbox6IkRBEKzMFBby3sCRgKB4Tv+XtGy3VGBxsVmHhM0+BQhkWQ?=\n\t=?utf-8?q?bY9yBLRjsbfpE18MTcrimb4O9kzkuUwyNXGFfyM2vhvYNLUtdlOlD9rrHMa7On6Bc?=\n\t=?utf-8?q?q7vadA0qPI7vfpO7mb5fzxvZCMixPqtsgZT05eZ0dGd1rzR6NVxpzMs2nZgmCcw+W?=\n\t=?utf-8?q?NYq5yG510fk/qG0VMaQoiHjZ/9ovKaew81EQXA7KevYLEOrioyOpAb4wkjL4sFXzM?=\n\t=?utf-8?q?U7KMnR496A1EPG04KEovt867C+7eR3psozONHKvkpxrarHbcrIDRpA1KV6+OTe4vg?=\n\t=?utf-8?q?WbXBcPRoY4DlKF7qPzr27r+8Q21uU9RNbwwmex+FjxpBUXIigt13YVYN5TLbEAhoD?=\n\t=?utf-8?q?sA2BkvpyxZBpGKPrX60j+dtF7wvxk3uqLEUkCG+cmqGH2riZ5KGxjKJaC4H/4W8vn?=\n\t=?utf-8?q?PcCNZ1Gu8AcuDP0P93I+i2cjO0ZsVC7l8gCi3e4FKf/aSC4I7ikVMMqMnBDfB0ACy?=\n\t=?utf-8?q?aybygUzZECS1P8aT7uRE5P2k+VnJfPuNPYc2/ReGcdEICMaDqddRaL6tPKxMEQ5Oh?=\n\t=?utf-8?q?wbrCiGUjXL2smXrGaYJVBsQ2UN9odU6kwrXXiIflDTVchWcZ5WuLTzdiSnC4UZCQ9?=\n\t=?utf-8?q?6nepdPzwczcLjCAQmJyYXrp0yYSVfvA5Lph6WGYq9XqsjUz6+xKbZ3sUjqw8Jsh8Y?=\n\t=?utf-8?q?Xf+HtsH8gkH/Y7d4akSC5lUmZ9y01l2sO5CdaUv1Tyhz4xXqsL0ZvePawsNcDcOgh?=\n\t=?utf-8?q?dchf3X22HRWoGPLCPNULMcVP08qR7gvbqotEcX0chvp43tCzqSE1WqfGVHC+Uli3I?=\n\t=?utf-8?q?QRcozKmBBjBw2jdkZBlHQgOeaumP8lVaFuFNkauD4ban44DBWYCyvlIS1yeKq8YkH?=\n\t=?utf-8?q?R03hbhFrfjpg356ehV83geLn1FDe74iWdBZFqzH+yHEr+zBKtGOmx17UP36RqRps0?=\n\t=?utf-8?q?M3Y/YkCn+dTc5rYQy4TFg0ts2HY5hMzyLp4mMcBvBg277CuCG0xQXB2nfCI76DXzm?=\n\t=?utf-8?q?FelDM/28zw/f6ASYWAhWhV2BdTWl11NWLuvdhilm7milpSW2mUV0v7kvW6jt/MVM/?=\n\t=?utf-8?q?5/Y29++0IBaDEOfKoYcFB4xLVWgFA883rXhMkE30IwiRBVYWEkxvAF4XkaXXuMJpH?=\n\t=?utf-8?q?bpcSR6GC5Q0p1BNONGvNk0JBRcz/cyqUd9tTWIAAMlVX0BdniU34+JdVs73+yqE3v?=\n\t=?utf-8?q?tN8RgtZT4HYG7GhXbw+YmIOAiq+T6K/Pka44km9l6nWnG0hB6/0TZWrthhkZO1rUP?=\n\t=?utf-8?q?KokT0SsO8nm8MDbPwAUlzmjg0c6h9G9qb0g5/OQG7+O3qVN+Khl+RWR+P6gVRczhI?=\n\t=?utf-8?q?GIfvmzXxapIE7zA0+yG+jAeMnRA9ZUZnS1YzK9iSU4wowSbguvfA+yTXM8QNimEMw?=\n\t=?utf-8?q?PtaXykoPm2GdgDIyzulUD6iJFP/Iv7xwKBlKdzqFJ9i6Vh9KYL/RWi3rqKNF65bzV?=\n\t=?utf-8?q?/TZ7PT5IlErunMWMQQzsaF0Z7vnwF7zg=3D=3D?=",
        "X-OriginatorOrg": "oss.nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n bab77a13-dd2c-46d9-e6e0-08dea1a267d2",
        "X-MS-Exchange-CrossTenant-AuthSource": "AS8PR04MB9080.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "24 Apr 2026 01:40:03.3080\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 MmIhQoQ4WuKgMIk4JK4Cwm4T6A3rLYlZOLdWp43aiEQ7KI/Sq+bX8veuy6f2F0t9yBsDfjwiDOHenlyJJtw4jg==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VE1PR04MB7455"
    },
    "content": "From: Guoniu Zhou <guoniu.zhou@nxp.com>\n\nThe ds90ub953 supports GPIO0 through GPIO3. When enabled as an output,\neach GPIO pin can be programed to output remote data coming from the\ncompatible deserializer using the register LOCAL_GPIO_DATA[7:4] field.\n\nAdd back channel GPIO support by parsing flags from device tree.\n\nSigned-off-by: Guoniu Zhou <guoniu.zhou@nxp.com>\n---\nChanges in v6:\n- Changed approach from extending GPIO range (v5) to using a custom GPIO\n  flag (GPIO_DATA_SOURCE_REMOTE) as suggested by the driver maintainer\n\nChanges in v4:\n- Only log GPIO 0-3 stats since remote GPIO 4-7 reuse GPIO 0-3 pins.\n\nChanges in v3:\n- Update driver to expand GPIO range.\n\nChanges in v2:\n- Parse gpio third cell to select which GPIO pin the data from remote\n  compatible deserializer.\n---\n drivers/media/i2c/ds90ub953.c | 51 ++++++++++++++++++++++++++++++++++++++-----\n 1 file changed, 45 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c\nindex a8ab67f4137f..da63dcfbbbc3 100644\n--- a/drivers/media/i2c/ds90ub953.c\n+++ b/drivers/media/i2c/ds90ub953.c\n@@ -27,6 +27,8 @@\n #include <media/v4l2-mediabus.h>\n #include <media/v4l2-subdev.h>\n \n+#include <dt-bindings/gpio/gpio.h>\n+\n #include \"ds90ub953.h\"\n \n #define UB953_PAD_SINK\t\t\t0\n@@ -71,6 +73,7 @@ struct ub953_data {\n \tbool\t\t\tnon_continous_clk;\n \n \tstruct gpio_chip\tgpio_chip;\n+\tu32\t\t\tgpio_flags[UB953_NUM_GPIOS];\n \n \tstruct v4l2_subdev\tsd;\n \tstruct media_pad\tpads[2];\n@@ -258,6 +261,12 @@ static int ub953_write_ind(struct ub953_data *priv, u8 block, u8 reg, u8 val,\n /*\n  * GPIO chip\n  */\n+\n+static inline bool ub953_gpio_is_remote(unsigned int flag)\n+{\n+\treturn !!(flag & GPIO_DATA_SOURCE_REMOTE);\n+}\n+\n static int ub953_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)\n {\n \tstruct ub953_data *priv = gpiochip_get_data(gc);\n@@ -288,13 +297,23 @@ static int ub953_gpio_direction_out(struct gpio_chip *gc, unsigned int offset,\n \t\t\t\t    int value)\n {\n \tstruct ub953_data *priv = gpiochip_get_data(gc);\n+\tbool is_remote = ub953_gpio_is_remote(priv->gpio_flags[offset]);\n+\tunsigned int mask, val;\n \tint ret;\n \n-\tret = regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA,\n-\t\t\t\t UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset),\n-\t\t\t\t value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) :\n-\t\t\t\t\t 0);\n+\tmask = UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) |\n+\t       UB953_REG_LOCAL_GPIO_DATA_GPIO_RMTEN(offset);\n \n+\tif (is_remote) {\n+\t\t/* Enable remote deserializer GPIO data on local GPIO */\n+\t\tval = UB953_REG_LOCAL_GPIO_DATA_GPIO_RMTEN(offset);\n+\t} else {\n+\t\t/* Set output value on local GPIO and disable remote mode */\n+\t\tval = value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) : 0;\n+\t}\n+\n+\tret = regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA,\n+\t\t\t\t mask, val);\n \tif (ret)\n \t\treturn ret;\n \n@@ -330,10 +349,30 @@ static int ub953_gpio_of_xlate(struct gpio_chip *gc,\n \t\t\t       const struct of_phandle_args *gpiospec,\n \t\t\t       u32 *flags)\n {\n+\tstruct ub953_data *priv = gpiochip_get_data(gc);\n+\tstruct device *dev = &priv->client->dev;\n+\tu32 pin;\n+\n+\tif (WARN_ON(gc->of_gpio_n_cells < 2))\n+\t\treturn -EINVAL;\n+\n+\tif (WARN_ON(gpiospec->args_count < gc->of_gpio_n_cells))\n+\t\treturn -EINVAL;\n+\n+\tpin = gpiospec->args[0];\n+\tif (pin >= UB953_NUM_GPIOS) {\n+\t\tdev_err(dev, \"Invalid GPIO pin number: %u\\n\", pin);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\t/* Store GPIO flags for each pin */\n+\tpriv->gpio_flags[pin] = gpiospec->args[1];\n+\n+\t/* Return standard flags to GPIO core */\n \tif (flags)\n-\t\t*flags = gpiospec->args[1];\n+\t\t*flags = gpiospec->args[1] & ~GPIO_DATA_SOURCE_REMOTE;\n \n-\treturn gpiospec->args[0];\n+\treturn pin;\n }\n \n static int ub953_gpiochip_probe(struct ub953_data *priv)\n",
    "prefixes": [
        "v6",
        "2/4"
    ]
}