{"id":2233363,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2233363/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/cover/20260506-energize-dramatize-051909e54256@spud/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","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":"<20260506-energize-dramatize-051909e54256@spud>","date":"2026-05-06T09:57:38","name":"[RFC,v1,0/4] generic pinmux dt_node_to_map implementation","submitter":{"id":84372,"url":"http://patchwork.ozlabs.org/api/1.1/people/84372/?format=json","name":"Conor Dooley","email":"conor@kernel.org"},"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/cover/20260506-energize-dramatize-051909e54256@spud/mbox/","series":[{"id":502949,"url":"http://patchwork.ozlabs.org/api/1.1/series/502949/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=502949","date":"2026-05-06T09:57:38","name":"generic pinmux dt_node_to_map implementation","version":1,"mbox":"http://patchwork.ozlabs.org/series/502949/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2233363/comments/","headers":{"Return-Path":"\n <linux-gpio+bounces-36274-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=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=C8+4eyhu;\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-36274-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"C8+4eyhu\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"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 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9WL804HQz1yJx\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 20:08:31 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 8DDD8306B819\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  6 May 2026 09:59:31 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EACFC401490;\n\tWed,  6 May 2026 09:58:11 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\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 D628F3F2100;\n\tWed,  6 May 2026 09:58:09 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 9E674C2BCB8;\n\tWed,  6 May 2026 09:58:06 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778061490; cv=none;\n b=bIN0ZoJLgeFedKsJqWOTxHBgRrT5AIpk5v6+sctH+GRktlMF9byZQg6kcC0OBoUphZroKOobsl0EDGXd2LZW/olGPpSk7y3Tuzz+fmcwu21PXDMOsZXkpBSdqzES0GxZxXUgf6orz4P2KZt8xUQlpzcUSzygy1+Bq7EaMhVHAz4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778061490; c=relaxed/simple;\n\tbh=QSMJQ+qo2d/9QKlnpqj/XC1VAZOrvcslyFb4rShhWfo=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=g4CEbyYFMGRBhvrnBWFwLJ9arp8Km8cC2KDbaryv+BMlDN85D3JtvrAT4t1vTX4QNqqXLudKWWNRbJl7DXn+0j22cKprXi4gdcs9OBPAubynbIm2l6O+Dqx6NuzgCtVQ2jKKudZAjYWz5OQiuCMMXtUPEzxduDXKhPUnvpmFUYU=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=C8+4eyhu; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1778061488;\n\tbh=QSMJQ+qo2d/9QKlnpqj/XC1VAZOrvcslyFb4rShhWfo=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=C8+4eyhuvovWq6mc3xqieYOq9rP+hCzGwn0H8Mgh8B99uy5MH/ax2hBokSkgCW+o8\n\t eZxZhQD+cT9cai+VpeUww1hPBCUpEZVkRuYSydROOzI4Vx/xV8AgFbIJkccIhgn0rA\n\t xvL/tze8Kyir8FhZkIL/f6fNrXTCV5NFPys661tKV4/DgfL2tUU5r4LFQI9NKO+LKI\n\t 7wzDFYi+zpnGN6HbZY9hleThnNyzfIiYtWZOOzJt0HCxyI3Gm87asYiyxoP2Tmgi/w\n\t EWWO6n8bPPgHHedIOY1I51zTeEcVIjacf1e3lTTM2Pmib/meTXzaavoIXuWrfMx3BV\n\t /n0WSNKVDuHfQ==","From":"Conor Dooley <conor@kernel.org>","To":"Linus Walleij <linusw@kernel.org>","Cc":"conor@kernel.org,\n\tConor Dooley <conor.dooley@microchip.com>,\n\tYixun Lan <dlan@kernel.org>,\n\tTroy Mitchell <troy.mitchell@linux.spacemit.com>,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tspacemit@lists.linux.dev","Subject":"[RFC v1 0/4] generic pinmux dt_node_to_map implementation","Date":"Wed,  6 May 2026 10:57:38 +0100","Message-ID":"<20260506-energize-dramatize-051909e54256@spud>","X-Mailer":"git-send-email 2.53.0","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-Developer-Signature":"v=1; a=openpgp-sha256; l=2283;\n i=conor.dooley@microchip.com; h=from:subject:message-id;\n bh=vL3K36qzSz+jxyjtup88by9kUgRXxlFkjxJK/EVWVx4=;\n b=owGbwMvMwCVWscWwfUFT0iXG02pJDJm/BSa1vbz+/sXPt4+nML0KOv1ojrcO6+r3P90V5QT0t\n 6yYUGSf31HKwiDGxSArpsiSeLuvRWr9H5cdzj1vYeawMoEMYeDiFICJFIkzMvROTS2ZUvNc5UWB\n tbVo2LmGHn1pBv59Cu/togLu1llMP83IMLn4/NKwN1POf7dcvL3xMEO1W1EBp9dX6SIzP7VuduF\n FnAA=","X-Developer-Key":"i=conor.dooley@microchip.com; a=openpgp;\n fpr=F9ECA03CF54F12CD01F1655722E2C55B37CF380C","Content-Transfer-Encoding":"8bit"},"content":"From: Conor Dooley <conor.dooley@microchip.com>\n\nHey Linus,\n\nWhipped this up last week, at to a first glance it appears to work,\nalthough the spacemit platform I've used to implement this has very\nlimited in-tree use of pinctrl so it is hard to be sure.\n\nWhat I don't love though is how similar the functions\npinctrl_generic_pins_function_dt_node_to_map() and\npinctrl_generic_pinmux_dt_node_to_map() are - essentially identical\nother than which function they in turn call.\n\nBasically, I wanna know if you think that that is acceptable, or if\nyou'd rather see something that's totally generic between the two\nand figures out which foo_dt_subnode_to_map() function to call*,\nor convert pinctrl_generic_pins_function_dt_node_to_map() and\npinctrl_generic_pinmux_dt_node_to_map() to wrappers that pass a function\npointer of the appropriate foo_dt_subnode_to_map() to a shared node\nparsing function, or some third option that I have not considered.\n\nIf you try to apply this, it's on top of Frank's mux series. It's also\nhere if any of the spacemit-ters want to look at what I did to their\ndriver:\nhttps://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/log/?h=spacemit-pinctrl\n\nNone of the patches have real commit messages due to this being RFC :)\n\nCheers,\nConor.\n\n* pinmux/pins + functions/groups + functions I think are the only\n  really valid combinations here, so it wouldn't be too difficult to\n  arrange that logic.\n\nCC: Linus Walleij <linusw@kernel.org>\nCC: Yixun Lan <dlan@kernel.org>\nCC: Conor Dooley <conor.dooley@microchip.com>\nCC: Troy Mitchell <troy.mitchell@linux.spacemit.com>\nCC: linux-gpio@vger.kernel.org\nCC: linux-kernel@vger.kernel.org\nCC: linux-riscv@lists.infradead.org\nCC: spacemit@lists.linux.dev\n\nConor Dooley (4):\n  pinctrl: generic: change signature of pinctrl_generic_to_map() to pass\n    void data\n  pinctrl: add new generic groups/function creation function for pinmux\n  pinctrl: spacemit: delete check_power()\n  pinctrl: spacemit: move over to generic pinmux dt_node_to_map\n    implementation\n\n drivers/pinctrl/pinconf.h             |  20 +++-\n drivers/pinctrl/pinctrl-generic.c     | 139 +++++++++++++++++++++++++-\n drivers/pinctrl/spacemit/pinctrl-k1.c |  70 +++----------\n 3 files changed, 164 insertions(+), 65 deletions(-)"}