From patchwork Mon Oct 6 13:00:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146245 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=2TEjaxP0; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26827-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKBr6V5Xz1y1V for ; Tue, 7 Oct 2025 00:00:52 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 6C3CC3B0B37 for ; Mon, 6 Oct 2025 13:00:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C16082848A2; Mon, 6 Oct 2025 13:00:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="2TEjaxP0" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF1BA2848A4 for ; Mon, 6 Oct 2025 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755639; cv=none; b=DRWrUuxEWg3B7TJkjBQyyp47xxrMgzVgTSv/oDS/ekorkyMAtBAx5Yk49HdOD5P07ek/cvp46H+YLTZGvUYPk45Qrv/wTsYdzDnbwJSZr5c4QCaZ+242515NK6UUXnvgBnDftOOwAZ0EVbgnEZYpJzoT6Pz/PDmCIhgZ9hJbhr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755639; c=relaxed/simple; bh=fQI/x1mfXGLwGHQU2jPShdqMN7mTN0xvuZeF3kl8J+U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bZU+7cLnLuiiWz90YUGDc31lhFIyzix9mdlNFDfvidUaaEJEEMxXYYcVzMNe3SGb6TlFHu6JqhAR33X/xquLO1w5n/6QwSOPWMhp4z3lLEwSroBJZQk546uAuf4KB1/IUbkU3Kb/mfLKyOE9pVE8ARqsQlg4tQ73Z/zcRlHTsMk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=2TEjaxP0; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-46e3a50bc0fso40467355e9.3 for ; Mon, 06 Oct 2025 06:00:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755636; x=1760360436; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uWNKnqg+rjVWS75Xku977zgkREPrPcBc6PcBPNb4lsk=; b=2TEjaxP0buZCzXIOPLHjHvGj2aO/f1dR964eIX3cfAqq0y/tKpZQtprJRRRjww6opj sllyxopZwc0n020VAvZluiQtZqjBR7bp3UL2aFFIwuXgxnAVuKOlJ83V7pW0YIJEGRJi l+xiLFDBWLQ1hhg0yvNgVoJmhiFE//smj9SSEQL5qxUc7ciy7nchuy7s4dfHihYv58nC wRIxIVNP8XblRKfH/Xa05qedDCsZ2eXbI4ljk++cs7jFa/2RlWAwby/PGzPCSm8CSKk3 JwxLn+xWbGxvnVPrDSEbTfnRZN7dESuNT0Wk3y9nDwI0a4g8IGm59LKhx/RHawrC1zrG XvNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755636; x=1760360436; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uWNKnqg+rjVWS75Xku977zgkREPrPcBc6PcBPNb4lsk=; b=oW+HxqS0s8eRLOtWocA2DEJkSTmQuBvIx9imKN9fDhEtyMG7gpV3fEpFvergbpGFw5 i3pepObmAAzfyp9dZcZH2G97l12t44hWkGG3D6bE7g+JcogqjdFfqqspc5Eyp5vIRfLR 0DulUN774u9sI+LqExVra2Es9JM2O64TFusAqjnuPOL+1oiuPfgzKfo8519CfrmloBaJ aGK5BdFRZAwUyRsDoL3TxbZ0xLHO0ZeV2p1mCQRS1jUQYDyxn3oqTyzFexSiuNiHc5eC 0YOLn8HTP0wJ7JIowLghR6ZYMIgh4Qu1jlwQOuh1fjRpkP57Xwn2QfpgZjChztnX7Jdc 6YQw== X-Gm-Message-State: AOJu0YxiZn1/vqxbbncCTPfECLnAU+ipKBQV2d8xDIm1uo1stNEGR7QF 24I8bbmBnZuidIeGT6sF9B1y3A2Ty8Fzp1nF8HrIY26jf6qHdcsRu8qXEG1dDvRar2M= X-Gm-Gg: ASbGncvy59C98CTYgIpitf083WQpp4/Y4CUi66hqRxG/9XGjk/AIL/J4BvxNgqo66Wj 1wtlM+IwJtODHuRaQYuJO0Rxd6tddia3CeqXZeZDarmvS19V6Ifqw0wyoH9vGKLth7zS7Vd458k XHau5bVA16aEIxfKkySF3E+OjfduYqohSTIefrOw0FmZh7TunpeXvTmQMy/wvyBPgeNrlhpCaJb bmrD094mLg/w8qKYyxZa7L6R732mVpIPUCD+s6qa9mR/U23qJKTeHPmqft1f5RO4+fbMfR5See3 IBPh30k4h7t7ykI31v35YlF4WbI031+AsBU8pG203RCZHgxS/el940NPeP7z7/pK2OHnR4seIrU UeF1obBLW7xeu6kkIUxKlF9HzvQ584MpYJlGiBUbHRA== X-Google-Smtp-Source: AGHT+IF8QYCtllO4mHewnOdNKwyg7VM7sonfF/iAif7DtVHOdnSxT2xKV7IG3D+F62nGaaXjHu14Rg== X-Received: by 2002:a05:600c:4447:b0:46e:3dad:31ea with SMTP id 5b1f17b1804b1-46e7113ceddmr102522015e9.17.1759755636178; Mon, 06 Oct 2025 06:00:36 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:35 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:16 +0200 Subject: [PATCH 1/9] software node: read the reference args via the fwnode API Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-1-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1002; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=O2Bm8zK8myf8pkCc6yVByD6bQNfFHPINhpPFtP7hF18=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471v6m7oxteEZyESdFKLOSTziNaLss3w9jkI7 CFUp3WLu7WJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9bwAKCRARpy6gFHHX cuYDD/9ytGdRu/CtE4of0wQOC+lY5AA6NHbxW4y00dovav8+EestNKOrbwTfXvNs8TakPPw9pf8 UmOs/1CbTbVGY3EcLdC6OgoI1JALLGd24bWbjibom89VSr//6m02QQrAp5Z+LfaHvLmPvpizNbn 4UMWZRgqiy/U+lZZQVigCatheQ7JxfW1BlVOergWWZByTEnzxrHzqAF9XkPbfUE7/Yx7z8+TGib GLs3y9t1tSz3EO12/yaJePTuFR9zXWXbcMcItgTTWZbqh2fOc0BEaoG1DPhFIyplT4prWrkuBax S3SBO4mh9TX0JymOXKxHkeyS0VCjdGs+S44B18z4EEfp/tiDBFoIGEBzJcQFeq8ctogQBCvBmgC Nb9aHZxZM/iQ0WacOk5hgeR+F7lN22T6EVBURTr+MSvLAchm62IIn5We/8SDFbE0yTqrGGQZ/LE wTqa8TH0aThr4XrmY0KYYwd2H7V+t82uP+S6ecYqn7Qq6qRSDzPobbx8T9W870xD3H0qKD/uYd/ RYzbLfUF8DEkf7WkFhtCI68FrALzdeVKFloqtCOhXNmDF1IkWvMMxOSeuT0usFrJq/75lSSST4c uBOORRAIPyRoWVFh1wSgYAg2alqD4cULdktEOQLEHWF2as8qgqm4vaFCyH7hTB9eXOVoSTxsuAd IvNrQtd63c1UVag== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Once we allow software nodes to reference all kinds of firmware nodes, the refnode here will no longer necessarily be a software node so read its proprties going through its fwnode implementation. Signed-off-by: Bartosz Golaszewski --- drivers/base/swnode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index be1e9e61a7bf4d1301a3e109628517cfd9214704..cc48cff54d9c3d4d257095b6cb4a7869bf657373 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -540,9 +540,8 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode, return -ENOENT; if (nargs_prop) { - error = property_entry_read_int_array(ref->node->properties, - nargs_prop, sizeof(u32), - &nargs_prop_val, 1); + error = fwnode_property_read_u32_array(refnode, nargs_prop, + &nargs_prop_val, 1); if (error) return error; From patchwork Mon Oct 6 13:00:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146249 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=27ZSLKjA; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=142.0.200.124; helo=dfw.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26828-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from dfw.mirrors.kernel.org (dfw.mirrors.kernel.org [142.0.200.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKD81ychz1y1V for ; Tue, 7 Oct 2025 00:02:00 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 87DCD4EECD1 for ; Mon, 6 Oct 2025 13:01:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5AC65285CA4; Mon, 6 Oct 2025 13:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="27ZSLKjA" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D18E28506A for ; Mon, 6 Oct 2025 13:00:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755642; cv=none; b=awhneQfXsFjmy2q9+gk0G3JEa3OGAUXXmw7GXm4xBFCw9a+qMjGoHo/3yHkHJ/hkZlZx2Fn95TOyTFthHwPgKviMWHYmzcmec7WkXLa6PclvzbLjkmEVb5MI5XbLDtBKKwFvWt8x1LAlywB/EaiY3TIQVuh6wAwll70iTiAXgIk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755642; c=relaxed/simple; bh=7Jqk+0Rw48ZsZIR+qXKKV2mT1aS0h7swJqBj47Ge5oA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=M6UjF+fktNSKHitdV/Klon3kOFwBaNnqU1HeAIPieoyUVeApMJfJHYNrBTbyYuyknHx4IAKaH1bDAH4vzEAiLWiX/7ptCyc5Lir/y1cSPap3Pp2NxvfYamikpNygp4vHEOeUYoozbfBGDLsUYiOdJ9XHpbaUwoxk4HdXpuM/LFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=27ZSLKjA; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-46e2e6a708fso32182335e9.0 for ; Mon, 06 Oct 2025 06:00:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755638; x=1760360438; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Ra6UJLsRCiTY4w5Dlw98xmE+EwKNUja03T9QbZDu+Z0=; b=27ZSLKjABouIedOlIgPvxXPFf5g331lFoew8SRjeOhfFkbZ8fDVAgXBzUPYsnEqlkJ BBwaCSbNHctnsZ6DdCV2D/Xn+lVPSaSH6tFh5VAGwXWq0XR2yJK8g/KuF8Uay10OXT8u kBgP8j6h0+V69DFQZ/ost69Ie3O+p33cLItKVCpAM/Q7wYMC4EhWODvvCGhcNLG7hlej 8wY66uy/btdIjW9X7jrEeNscL2jJM4rtLEVcwHp1r/jlhV1+xfgXfoyoAwgyf+mlwt17 ioap7uwb6hXTem7Hrn199FeGzf9e8X8NPfsf/+ePFzZboxwdgg/CehEPa01CNXIwxzcC Bt4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755638; x=1760360438; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ra6UJLsRCiTY4w5Dlw98xmE+EwKNUja03T9QbZDu+Z0=; b=mQZHSdJVeZgcyb+qIg5c+KuRRD/T3YCX1ebTi7lmQAWWhNTrP/8D+/kDj34K1Icn2W dE78/17g0aJWcaBvDQe5hvgRClkyIcEIb3gM5kONw0pnw3mTXfl50yxo1+mBqMgKWVcZ uSxvT/iK8PJUUyI0SILrpoA2FmYa6ZY50Lgt9RAj4QWswhAOzsXUay7mr16HqVKGyuTW G0mIUUYNd/Y/gDZd1ItvH3uK20WgJvR8BM0E1R2Pg4qsy/3JICrqAMuYDSu7qGVBygsG j8fPhiunHCk5iDXJyiGelo+wDa/lhgCFNglIaiFaxbmg4nnPLs5oCzYakZWG0EITUAzR Ffqg== X-Gm-Message-State: AOJu0YzMAaFAxXOlASz3vpTfppaTTGrmbwWlEzsFnUIang1EGwkzVcC5 JvQZQcLpBd9lazAF3wM2V+L46rSPUl1XEQBzeaHoBEldsksCQrc1v7TZrpw3yBenibo= X-Gm-Gg: ASbGnctxy/ZH6nJnZMrMaGtERFshFxWOF32pigZgdg1jjsYxktup1zzT92/gefak4FP uGCXhxju9LHLqtDjUPO0EnLLclgeVR33UGN8W9ZrWO1HA7PJJFeY/+OadBOShLrtkbllebBWdxa 057YBdbrpIxFigH0amw0Q51dUf5czQh3QSPRhoWd6DCDzu80fauWDsBvJkWUMSkyjuGkFNzm51T CbfSJYC/N8v8SGnpiOH3h+zFoaWwus0EkcEXwf9uQQ3qh/+SVnv2abqdNifoXsQg/wtkyu589Ym TlRMtNlWgUMo+E7kjqHwKqyBayx5IQItG1jTwKZvZ+Zdn8IqKsGB3spIDVDpgDnhCJMMPJVw+IP +aveNi8rQFhn+MfqBXblHWA+YehtOlbLYOQBpBSftHg== X-Google-Smtp-Source: AGHT+IFgLzIgY3pkjgFzcgT7VNRTa7prqsen/gecYHE31rP7DqfrVJpmATXrYOO7DsFU0yHLX2VQ4A== X-Received: by 2002:a05:600c:628b:b0:46e:4883:27d with SMTP id 5b1f17b1804b1-46e71147470mr88630675e9.30.1759755637657; Mon, 06 Oct 2025 06:00:37 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:36 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:17 +0200 Subject: [PATCH 2/9] software node: increase the reference of the swnode by its fwnode Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-2-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=853; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=sIF2HhSB+nj6SiXIxMNel4X3wr1KbNilnoWbpiOKTXI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471vLK1Kim9deZ74HcxK7aZgD3whmeIXPRFm3 KMWG/Qweg6JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9bwAKCRARpy6gFHHX crY8D/4xCm2koNyAO0n6ZToGqSga0HZbAspeEHKSlOdzR+hLK7wgy3tiCpeIkn1vsGNDzZvfjG/ Iu/rHEbo4OFbPnDz9bPMBqP+xe6s+9GR9NZiP03Z7e/PMub6BMnZraYcjpy4QN6KvjcSncdVulD a/tMUeKQ3gRwJEZV18YR/+o5zeZijpDqTJioG8hLg0Mp01pWBgogC/dz0AtWMFmjNjCdXX0IzXG nku+rFzKnJryquTRkJyTNL4c2hT8wZvR0D4uuuarJfsZMkNIyGMSRmeOrQwycBpujl71Xto8rP/ YY6CojcJQ5/cZaU1SiU2j4OweLodeL5+WHPJXkLBMgvU4+n+CuTLhfw0kfFFWNst319LloP0iV8 2NOAKcrmZ6A0ThSN6OfaP2gmSAMuU9ujuKazl0ppnYckr9F5ZA+IpYHpdbz9DB8Inic+U5BZigY aoG3FPKSxEE1AXEHdZzLeVLiBv1/7TkR+2U/8QqxaSFdX+bZzIAl4J1Hj5hwsgykZ64ojbwnV4C gJaslMY+7nrGc9VZTBj6Z0JPR7VVb4652BBj3ykkDjFKkpJiDb/+cLtOe2K7A0IexmhJxy5lADQ GuPu4B4vaA+LXGKEw74D+/yYgfPc+VVFApB1Xl7dPlsUJCLoUbjkfDx0copwxMQC7hgqU0mM7tc Gmrzs0jEt7n8Kdg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Once we allow software nodes to reference other kinds of firmware nodes, the node in args will no longer necessarily be a software node so bump its reference count using its fwnode interface. Signed-off-by: Bartosz Golaszewski --- drivers/base/swnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index cc48cff54d9c3d4d257095b6cb4a7869bf657373..a60ba4327db8b967034b296b73c948aa5746a094 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -554,7 +554,7 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode, if (!args) return 0; - args->fwnode = software_node_get(refnode); + args->fwnode = fwnode_handle_get(refnode); args->nargs = nargs; for (i = 0; i < nargs; i++) From patchwork Mon Oct 6 13:00:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146247 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=gAh7h24W; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26829-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKCn06nZz1y1V for ; Tue, 7 Oct 2025 00:01:41 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 998C418829DA for ; Mon, 6 Oct 2025 13:01:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 73C662848BE; Mon, 6 Oct 2025 13:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="gAh7h24W" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C66A2857E9 for ; Mon, 6 Oct 2025 13:00:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755643; cv=none; b=ANtUAv0KbOIWdQG6P7rJoTJ3unroyQFQzP6A6JyH4od2BHkR3lsyxMfKOEtxcrMl/FFkKazUCbjf1rVbifYm1ysDIO/misNlTfjE4oVKWu2oeb7yFASPbQ0VWroAfmETr3twSSVTM8v6hwjYMmc5XeePb0wWdQXvZrXVK8mHKcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755643; c=relaxed/simple; bh=AvhkONgnV/f/76mBmtjAh8xDscHo0o2v476DsPf7hi0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ueo/kPKVrMq4yPMC4b2+v0M7YkzSgeJT2Ny6mBoPS+l09Rl//4hConZo4Eq/kpkzYR4ua7EsLPp9qdcCpuZFYtOm0A8H6WOoFXE02Y+B2eHyyRuTkpAxkBytYlhwLheKLvigQxu3AR+EtZ+GV5hD9Nu1FrMWRhY1fpvI5wdRdWo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=gAh7h24W; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-46e29d65728so28392615e9.3 for ; Mon, 06 Oct 2025 06:00:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755639; x=1760360439; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pnG+vzoldItCA0lZEefd0SGWib4/b//mffQktXnGmVc=; b=gAh7h24Wda+4iatJHpPsBJDExrritNuNFuVadKU3vdxszQ6PUdqz7ZOa3qvlaUhzEl 5DvUEmRpIbrhUgDGQrVE4weISJu7UjPpfDz4m3HGmxsVt7iOQI+smwCsEwRrN1VSPipQ kTadpuwE8G8M7KVVi0vyh3gpfROAbdNVnHMhqCPGkX511QGkdgXv8QflIeMjEpLDkLEd bJJcsyMBu0lr2mX8XX51+6RUui03uKkfsEd2o1vw1ynauYU4ATli99/AoT4rRx09Fp7j tqm2iJYVoW4DxwF4qoi7T/PFpaqvOsSF71eJ9lqX+M/ils5rIz7Iph1HBYL/UzWAWbh0 7ODQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755639; x=1760360439; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pnG+vzoldItCA0lZEefd0SGWib4/b//mffQktXnGmVc=; b=m42VtWgo35jxuR/N+7vwI/jxphGiorBhZOct622qu/KyZevgMUmtuhB8sULm5m65UJ 4cVGSJehSx3fpTwBGt9WnYTX9tmmbcHdifwoXllqhBsgAIjUOIFJcKqoV6yWNA9UBPrD x7xqABHqY+tCJiLT1HvAltHQBXXUnQt7KLnUwhqGYxShzOsXvu1V2QJXLq2x7lOhrwTz iG4OQAGh67S55szQfVdwGYI7FAwltkqUVqyxqNdLUKfKhfZjxvaWoat9GoPjvNtHn+BB 3AUt+09wFsiec/SCZ3+K99aVcErS8dnunorY0RctfknoICnY+urOpSYRDVAyaI3J8eei ooDw== X-Gm-Message-State: AOJu0YyocouQtxLJKxIadiuuzdcTBazwBz9qkFFQTOPB7Y2tdEZgzXcf 0wwizZY6GiusRkzvWlD3cJuEf1avDAY/LG0NEKosL8xWdml9tvKJrXVN1pbyspqg6/A= X-Gm-Gg: ASbGncvPM14w6ATAoyzYWSoAccYdt/MqE1pUfpx/6fo0iIVIN/J4RzOrEJILuLPIfXu jXNP0JS7XL2PH3bGQZ1DymqsNr9iOtHfO0D0+gxCrDzqFKJrP6OEi/sam3XajHXlPBi47CIV53d V5ek3o0IGW5uXdHBgshVlXfN2+wuRy0DvS98D6/Y8mc8RPNWLf9dLAOsmbvylRRD278XxRvTkVr 0FNYsiEupyFvUt19q3BPOPC8Gs5tn3CPJctKvYjAKrjMQx/NpV4dokhwaBQTHmvrhr77UvmpXJv blj7rocPiX45a5LTOkvGz3aBdbu9NylI/jth0yC49n0W6qDUFNLxjysHaKRRQHgNG5EYpfxMIaj lMc63gJAyJzFSGfl5x9sSz3o+VCCoF54kwMlHjEipOw== X-Google-Smtp-Source: AGHT+IHtbeYY26Aypf28VgCSf3z+x7Hjb1RGm5XsiB/bpY4Z1Yu9YNHJN1j1b7isg7ZJPQAbsKQoYg== X-Received: by 2002:a05:600c:a31c:b0:46d:996b:826f with SMTP id 5b1f17b1804b1-46e720c2cbbmr59775545e9.25.1759755639349; Mon, 06 Oct 2025 06:00:39 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:38 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:18 +0200 Subject: [PATCH 3/9] software node: allow referencing firmware nodes Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-3-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5346; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=WSFYyWyrCPT2bWeYqzfvmUvOWn0rYkTPMrQkBOPvC6I=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471vKgVRBHpERVfLsLbgWt/+rXyWS6AU64Kv+ 1hJSkKBMbOJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9bwAKCRARpy6gFHHX cnghD/wKQr5daJtf++yPSFf9su52sfGvfzMLCm1h1An8vgqVJgkFvg5v2qEajVO/0lzeGxzN3sa c1f7E/Ijl+gH1rPijvku9ln9ylGq/RgdlGhklZzmq0jWutqmRqeXDkoAX0csJLBMA9lK44igQAm hpIdprn47fQEpNKoBR5wafciAarAOMVSj2kMmRDEzkBHXiARyUV6I+/yD5xKgO1Dmn7hadmSd48 XbhvxdMnCqAnMJ/8D7ZKPhR50iHY+uuCkPYwKACB/vhmDGdp6rIjZE9j1QliL+L/3Rqdz1DvMsX hEFi0GeD2sbT1hEkJ5RkJvpgFRbHCKitjclJCiao3AQTTBVyKp81twYVz2/fLeidOurRdkR2Hlq CQ9LqexuK+cE+Rsq+zxMX6S9H+mMG0Kcc3ON8QNA2OpLru4MSN0LH2rg7vFhAvpCTI0fo+r9Qtz TSGnFpPBkqe3S0zB9v3g77SS5t3FmXpH3572t99SpnO8Z99WnJVau8fhQfZI7dajs3hPP9vhSPF j9MIHtic86hHclpTPfViCa/IQ5iKW23KtV8tF36ec+mn4xX4ncubvXZKvMkVJsAtXGuA/6y5RB/ tp5JOhE2xXI9zSwUiPu2OJ8qKJKXSsrxN3S2NLSjFam7K0wmsNyBAXKy6y8UlpQL4lLuj3ZCUCB 82cvqlUL5kX7ymQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski At the moment software nodes can only reference other software nodes. This is a limitation for devices created, for instance, on the auxiliary bus with a dynamic software node attached which cannot reference devices the firmware node of which is "real" (as an OF node or otherwise). Make it possible for a software node to reference all firmware nodes in addition to static software nodes. To that end: use a union of different pointers in struct software_node_ref_args and add an enum indicating what kind of reference given instance of it is. Rework the helper macros and deprecate the existing ones whose names don't indicate the reference type. Software node graphs remain the same, as in: the remote endpoints still have to be software nodes. Signed-off-by: Bartosz Golaszewski --- drivers/base/swnode.c | 21 ++++++++++++++++---- include/linux/property.h | 51 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 61 insertions(+), 11 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index a60ba4327db8b967034b296b73c948aa5746a094..b7e91c60c1d51b167adc88afb0f06feeeccf900c 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -535,9 +535,19 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode, ref_array = prop->pointer; ref = &ref_array[index]; - refnode = software_node_fwnode(ref->node); - if (!refnode) - return -ENOENT; + switch (ref->type) { + case SOFTWARE_NODE_REF_SWNODE: + refnode = software_node_fwnode(ref->swnode); + if (!refnode) + return -ENOENT; + break; + case SOFTWARE_NODE_REF_FWNODE: + refnode = ref->fwnode; + break; + default: + WARN_ON(1); + return -EINVAL; + } if (nargs_prop) { error = fwnode_property_read_u32_array(refnode, nargs_prop, @@ -634,7 +644,10 @@ software_node_graph_get_remote_endpoint(const struct fwnode_handle *fwnode) ref = prop->pointer; - return software_node_get(software_node_fwnode(ref[0].node)); + if (ref->type != SOFTWARE_NODE_REF_SWNODE) + return NULL; + + return software_node_get(software_node_fwnode(ref[0].swnode)); } static struct fwnode_handle * diff --git a/include/linux/property.h b/include/linux/property.h index 50b26589dd70d1756f3b8644255c24a011e2617c..af72f579e8026cee2456b0983819e7a4bf0c6805 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -353,25 +353,50 @@ fwnode_property_string_array_count(const struct fwnode_handle *fwnode, struct software_node; +enum software_node_ref_type { + /* References a software node. */ + SOFTWARE_NODE_REF_SWNODE = 0, + /* References a firmware node. */ + SOFTWARE_NODE_REF_FWNODE, +}; + /** * struct software_node_ref_args - Reference property with additional arguments - * @node: Reference to a software node + * @swnode: Reference to a software node + * @fwnode: Alternative reference to a firmware node handle * @nargs: Number of elements in @args array * @args: Integer arguments */ struct software_node_ref_args { - const struct software_node *node; + enum software_node_ref_type type; + union { + const struct software_node *swnode; + struct fwnode_handle *fwnode; + }; unsigned int nargs; u64 args[NR_FWNODE_REFERENCE_ARGS]; }; -#define SOFTWARE_NODE_REFERENCE(_ref_, ...) \ +#define __SOFTWARE_NODE_REF(_ref, _type, _node, ...) \ (const struct software_node_ref_args) { \ - .node = _ref_, \ + .type = _type, \ + ._node = _ref, \ .nargs = COUNT_ARGS(__VA_ARGS__), \ .args = { __VA_ARGS__ }, \ } +#define SOFTWARE_NODE_REF_SWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, SOFTWARE_NODE_REF_SWNODE, \ + swnode, __VA_ARGS__) + +#define SOFTWARE_NODE_REF_FWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, SOFTWARE_NODE_REF_FWNODE, \ + fwnode, __VA_ARGS__) + +/* DEPRECATED, use SOFTWARE_NODE_REF_SWNODE() instead. */ +#define SOFTWARE_NODE_REFERENCE(_ref, ...) \ + SOFTWARE_NODE_REF_SWNODE(_ref, __VA_ARGS__) + /** * struct property_entry - "Built-in" device property representation. * @name: Name of the property. @@ -463,14 +488,26 @@ struct property_entry { #define PROPERTY_ENTRY_STRING(_name_, _val_) \ __PROPERTY_ENTRY_ELEMENT(_name_, str, STRING, _val_) -#define PROPERTY_ENTRY_REF(_name_, _ref_, ...) \ +#define __PROPERTY_ENTRY_REF(_type, _name, _ref, ...) \ (struct property_entry) { \ - .name = _name_, \ + .name = _name, \ .length = sizeof(struct software_node_ref_args), \ .type = DEV_PROP_REF, \ - { .pointer = &SOFTWARE_NODE_REFERENCE(_ref_, ##__VA_ARGS__), }, \ + { .pointer = &_type(_ref, ##__VA_ARGS__), }, \ } +#define PROPERTY_ENTRY_REF_SWNODE(_name, _ref, ...) \ + __PROPERTY_ENTRY_REF(SOFTWARE_NODE_REF_SWNODE, \ + _name, _ref, __VA_ARGS__) + +#define PROPERTY_ENTRY_REF_FWNODE(_name, _ref, ...) \ + __PROPERTY_ENTRY_REF(SOFTWARE_NODE_REF_FWNODE, \ + _name, _ref, __VA_ARGS__) + +/* DEPRECATED, use PROPERTY_ENTRY_REF_SWNODE() instead. */ +#define PROPERTY_ENTRY_REF(_name, _ref, ...) \ + PROPERTY_ENTRY_REF_SWNODE(_name, _ref, __VA_ARGS__) + #define PROPERTY_ENTRY_BOOL(_name_) \ (struct property_entry) { \ .name = _name_, \ From patchwork Mon Oct 6 13:00:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146248 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=RJyNXgpk; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26830-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKD23H7cz1y1V for ; Tue, 7 Oct 2025 00:01:54 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 4AC1118859FC for ; Mon, 6 Oct 2025 13:01:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D167C283FD3; Mon, 6 Oct 2025 13:00:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="RJyNXgpk" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCC31285CB5 for ; Mon, 6 Oct 2025 13:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755644; cv=none; b=tblVdUqcqT22lhw84SML5s2W8arrp6Mvu7l9SL8EKFV8c7ddQ4uSP/+zDWcTh+NzzlfSoICE/wSZl4zXY84kOB/VAmlxBI8J295OFd6WqnKs+OKrHa8pePNhkpXcM94OZ7tBpkN6skdGalWuLn5PylbkKFslShfGDP0Gd2obfIU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755644; c=relaxed/simple; bh=5pnEeKqHYnawOAlljhNqLC8nrX9toglKozfFs0IQDGM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mDq0i0wvq6ZnYP8qOYAJZioNaD2Cp9rCENdtTFOdmXuXOa7kdfP6OxS1zJhaY6IsiE1Kho5wlT/T3dmlStmLFvVdyS9o60I2KigCa9W7T4E2/JpqfO90XdmTbdZ12PqM/wcghCkIp9pa6PoKASTaoixKcCsZ6z01a+TaMRUayn0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=RJyNXgpk; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-46e491a5b96so28087405e9.2 for ; Mon, 06 Oct 2025 06:00:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755641; x=1760360441; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=IB9li0p0kE9jGTTsXmkO4xLyhxPXUk87ZAQLNug4IQk=; b=RJyNXgpk89bTAvE79qK4tgAWBWIHCubMUeY9cjjFZ8Btb7Zhab4StlGZBbEcrwEKsB oZ+EWh6xvVmhnfxfYN/12d6PBh3P00UF/5rBOR7aljE76bLGAcPSBU8HFdtrigj6zIpM Uf6I72unEyTPuD5wqTpVEkGh/bX6K4r6uGWUrB6LW6q7DEU8qN+kl7VC8Eg1e5orDzX4 RUul+l0w5tPB/sqRKWRW2pPKSOOSV1J19YVbpHLOLDbX79b/Iw9GeVSV4Xr8jWwAfjt9 QEKca0m4llXzytWneQRNhfCbJ20ULA6MDxEWWU2YkeSxRu2+zc/wrplnkCH8RVeea5lm AQ8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755641; x=1760360441; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IB9li0p0kE9jGTTsXmkO4xLyhxPXUk87ZAQLNug4IQk=; b=ibcP0y7htbYCKrgZRg/08gK3ohDKYNbxgRlQAr31pK1B2ujTBlbFr6jAvMTii7NcaQ 8Yc1hJCULI1E//lD2SwJkc/0oURNBZCE3g8v5woL077aHt/PNqCHCasoNIPgrCbGw4wT 8bFWubvgBkMXH9Agc/FOEk8S94JpIoFBUjfUbSSQuDOqdk/klWFzrEqyvT/ixgpdKNAp 02Ly/X/JfAUWc/MRee2IzJ/XaEBc+P/hqRvJ41NUYMAhNm3w96IwvEln/AnY7Qho+OhY 9hvDtb/vb1+QBVLWv4KoBoFPpOLm3Dve/KZaaZN0ENtroC5SLLgT+IUWGWU2p/q78rTf MfHA== X-Gm-Message-State: AOJu0YzzTSFDEPoHG74N0VpRqXOzxfarsH1hkAegpzqAokha51a/mSId mdzgVMf/qMBfOTMhvLksyyVJWuyUqbzej6atGrmcQDlS0Z+t98FW3pRsHKUV+mtnCls= X-Gm-Gg: ASbGncvIplFIzbgtd0pr2g/E1T5fM/HOHUYaOTZ+Na3nKFyJQIJsgCSnMCPo9+PtPiS uHkMDp9OrWYPt3yOAh5pIVuext3tZME5yADy9OaxuM92X6u2VjKzUSKgrq1eU5IDOwh0hnLkxzD GsZLgwlkCOAbfderCNe4e95I+JNgZDgMgK3nilTL4TfWSaIFqZes9iUTADWB7Xpc1jBehs9HPRw m5O93p4L0V3OlJaAm39N2Gx7Cl0e++3Z+/LbtIy8QqvfgewUvJOxOYRlINuDcB1qU38c+bUzQaD RTN0a/qr5WXl0IwIP8yG5Z+J73Xm0tDryJBGvOe2UFuZf4m8ipkSaAACpxjHU+cKakoS70CXE/P I5V9brullILHTOu6Jq+NTYDD/Yax6vxNs08y3IBt2c0Cn0QkXfPax X-Google-Smtp-Source: AGHT+IHebbAPMR7oXC5VLW2/w5/FrK+xciuNp+N6rz1Yq+ku7VJkWBjybJF2PazE1vgpg855HYVNnw== X-Received: by 2002:a05:600d:41cd:b0:46e:1d8d:cfa2 with SMTP id 5b1f17b1804b1-46e7113dc01mr82047925e9.20.1759755641145; Mon, 06 Oct 2025 06:00:41 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:39 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:19 +0200 Subject: [PATCH 4/9] gpio: swnode: don't use the swnode's name as the key for GPIO lookup Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-4-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1995; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=j0RRfSQSsKVGeiwXPp8qsWRU8zLDV2TSTGFBIXN+YdY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471wtB/HnaJ+O09mQ+9lgzCae0qQw32NwTefs jSgoICyADGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cAAKCRARpy6gFHHX ctnHD/4+TTw++elPkjzjI+nwSVBBsHusvZ7gjWSbofVCsBjApKaJ9Jkxm8Nlj/uyMBJ4WBQwwNo hpq036tS1eW5uIhf3nUOQ1tTJ9a0Z0LBUE7Vp7/Xsul0r6BB1JGZuW6MKXsSi160DQn/i0NK4RZ PvMLswbpfF/6d1JlYrD2l7+aBNwx6qG4sDt7HAdVoA4opQqYU1GE2zbOLFylFdVcPTKoypmVM5R YtUytXE52w8c00pwe8sZKJs8RHpz/6m8Rxe1YyH9Bt4X7BrAxxqJbaPNDXyrdew34ShdrpxnHrC ePzLlLx9GPkLxLG+GB8JjySOlClZyiqDzWH7F6XxWLjXm+mVS7X4AwvoN9JAZyRdZPDE6K5Acyv 36sD88S8vx1ACVfqhh5OosZZJdyT2cdp+3+jlhQpGh74rLJomPs/67Xw8lagwFNwwnMF7H4VCXg m0qRihA289PN8TWMEF2feUNL5em0YXu3yRgf4OA1h90O2oxbJt/jVl3DH0CJb7hnXzbHfkhsaXE gVpBsfy6W+IOhPurkNZmV14obSmYS9RE9FA+tDi84Hi5VKn77gK3hZryWIJWEs+97srDMd17fan dyHc7gZalByu7pstT5/2NsYlFvSM+O+G7/QHZuUTuLLGzB6UXoI/FLDPiJXZLo0cNMBb0oG37rb Bj5vwuIyKtX6u+A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Looking up a GPIO controller by label that is the name of the software node is wonky at best - the GPIO controller driver is free to set a different label than the name of its firmware node. We're already being passed a firmware node handle attached to the GPIO device to swnode_get_gpio_device() so use it instead for a more precise lookup. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-swnode.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index f21dbc28cf2c8c2d06d034b7c89d302cc52bb9b5..573b5216cfda105bafa58e04fc5ad3a38d283698 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -7,6 +7,7 @@ #define pr_fmt(fmt) "gpiolib: swnode: " fmt +#include #include #include #include @@ -26,23 +27,20 @@ static struct gpio_device *swnode_get_gpio_device(struct fwnode_handle *fwnode) { - const struct software_node *gdev_node; - struct gpio_device *gdev; - - gdev_node = to_software_node(fwnode); - if (!gdev_node || !gdev_node->name) - return ERR_PTR(-EINVAL); + struct gpio_device *gdev __free(gpio_device_put) = + gpio_device_find_by_fwnode(fwnode); + if (!gdev) + return ERR_PTR(-EPROBE_DEFER); /* * Check for a special node that identifies undefined GPIOs, this is * primarily used as a key for internal chip selects in SPI bindings. */ if (IS_ENABLED(CONFIG_GPIO_SWNODE_UNDEFINED) && - !strcmp(gdev_node->name, GPIOLIB_SWNODE_UNDEFINED_NAME)) + !strcmp(fwnode_get_name(fwnode), GPIOLIB_SWNODE_UNDEFINED_NAME)) return ERR_PTR(-ENOENT); - gdev = gpio_device_find_by_label(gdev_node->name); - return gdev ?: ERR_PTR(-EPROBE_DEFER); + return no_free_ptr(gdev); } static int swnode_gpio_get_reference(const struct fwnode_handle *fwnode, From patchwork Mon Oct 6 13:00:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146252 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=2csNWe1R; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2605:f480:58:1:0:1994:3:14; helo=dfw.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26831-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from dfw.mirrors.kernel.org (dfw.mirrors.kernel.org [IPv6:2605:f480:58:1:0:1994:3:14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKFK21d6z1y1V for ; Tue, 7 Oct 2025 00:03:01 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 9633C4EE5D9 for ; Mon, 6 Oct 2025 13:01:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 92186286425; Mon, 6 Oct 2025 13:00:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="2csNWe1R" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86227286439 for ; Mon, 6 Oct 2025 13:00:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755646; cv=none; b=YE++UHqa+jZ9t8FHM+A21q+vR8XVvrD7MfuLPg6ONlGcUnnkd62dJvXIPenFJjqgQ4Qd2TydLSkZY/zFaCr12X2gDzFPllvcrSnFWxUPYEQgtA5oP44fBLjGiJ4FV37f52nWdGAzbUR6L/pf989udu+pBvpopQQbCm18zQAJ0WM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755646; c=relaxed/simple; bh=LiKNRN4b6Rog3bOF2ZYrAAug90U1uNL0NBVGRtkRLdU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fc9BYTVwxnkxisdFjd84Yq9Ig65l9YDNbedrQaO/SWKS/Kstgf7V6YObhAyV6MtHrpU+z8bDjI/cBJ4a0lXfemSvajw4EuM+wdUkZeYzjBkOCbDH2oQCIHdPbP4hx8g1dym3waqWBwOQ4u67X3+reVqsGAqzFF6b3bE/rCdhsbA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=2csNWe1R; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-46e542196c7so33159345e9.0 for ; Mon, 06 Oct 2025 06:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755643; x=1760360443; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2UJiGuxpdr2uQskb5nJaM3QuQzryJ9Mudo5s0IYG1NI=; b=2csNWe1Rnifm/BdzFd/ythjoyDcwZct58eGHKoWAKdFkR8MGHyjUqwgFO2GDMZt5p/ 0Y3MUFVMMc1lNLB37Z0oPpeAc3fLSmGf0WRYoajW25OJk4+xIOTwbVN9MLzWzIvHta7y qa2S+Sftjnmu7T4jx4ndvH5mnXwNo//aCDxx4RZIh76hyv8b/plU8o7wl+rCQd4mj+kH 6npu2tK5FxhUA7re605Zdsl5VMsku3UHlgsiNm++NdJyVpqQ6U4aNPrijmmXd14ZNy+w q3ICcpgbKN7NEByv7207fDURanBZSxjnm2M3eCbf5XE/BcEWLzFJimL7CvRI/VzC44Gl ddiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755643; x=1760360443; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2UJiGuxpdr2uQskb5nJaM3QuQzryJ9Mudo5s0IYG1NI=; b=kNirWiJlRUrSYt5ywLmhyugnWlj0D++OKaz2F9g5UKdx79eLiEN43QrHQI9/+NOdrt JVByU0h9Xh4lvHIIjPRcurA0ulzMmOi49R3MXVRohU1juvc35Tvgg9/iNWVO7qz0h1kk XB3S9S1pbLzrR3wSjo+ytDwkOTA/B2d42VGxjfGHwtMQmCwVeKE7sYDkMfUrTr6NdCPl 1mxvI1mZmZMkVdLw3L1V53uLv/o0qxGvmxM8TYd7rpD8krpZNlm0qjd1kaXlVdn1dMID KX1R1ApBHCJiRu7JKgm2eVMUavK2cs8l86c4FslMrz6Ys2jTvcqY6zvVl+vyPIEra9l+ mVNw== X-Gm-Message-State: AOJu0YxDDXYW9qHvL0wUU6g0Xsv3dVMVa4TpRjj3nTeXr7ZhiNbSR9ne gmCudPIs7Es5R9PIK0LPrIxyqAvHlgdiaJPUGeGR9DZGZTytRp0zsuUBX3qLyBkvOpA= X-Gm-Gg: ASbGnctES9BGwMUDSkeSfuYGL6L+QPj6liYe6CL53Eajoip12Cssj+FomjgXF2K0gul Ai/V6+DnZiuX/3KCMVoOEtV2E/9JYJxRqVGL8+sWEzq0dBISH2dXBCkDF7uLJZmDwcieUW00PG1 /BHcbAapT7z8Cx5CIQteL80f4m8bL0+RdK+upHjWCLwy8ZPcUNIzCNzFYM01l2nyEmOVSyQ8WgL bWJ5tRbNoY8rmW8KznNKfL4NbeZZEUVWPhr5SHu5E/R7m6HMJqoIpBNBaAoYsyr6cbjfxpNyyO7 /ZXBENMe73Bhi6AMVdltfWs5JMrBpBYUPJSZ2kieGML0zlEr/FHCpdRyfoyUDUNMVk3jpQSbTYb EeVOrTrv8eOc/wI0okcsc2WsM+PNtbhdYSJZoFrHT4Hf1s9cTBSGBCO/cKxg7Gvk= X-Google-Smtp-Source: AGHT+IHReGjRTXAEj4+vwvO9u/f9ZuRyHo0s8k66WpB93PuyVoJgCciFXUHJKSLOxZzbTKByXL45NQ== X-Received: by 2002:a05:600c:840f:b0:46e:1b9d:ac6c with SMTP id 5b1f17b1804b1-46e68c0c4d4mr116982805e9.17.1759755642862; Mon, 06 Oct 2025 06:00:42 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:41 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:20 +0200 Subject: [PATCH 5/9] gpio: swnode: update the property definitions Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-5-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=992; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2oDrBv8aDfvA250bRkDwWtWP1E31zoeQQskPCFFlV80=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471wajgCtsvE2edixdkcm6VSrxIu2UJSr9RZR 87oR5sRtUCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cAAKCRARpy6gFHHX cjUDD/9UUxRlTRmA4VRrdVGqze7ySIptImxOeDvxSSi7iXxcS1qPwPovr0yMvpffdzTixfidORd CHFvrjrqbkQ2pP1KLhi/VfiCShRZD+/4Pah1MKOn8QyJcLcrI6aomkGiFxrlOScvu/SilzSq7PD qER5pmNjPVyV7RPgARi/z/opwBjWgsDzegtopitqXclrDeFqZSt/jL6Xej92aD38lUUlZ2dPzAy e/a8Q3tzQbxbhhDGKtx7U52ezFnC+Tw/BtBFfsQ+7XmCRUXjq99Fs387BJgK2HDqoituNC9H8ch olMVj/jRjD4Px3MX3+2TRcMgZIEJEMIosocfiFKIXwazf+EYRD8kIe6aAfYXuJetAuwt0ScA1Hf LcITQTIUydkscoQSWvz6gswBp1oHood9jUtkIXAzeyHy3/AQotdJYGBOGfANip4vp/Dt3wn4u4T hyEw1R8Pdf/aSJY54bnPpR0GlnZPA+V6M2uBFxXfoNAydgrhfUFpDR8So6p7eL14OoNzhemC4rC 9fma6eGsvy8ZgWqoyy+pyyHop/X8OvbWggvl6ygoptnO9pQQXnv2yMGNv/Bh1rsrsfUWkTBjtHr i9HLOsbaWyC/WQIe0UIzSHtN7sOb+jBIJlf5nak5otrr/26t2othcxilq6I4HiTA64GubEXLUSH 1A+cPZ6OZtzNfaA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use the recommended macros for creating references to software and firmware nodes attached to GPIO providers. Signed-off-by: Bartosz Golaszewski --- include/linux/gpio/property.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/gpio/property.h b/include/linux/gpio/property.h index 0d220930800276a21b5ba96a68371ce66fc4ae3e..6b1c2ed9c57594bf3ead5edc82439f9fb7f514fd 100644 --- a/include/linux/gpio/property.h +++ b/include/linux/gpio/property.h @@ -7,7 +7,10 @@ struct software_node; #define PROPERTY_ENTRY_GPIO(_name_, _chip_node_, _idx_, _flags_) \ - PROPERTY_ENTRY_REF(_name_, _chip_node_, _idx_, _flags_) + PROPERTY_ENTRY_REF_SWNODE(_name_, _chip_node_, _idx_, _flags_) + +#define PROPERTY_ENTRY_GPIO_FWNODE(_name_, _chip_node_, _idx_, _flags_) \ + PROPERTY_ENTRY_REF_FWNODE(_name_, _chip_node_, _idx_, _flags_) extern const struct software_node swnode_gpio_undefined; From patchwork Mon Oct 6 13:00:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146251 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=VRaS+irm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26832-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKDl17HLz1yGf for ; Tue, 7 Oct 2025 00:02:31 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 43B0618988BC for ; Mon, 6 Oct 2025 13:02:10 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 85E55287271; Mon, 6 Oct 2025 13:00:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="VRaS+irm" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8ACDD286D40 for ; Mon, 6 Oct 2025 13:00:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755648; cv=none; b=kRDySZEi2bWgTV+51eQ1UAtIChvOiTm+4S13rw0ylfYxmxy0lSdQvskSMzt2Kiyo2SLtHc3nMFNsWB8NS/O2Oqjz5XjLt6dKIkqsRAxnMf+dGVgS7BVvKjww2ingMSFnsKV16Er/DvN3N0V0QHZiThU3mvUYqLS/aGTX5q03uIM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755648; c=relaxed/simple; bh=Vt9wnIolF3wo/Kk0uCqHGjVh5+FV+lRIO97mPGjDUyY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XhDuf3j5hVaXpNPeSZQoqFSmNO+NITG3klXsu/i0PThALSDA1AEqw3RaWp2UoUS987lN9GEcXZeFzz71Du6Ue9T3OIBYNIWurro4B8H6JQH1mBJCOmwLRCkvltHEWLoODA/zJvzz4qmJfzAACcfkh5pl6lrVVqfess3Qe/yydb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=VRaS+irm; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-46b303f7469so31243985e9.1 for ; Mon, 06 Oct 2025 06:00:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755645; x=1760360445; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/IT9kGD4PDZntf8OM6JZi28F9oGAqYVuiTpjsu4zy3w=; b=VRaS+irmFD/OBgYZPF3GlBBCRzdRjhuWXmdCe4VifuwH9c1dAsRzHY0ocgNdd5Wbg5 M6br7926J4leGtVxYM7s7raQRFarrCMC7tiHYjD1g/60WnBlGC/16yCJNzLAWCIyIKeh GnNOJVoVLaV8tELIm2Kd9hp8hHtstNY7XV7tq9KfoFIQs3JKVV2Xwp4kiVDmbF8nwPgy dVP8cwQdgERx3OzUHaoS0w+YEcJcP9+7JYyaVEIduKGRgSgzk9pwBO/UcXayHBa462Aj kaEu0zEdQQOYy3vbp3bLoCYpOMmSroEF/xsraKonT6QXLp48lFEp+F4Db0BFgGEadhjE VxTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755645; x=1760360445; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/IT9kGD4PDZntf8OM6JZi28F9oGAqYVuiTpjsu4zy3w=; b=endr6rj1WaAS09tWFrjU+Qk3gg1HYHZwjjciOR0lVgHbPz1vn+83K3hQHKMtPBCBB2 eCYHsa/FGpiL4smSryUoDBKUvu1oP+yumkmCMmZF2iWDQlf9zT74vBoKwzAcka4doWV4 OtPErHne15DNN0JPlg5IcMHMqH24EPl1cX+mPWHukqRyXCJTn6ZxrPZK7uHmqAGrVRHJ 2nbv8D2lN+CYzT3sdLfSS8+Xy+fDvj+vSjojMEKvdkEiQg7lMaPxg55AsCgTZJ12Ub4e OoAyzri431v0bYxMTPmm1jhJflJ1NGYbuBuj9NHbm6C3d3OtgL/gu5ku88mURoH/wP/w kfdw== X-Gm-Message-State: AOJu0Yyc/V26XXHOGAFfmpVScvtLCgUZ++fW1VsY4Fip8mwY/Eps8Kjv nENevcH1aHxRN7rFjIiKTl3fVTjUz54G7CwzeEKz/6Mjo8kWrZ+z9UAtXXjFF1UPhZE= X-Gm-Gg: ASbGnct6VHZ1BDbKourqTS/Rhqk0mH7sTAXGuIxoanOREfdmahzCSeoz3GRzPBZc0BW iX7EczR7RDMJVlkHhGI4DBYo9M66+R/sz31SiXUQK17NohHpzjtR0DUQ0zyEnbtFYuasYjMAP4e UxAwBwvL6x/EQo3QB7JnVmwERkwyocTX0xODf6jOUhtNzCcvww34LTBTuVo0VklLWuo9d65ElYj x+sTxzNUWNk4KOYaD7IBaUvXyDxGQ0nCKE6i1xu34d3CxJ4bLe0ro4TU0TxofC7tVCSv1h2ZQgK 9XKyEu5cTdgSZY9ghSNc+gtMp+6ZnBhoWpXqgQ/ItsKODIy85+uBVBM8VdagZsD3XLeh9mwDVsc YR6XguXeOEuJKWFWUrvGBwE2YF7wFTO1HaPAHXFn1MA== X-Google-Smtp-Source: AGHT+IFcI7k/9n2YR8FC83rJGfcHlvQpg2C6nFUd24sixSFEEP5w3sJNEHKEVUf5IVa/dNhlqGBm/w== X-Received: by 2002:a05:600c:1f0e:b0:46e:3978:ba71 with SMTP id 5b1f17b1804b1-46e7113f659mr76463845e9.21.1759755644579; Mon, 06 Oct 2025 06:00:44 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:43 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:21 +0200 Subject: [PATCH 6/9] reset: order includes alphabetically in reset/core.c Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-6-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1096; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=ISz7nO0lAaqHotZMBBTU6RwrDTKlASO8zsYyU+2upwQ=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471w6JhfRjQCA8hJP5hdnIaHCaGljK8aymehO +FgZAvfSbuJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cAAKCRARpy6gFHHX cn4OEACA7/SpyFyKEaHp7ocSnaGwo1aIkqVYudOPP9e+VFGVKMdOzVZh4A1gCWdcJxcx4tp+iij 2xE7CCS6bIIzlavt30LlZvA/llR8ufJhIggJUBsyscrj7uqGf9BJa7OgBNOaquONMALK+0jIzxr 4AUVqTKYWC0pLpFTGkFzkliMXLAnECba/+yZ8AJ/nWtjSEwuHtDCMCmTP5tYHX20mNTZmFUYjAg FhfGsxGCYXdIx0y3kT1mEajb5Ysum5XGB0fhWr3/2seZ472D1WKsew9shdHPftKZEnyVNOYi2r3 twpdZnVKnVbcks/iGVgv1DQdl7BvLywhB1DGry3PrjzqB5aMgDqKrqMpN4ifJ9dI+zb2HKkozuH iT6fxCdulwFtcWQPgvtSEWwjgRRPc60QBQsCCKiEnLJ8d7yfnjSpahAO7q/18kcDAT4xdgOtqhl tIFGG6gPIuwTU1h18mw4RsbOuvjpZ11L7eRae1OdwhspRYsh9/IsAmocZVn0Tj2ZSxp1DSt0iE1 FFTzqiN5URkaPVjqVdSUnfvm0AenDBpdJ710l68lyw2IVRs5m/9TfSLitc3D9XGMucWQaxo+Ltu eNi3jwkp4ADe0xOmDCh22OMXJ1YWptMbveatloyV8Rym0MGQQ0GXvJw0fZOasJf2LA1bcXukPWN cF8bcdWB9l0iDhQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski For better readability and easier maintenance order the includes alphabetically. Signed-off-by: Bartosz Golaszewski Reviewed-by: Philipp Zabel --- drivers/reset/core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index 22f67fc77ae531c6efba3ce92cc73a2d57397762..5a696e2dbcc224a633e2b321da53b7bc699cb5f3 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -4,19 +4,20 @@ * * Copyright 2013 Philipp Zabel, Pengutronix */ + +#include #include #include #include #include #include -#include -#include #include #include #include +#include +#include #include #include -#include #include #include #include From patchwork Mon Oct 6 13:00:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146250 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=ecq37Djg; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26833-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKDd1d7tz1y1V for ; Tue, 7 Oct 2025 00:02:25 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 178D33BE1F2 for ; Mon, 6 Oct 2025 13:02:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC84C2853F8; Mon, 6 Oct 2025 13:00:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="ecq37Djg" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 856A528726C for ; Mon, 6 Oct 2025 13:00:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755650; cv=none; b=gCrxyRAionDmNiJr7B+AdexDnPrWBcwUCslbsCQc/M+J+pygXQ0YriQWbPY3OJyXXfcR4HysmDJSFsrDgszQP8Q5aiwVrsZnjW9gzBweBd/KgZk66aHpy0qV84mS3uDn+IFfs+4XO+F7OmMyDeJSjYGxKXVL5w1EthXgr+vZeA8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755650; c=relaxed/simple; bh=K8U+CHaEDTDTAOOAhIZGQLKRldV6biiXuo/pIPzTEZM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OAqtX2LrSxCcliIIyteULlPAi7mGsldb+lz+sER+wJc06Fgz753/+3oL0QOxElLZ/RgJ+kuUzf0W9/6dfhrjd4PoCuNWDH8BQ6oP/zr0sh/IBfB5gBXcLylGk6bfEO/WmLjDZTvtIgxGZeD1dJQ2XwlOB+G5pZ8FoTZ+ydnSkPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=ecq37Djg; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-46e491a5b96so28088255e9.2 for ; Mon, 06 Oct 2025 06:00:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755647; x=1760360447; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6pKa9jDqQ70bpsXEO6w9amEFdc6+U1mZOoJWBfQBYnU=; b=ecq37DjgMG+ZVpr3twoAHY6abMk19/hn0RwDKgRYMG6hcgjKMQvbgffI0K5820fJaA prGG/WZ751lrqbERuKQILKIuqvnk0/PE/OpF06y7Y1vHdEz3dPi3qNJO0oDBQrIpt7Bs GLZsY0Pgpo0pfj0D/VcRBtattHmSFYs2le/MEsCbJQt+Uc/UflvOGvYcJ6Lh1cfB+6Yq VbR82popzFAvnydO6lTyZuAX6CjE7EsSqTZvF+vOiWVuTgRmEqVozQZYGeooXccjP5MP o7y8Pa6D7xXY+p16EXClSDmtVfiF/iwdufK0vnGxts+cxOlFVCkeKxglIUHVzNhgLQSj Ikig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755647; x=1760360447; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6pKa9jDqQ70bpsXEO6w9amEFdc6+U1mZOoJWBfQBYnU=; b=H7ihvX9VR7wdaOyDKkR8aSel38hgdAkbd/FBIJ7Jhyk56V9fwJVyEo8YeFI7BWyzjA zNViWxrfI5kKDW0VHCglTkD3Ca4nny4YAR8ldnUA/ol2W4wg4NjGiR3WZ2M9iht7kW59 Ct7Qu6Hmz958DCjPGo2zphlJYvG6Q7GcamuMqSera5wc7YEmayMtPF8LArJTieKpfPKP 7oZ1lBLAtzhWoPM7N/PiLiXoHs5Evd87FBf95sOW4XuTzMHBodzzA3oJeOV6RIPuIkMM O8nkxj4mJpidvgxv+l3Y63Qt6hecAfdnE/0/j4pF68MfR/s9QBdIupZrlrpR6DB4HsCV 4Rbg== X-Gm-Message-State: AOJu0Ywl9YHQjbYKazZrXwRSrjSauhql5ORlY2UHum3pTkQ90bycQp9s d873OkxGZ5GiGvP1D0fktNFlsgT3EbvefZJROsUTZK6Nt/o2prJCVpJqMfkTnNmGFQs= X-Gm-Gg: ASbGnctae0XWrS5bI4luuFWDMuPrwLkyWf8dPJCjg55wz38Z7ZuY0JTbUYtESqLdwRj TKdz9ZDix8Pqn/L7yTMFRsEjH4BHVpbWvo/jDO9mdlylg+wHB03zdR30kEmVqI2jmlnPUxa00Pi CwSkCbG3Dw0T6URksHnVDO0KpSn7sFKOUDRdT7YE9pWJKxz+lpTKcY0f0KF1cIy+sl8vMlnNJFK n7HIXsbvMim0mzb5gTx0OXTwtsqvR0r1nrS5iDP5J1Sop815/3MlvK5I9Zm0/Mwz35HZB3KQIsq 7D7kipGbxtiKqwuPPNGNSHT115hCcbwtamPRT0OBUBpa3r0fzJAGp0O8L0qrsA6wlzMlwyegs/Q SPw3L3stfr1W5wFP5tlzYzisPOsNFGqBJGn8+WcSqGnxiB8JiBzF3 X-Google-Smtp-Source: AGHT+IHVfVXF804VbQxWVSNoeBDUmpNoTUbLdSk8nlsC5TJ7pPo085L60e5shPycALSUqFXkTIsQZg== X-Received: by 2002:a05:600c:354d:b0:46e:6a6a:5cf7 with SMTP id 5b1f17b1804b1-46e711026c4mr87577545e9.12.1759755646723; Mon, 06 Oct 2025 06:00:46 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:45 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:22 +0200 Subject: [PATCH 7/9] reset: make the provider of reset-gpios the parent of the reset device Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-7-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2973; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Zc+xs5tXGUpl9lw3Fpnc7se6u+D5QtL6RaYw/hFc3wY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471w3VajOAmI2LiZSnq9w/PmWaCe3q6SYPRBE 9uM3dLHU1WJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cAAKCRARpy6gFHHX ckSwEAC5br4Du9+yyIV7DxA1c9XCvP2k/N0Ximod1Z6yO1qv18SfTIPIGICwPRXxjSk76i99qdS WG7yX/XIZDBSrvMfTgZ+YTiY51Qh4Ttg+Io8eAfJHZzgplYEGKXVCcXI647SGTQjkLjcKA2q61G nkUcFsYOP/3pIHQ8iS8O7yhAmFmOD8wV0bwVhdsQzS7Wiy/NXK7uhXdip/QeUs30US0X3bBADOm nmzoAA48zEJpHRppAeXCkiAWQCVT1xtycOPejnIcMyCkEs+n2v7kLKQsZsJKgVwy0DUrBMtdq4M RwbPmETuwWa1bvokYGPhDw8jEyxsovqmgdnDOSKaYqIQhkUUo7qLR/wEcw2WLwTrM9Mo67+evWF UlKucTeEzS4MEsECRa6Md3N4rbM/bgO48+Y4mG6qv3ya3ZmyCS37pxfr8b4VxPXhumkMQcCEjs5 Jgn7mTvpYamv0aam+h/X7BR02XFJtNcLX3Vs8lzqaL05qDn6rHrEUZhqzCYUKu0gQErrd8zkGvR GvzgZ1lpz8qhp1lXCSR7XJZjDLnBTNS0suTS+JRcwB5WA3api9Rzmml14mF++54HXPRX1lC2QBg kzVYwShdQjhKe11vv3aVrTX6HBDKe1XAeB91KmXQGwtUYdISv+v+2yYff0sGQrOzSsGTY9RkuZa /MWcXjbxzcks0Eg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Auxiliary devices really do need a parent so ahead of converting the reset-gpios driver to registering on the auxiliary bus, make the GPIO device that provides the reset GPIO the parent of the reset-gpio device. To that end move the lookup of the GPIO device by fwnode to the beginning of __reset_add_reset_gpio_device() which has the added benefor of bailing out earlier, before allocating resources for the virtual device, if the chip is not up yet. Signed-off-by: Bartosz Golaszewski --- drivers/reset/core.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index 5a696e2dbcc224a633e2b321da53b7bc699cb5f3..ad85ddc8dd9fcf8b512cb09168586e0afca257f1 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -849,11 +849,11 @@ static void __reset_control_put_internal(struct reset_control *rstc) kref_put(&rstc->refcnt, __reset_control_release); } -static int __reset_add_reset_gpio_lookup(int id, struct device_node *np, +static int __reset_add_reset_gpio_lookup(struct gpio_device *gdev, int id, + struct device_node *np, unsigned int gpio, unsigned int of_flags) { - const struct fwnode_handle *fwnode = of_fwnode_handle(np); unsigned int lookup_flags; const char *label_tmp; @@ -868,10 +868,6 @@ static int __reset_add_reset_gpio_lookup(int id, struct device_node *np, return -EINVAL; } - struct gpio_device *gdev __free(gpio_device_put) = gpio_device_find_by_fwnode(fwnode); - if (!gdev) - return -EPROBE_DEFER; - label_tmp = gpio_device_get_label(gdev); if (!label_tmp) return -EINVAL; @@ -919,6 +915,11 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) if (args->args_count != 2) return -ENOENT; + struct gpio_device *gdev __free(gpio_device_put) = + gpio_device_find_by_fwnode(of_fwnode_handle(args->np)); + if (!gdev) + return -EPROBE_DEFER; + /* * Registering reset-gpio device might cause immediate * bind, resulting in its probe() registering new reset controller thus @@ -946,7 +947,7 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) goto err_ida_free; } - ret = __reset_add_reset_gpio_lookup(id, args->np, args->args[0], + ret = __reset_add_reset_gpio_lookup(gdev, id, args->np, args->args[0], args->args[1]); if (ret < 0) goto err_kfree; @@ -958,7 +959,8 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) * Hold reference as long as rgpio_dev memory is valid. */ of_node_get(rgpio_dev->of_args.np); - pdev = platform_device_register_data(NULL, "reset-gpio", id, + pdev = platform_device_register_data(gpio_device_to_device(gdev), + "reset-gpio", id, &rgpio_dev->of_args, sizeof(rgpio_dev->of_args)); ret = PTR_ERR_OR_ZERO(pdev); From patchwork Mon Oct 6 13:00:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146253 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=y758cxIC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26834-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKFN3ymWz1y1V for ; Tue, 7 Oct 2025 00:03:04 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8657A189918B for ; Mon, 6 Oct 2025 13:02:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DCE3D2882D6; Mon, 6 Oct 2025 13:00:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="y758cxIC" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2568E287505 for ; Mon, 6 Oct 2025 13:00:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755652; cv=none; b=VPwk7Sbw0wGFWYuwDrcwfbaRXKAXTVr7H9j1slR8BupZENZ8+qeFOLc+Khm6xR2A0xurWD8xolVlwK1qqoufiDkjyR/ZKp014JvtcPaSuvwTCBdEMnY7NSegx3nQ/PiCv5krPbBkkq81sdaYekHt08yaGlbe1A6Cjq7ja6Hkux8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755652; c=relaxed/simple; bh=+JKWx7l/NGPc9FMlvYOUnFzEo+vds2fhGntk/7dxXpk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OpycLOf8AE7rqSIWKC/JiQXZo0Vus1DqLbIwcFNpXgveYyEfLLO940PcAHarIti29291co3qg0NNo9K0+VXOQXXSxD5E882aQw7LX6ABtwgzBAplcTKHIRduT1OKFwSFijv5Cwy7rOSD2TrRT1dVxxETa05qqZOg1kp/oyvC8r0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=y758cxIC; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-46e37d10ed2so43780065e9.2 for ; Mon, 06 Oct 2025 06:00:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755648; x=1760360448; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=RVJyVOFkJy3oLbXktrQuphyyROzCpxmHBAoz+N8Ld0Q=; b=y758cxICsCIyMiTxXZkjLiojKK1A5P/vRAVtXN4oYs70RqIIwYBVzE0pYHlj1JfFlQ YW+pv3xcbFmwxm+ZsfzA1FmycOi+aqXoJxoEEVJNMrbmbNomXhEEZ68BIuvM1WvmhbeY NmLofOQnYyfsGJZvr9LqM5N4e1HM2i3+oC0prAcpz2NtXGAVfJETxBQZwgXBvvIStTcx jn5ABqJY7Juwj8yEw38ljV1yxjDFTrAVvfE7d1Lvh1qVy9NI6uyYcJzf1hAUbeBWxc+T z5mxAdB23KavtNxqF/+88J3XY1ibkatmcQ/naaFs77nrHLkyjB5I48OdZBTjyH2VE7Zb D6Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755648; x=1760360448; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RVJyVOFkJy3oLbXktrQuphyyROzCpxmHBAoz+N8Ld0Q=; b=M9Ccgf9WsEfG3Ofg9G9pT+16n+/BBK8B/747kY4GP+yL42gKKoFt6fbueXcwm4uI33 PHH0Sh39BLMkhsjsk1YGD8mWYCIUTLbmZ5N9vld6aBWOHfXpqw/SeOSF7gw4oH3MaAT+ l8yssZfPdnPehwJDtM2R8tsxUx+YIcXC7q1M5eCI0aifE17M2LhGWefO0Nv4FGCTFANE sOihyat0q82R1oq52Wk9Q8sigsKdaGVam9F+eNPTYmLFIiSud+hd0UrTGu4Rse+bwIur Bo6dK82hCyixyhA+8BHND/q6sTzz7D4U6hY02SsPlSlzQZyNYgGQWVZqITdVtXdqKVZF zo/Q== X-Gm-Message-State: AOJu0YxyVOaoDAKTBiLWeZpHg/ALrZk4fZPUneeF+6r7rbOwIzW9yvr8 N5+tCDBILhsmuE3flfVLCHrQSFlm9qUjgqhbUF+GUKIPZ1VvuIOk+xtS/a/OO3rWXh0= X-Gm-Gg: ASbGnctEuquAU9mB3lhBVhfYaTlLt2VFvU3hNdHI1/gi8YAMjbcbUAwP6XU4bn6P0up IRSBKiG5fGaq7+ITvklB1uJ/a4zsRQI2289LNH0AntCFQDZ6TLZT1d+z7u5Qgi6o/B1OfnWB5MF vnPAyxarojGp19/S07YWXDE0UbXSM1nf9j+lxmxbPcg5YK4EmrYjPkcHyS7z4pEhEndI6zKOexm o+8zKS9/goPxkZyteHVmt44yN9VtXaSOD34U87iF55dTZgXtXX2G2ExZlMT5VMPdJLkNlOmqHMf 5iWMAWX7FMUOIlQEDfzxSIZHJ/BOs5BH00pfULrcn+H6LIrEgMCkkDw7i17yhOgUUZx7cju4qpB 9Oa+0gXjVFs4/3zmRrIKE32GOMdaWjmYgNnk1HVEL/H0YpbyLrEDW8IDRtDBMmGc= X-Google-Smtp-Source: AGHT+IFlCtvcNUI7/9UCDYySnsA2ln8tnjyIuGxNS6pmkEEAPUcuxt4MMplcSTveGNvJxMUSaSAp9A== X-Received: by 2002:a05:600c:8b83:b0:45b:8adf:cf2b with SMTP id 5b1f17b1804b1-46e71142e6fmr77497045e9.21.1759755648455; Mon, 06 Oct 2025 06:00:48 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:47 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:23 +0200 Subject: [PATCH 8/9] reset: gpio: convert the driver to using the auxiliary bus Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-8-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4980; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=e1WjM0ZFklLnJ17T2rheOhCBlqmI5B5UMpfU921B1x0=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471xNzeVNqTbZtwqmv6yknmoSEVvaZo52odAH xQbrrKmzMSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cQAKCRARpy6gFHHX chOUEACgXCqiQjC+EWfJWYzYmL6O74m50iWj9aNOxM0bc87M1tYLvyTo4Pd4cNZP2mXjFPAkzOF rAG8GpV01eZeOerDxqHjc8pcLg4f1wbW9BlCLpQV03FnozcsKpyqu1EEjkySnQb7AqWge5QNcyn mPW4Pg54HTgh+v505ks0+TmzDnZyqDDpUK/oAYW9MoKoyM9+4IVStXepYAzEEA7X4Xk0Gc9VCS1 D8PZV0t3eNzZLnN+m1zbRnn+DefsMdGuLwLr9yFUXpCjzv3r6Ny3deO/3VaYav9IgX3pLJT0EOJ SSYFpyV1Bf0ygUJoHvhUHuSnqFyqJS+GDwbv5l62Dp8Fh6CnRiHmtua29Oh7acLtoN9Dk2xKamG 5jRz5o2ctXL1SsJkIyJDpMSEmdTWrcwJtHYsdt7B7YeH3NAneMfmTPdlvYAjAec5JfBOZUn1iG+ 2wM2ADVAL8js9AsLhcHYYqfKBfcVWjaHXt+RnqdbZU8l3Zkr0LuHCAwK1DyHB0phhtClaRIZxA/ IoOYToEAg8BBLu4q9dTVvssuvXaLC26kirvnxnGm5xTzvPYGeOLcN2isH7hH5Eqg1eFm8p6hnGc xj9LcccT9h5S0APZf9tUSbeqQVJ/aMRrlq/5GwHCDMwBK6qSAPpJ53QVS2YLw/kzzd21tC03qJs 0XYM8rvZEulPXCg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski As the reset-gpio devices are purely virtual and never instantiated from real firmware nodes, let's convert the driver to using the - more fitting - auxiliary bus. Signed-off-by: Bartosz Golaszewski Reviewed-by: Philipp Zabel --- drivers/reset/Kconfig | 1 + drivers/reset/core.c | 14 ++++++-------- drivers/reset/reset-gpio.c | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index 3102f5d7a93690f262722733e475b1215f61051c..24c9048cc7a31d3a6c9fb9af0726a8387bb3154a 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -89,6 +89,7 @@ config RESET_EYEQ config RESET_GPIO tristate "GPIO reset controller" depends on GPIOLIB + select AUXILIARY_BUS help This enables a generic reset controller for resets attached via GPIOs. Typically for OF platforms this driver expects "reset-gpios" diff --git a/drivers/reset/core.c b/drivers/reset/core.c index ad85ddc8dd9fcf8b512cb09168586e0afca257f1..c9f13020ca3a7b9273488497a7d4240d0af762b0 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -18,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -882,7 +882,7 @@ static int __reset_add_reset_gpio_lookup(struct gpio_device *gdev, int id, if (!lookup) return -ENOMEM; - lookup->dev_id = kasprintf(GFP_KERNEL, "reset-gpio.%d", id); + lookup->dev_id = kasprintf(GFP_KERNEL, "reset.gpio.%d", id); if (!lookup->dev_id) return -ENOMEM; @@ -903,7 +903,7 @@ static int __reset_add_reset_gpio_lookup(struct gpio_device *gdev, int id, static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) { struct reset_gpio_lookup *rgpio_dev; - struct platform_device *pdev; + struct auxiliary_device *adev; int id, ret; /* @@ -959,11 +959,9 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) * Hold reference as long as rgpio_dev memory is valid. */ of_node_get(rgpio_dev->of_args.np); - pdev = platform_device_register_data(gpio_device_to_device(gdev), - "reset-gpio", id, - &rgpio_dev->of_args, - sizeof(rgpio_dev->of_args)); - ret = PTR_ERR_OR_ZERO(pdev); + adev = auxiliary_device_create(gpio_device_to_device(gdev), "reset", + "gpio", &rgpio_dev->of_args, id); + ret = PTR_ERR_OR_ZERO(adev); if (ret) goto err_put; diff --git a/drivers/reset/reset-gpio.c b/drivers/reset/reset-gpio.c index 2290b25b6703536f2245f15cab870bd7092d3453..7b43d61d0467aef5fbbad53d531294fa62f8084a 100644 --- a/drivers/reset/reset-gpio.c +++ b/drivers/reset/reset-gpio.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include #include -#include #include struct reset_gpio_priv { @@ -61,9 +61,10 @@ static void reset_gpio_of_node_put(void *data) of_node_put(data); } -static int reset_gpio_probe(struct platform_device *pdev) +static int reset_gpio_probe(struct auxiliary_device *adev, + const struct auxiliary_device_id *id) { - struct device *dev = &pdev->dev; + struct device *dev = &adev->dev; struct of_phandle_args *platdata = dev_get_platdata(dev); struct reset_gpio_priv *priv; int ret; @@ -75,7 +76,7 @@ static int reset_gpio_probe(struct platform_device *pdev) if (!priv) return -ENOMEM; - platform_set_drvdata(pdev, &priv->rc); + auxiliary_set_drvdata(adev, &priv->rc); priv->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(priv->reset)) @@ -99,20 +100,20 @@ static int reset_gpio_probe(struct platform_device *pdev) return devm_reset_controller_register(dev, &priv->rc); } -static const struct platform_device_id reset_gpio_ids[] = { - { .name = "reset-gpio", }, +static const struct auxiliary_device_id reset_gpio_ids[] = { + { .name = "reset.gpio", }, {} }; -MODULE_DEVICE_TABLE(platform, reset_gpio_ids); +MODULE_DEVICE_TABLE(auxiliary, reset_gpio_ids); -static struct platform_driver reset_gpio_driver = { +static struct auxiliary_driver reset_gpio_driver = { .probe = reset_gpio_probe, .id_table = reset_gpio_ids, .driver = { .name = "reset-gpio", }, }; -module_platform_driver(reset_gpio_driver); +module_auxiliary_driver(reset_gpio_driver); MODULE_AUTHOR("Krzysztof Kozlowski "); MODULE_DESCRIPTION("Generic GPIO reset driver"); From patchwork Mon Oct 6 13:00:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 2146254 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=UnmSROMG; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-gpio+bounces-26835-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cgKFY5Rz5z1y1V for ; Tue, 7 Oct 2025 00:03:13 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 9D3221889390 for ; Mon, 6 Oct 2025 13:02:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3557A28852E; Mon, 6 Oct 2025 13:00:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="UnmSROMG" X-Original-To: linux-gpio@vger.kernel.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01D452877E9 for ; Mon, 6 Oct 2025 13:00:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755654; cv=none; b=gA50FlbFv4kj7ZRp3V1syxM1EdNUCRmOBhJ3S3XFBArju5HdubMGOyn1q6OUZ5b+vG1sSefExXPt+dAd7jnaHb8tr2SS5dQ+QxWAEFk41NDCwu2SHa9nsM2mUJ9bXLFmwG0IC/5tV8gYkQKWmRSEkSRY2K84gRD+6upnuKKLLKc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759755654; c=relaxed/simple; bh=3ITU5SMeBS5gbZ6+V2JyPdn7cXGWn2ep0zbQ9J0rsIY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MxMO3F1p8K3ZYQT3c6j4gNtn7Ra7DXvDnVGABLnj5IUw8LAQvLsqifgoEiVffeDRHMr4P6oZS7jrqkbv5nuBU7AwOKG+ZVGQOKfdPgzqjlSCBzvhd+g6M6xsHyWGTxeQYm3acL/+Ek+cYuORaQu0gUznjnmzDDr7J5KvPfBzWOk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=UnmSROMG; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-46e384dfde0so55947675e9.2 for ; Mon, 06 Oct 2025 06:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1759755650; x=1760360450; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PQTP5tVg1KBqcYjkGWU/UXGNSpYIuMZY/FCVFHH95b4=; b=UnmSROMGZ2MmfEmnM0lKIrU/0z+R2U8y43ppUlZoCcXhQxl3+rjHLMrM3da/CFLIoE qRSQlqP75qHIvo0mNgZ6gH4wZg417V3w+MaZS2OpDAq1KzJ1iU0YoxvZ3hNA+KMl7QZx Bs9mDeyouFo/Lh7ChnC2AnH/jLZBEeDLPkc3GNy3USfVEa+pUOcVXOLz2upKYg61crhP 0kdQPGAbO+sBBggt6s6yxVMnS5T3XDA6If1/jxt/a1pGYjy2lbmjl3LpcFKtIiVKiecS 5Un+uSzyqtaWTvr8vj3hHEUi452NQ9FhxrN8FgLkkqauNpAEXXhY7VBrgcxNM7yEptt8 Bfdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759755650; x=1760360450; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PQTP5tVg1KBqcYjkGWU/UXGNSpYIuMZY/FCVFHH95b4=; b=H2v6OTUG79n4AcAPkl/ICW2jJSF8UOUjHFQRZ2OVhgX7TMkySNSbURNAvSXJt6aXzS N8TmlBbD5GrkrIMVd6KMGIKOksbKMS9VkqhDzhhkSZ1aDkDJffqC53LkvXtBnNNfJxyY md9tFfT5LCf0q7zy/yfcJ2kU0WdV3dC+h7Wtc9DKriUN/g/QCaY2uTJr70y/5aQ/QD5v FbwFXp0KiDLHmE/oJC3Jqugzr/R5xtcezPUESmUK23a6YrGdhr8xeQFnRnWm+iDj5sVC 7uH3S5L+rxMSlgifYkycxkSFGu8E+YY5mMhxWbwsm0nhADCU931oNUffHYXcQfLalTXb 5txA== X-Gm-Message-State: AOJu0Ywq8QAEhVIyPUGqX/T+mlqGEf9BgNj2pbaEeOjA9uhXdljZBMPw 2jBBguTzjCd2+wI5vEjbT63r7FS7EONadW5vaBzwcCJ5jC/FUMfdEc2hnu5GtHDg+LE= X-Gm-Gg: ASbGncsbmS3Xn3gOyRYjoJOZk9DzGHduLOry4v9AlGTpJpvioL7c9+iCK9CXd+zWbzC LQmQvKpptTSd1ZqJxdaY30HXAgfoN1UC3f1vtnFuZxtMQ2FvbwVzUt3CiEZR7H3/2zdjQzb1A/N rz/K5R4O7QFd6AOkGcM3DrbhY3DwOXghbraE09GN9daNgbrsZV6VZUOS+EvLdm0od2p6ZqgZJ8V vytjJjPiDRANYX/UunuAW5tDmD+FeyXHgkLSoT/kxZ9KggHdNUYL8S0Tf+dWDenQ3KMicjg+Bvu CMXHONB05gypnM9MsuM1GwXammZUn4O21r8le6KWsdwfLjexxPxHw6by7OxIX6U9hFyFFWU/8q5 yeNyAABhmhUz5xPrwr5B1OjClouz0isyXbhtbP1NDVg== X-Google-Smtp-Source: AGHT+IF+07vLyKlUC9AZcX/ELvnHFPy4Xnjef8d+glDiXjGJaJtY0fp2bybEmkWjDlxNv8CyAWcKSw== X-Received: by 2002:a05:600c:19ce:b0:45f:2919:5e6c with SMTP id 5b1f17b1804b1-46e7110c3d5mr106900545e9.16.1759755650133; Mon, 06 Oct 2025 06:00:50 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:ed2b:276f:1a72:aac0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e619b86e1sm249725965e9.5.2025.10.06.06.00.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 06:00:48 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Oct 2025 15:00:24 +0200 Subject: [PATCH 9/9] reset: gpio: use software nodes to setup the GPIO lookup Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20251006-reset-gpios-swnodes-v1-9-6d3325b9af42@linaro.org> References: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> In-Reply-To: <20251006-reset-gpios-swnodes-v1-0-6d3325b9af42@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7200; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=euQnOmMaUXav6qiP7aQUzAMCDMlmaWDfPNDFpx0Zd40=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo471xS0cpgGKN+eCwr4RM2flGdhV1fuNmW7IEy pih/wsr5euJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaOO9cQAKCRARpy6gFHHX coIXD/sE/r5VEuU12M8wenUEnCjWZoJJuKKYrWL2E7T4Hg5PiNgjOGaF62J0OdBofMxEpp7rkba V1Zb0qdvdTcb6zjP8tMlIiZf+DI7S8ifG7KBRU5kELDN9xifiv7wbUd2bCaDBIrjZduZjII2eGU XqQ+ySRjRpK2oa201uID8kJPlOQy8IsgNmhhhNAA100CDKAfs3m4prThhnkrJJTo7vR5npJ8Gvm I3J7mAAwAb4JZMHQ7gw7ddZEdYEtccdhMWJgy+mq3UoKLF40EjUH7EllFOLDZnMEauOuhhpmv1Z 6QwQNgrctI1hykn++MHmdCmWN3Rc1ve+V2yH4z3wNhGnajq1AFvkd8r90U9e4CWTX2f7PEvwbfD dT4/c5j8d9zdeTQjNAcNrBlDeAOD0p6aovQc3ZAgsDl9WBb7sp3qCbDgVh5tvycyM22ZX5nVLS0 ph12Vs8sJ9dXkAEbrhZk4suiee+dIafR5g5ipYuVz3AHnmhxbz5xuUCxapQK0kj5q9aoZzSJ7bq F71aDZP2VWHHZj5qJrZtiUAJics9X0DRE66hE6Qedl77sNKVCtIuEEOldJmj9BHLYyRBYT7IdxB MTffYjKJZy8PPvBBlqmCRkLOApcb+bob6RSos+/m8v/uXHTbW/wNC+E1rBDesJofLmkM2zlmc18 gyLYW+PH5ODOiaw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski GPIO machine lookup is a nice mechanism for associating GPIOs with consumers if we don't know what kind of device the GPIO provider is or when it will become available. However in the case of the reset-gpio, we are already holding a reference to the device and so can reference its firmware node. Let's setup a software node that references the relevant GPIO and attach it to the auxiliary device we're creating. Signed-off-by: Bartosz Golaszewski --- drivers/reset/core.c | 132 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 54 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index c9f13020ca3a7b9273488497a7d4240d0af762b0..b3e6ba7a9c3d756d2e30dc20edda9c02b624aefd 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -77,10 +78,12 @@ struct reset_control_array { /** * struct reset_gpio_lookup - lookup key for ad-hoc created reset-gpio devices * @of_args: phandle to the reset controller with all the args like GPIO number + * @swnode: Software node containing the reference to the GPIO provider * @list: list entry for the reset_gpio_lookup_list */ struct reset_gpio_lookup { struct of_phandle_args of_args; + struct fwnode_handle *swnode; struct list_head list; }; @@ -849,52 +852,45 @@ static void __reset_control_put_internal(struct reset_control *rstc) kref_put(&rstc->refcnt, __reset_control_release); } -static int __reset_add_reset_gpio_lookup(struct gpio_device *gdev, int id, - struct device_node *np, - unsigned int gpio, - unsigned int of_flags) +static void reset_aux_device_release(struct device *dev) { - unsigned int lookup_flags; - const char *label_tmp; + struct auxiliary_device *adev = to_auxiliary_dev(dev); - /* - * Later we map GPIO flags between OF and Linux, however not all - * constants from include/dt-bindings/gpio/gpio.h and - * include/linux/gpio/machine.h match each other. - */ - if (of_flags > GPIO_ACTIVE_LOW) { - pr_err("reset-gpio code does not support GPIO flags %u for GPIO %u\n", - of_flags, gpio); - return -EINVAL; + kfree(adev); +} + +static int reset_add_gpio_aux_device(struct device *parent, + struct fwnode_handle *swnode, + int id, void *pdata) +{ + struct auxiliary_device *adev; + int ret; + + adev = kzalloc(sizeof(*adev), GFP_KERNEL); + if (!adev) + return -ENOMEM; + + adev->id = id; + adev->name = "gpio"; + adev->dev.parent = parent; + adev->dev.platform_data = pdata; + adev->dev.release = reset_aux_device_release; + device_set_node(&adev->dev, swnode); + + ret = auxiliary_device_init(adev); + if (ret) { + kfree(adev); + return ret; } - label_tmp = gpio_device_get_label(gdev); - if (!label_tmp) - return -EINVAL; + ret = __auxiliary_device_add(adev, "reset"); + if (ret) { + auxiliary_device_uninit(adev); + kfree(adev); + return ret; + } - char *label __free(kfree) = kstrdup(label_tmp, GFP_KERNEL); - if (!label) - return -ENOMEM; - - /* Size: one lookup entry plus sentinel */ - struct gpiod_lookup_table *lookup __free(kfree) = kzalloc(struct_size(lookup, table, 2), - GFP_KERNEL); - if (!lookup) - return -ENOMEM; - - lookup->dev_id = kasprintf(GFP_KERNEL, "reset.gpio.%d", id); - if (!lookup->dev_id) - return -ENOMEM; - - lookup_flags = GPIO_PERSISTENT; - lookup_flags |= of_flags & GPIO_ACTIVE_LOW; - lookup->table[0] = GPIO_LOOKUP(no_free_ptr(label), gpio, "reset", - lookup_flags); - - /* Not freed on success, because it is persisent subsystem data. */ - gpiod_add_lookup_table(no_free_ptr(lookup)); - - return 0; + return ret; } /* @@ -903,8 +899,10 @@ static int __reset_add_reset_gpio_lookup(struct gpio_device *gdev, int id, static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) { struct reset_gpio_lookup *rgpio_dev; - struct auxiliary_device *adev; - int id, ret; + struct property_entry properties[2]; + unsigned int offset, of_flags; + struct device *parent; + int id, ret, lflags; /* * Currently only #gpio-cells=2 is supported with the meaning of: @@ -915,11 +913,30 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) if (args->args_count != 2) return -ENOENT; + offset = args->args[0]; + of_flags = args->args[1]; + + /* + * Later we map GPIO flags between OF and Linux, however not all + * constants from include/dt-bindings/gpio/gpio.h and + * include/linux/gpio/machine.h match each other. + * + * FIXME: Find a better way of translating OF flags to GPIO lookup + * flags. + */ + if (of_flags > GPIO_ACTIVE_LOW) { + pr_err("reset-gpio code does not support GPIO flags %u for GPIO %u\n", + of_flags, offset); + return -EINVAL; + } + struct gpio_device *gdev __free(gpio_device_put) = gpio_device_find_by_fwnode(of_fwnode_handle(args->np)); if (!gdev) return -EPROBE_DEFER; + parent = gpio_device_to_device(gdev); + /* * Registering reset-gpio device might cause immediate * bind, resulting in its probe() registering new reset controller thus @@ -936,6 +953,13 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) } } + lflags = GPIO_PERSISTENT | (of_flags & GPIO_ACTIVE_LOW); + + memset(properties, 0, sizeof(properties)); + properties[0] = PROPERTY_ENTRY_GPIO_FWNODE("reset-gpios", + parent->fwnode, + offset, lflags); + id = ida_alloc(&reset_gpio_ida, GFP_KERNEL); if (id < 0) return id; @@ -947,11 +971,6 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) goto err_ida_free; } - ret = __reset_add_reset_gpio_lookup(gdev, id, args->np, args->args[0], - args->args[1]); - if (ret < 0) - goto err_kfree; - rgpio_dev->of_args = *args; /* * We keep the device_node reference, but of_args.np is put at the end @@ -959,19 +978,24 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args) * Hold reference as long as rgpio_dev memory is valid. */ of_node_get(rgpio_dev->of_args.np); - adev = auxiliary_device_create(gpio_device_to_device(gdev), "reset", - "gpio", &rgpio_dev->of_args, id); - ret = PTR_ERR_OR_ZERO(adev); + + rgpio_dev->swnode = fwnode_create_software_node(properties, NULL); + if (IS_ERR(rgpio_dev->swnode)) + goto err_put_of_node; + + ret = reset_add_gpio_aux_device(parent, rgpio_dev->swnode, id, + &rgpio_dev->of_args); if (ret) - goto err_put; + goto err_del_swnode; list_add(&rgpio_dev->list, &reset_gpio_lookup_list); return 0; -err_put: +err_del_swnode: + fwnode_remove_software_node(rgpio_dev->swnode); +err_put_of_node: of_node_put(rgpio_dev->of_args.np); -err_kfree: kfree(rgpio_dev); err_ida_free: ida_free(&reset_gpio_ida, id);