Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217319/?format=api
{ "id": 2217319, "url": "http://patchwork.ozlabs.org/api/patches/2217319/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327-pinctrl-mux-v5-3-d4aec9d62c62@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": "<20260327-pinctrl-mux-v5-3-d4aec9d62c62@nxp.com>", "list_archive_url": null, "date": "2026-03-27T21:34:00", "name": "[v5,3/7] pinctrl: extract pinctrl_generic_to_map() from pinctrl_generic_pins_function_dt_node_to_map()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "eb9ef133f68f4e7c8c2c7df63d30e5cccaf2dc8e", "submitter": { "id": 68011, "url": "http://patchwork.ozlabs.org/api/people/68011/?format=api", "name": "Frank Li", "email": "Frank.Li@nxp.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327-pinctrl-mux-v5-3-d4aec9d62c62@nxp.com/mbox/", "series": [ { "id": 497832, "url": "http://patchwork.ozlabs.org/api/series/497832/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=497832", "date": "2026-03-27T21:33:57", "name": "pinctrl: Add generic pinctrl for board-level mux chips", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/497832/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217319/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217319/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-gpio+bounces-34330-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=C/rl0NsG;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34330-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=\"C/rl0NsG\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.65.34", "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 sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\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 4fjDTB5pD7z1y0D\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 08:35:26 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 337413028768\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 21:34:41 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0336A39E6FC;\n\tFri, 27 Mar 2026 21:34:30 +0000 (UTC)", "from DU2PR03CU002.outbound.protection.outlook.com\n (mail-northeuropeazon11011034.outbound.protection.outlook.com [52.101.65.34])\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 27E9139E196;\n\tFri, 27 Mar 2026 21:34:27 +0000 (UTC)", "from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8)\n by AM9PR04MB8668.eurprd04.prod.outlook.com (2603:10a6:20b:43f::22) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar\n 2026 21:34:25 +0000", "from PA4PR04MB9366.eurprd04.prod.outlook.com\n ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com\n ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026\n 21:34:25 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774647269; cv=fail;\n b=klZrobN08TdD3B0kiy+WxPdMA8O/+IEa5R0DzfZaQ5LyCGLFv+arLMlTH4J4RrtLvF9yJJOR8Sdl5IWGbHZe+2N1E6+8kgJpAbbbanQm4abD6wkPy9G8wyWUeZo61lDOhySQnt+Hwn04XPevPGvqu/lORdXGoq+utwXlxeXw0Lo=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=nYmsjbWYHHVvGnUirMT004ALFJin8dcbyl7BRLSlVkhO27wS/u6LnWD7mj4H9Ngt1FFkLsem16yZuU+gNZGgdOrMc/c+UnZUp8uFsO0m7eGo0vosvEcTcXztbuIZND5xI8nDrJDjUL+yevEjmVxj3q6vqnmAk/hbwmPOsXoF8qZ2ll1FtyQd2wZUInN419vA5CYeTn482beNaac5SxsXcLsNEuDeicyb1R0eQPVTOfuOkITRkeenW5/eRCnwZiYceOkTGVxR2YZa7PJcoExHPDnezV0FgC+wltQucQ68wpylYqOGcgBR+wCx6Xuha4eP9sZd3Z8hfU5bKRZzNvzuWg==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774647269; c=relaxed/simple;\n\tbh=0ZyVR7Ew+8FME46WeOTKzZa52qmd5gLcnJhFdFuN+5s=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=aUOJPPH14FZHLmAdf02Bsg92aBSwAR3h9+CnzcrLesG+h4Q2CfcKgCkx/CuKtK1CuX2pOQUSi374nJfekgmrG6UcclgJfW3vQFt3mxPQlMNXFJtHRgGiRF8em6sZhTuL2H5pzB/mkbEcW7DAkZPnpT+h1djCSvB4ENytH32tIxk=", "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=UrrVM+j+cGadW4s/MJcZpCgs/Z76Y+uI11BU37xJ5ro=;\n b=Y7RqQ6keT1RioIqyy1e2phzu0qAb0cA4U8BrWjWi1XKs0Gm0dkmO1+DBmPwGdIunNEXESvzHe51v5wks9ZbGpaoFHOefodDkzo8vPaNlZ8vg/8RY1DNfvLyxGSlida8P1qwGR99YFXwoVGeQMYWDxkXKZjzRiwOOo48lQX/Pdn0yg3NBFEBJEjn2eTHflrJcR1nqtmX7QxFB7vCdl+xTSDWEFVgStTXanf7SmT1aCH+Aqt2MObPRxkK2/Wwx/0eVdV3E/OszK5q6o01S1XOUiNk3zGUY0hSSDDY4CRzcoA1EvKSZi/NI0ShxekDdI9I2ic/hKCz17P1LlOqr+2LfbQ==" ], "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=C/rl0NsG; arc=fail smtp.client-ip=52.101.65.34", "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=UrrVM+j+cGadW4s/MJcZpCgs/Z76Y+uI11BU37xJ5ro=;\n b=C/rl0NsGx+v5N8DWWzWBh0PtSBB6/OGv9wrY1I6ZaaZx2kd5qmpRc6eDDyxaNBh6jnsgJXdfnT0f2j2nkUEqFbOcAoa8pEUCrijtjJd7fNjvQ5qJ4VyhKcNgUX0jbUiUflaeUjEeyF1rZbUgntxBxNVdrzYO1J2tQ67PrKM9/MEIRRTQVY9WwflTzxZqs7SPq812QidOOaEiLAaaJw5fgAe6w4LLXo3aoTwcdQ57CIg3jQ9SMiwUJ2FvB3fMVwHTT4s9tebqY4t5UFT6TdqG709M6OMR64hL5E1rVd65wtjkYKMVWcmm1aJf56Iuxo7Lk9ZHZMAhb1HIqjHW6kWuxQ==", "From": "Frank Li <Frank.Li@nxp.com>", "Date": "Fri, 27 Mar 2026 17:34:00 -0400", "Subject": "[PATCH v5 3/7] pinctrl: extract pinctrl_generic_to_map() from\n pinctrl_generic_pins_function_dt_node_to_map()", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260327-pinctrl-mux-v5-3-d4aec9d62c62@nxp.com>", "References": "<20260327-pinctrl-mux-v5-0-d4aec9d62c62@nxp.com>", "In-Reply-To": "<20260327-pinctrl-mux-v5-0-d4aec9d62c62@nxp.com>", "To": "Peter Rosin <peda@axentia.se>, Linus Walleij <linusw@kernel.org>,\n Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>,\n =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= <rafal@milecki.pl>,\n Sascha Hauer <s.hauer@pengutronix.de>,\n Pengutronix Kernel Team <kernel@pengutronix.de>,\n Fabio Estevam <festevam@gmail.com>", "Cc": "linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,\n devicetree@vger.kernel.org, imx@lists.linux.dev,\n linux-arm-kernel@lists.infradead.org, Haibo Chen <haibo.chen@nxp.com>,\n Frank Li <Frank.Li@nxp.com>, Conor Dooley <conor.dooley@microchip.com>", "X-Mailer": "b4 0.14.2", "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1774647254; l=6512;\n i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id;\n bh=0ZyVR7Ew+8FME46WeOTKzZa52qmd5gLcnJhFdFuN+5s=;\n b=wwC73dWs3eIpSolXqDXA5Kk9HghxPneCkXMsCUEdfQPSsE87Rk/SPCw9RG4KG6w8QLMCEANUC\n ZPotpA5umLXCbzwBJwvpv6OwNaFn4WdEbUO28RSxc+xN6ZWCy+rNWXC", "X-Developer-Key": "i=Frank.Li@nxp.com; a=ed25519;\n pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q=", "X-ClientProxiedBy": "SA1P222CA0182.NAMP222.PROD.OUTLOOK.COM\n (2603:10b6:806:3c4::20) To PA4PR04MB9366.eurprd04.prod.outlook.com\n (2603:10a6:102:2a9::8)", "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": "PA4PR04MB9366:EE_|AM9PR04MB8668:EE_", "X-MS-Office365-Filtering-Correlation-Id": "b77ac431-2f2a-443c-ebf5-08de8c489e43", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|19092799006|1800799024|52116014|7416014|376014|38350700014|18002099003|56012099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n\t8L5+BywlKp629wt7fnv8onl6pl/l9NKkyZG/wuSqKA7A0gguQAvtQrCMZP2hKdvs92RoJz6eBdGVwFfznTUe9cPFAOC5IvXhx6jgI+j5Y1pqchOHd4WofXEUbm7qLZwELaByhQJ4uNYATHIECooumzeYN1X9X4Gc8jdzRRZUBiI1kbX+BSzbHLQ6xK7ckzTeB9tWfpfxWiZuFy2QBAOs7dARXW17sKnwHQWyBipY62i2grwWeM8KjkZ3XDj6NTlFvVAvdOCHmY4GKK0pJaG9rQ2TWFRueShQai/BhvAbjg+jGkhFf2vB24wAEyhBCxAUai6Yekqu3/YhZwVZkbPuk3VXEY9XzI1gYWHMTpOxFuYl+hPTeSENnMLVexSrlZZLyD92UewIMCwg/+HswvPOTn+MGFzuGp9RG+gJnxXTfL1uJmV6GIQl8rTrqAsDQ5CmDJ7Tl2MCM5x76+EXzvIesF+LI/0SVSR2DMClbOWV6Te0p3ofc8Ss9UKsXsRK+HI9dukhhnGzJOFKfEYiLo76nNa+e6BLVFfh2dXI3Dz/Z/arodRFBhAHVqtd8Kcy/dOrTge1WvdY2lvrJjNqrW2uTPyEcC06uUoXOWO3TU/YysBAS0g/KmVtThYMebSJ7/3acclI5X5IAqsdsJ8KLvS6K/DJPz+pmP5/zqCAoE4mUaYb4hmgG1zmz/aSS8kvstP8G5GDZUu875AEjv6TcAz8/4wY3IzcKP3+Kfu9tnjZ5Roow+ySVXNLb8MJKPIatp0nI/1o6wiRgEm0NxX0DUhof3XsHxYN+W/lvKqjRG2aMrs=", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(1800799024)(52116014)(7416014)(376014)(38350700014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?hW6syPAKyzLDspyUilP3vwpC1hwb?=\n\t=?utf-8?q?sBBlhiOwflW0kR6z2d+dCJVxvaDVhXzTjFJvCfg1KmKZrROvvThONLso8/D9DptrA?=\n\t=?utf-8?q?s+soOrFhG3Cmisl3Fru1ncXYe70KBA1k+wSvMKDwzcVonQGfMO8aGlDdyMN4nOEiI?=\n\t=?utf-8?q?XdiZyTopbCTailTXfFuga7N48JAVP+rmwxeF7k/X7mvxpRPPm6B571doDCj1/iGdH?=\n\t=?utf-8?q?v+X91v/TH6ifH7jWEuY44x2dIjzZ3WBsvPhYRa5FHgHCnUl9388toAwtNNmk2lUJ+?=\n\t=?utf-8?q?M+JkoM9CRWJLK/eE3S3ATxoF2c3wcSGVMJetUXWOanTMDE1djWuVxC7LHCbtjGOYI?=\n\t=?utf-8?q?4pzQ3RXqISbmxYLCBdQ8AiVN54Ew3fMAJdCjTAt/DAxvqKl+G41NzEMxMLUBAOCWt?=\n\t=?utf-8?q?X63PSrZyJiO8j6/HyvfzooDkU4anH4KC9c6k3Vp0c9UIW22omDgyr7EGmU2T9Pv5Y?=\n\t=?utf-8?q?xsK7+T6/6RGvqHCxX93FswDIB2bEmzSEpNnkGfZdZoFE8dvBQ/c1IhF70GjvsincL?=\n\t=?utf-8?q?pwQujooaFgDfiCeikBh9S+D0iXmWBOfz3fDgyXhdLYtQoBXOqLVd+hRAlz9BxNXeG?=\n\t=?utf-8?q?zXZBpB1dxzCbFwkQrqV1NPs+CjpQVgc8GLax6ghkstQUE9q6XTmZTOphNKLlfowP2?=\n\t=?utf-8?q?jCY2uBJB1x4UFXQDhDOmOnmWBaUtPbvArfdA68PfV62s+aJwGrMi2PvoccdmbKV7Z?=\n\t=?utf-8?q?puQIcCbaP/yqQD5TAPUjIIUznSXc25EA0ZMlroHBZS/6dkpkx/s1lgvZo2D707HQZ?=\n\t=?utf-8?q?PzexE38vdNPrMmaGzcGiaMdCuXZBTp3Qy0+swvLz/TPQp1hmaT2z0bSUFnUKsnW1z?=\n\t=?utf-8?q?Cs6WyFD7CMvs01AtRys+BzLGqErF9WxkJXM0Nv3PhYSCVtw1MJdda3Eajz2uZt5xP?=\n\t=?utf-8?q?dD8WLuOJ6T3ghk2TXtPKmY7KFTAIsJ3rc3NgEKJexaGq5WNrU7Xindb8Yq7VDFsh5?=\n\t=?utf-8?q?GEWTSq6aUzPLtRcewyBnpBCZ4rMjPQHEU1+pcvWflq33clFQRwcTtL4LuieZLk9GS?=\n\t=?utf-8?q?A8E5vyJOdwfVHadRT3GuinTjnAAPD6+Untb0Fby5mTJI+eQ4LdIbnvXTC6PxXAfm5?=\n\t=?utf-8?q?d8AUtmUtjf2DxyAJwgeKcPCIFoNFT7gzQRXVgMcS/hAEFY0L1kfDhVza7QxnbjMOe?=\n\t=?utf-8?q?AY+Qc9Mwu/uQUgqnC5v1doK5AXezIXSUUC1iID/jRMT8epzMIIsFjJfWkXfrESQbK?=\n\t=?utf-8?q?WjXmfmL2CZwAw1Ymh5kTy54mCjec7jVD0/oH7+3C/81TiAATGUcFAK7BuF2slCvNp?=\n\t=?utf-8?q?kLa2KKf0lDFwlLsMB4AtQX3WiWO3guXN+TtNVFB2Cw15hWIf6EfwRxj8C5mWwVx74?=\n\t=?utf-8?q?gbzvULdOGOfrlf8oeiyZYtKskhcn19i5WsdUKZCl/RxQ59k8brx8hNOIrFSmdMyYq?=\n\t=?utf-8?q?+ZiaMLzwr5FQouRkfqrlybx0gbYlZ0cHZSVVGwc63DdGwcTNMZ8zQb9cl5vBdOE3s?=\n\t=?utf-8?q?E44edSroW6+YqIH/TJw/j56qoeJSnmEjGxoieXaNqL5x7JNhNEmqOQvVHTMwgVQSd?=\n\t=?utf-8?q?imE1ub/UUcD70ZOsVw4P8fgQJ4j1s1UDI9dQQWmdKdMLwlwNlpijQ0e9wc84oTGBO?=\n\t=?utf-8?q?DShsmds+gJuoHzSQHM5pjU57DvGVHykFQqOq7W/5tWWndCZE/8ehTWdU4nBOY9lsy?=\n\t=?utf-8?q?lNSAbJEe47?=", "X-OriginatorOrg": "nxp.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n b77ac431-2f2a-443c-ebf5-08de8c489e43", "X-MS-Exchange-CrossTenant-AuthSource": "PA4PR04MB9366.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Mar 2026 21:34:25.5369\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 m/0twQpxCLKryaAHxWMOqHbZnyC9BVVtUbvHvgSeFUY+Aqg+QIN64RBofZ51JZvSD/u40myT9W95dXww1FC36A==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM9PR04MB8668" }, "content": "Refactor pinctrl_generic_pins_function_dt_subnode_to_map() by separating DT\nparsing logic from map creation. Introduce a new helper\npinctrl_generic_to_map() to handle mapping to kernel data structures, while\nkeeping DT property parsing in the subnode function.\n\nImprove code structure and enables easier reuse for platforms using\ndifferent DT properties (e.g. pinmux) without modifying the\ndt_node_to_map-style callback API. Avoid unnecessary coupling to\npinctrl_generic_pins_function_dt_node_to_map(), which provides\nfunctionality not needed when the phandle target is unambiguous.\n\nMaximize code reuse and provide a cleaner extension point for future\npinctrl drivers.\n\nSuggested-by: Conor Dooley <conor.dooley@microchip.com>\nSigned-off-by: Frank Li <Frank.Li@nxp.com>\n---\nchange in v5\n- add npins in pinctrl_generic_to_map();\n- remove below line in pinctrl_generic_to_map();\npins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL);\n\nchange in v4\n- new patch\n---\n drivers/pinctrl/pinconf.h | 18 ++++++++\n drivers/pinctrl/pinctrl-generic.c | 94 +++++++++++++++++++++++----------------\n 2 files changed, 73 insertions(+), 39 deletions(-)", "diff": "diff --git a/drivers/pinctrl/pinconf.h b/drivers/pinctrl/pinconf.h\nindex 2880adef476e68950ffdd540ea42cdee6a16ec27..67044dff61e4c2b2ccc0c10524b442d17f3ec42f 100644\n--- a/drivers/pinctrl/pinconf.h\n+++ b/drivers/pinctrl/pinconf.h\n@@ -166,6 +166,13 @@ int pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,\n \t\t\t\t\t\t struct device_node *np,\n \t\t\t\t\t\t struct pinctrl_map **maps,\n \t\t\t\t\t\t unsigned int *num_maps);\n+\n+int pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,\n+\t\t\t struct device_node *np, struct pinctrl_map **maps,\n+\t\t\t unsigned int *num_maps, unsigned int *num_reserved_maps,\n+\t\t\t const char **group_name, unsigned int ngroups,\n+\t\t\t const char **functions, unsigned int *pins,\n+\t\t\t unsigned int npins);\n #else\n static inline int\n pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,\n@@ -175,4 +182,15 @@ pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,\n {\n \treturn -ENOTSUPP;\n }\n+\n+static inline int\n+pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,\n+\t\t struct device_node *np, struct pinctrl_map **maps,\n+\t\t unsigned int *num_maps, unsigned int *num_reserved_maps,\n+\t\t const char **group_name, unsigned int ngroups,\n+\t\t const char **functions, unsigned int *pins,\n+\t\t void *function_data)\n+{\n+\treturn -ENOTSUPP;\n+}\n #endif\ndiff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c\nindex efb39c6a670331775855efdc8566102b5c6202ef..76670aef62da47ede2901f5af6199dcd2896d894 100644\n--- a/drivers/pinctrl/pinctrl-generic.c\n+++ b/drivers/pinctrl/pinctrl-generic.c\n@@ -17,29 +17,18 @@\n #include \"pinctrl-utils.h\"\n #include \"pinmux.h\"\n \n-static int pinctrl_generic_pins_function_dt_subnode_to_map(struct pinctrl_dev *pctldev,\n-\t\t\t\t\t\t\t struct device_node *parent,\n-\t\t\t\t\t\t\t struct device_node *np,\n-\t\t\t\t\t\t\t struct pinctrl_map **maps,\n-\t\t\t\t\t\t\t unsigned int *num_maps,\n-\t\t\t\t\t\t\t unsigned int *num_reserved_maps,\n-\t\t\t\t\t\t\t const char **group_names,\n-\t\t\t\t\t\t\t unsigned int ngroups)\n+int pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,\n+\t\t\t struct device_node *np, struct pinctrl_map **maps,\n+\t\t\t unsigned int *num_maps, unsigned int *num_reserved_maps,\n+\t\t\t const char **group_names, unsigned int ngroups,\n+\t\t\t const char **functions, unsigned int *pins,\n+\t\t\t unsigned int npins)\n {\n \tstruct device *dev = pctldev->dev;\n-\tconst char **functions;\n+\tunsigned int num_configs;\n \tconst char *group_name;\n \tunsigned long *configs;\n-\tunsigned int num_configs, pin, *pins;\n-\tint npins, ret, reserve = 1;\n-\n-\tnpins = of_property_count_u32_elems(np, \"pins\");\n-\n-\tif (npins < 1) {\n-\t\tdev_err(dev, \"invalid pinctrl group %pOFn.%pOFn %d\\n\",\n-\t\t\tparent, np, npins);\n-\t\treturn npins;\n-\t}\n+\tint ret, reserve = 1;\n \n \tgroup_name = devm_kasprintf(dev, GFP_KERNEL, \"%pOFn.%pOFn\", parent, np);\n \tif (!group_name)\n@@ -47,26 +36,6 @@ static int pinctrl_generic_pins_function_dt_subnode_to_map(struct pinctrl_dev *p\n \n \tgroup_names[ngroups] = group_name;\n \n-\tpins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL);\n-\tif (!pins)\n-\t\treturn -ENOMEM;\n-\n-\tfunctions = devm_kcalloc(dev, npins, sizeof(*functions), GFP_KERNEL);\n-\tif (!functions)\n-\t\treturn -ENOMEM;\n-\n-\tfor (int i = 0; i < npins; i++) {\n-\t\tret = of_property_read_u32_index(np, \"pins\", i, &pin);\n-\t\tif (ret)\n-\t\t\treturn ret;\n-\n-\t\tpins[i] = pin;\n-\n-\t\tret = of_property_read_string(np, \"function\", &functions[i]);\n-\t\tif (ret)\n-\t\t\treturn ret;\n-\t}\n-\n \tret = pinctrl_utils_reserve_map(pctldev, maps, num_reserved_maps, num_maps, reserve);\n \tif (ret)\n \t\treturn ret;\n@@ -103,6 +72,53 @@ static int pinctrl_generic_pins_function_dt_subnode_to_map(struct pinctrl_dev *p\n \treturn 0;\n };\n \n+static int pinctrl_generic_pins_function_dt_subnode_to_map(struct pinctrl_dev *pctldev,\n+\t\t\t\t\t\t\t struct device_node *parent,\n+\t\t\t\t\t\t\t struct device_node *np,\n+\t\t\t\t\t\t\t struct pinctrl_map **maps,\n+\t\t\t\t\t\t\t unsigned int *num_maps,\n+\t\t\t\t\t\t\t unsigned int *num_reserved_maps,\n+\t\t\t\t\t\t\t const char **group_names,\n+\t\t\t\t\t\t\t unsigned int ngroups)\n+{\n+\tstruct device *dev = pctldev->dev;\n+\tunsigned int pin, *pins;\n+\tconst char **functions;\n+\tint npins, ret;\n+\n+\tnpins = of_property_count_u32_elems(np, \"pins\");\n+\n+\tif (npins < 1) {\n+\t\tdev_err(dev, \"invalid pinctrl group %pOFn.%pOFn %d\\n\",\n+\t\t\tparent, np, npins);\n+\t\treturn npins;\n+\t}\n+\n+\tpins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL);\n+\tif (!pins)\n+\t\treturn -ENOMEM;\n+\n+\tfunctions = devm_kcalloc(dev, npins, sizeof(*functions), GFP_KERNEL);\n+\tif (!functions)\n+\t\treturn -ENOMEM;\n+\n+\tfor (int i = 0; i < npins; i++) {\n+\t\tret = of_property_read_u32_index(np, \"pins\", i, &pin);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\n+\t\tpins[i] = pin;\n+\n+\t\tret = of_property_read_string(np, \"function\", &functions[i]);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\n+\treturn pinctrl_generic_to_map(pctldev, parent, np, maps, num_maps,\n+\t\t\t\t num_reserved_maps, group_names, ngroups,\n+\t\t\t\t functions, pins, npins);\n+}\n+\n /*\n * For platforms that do not define groups or functions in the driver, but\n * instead use the devicetree to describe them. This function will, unlike\n", "prefixes": [ "v5", "3/7" ] }