[{"id":3686229,"web_url":"http://patchwork.ozlabs.org/comment/3686229/","msgid":"<b5f75901-29c0-4153-ad1f-543dcf7476e4@armadeus.com>","list_archive_url":null,"date":"2026-05-05T08:32:48","subject":"Re: [PATCH 1/1] pinctrl: imx1: Allow parsing DT without function\n nodes","submitter":{"id":47919,"url":"http://patchwork.ozlabs.org/api/people/47919/","name":"Sébastien Szymanski","email":"sebastien.szymanski@armadeus.com"},"content":"Hello,\n\nOn 5/4/26 7:08 PM, Frank Li wrote:\n> The old format to define pinctrl settings for imx in DT has two hierarchy\n> levels. The first level are function device nodes. The second level are\n> pingroups which contain a property fsl,pins. The original ntention was to\n> define all pin functions in a single dtsi file and just reference the\n> correct ones in the board files.\n> \n> The commit (\"5fcdf6a7ed95e pinctrl: imx: Allow parsing DT without function\n> nodes\") already make moden i.MX chip support flatten layout.\n> \n> Make legacy chipes (more than 15 years) support this flatten layout also.\n> \n> Fixes: e948cbdc41d6f (\"ARM: dts: imx: remove redundant intermediate node in pinmux hierarchy\")\n> Signed-off-by: Frank Li <Frank.Li@nxp.com>\n> ---\n> build test only\n> \n> Sébastien Szymanski:\n> \tCan you help test it? I am happy i.MX27 still alive.\n\nSure! Thanks for the patch! With this patch applied on Linux 7.1-rc2 the \nboard boots again. I see the following messages, though:\n\n[    0.085139] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.085226] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.085281] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.085327] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.085372] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.085416] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins \nproperty (gpio)\n[    0.092693] imx27-pinctrl 10015000.pinmux: initialized IMX pinctrl driver\n\nThat's because there is no fsl,pins property in the 6 gpio subnodes.\n\nTested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>\n\nI one have comment bellow.\n\n> \n> Frank\n> ---\n>   drivers/pinctrl/freescale/pinctrl-imx1-core.c | 48 ++++++++++++++++---\n>   1 file changed, 41 insertions(+), 7 deletions(-)\n> \n> diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> index b36c8a1461b7c..bf07e0c64a098 100644\n> --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> @@ -540,10 +540,34 @@ static int imx1_pinctrl_parse_functions(struct device_node *np,\n>   \treturn 0;\n>   }\n>   \n> +/*\n> + * Check if the DT contains pins in the direct child nodes. This indicates the\n> + * newer DT format to store pins. This function returns true if the first found\n> + * fsl,pins property is in a child of np. Otherwise false is returned.\n> + */\n> +static bool imx1_pinctrl_dt_is_flat_functions(struct device_node *np)\n> +{\n> +\tstruct device_node *function_np;\n> +\tstruct device_node *pinctrl_np;\n> +\n> +\tfor_each_child_of_node(np, function_np) {\n> +\t\tif (of_property_read_bool(function_np, \"fsl,pins\"))\n\nIsn't of_property_present better here...\n\n> +\t\t\treturn true;\n> +\n> +\t\tfor_each_child_of_node(function_np, pinctrl_np) {\n> +\t\t\tif (of_property_read_bool(pinctrl_np, \"fsl,pins\"))\n\n...and here ?\n\nRegards,\n\n> +\t\t\t\treturn false;\n> +\t\t}\n> +\t}\n> +\n> +\treturn true;\n> +}\n> +\n>   static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n>   \t\tstruct imx1_pinctrl *pctl, struct imx1_pinctrl_soc_info *info)\n>   {\n>   \tstruct device_node *np = pdev->dev.of_node;\n> +\tbool flat_funcs;\n>   \tint ret;\n>   \tu32 nfuncs = 0;\n>   \tu32 ngroups = 0;\n> @@ -552,9 +576,15 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n>   \tif (!np)\n>   \t\treturn -ENODEV;\n>   \n> -\tfor_each_child_of_node_scoped(np, child) {\n> -\t\t++nfuncs;\n> -\t\tngroups += of_get_child_count(child);\n> +\tflat_funcs = imx1_pinctrl_dt_is_flat_functions(np);\n> +\tif (flat_funcs) {\n> +\t\tnfuncs = 1;\n> +\t\tngroups = of_get_child_count(np);\n> +\t} else {\n> +\t\tfor_each_child_of_node_scoped(np, child) {\n> +\t\t\t++nfuncs;\n> +\t\t\tngroups += of_get_child_count(child);\n> +\t\t}\n>   \t}\n>   \n>   \tif (!nfuncs) {\n> @@ -574,10 +604,14 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n>   \tif (!info->functions || !info->groups)\n>   \t\treturn -ENOMEM;\n>   \n> -\tfor_each_child_of_node_scoped(np, child) {\n> -\t\tret = imx1_pinctrl_parse_functions(child, info, ifunc++);\n> -\t\tif (ret == -ENOMEM)\n> -\t\t\treturn -ENOMEM;\n> +\tif (flat_funcs) {\n> +\t\timx1_pinctrl_parse_functions(np, info, 0);\n> +\t} else {\n> +\t\tfor_each_child_of_node_scoped(np, child) {\n> +\t\t\tret = imx1_pinctrl_parse_functions(child, info, ifunc++);\n> +\t\t\tif (ret == -ENOMEM)\n> +\t\t\t\treturn -ENOMEM;\n> +\t\t}\n>   \t}\n>   \n>   \treturn 0;","headers":{"Return-Path":"\n <linux-gpio+bounces-36112-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=armadeus.com header.i=@armadeus.com header.a=rsa-sha256\n header.s=ovhmo103079-selector1 header.b=Do6u5Ku7;\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-36112-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=armadeus.com header.i=@armadeus.com\n header.b=\"Do6u5Ku7\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=87.98.150.175","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=armadeus.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=armadeus.com","garm.ovh;\n auth=pass (GARM-106R006582a2f30-e56d-4c4f-8000-ab83c7f616fe,\n                    EF376445141242EFB525A4BC622796E311A81957)\n smtp.auth=sebastien.szymanski@armadeus.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 4g8sVz2RC8z1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 05 May 2026 18:43:55 +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 307733034295\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 08:42:42 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EBE262F290B;\n\tTue,  5 May 2026 08:42:40 +0000 (UTC)","from 13.mo581.mail-out.ovh.net (13.mo581.mail-out.ovh.net\n [87.98.150.175])\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 F0A0B30BB8A\n\tfor <linux-gpio@vger.kernel.org>; Tue,  5 May 2026 08:42:34 +0000 (UTC)","from director4.ghost.mail-out.ovh.net (unknown [10.110.58.249])\n\tby mo581.mail-out.ovh.net (Postfix) with ESMTP id 4g8sGB5gnwz60B6\n\tfor <linux-gpio@vger.kernel.org>; Tue,  5 May 2026 08:32:50 +0000 (UTC)","from ghost-submission-7d8d68f679-92v2f (unknown [10.110.118.108])\n\tby director4.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 74512C31BF;\n\tTue,  5 May 2026 08:32:49 +0000 (UTC)","from armadeus.com ([37.59.142.106])\n\tby ghost-submission-7d8d68f679-92v2f with ESMTPSA\n\tid muovFjGr+Wkn/wgAJ55Jkg\n\t(envelope-from <sebastien.szymanski@armadeus.com>);\n Tue, 05 May 2026 08:32:49 +0000"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777970559; cv=none;\n b=Kg9MM1yxjcnvxfL4s+r7aRKEcgZgECtzI+gwVGVhvXBJFAgOvPwYy7RTPiPMx+yo6TOohYoqkB0UTlmfm1FoSx8kCSuqYuEaRVU+aQ58VWIJN6X8x72OGdc7Xv111iZogLRyEt82BCMdffyt8KbqL1iDtfhEq9naK6nkv1KmPk0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777970559; c=relaxed/simple;\n\tbh=UeIRA0xIGC2b+3SSnkE5bR3iIrYnOtlOcY4wZZXP7ko=;\n\th=Message-ID:Date:MIME-Version:Subject:To:References:From:\n\t In-Reply-To:Content-Type;\n b=QfgQDCmasFAxaQifNplj97vFle3cSEjupj8k9tEnmowdy6cTa/8DctBc8YhNNGZqvjgNTvU5BUuX92ua1tS22EyxTwjRbk66MD5biwX6NkxVnP2c5DHryEiP98IgVLv4gFzTUbkaO1HntscIOODKBF60hpJlDQ2KkoYIaZWxhFI=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=armadeus.com;\n spf=pass smtp.mailfrom=armadeus.com;\n dkim=pass (2048-bit key) header.d=armadeus.com header.i=@armadeus.com\n header.b=Do6u5Ku7; arc=none smtp.client-ip=87.98.150.175","X-OVh-ClientIp":"90.126.104.208","Message-ID":"<b5f75901-29c0-4153-ad1f-543dcf7476e4@armadeus.com>","Date":"Tue, 5 May 2026 10:32:48 +0200","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","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/1] pinctrl: imx1: Allow parsing DT without function\n nodes","To":"Frank Li <Frank.Li@nxp.com>, Dong Aisheng <aisheng.dong@nxp.com>,\n Fabio Estevam <festevam@gmail.com>, Jacky Bai <ping.bai@nxp.com>,\n Pengutronix Kernel Team <kernel@pengutronix.de>,\n NXP S32 Linux Team <s32@nxp.com>, Linus Walleij <linusw@kernel.org>,\n Sascha Hauer <s.hauer@pengutronix.de>,\n \"open list:PIN CONTROLLER - FREESCALE\" <linux-gpio@vger.kernel.org>,\n \"open list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE\" <imx@lists.linux.dev>,\n \"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE\"\n <linux-arm-kernel@lists.infradead.org>,\n open list <linux-kernel@vger.kernel.org>","References":"<20260504170836.1794372-1-Frank.Li@nxp.com>","Content-Language":"en-US","From":"=?utf-8?q?S=C3=A9bastien_Szymanski?= <sebastien.szymanski@armadeus.com>","Autocrypt":"addr=sebastien.szymanski@armadeus.com; keydata=\n xsBNBFNfZLEBCACv1lqSePHJNpRgcnER+3emy+Arjz84zFax3XkogjY/e3ZneihIgWrVKe5M\n ql16pX4KTkzNgMUKz4bG/XwT3kjcrXshxFLlg7KrHMl287C+W+QOUjnjVeRi/su+SPmjz8VD\n yr11h+ZkVLAWhS+uQJ93jy1NwG8M4t1kBLAVHHD5Vw4FJ+3ouaVYIp1X1Cr8bVKQw33Q1aTd\n ro0kMBb96B9vNu7ciJZ3gvlaBzUEKOgNnq9KaywuLnqrqr4HUIn5JuxZjCjJzt9kTAKcTfp2\n cJM8qpp+2FF5qtbkse9fZ6M64qozgOPr9Tk4Amf9fZEUQ6UNw14mmBZuXSzoHe75gI7TABEB\n AAHNN1PDqWJhc3RpZW4gU1pZTUFOU0tJIDxzZWJhc3RpZW4uc3p5bWFuc2tpQGFybWFkZXVz\n LmNvbT7CwJAEEwEIADoCGyMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgBYhBJwGygpYm/1C\n /GCmwbCaKeiBMmTiBQJdhIHLAAoJELCaKeiBMmTixXIH/2W3kbzRG0UF81jtRRnp0H83rjDT\n v0H+8fgFMRL/7HCJ1QPArkfRJlM2wlJkN+ChP09CCarYfUEHfRCHlTb7At6Yyrz1jziD7ZwX\n 8IWHYRXnZkY5eZc5DsiUgq6JH49kt+GPzK8UVP9MTa6zkBpPCUf7LzZ4pD3FihdkT52BU3gI\n d9P49fSI0TYySlb/VKn815aOhvwEr7+Dh3mZUjSh7saofbRmVUOr7p+R3MvvGI19/IJZjeOE\n ZWliODDOt6HnBOtoGSXMcNIFF6snH52D5N5gY88njZjTwhgGGUBix1bsgf/EY0v4R5itZBXB\n B/Ze4Tm++YHaB75hZK6PQu/YRv7OwE0EU19ksQEIALo7jhXddrXBTRu5SAjelV53jyHBJTX/\n vN4nL/VbbW/saca+NJjDSxx5DBmotZbQdWIyZiSIjU/xnTREvtDrl6ZeSsKWd7ZqiuiY4fSR\n zwuQp9rd0yqRuxesrWeyJB1zCSdEvLyKASERt+nxkOA+IzJ4y1qLtvnWr+SL1AXgTMw+Tkyw\n KIDCRWHTIYas11ldGj82gOIpYeXnapeNLHfT4EQwg0NeWYHynJxAQWiX5aPlw0uSpAQSsBXQ\n FIe3fpoveMSnXK+PG2BBOzexYv7r4S70a6sF9sgTTPpfKqUaqqC+u1+bUX6alTAKhGKJywaF\n 6ViqLlgY8PfwohSyAlqlTRMAEQEAAcLAdgQYAQgAIAIbDBYhBJwGygpYm/1C/GCmwbCaKeiB\n MmTiBQJdhIHSAAoJELCaKeiBMmTitU8IAK7NQM3fEwaF5XaKtepYWsVka44CD8A9e4r7NVK9\n ugirKvXirIxBSDmN/Db862NmVpITsZ6ERNSNZLm/7k55N+TexKYiFZeU7G92TEfAM6qPElvx\n DLEcrkNMq9r08YZeUloacsq31AL5fK4LW+xdvXudkdiKRMJsdTpmff3x5kIziGOHjwFP9wve\n ZgEH52gpbRsP8Whx/Z2lNX/BBRmFM8OnEXFsjjqDzYThdxTq85wGPpkgvvUGyPNRD7TpbB1C\n pajOUUkPxgj5LKt77HD1afeZNudWhgcdkbtT5PMQTT0WY6wvMEj9S1+bGPeXRGWLYB7gHQ+L\n JNoSD7Kz6Y9qnKo=","In-Reply-To":"<20260504170836.1794372-1-Frank.Li@nxp.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","x-ovh-tracer-id":"12335922329985537596","X-VR-SPAMSTATE":"OK","X-VR-SPAMSCORE":"-100","X-VR-SPAMCAUSE":"\n dmFkZTEb25FGR3nOhA5+91Dq+E8bxlVEcVCP3B9EOMEnmpQdQrRBSNwBHJU0A57XiRZ4GmB+NkrWNoaJJZf4PxdX7bZoE1Zke2M4w8q3Rfg7BvbKroSxA/zlnsoKKQS/N/AWiqL5Idv9FMD7K/VoPYEqV+elc7uCrH/8rED972sIVeCkCeVvlDksLJjByTIG8Q23/1G0jtGscTqpK10kJxDRm/Mp+5haI1GoD7Jl+zGF1HyrGjehGYc5vZiJxSSwQaMSEOGhdpfDPMB/SwMXFhrT4KRj3U2M+lFHBOTuwLimFt1oK7tX9qfwJO1xAmI4XSrkNceytXsRfjQ2a9nSOVnNE+wbb0Ga/Kqu+YiaraTpbcgNGPbcOGNsAPue302BB0FhuM3Th1XUp5w0RSlsNSABnF+Sma5G0eZ7KPD7traMKETDdYL6dHdsdJggaySPv83S4VJEvKiFOL+KYKWm7EzJwGPln+ONc3w4y7DPIl9cl66FPcj+poCDA85cCAuCEK22haPhHPDEQM0UM/nKumGmLQh6x9lXFTzk8WIVXbJo83EVHY847H5GHFJ+t7k83Lg0jjApinYCbQGknBbn+mgCaLe9DFLMarlg4Udknr3UiRoQ/Cv3hH1EetnYPjl1m65eekg602/zFQvNINvg8vBamsTcGiwNes0iL1vmdFr0uvaHdA","DKIM-Signature":"a=rsa-sha256; bh=iK2OTeqhoBSCveaCZexOJs9PVb4BkPBHaXlxF/rh3GY=;\n c=relaxed/relaxed; d=armadeus.com; h=From; s=ovhmo103079-selector1;\n t=1777969971; v=1;\n b=Do6u5Ku7eX6UIF3R96zMpCeUIo7GLJTLcUIMaDSuj8NcjGQZMI/tQAA+A0YJ+NRuaFvcfFDV\n CXbFObklQuf4vnOOwLupte9otDmWc4h2nrBgM1N/6MLn6Z1EB2Qw6BOUxKE1hRq0dinoDnxDNJ0\n EO97leMDcdFlDAaLYNI5n2q71LkjfowgDzVC/b8geyIOc1nJsLyKOUAcYKmXrtQMeMX6/I0Li+4\n QHRirIyIrY/wDbtm9wsojJwDchDBqNcCj2Hm0Ua7wXAkJymFnyDRhF39tcqoCy1CrGu9MKSdp7J\n n6ssmgchukE2veiUL3dAOcTM68HGTGSlsj5Jylt2e05UA=="}},{"id":3686555,"web_url":"http://patchwork.ozlabs.org/comment/3686555/","msgid":"<afoJZDlChRnPltVI@lizhi-Precision-Tower-5810>","list_archive_url":null,"date":"2026-05-05T15:14:44","subject":"Re: [PATCH 1/1] pinctrl: imx1: Allow parsing DT without function\n nodes","submitter":{"id":68011,"url":"http://patchwork.ozlabs.org/api/people/68011/","name":"Frank Li","email":"Frank.Li@nxp.com"},"content":"On Tue, May 05, 2026 at 10:32:48AM +0200, Sébastien Szymanski wrote:\n> Hello,\n>\n> On 5/4/26 7:08 PM, Frank Li wrote:\n> > The old format to define pinctrl settings for imx in DT has two hierarchy\n> > levels. The first level are function device nodes. The second level are\n> > pingroups which contain a property fsl,pins. The original ntention was to\n> > define all pin functions in a single dtsi file and just reference the\n> > correct ones in the board files.\n> >\n> > The commit (\"5fcdf6a7ed95e pinctrl: imx: Allow parsing DT without function\n> > nodes\") already make moden i.MX chip support flatten layout.\n> >\n> > Make legacy chipes (more than 15 years) support this flatten layout also.\n> >\n> > Fixes: e948cbdc41d6f (\"ARM: dts: imx: remove redundant intermediate node in pinmux hierarchy\")\n> > Signed-off-by: Frank Li <Frank.Li@nxp.com>\n> > ---\n> > build test only\n> >\n> > Sébastien Szymanski:\n> > \tCan you help test it? I am happy i.MX27 still alive.\n>\n> Sure! Thanks for the patch! With this patch applied on Linux 7.1-rc2 the\n> board boots again. I see the following messages, though:\n>\n> [    0.085139] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.085226] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.085281] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.085327] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.085372] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.085416] imx27-pinctrl 10015000.pinmux: Not a valid fsl,pins property\n> (gpio)\n> [    0.092693] imx27-pinctrl 10015000.pinmux: initialized IMX pinctrl driver\n>\n> That's because there is no fsl,pins property in the 6 gpio subnodes.\n>\n> Tested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>\n>\n> I one have comment bellow.\n>\n> >\n> > Frank\n> > ---\n> >   drivers/pinctrl/freescale/pinctrl-imx1-core.c | 48 ++++++++++++++++---\n> >   1 file changed, 41 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> > index b36c8a1461b7c..bf07e0c64a098 100644\n> > --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> > +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c\n> > @@ -540,10 +540,34 @@ static int imx1_pinctrl_parse_functions(struct device_node *np,\n> >   \treturn 0;\n> >   }\n> > +/*\n> > + * Check if the DT contains pins in the direct child nodes. This indicates the\n> > + * newer DT format to store pins. This function returns true if the first found\n> > + * fsl,pins property is in a child of np. Otherwise false is returned.\n> > + */\n> > +static bool imx1_pinctrl_dt_is_flat_functions(struct device_node *np)\n> > +{\n> > +\tstruct device_node *function_np;\n> > +\tstruct device_node *pinctrl_np;\n> > +\n> > +\tfor_each_child_of_node(np, function_np) {\n> > +\t\tif (of_property_read_bool(function_np, \"fsl,pins\"))\n>\n> Isn't of_property_present better here...\n>\n> > +\t\t\treturn true;\n> > +\n> > +\t\tfor_each_child_of_node(function_np, pinctrl_np) {\n> > +\t\t\tif (of_property_read_bool(pinctrl_np, \"fsl,pins\"))\n>\n> ...and here ?\n\nYes, I will update it and send v2.\n\nFrank\n>\n> Regards,\n>\n> > +\t\t\t\treturn false;\n> > +\t\t}\n> > +\t}\n> > +\n> > +\treturn true;\n> > +}\n> > +\n> >   static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n> >   \t\tstruct imx1_pinctrl *pctl, struct imx1_pinctrl_soc_info *info)\n> >   {\n> >   \tstruct device_node *np = pdev->dev.of_node;\n> > +\tbool flat_funcs;\n> >   \tint ret;\n> >   \tu32 nfuncs = 0;\n> >   \tu32 ngroups = 0;\n> > @@ -552,9 +576,15 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n> >   \tif (!np)\n> >   \t\treturn -ENODEV;\n> > -\tfor_each_child_of_node_scoped(np, child) {\n> > -\t\t++nfuncs;\n> > -\t\tngroups += of_get_child_count(child);\n> > +\tflat_funcs = imx1_pinctrl_dt_is_flat_functions(np);\n> > +\tif (flat_funcs) {\n> > +\t\tnfuncs = 1;\n> > +\t\tngroups = of_get_child_count(np);\n> > +\t} else {\n> > +\t\tfor_each_child_of_node_scoped(np, child) {\n> > +\t\t\t++nfuncs;\n> > +\t\t\tngroups += of_get_child_count(child);\n> > +\t\t}\n> >   \t}\n> >   \tif (!nfuncs) {\n> > @@ -574,10 +604,14 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,\n> >   \tif (!info->functions || !info->groups)\n> >   \t\treturn -ENOMEM;\n> > -\tfor_each_child_of_node_scoped(np, child) {\n> > -\t\tret = imx1_pinctrl_parse_functions(child, info, ifunc++);\n> > -\t\tif (ret == -ENOMEM)\n> > -\t\t\treturn -ENOMEM;\n> > +\tif (flat_funcs) {\n> > +\t\timx1_pinctrl_parse_functions(np, info, 0);\n> > +\t} else {\n> > +\t\tfor_each_child_of_node_scoped(np, child) {\n> > +\t\t\tret = imx1_pinctrl_parse_functions(child, info, ifunc++);\n> > +\t\t\tif (ret == -ENOMEM)\n> > +\t\t\t\treturn -ENOMEM;\n> > +\t\t}\n> >   \t}\n> >   \treturn 0;\n>\n>\n> --\n> Sébastien Szymanski, Armadeus Systems\n> Software engineer","headers":{"Return-Path":"\n <linux-gpio+bounces-36224-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=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=k6NWPnsJ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-gpio+bounces-36224-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key)\n header.d=nxp.com header.i=@nxp.com header.b=\"k6NWPnsJ\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.83.38","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 sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\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 4g92BL45dlz1yJ0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 01:15:06 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 2297B3002B06\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 15:15:03 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 47782390CBD;\n\tTue,  5 May 2026 15:15:00 +0000 (UTC)","from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013038.outbound.protection.outlook.com\n [52.101.83.38])\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 2FAD434A3C5;\n\tTue,  5 May 2026 15:14:57 +0000 (UTC)","from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8)\n by VI2PR04MB11099.eurprd04.prod.outlook.com (2603:10a6:800:298::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May\n 2026 15:14:53 +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.9870.023; Tue, 5 May 2026\n 15:14:51 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777994100; cv=fail;\n b=ijx6PRYlf/wHJ3PrQP/YDVWNZEJTKsthtErVBWYxow+MN8axdRTz79iwxVJphrp6mDJpvEEKbcHauyoOIkbL2yLYffAunKVDDNUE0VVqZ02+NDHriZOOuHqYQFKYhOKrYEuURxVtrT3H3RahvZzgAW682eKClAzZJSGCAe+vNZc=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=NPh1uNrKLJB3ZPZiJ8Dea4CL1PGJmpTJtV22G/3M2QUv1Bs7AQVOamzsNteXyn3TRZtokV9RbxeXnWHQP6MsTEppYk5h5gTIi81Suuyq+5T173jn4ZnfG2k0GDrq4V3m4TEh9oWTWh5Xq/bP+VvceMc796x0xGrdyCoG+Hydjx5tLPpk9GIKqY5MPimvYEEqg0vHx5FNIz4ghcn2M1Smc5KvuRjWHT13TnnXT+Hc2zixKD45T0/MCItfP+osbonFRDkC7F7Bzc9hwx2mAcwaIMbmoKLNrP/peNKm9dY/6nfokEgZ3ccyj7NO5crxFBdr/KQi/wyaFVJYeJJlLkFJxg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777994100; c=relaxed/simple;\n\tbh=35ESPu8Q9P83o7gx72gymWtfRoGYPvynOlLlXEha37c=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:Content-Type:\n\t Content-Disposition:In-Reply-To:MIME-Version;\n b=N1/riRxMVSgrUwzY07nOGwN4NUmMAS6IarjOUxZev2bFrM/R50Mrrecl9QPDEP/enfDJ3s/PoJAxAOZfFYElMlbHqqYYEof+DmZ1KSlsv6hJyZn9A6Ras3cH++LdvKGXeRpoghor4hw22C+zoW4Y9YfZ02SikEi66HX5yDw7rQ4=","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=8+gtkGOVgyjT7X+DqcxNNy6R3uwv+zcZnVjZX+u8fN8=;\n b=YYgXjGY4PkiS9LG9lwymo+MLZZ/ORFPNCI1e3gaw0m7K2ENrR8WXz6IheARK/MPIdIJtntPf6B3afLoLRaU6EBpMPLJYb5921iGarUGkmkzH+016qxVNoirWpasSKUwhvwUGNXkWVcYACxyd+OGtjf3jJOkx4XCWH682Mtc5mKf+0Cc7fwU08JR3VBtDHwQ37TmPV06xa2eSs12zYyIXLJwlZlpggPhw4+RgtuTFsretaPrvoLj40ngDM1BM9Ihcf+EuiuL4cqw6pHDvlM1f6Q4mmDfAtuJCCWcLbIj0btrTXZf6beMqOSkxZbE7Yl11ecBd/2Mk+APzOIr0DV4dMQ=="],"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=fail (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=k6NWPnsJ\n reason=\"signature verification failed\"; arc=fail smtp.client-ip=52.101.83.38","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=8+gtkGOVgyjT7X+DqcxNNy6R3uwv+zcZnVjZX+u8fN8=;\n b=k6NWPnsJ2DyYwaNIG6TQC6QYiYclPPGl6mcfnG2kJTHJa7LVGWXTCvjnyluM0yITqb1kkZENFrhvFhBwiyXX+bDved1vVbkEMzIILQC8VOqCf2u85fUeJm+r6IixWchW0dO7/wFFlUJUUW1iBbgIcdz/pAwHXFAYCaDm0l3u6hULZ8HtTCEGndj8EVyEOsAy7uwm/kZx8gNDeH227SW6MtPu23OF27Qv1BKzisYQMRhnHnRTsMimk1/PEfMylYKZGAUvXI+TPtiLc33ea+6BKUb/vTQkudzqgs/5cHm7GE0iSyK7MxRDJu66giFHCOPb/xLQzndby5m3nyJTvRzdIQ==","Date":"Tue, 5 May 2026 11:14:44 -0400","From":"Frank Li <Frank.li@nxp.com>","To":"=?iso-8859-1?q?S=E9bastien?= Szymanski <sebastien.szymanski@armadeus.com>","Cc":"Dong Aisheng <aisheng.dong@nxp.com>, Fabio Estevam <festevam@gmail.com>,\n\tJacky Bai <ping.bai@nxp.com>,\n\tPengutronix Kernel Team <kernel@pengutronix.de>,\n\tNXP S32 Linux Team <s32@nxp.com>, Linus Walleij <linusw@kernel.org>,\n\tSascha Hauer <s.hauer@pengutronix.de>,\n\t\"open list:PIN CONTROLLER - FREESCALE\" <linux-gpio@vger.kernel.org>,\n\t\"open list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE\" <imx@lists.linux.dev>,\n\t\"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE\"\n <linux-arm-kernel@lists.infradead.org>,\n\topen list <linux-kernel@vger.kernel.org>","Subject":"Re: [PATCH 1/1] pinctrl: imx1: Allow parsing DT without function\n nodes","Message-ID":"<afoJZDlChRnPltVI@lizhi-Precision-Tower-5810>","References":"<20260504170836.1794372-1-Frank.Li@nxp.com>\n <b5f75901-29c0-4153-ad1f-543dcf7476e4@armadeus.com>","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<b5f75901-29c0-4153-ad1f-543dcf7476e4@armadeus.com>","X-ClientProxiedBy":"SA1PR04CA0010.namprd04.prod.outlook.com\n (2603:10b6:806:2ce::16) 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_|VI2PR04MB11099:EE_","X-MS-Office365-Filtering-Correlation-Id":"f4092ed6-8603-459d-4593-08deaab90e28","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|1800799024|19092799006|376014|52116014|366016|38350700014|18002099003|56012099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n\tkBbRFz7i/zeo34xAuDZj8yaE3tr8gHwX4AWlXLksPgYscwF6e1fw0rg6JbJJpUtP7W+6eOxGcLMGsSJuKQu83miS/zZ2C+Asq+/ttpdjDqeI/8fGN1/qeoyvC6cTgOIHNxM77iLPYnopAahlwRgfK0aMzSCyztzgqvfFVKyfcdDkf9+0K5XfFcgkU8HXRijKG/KukrMk2JNbXJ93EoNidvqzkxolwxCuwVExCStEfFarL+wvI6k17XOAi88sfqyCnTx/hCKfXRDc/4XVvltNvAELIh5hCoVovNMLfRr7tqj0tNs3lqBHJu4y/26poaZbYKfteZuteztslx9XNDwetSPwr1LaJt7Ji5g8fsPWYV/Qde2Sxg33cauJLBymvI3t1fN8UjD9QQEPdHaZvBKT9eXJSR4IOiRYn19EjWl7lAi/kFL4sGcd2ejay82d1HraIRXZCVzeI2WkjY6OQFrqCyXsJWGzmX2o5vD06+Dvy2pk/sy5FtglUnCaMesF72AZHwChYQgjqn/fq/fyvHDR2gDBaxkie1d433fOHHYqdz6qgq8sx6gFn9BBy0WNysVGLgOiV1MJ0hXTjMYSCVOz26MFRC6zMWyvbVXnDrOCbHzCUSgMQh8FpFijcY/z/wJ3Xh9ZGMo0Nf6mjcvlazUtQhgvzfwGcpiogmbl8lFXDVdzJ8D5Ow2mydxBheVLPc/miFIre8JMIX3uVrtBQQhbyWh+gwXYR+laOjsfmAaw2F+GrzvkY08fFNHcvEhn65PR","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)(1800799024)(19092799006)(376014)(52116014)(366016)(38350700014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?iso-8859-1?q?Wb8qIaQniynit5e1pqE1yow?=\n\t=?iso-8859-1?q?UHVxqRAQwkpA+3Pbtv9xHYCtmkPrJWlfJ1Lhgo6N6RR2y4Ce2x1AL/3uQ1lq?=\n\t=?iso-8859-1?q?mj2Lq9SUHRIp4Y5PxjYhxOL2guVIFp0ksX42I1xF27xg44Erjvrg6BcP8B+O?=\n\t=?iso-8859-1?q?Gc4+MyvqZGbb+c1fvP/myIH4WvC4cViQ334PVCIRZWBwETzNeNd3PNDvLG38?=\n\t=?iso-8859-1?q?aANCIQh5r9m/R4BxeQILqZPS61HVUnmiOhFDIR7UOAQsQ90jCH7wxIgdHYwa?=\n\t=?iso-8859-1?q?QN3IdonQJJPaBTSnR/4nBl0gjfRS5SF649BY4whr7AUB1bqjqD19GjmHHRhS?=\n\t=?iso-8859-1?q?hhugAuIWo2E4es8CBHkKFPpHZCCUrr1WVC0MD+Bqvobg60du1a9ZGlSbc6Um?=\n\t=?iso-8859-1?q?waJfQ41AwmarwjEYLUmpMbMnUU4SZmrQJu5K2lFW6a7Su0/2vQV5I8f7uone?=\n\t=?iso-8859-1?q?28MImBM554vf6CiWEZmmybWBeZuzcKfhjZAGtrZ+I+9P8inFvsChfa9nuNFe?=\n\t=?iso-8859-1?q?2sPHVPgUl7xYmuofRBGhL562G5jym1Hm8NxoopCUj8jkgUUZ32cokkhyVAfD?=\n\t=?iso-8859-1?q?UmP19kmSHPX57YQwDbPi3eu6w016/KvTNqGpkyDjC4QjMDvHX8rvDyOEu6vo?=\n\t=?iso-8859-1?q?7w8E+AB9wQgo/ZMDCF2U2HVWmK5+9r2MoZqXTuH6dV/vseZ9B0V6aavBcNyQ?=\n\t=?iso-8859-1?q?qHH+iStP6mWe08CpcdcgMIsYQ5RMssJPhs1D1mAQNKsWzCHv1JG49LiEuB6q?=\n\t=?iso-8859-1?q?TvKBXycu3FMkKmH1Nzxf4UCy1ov0x1uLHrW5I9ZPRYYX7Fvuzx5myBNhfeu0?=\n\t=?iso-8859-1?q?owgAsMR68vjGlADUp6tZ3nWPx76VUytt2vV3SJF6X52i59bX8bA9XzWrZ0tq?=\n\t=?iso-8859-1?q?rzjofMXNNK7FbXUQunHFcTFkkUN1B7h4oiBRbJ2LkoQt0lWDPKWeNwOQZgZd?=\n\t=?iso-8859-1?q?BITySDBW7DWKAh7pcCS4uJs/EGPxXuz0KGAB+uya1CCBbr8+gVj+cO5pTa2+?=\n\t=?iso-8859-1?q?p6thILC72kjpkxcfv43UfwgVe6AL8R1ZUdYe/zFAkAstI/LJuKAAXwFNx11s?=\n\t=?iso-8859-1?q?8bZb5CdT/1bAzrAcWtTaf6v3VXfffTFT887gXjJNbyV5suGu2mW9LAygVfmX?=\n\t=?iso-8859-1?q?8F6J1g3X37q/lGrsxDVq09+80ToE1l/ORswlJBGo3+PBm6anWWRd6eYzHk+T?=\n\t=?iso-8859-1?q?nrtEzgxYGH2Y9jsHr6s0cpxcVJbbTBlj1VjjppAIz6t/O56FvpiCYU1BYt3u?=\n\t=?iso-8859-1?q?dDQDvu+e5h8/mFq++vP5j2gT2J1wtTQpiAWtE8yXAz+VQgBHnK910ePFIsaf?=\n\t=?iso-8859-1?q?K3G9CzvfHORCqDz/zV9PkC3TkBfh6djeAQ7XRVO2nhxQpThpaJss2mhhqJ49?=\n\t=?iso-8859-1?q?0rErZtIvNKRJCja9UK8CxcTi+MzjosOzZIZZIUs/oRKA1VUbQzbTFOQuGeVR?=\n\t=?iso-8859-1?q?4PNfOTVmHqIi07iWBlIOHj7LRFImbPgBL7H8CkKJLSFkDzCrOSppC+nmUk5E?=\n\t=?iso-8859-1?q?2Q9Jhp89d9YkA/9TsRwDo/6LCA08UzUpd03CxjIgkRT2sQw1SuALeqGLbCj2?=\n\t=?iso-8859-1?q?tZsjIYIGTCvHaKPX9+CAiX9MybILx/Dak4WkgIZmYoXhHJzTzdZ5QZitAfxL?=\n\t=?iso-8859-1?q?NHMDHqxWFCt1cINGIR72IJAQd0SKO50mlUWpXRIX7JmfcN0N7fO9JOnUus+s?=\n\t=?iso-8859-1?q?fDxaFgjr+Yy4q4Yxf43oCqG81s0t/6cnrthuw8LAnG+nL5vgiWsBjokwnnrJ?=\n\t=?iso-8859-1?q?w6OakGt2hQCLe6Z1LWKWVCqNNXwYz6f1ycGmuhw5iAvgxhg=3D=3D?=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n f4092ed6-8603-459d-4593-08deaab90e28","X-MS-Exchange-CrossTenant-AuthSource":"PA4PR04MB9366.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"05 May 2026 15:14:51.7800\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 85PFUirQwgEzA2cEbZ7L/xit6olLs9lwWj/j3uvpxfPUk9Ru/yLuKAzy8fR14mp4+J3P61w+gr1G5kcpM1vnLA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"VI2PR04MB11099"}}]