From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.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 A4FBA2EB87A for ; Mon, 3 Nov 2025 09:35:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162542; cv=none; b=hateb4a4UUFtOuVC0O0gX7FUDzQfQJ9IduUU5jl73JxwyQpIIP9f0QwqLv8sXtDh/85qpEnrS6ivOiPaE/Lc4wIdtcPiZYfOFE6phRs9XTuGipkMkVp0PYCxcwKyaZBsC551ahxhJ27yyrz5SgdZl5A5JJlbl7qVDnXYRDa5vc8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162542; c=relaxed/simple; bh=mPvck7FBusBIrrU9DyUagtYmYc59qQeaw9PokJWo0q8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q6ZmUlNvbtq7XMc4yInGHsuhSOHdTslq4x79AOnU4UvD5DOZenh8iyGt5WtCw06zT4t/Jaw1PNPGQ0YVDFOiqm0k6nuoAb51rZSFBtmtWq5sddEIXiOEi+ZcvDZFV4WFcYQFO371Ywdpx7yK0cyb9SNB8m5N6YCbOxOEsGSJ9BY= 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=ZIIVqjOG; arc=none smtp.client-ip=209.85.221.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 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="ZIIVqjOG" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-429c82bf86bso1583935f8f.1 for ; Mon, 03 Nov 2025 01:35:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162539; x=1762767339; 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=y8B48CQ+SAe2K7TCbIb4c6gbeJWwmvGMrpBNS173gJ8=; b=ZIIVqjOGRLFg8cNHZ/X3+PWpT96Gkohw73TJiPQQ0JxXxVAJ2Kge3x11xOV+JoTA05 Tk/mQtNiQcuR2iTCmMZ7EJAPkWYmOSanULylcbiFWV58g4vG26oYJZbUK8HwE/q2zvc/ npornGaIuaC6e0HupMBdmPsTyrmaRuBPs3ulp2Rs6icmxe6uPJgCfVXhPEVhWmOlh8p5 /yqI0i76G/42phNQRWpla5gJTMOSKBrJJZPdoa6DNb2jcxbh3M1iWDQyxfLl+4ouMwrY UtZRnTXo+qmbg7mbaElSaHf0NAadSQ21UO6ivp7mW/OO1MESc42AaclI76Ick0LWERtL LZWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162539; x=1762767339; 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=y8B48CQ+SAe2K7TCbIb4c6gbeJWwmvGMrpBNS173gJ8=; b=NGINFAt6L/a+AxAEiX9BKqje2aoSVoL4qCkG4F3qgcuyDtEEU+8JXANWsxNQav/wJl G4R/VGXtPiIAsMTiGDqRsRzZ3yGR3qkRsCFnohHTaXG387+CwZLr4YkN+4+1MrxqGqLY 8FYvhWtKQFO8E1YxQZ3DIAtHQFrmVeeN9aw42+bLArhuyaKuqBEeCkkdGu38WJqi8+nn MQzs/yRt9lvOMstNHi6+hR+P4akJwwk1seo9hMcc/0W9P0dx4zXEoPvCVgbIjwv5x8UG RaS9OyimdBjY9e7GmmMQ+iBklY9B7wWOm4GIMKBSuTMh/3zmu+gGARQf107bFIvAObnn /VMA== X-Forwarded-Encrypted: i=1; AJvYcCWpExvYJvK7IDDdH/8qKT8hQHzN0sOHG+D/CxVsEPQX0pMOqKGCQUNNrmb4DUkG+eVVt/amFnLnv8ogEic=@vger.kernel.org X-Gm-Message-State: AOJu0YxdfwJyegyJdIpk8eBllx+pBdU+SDpxIXcv/7XLv32y0YmgD2OD 0HmOUZHPYoVLnMRC/2x5iKroPhE+GiB5lKPZsJgBO45jKRabWLACQgW7NWIeFiDvTzo= X-Gm-Gg: ASbGncsTQc4/W5wUsMejEUAq70LsHTSTFCPdRZoU3o1kadfGgilaY05PVylBagPdZWb rxAtfD1i0wpK0mafdZqhQemyUGpksxIp6BBBestHY1f6ttYs9SYP/qPsgtLdixmQOx5Q3qdHzTy SFEZuA8XZe6i9GxdCIh17T0xqc1hE0J6MJKBQ8wvtN7o7GDiqhCsG9mBw4r/A9cJcNuM+A0bVa5 B8m1DO3cD6akmr/+BhG8/64p8TuU/ifY52LiuPUrAsm0hv7v05jIn2wfq/bLHj81Irwc4uWDAnV qKIxuZxwzkHtong0E7odrc1urUkU25ybtazGOzS5AMzcnfIv/RFlAjSOVeSH22u4UMRwz6NKUcJ 5MnbjJ36OfGhzIzvSkERz9jWvK7y/1ENN590sO48PYw3xZqK++mwOa0WjILFElM2IcLT0Iw== X-Google-Smtp-Source: AGHT+IHfu9OcksipHflpqjCQ92EerKc5s6qdafFQZQsWv4ZSgHg4geHKeDG/1frk/G+Q89VmFDb2HA== X-Received: by 2002:a5d:5d83:0:b0:429:8bd9:571f with SMTP id ffacd0b85a97d-429bd68d090mr8088868f8f.23.1762162538612; Mon, 03 Nov 2025 01:35:38 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:37 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:21 +0100 Subject: [PATCH v4 01/10] software node: read the reference args via the fwnode API Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-1-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=1028; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=SV4IzN+VcOwOjZe7Sl4nz98LmAMqSJepmGpgIZqgDMU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdkajN+2UJXULO0gRWdo33RyPbNYEQqxjBtc hXqRX69jc6JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZAAKCRARpy6gFHHX cpJsD/9w+Iw+J790OWkhVJtQY9JTsw0MQBsIW33yqUuXrhdQM0jpfqYnE7s5thQeJVzIgtQLQtB Rwge+GfVlxrVEYTF5kY5aYsWJQPPSI3nBhTZ4l50i7rQLwM3ds91MpuzYldh8vTjo3I34Pq4+zF gdv42cYZac7aQR0537bMArdctppn0polCA0bkjcXRSt4RoBI2g6r/NC67EN9i7jC8VDUTiv0uka FttcUOJw3/8wQQYJJYekLRjm1+w355yQSe82NraYvivVs0/nOyLwSeOeSnbE2S9GAoTj9jqKSSD n5FFcthtAMmURWsOglbYDUau4PyDIqqSXlxOiHg6R5jsBmQiNF6W8UydTUSnKiQ5/TYhKP2y1HM Fhba9bRXzhbirtR3ANVy0TRc2WoYYZXbJykvLp58Dnoa7cVgyM4QXUW0QjJ8k62vWp42cOdkZ23 QNugqQcqolsBG4gR+JasP2a6ioZwaMcsGMVF8yIhrMXp6i5ffDL8Lx3Y9xi/z7r6pvhDBCGhdO1 PJkLqThPBo4674CyWXFMglw/uBM9Qe5VwN06B/grSkp1Hf2sR+Hs6c5ZObNtJDDd/+lbZ49u8o9 sFgWocYOyFYQ1+2ajdIhmS8rvSwlU3+oSaZmCD4RSscK3xWM3O6XNFTK89cU6q4T20PZjAP2735 sqWbpGbtGBAZqEw== 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. Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski Reviewed-by: Sakari Ailus --- drivers/base/swnode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index be1e9e61a7bf4d1301a3e109628517cfd9214704..016a6fd12864f2c81d4dfb02195= 7f0c4efce4011 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -540,9 +540,7 @@ software_node_get_reference_args(const struct fwnode_ha= ndle *fwnode, return -ENOENT; =20 if (nargs_prop) { - error =3D property_entry_read_int_array(ref->node->properties, - nargs_prop, sizeof(u32), - &nargs_prop_val, 1); + error =3D fwnode_property_read_u32(refnode, nargs_prop, &nargs_prop_val); if (error) return error; =20 --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (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 EB7382EBBB5 for ; Mon, 3 Nov 2025 09:35:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162543; cv=none; b=b/4Mez58sH90Gcf1SE/6INQZzmwNKl4Fy2tf/A0rlyLInQP8b4J99M2gI2xxvVPwpbm1WO/B/FRgURqTk11hFWspeEwh9G1ygsLxxAFbw4OCXhuJNdXNOHPwaBC6VpUeLfKde8fg6jsjiFJr42ugMdK8N7cnkVpesg3sEQWhYz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162543; c=relaxed/simple; bh=HTd4iZaPRKiVM5g3i5e6EDps+IClJtoB1LFevsHD4CE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rnspSVPW1FLAOP9dummJXKJH6VZD+Pdiglb+1nXLD17zzvzOB0sO8B71cLsPG+jozZHRrCT9ShYdn0eyQN5dv60zEMwo3X/3OHiiCwScc8AyYXcvGxlFJ9SqtpB8QZDr7slGJkJtdaXlweWqr3pmwWNeXugXmaNOayhKvXrWkwM= 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=JWtpCIPI; arc=none smtp.client-ip=209.85.221.51 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 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="JWtpCIPI" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-3ecde0be34eso3210752f8f.1 for ; Mon, 03 Nov 2025 01:35:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162540; x=1762767340; 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=MR9/q1uejjwqNisgWS/5bEtUBR0CMunjlT9KIpTJamk=; b=JWtpCIPIuRvgg4Sg13FMlCyblxReTvVv2jm73Kmk/EwGjo3NZZY/+EzVhbc9cjAKkU nXoOP+YtehM/qX6yAY/Ci6diSaxW2gCHcuDOHqbsSiGChBW6bprtUfcXafQQ7heK66x6 Yu0EwMo/UM57YX9IB1otdeM8MHBMotRoZYwCx55ndLXQnFpLhxh84uiMhvjsYz9C/3m7 iFXjvKQBU8Dv/YzGaOlJ6bTucGZLHAckDeCNpczEntObRa43Lsc3mdC1vetVUIYcbNnS HaEnp3Bfj1GJoSZKtZr7/TXFeolVuor+mLXAK5192HeybFMuMJ6huOUm3ugeR21Ydrqp Pj9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162540; x=1762767340; 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=MR9/q1uejjwqNisgWS/5bEtUBR0CMunjlT9KIpTJamk=; b=TGSJmkutnNuu2igqlZppErfLI9uwCeS3gj2NjWjEiNYUT54GFoyCW93zYa5UuyJEyP q01S9B7LqBVwRW+oemfQeoDLf0QLxR/5PJlsYDUfa+V48Rqt0Cs/vZFG35WXgEzCmvb1 Ken84qoQwmd2jsgamUi+imbVeD114xv6x1j7qrLjq0O4JQ6ZKW/401u149Pub6YZ92rO KDSN65u9TjIUyXg6PBOJVcLrerYfmNaTzhb+Dz0M4kXufgqMGfhvx4Lh9gI4K5NjPkjf DxJqIZJ7OUf2WMdZZNf7HcTIki0uHuwLzEvO9FeyxT8P8ng8eaPrBan23urF5+rG8kZ1 8Shw== X-Forwarded-Encrypted: i=1; AJvYcCXLQL0Ch9bGvaAQeC1185DH6Nyd6OVjYEFXzZOazQCDB9bM6tB5criaYQhh++uKQ06Q5pKa2OuYM5hKddc=@vger.kernel.org X-Gm-Message-State: AOJu0YyGazATHz6agoirdmum2G1qgMUngNGUYZ4quJ3fkd+u2jSD1T0c eEzpTYzkXECpKUgLs/zkdLiJtwprCn2CHTpaXPiiySuwGwdUaO+pNxGBDLlBmM+9z+E= X-Gm-Gg: ASbGnct5HQlErkgUfgaQYKpR3Zst0SL9IXmB/WMSUZSQIGxsaTEglB6EL4tO9kL/pJU tM6sGZg5Q3gv+bUlj9qx0WLm7JvEtSuJ686BjqYxITi8cHfbY6EBnLGgexnVOyE6j4k6qe0SfK1 3TuoJiNdsh2fNqppeegumV3EndIveeKjOslgSXV3nvlsAtJuXKqiN+QNfYO+ERJaJvsgPD2X2k3 Uj13iQRoCs/EKtxCV64McrzojDeorp+1jUsa1BSHskhKvc+xjHsO1yiOWh9q2RQ62lWG0avCXRZ /CnRutWuHvoDreOtmFwFhwZwQbsfzFIt6V/GcBeXoyV+6ywzQ6R5FGE+QRwPahBnmA3JqRQ8xHq Z5DEZeN9U0iW8+n6LCs1cjilwrl1Ozh6KAz9v7WpTprTi045j1Uy7lL3DSCAw0+CDS1gFsqW5YB pE5PlO X-Google-Smtp-Source: AGHT+IHRSTk2bASAi6bSlqK3LuaAJPm8yPphUV6iZEA60aV9YtfO6Vgj8NiJ0oWGdqgc/FbytjRbkQ== X-Received: by 2002:a05:6000:2882:b0:429:c6ba:d94e with SMTP id ffacd0b85a97d-429c6bada73mr6241828f8f.12.1762162539894; Mon, 03 Nov 2025 01:35:39 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:39 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:22 +0100 Subject: [PATCH v4 02/10] software node: increase the reference of the swnode by its fwnode Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-2-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=905; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=cWEXsl3g7Qga/+zqwiTnXs07zQEFM6f4IiHgGDiKRrI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdk+HcXSqYzV6wtK2hDXg7D6GqjdHCZYrzNH mNXIIVvAOWJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZAAKCRARpy6gFHHX ciivD/9xjHtYcd33CT4tvDonwQ66b0vfxLxMbHV/nO11V92tOAvwAjfGw/ojqixgfmPdF7Am0uQ Im9zZSwkQpWnJqhA7DRQ1sJMNmh8o06kZYqSCkFJHicAYFtfJ6dWQYriuT5C26OuUkFxMPi5TuH 7Ak2d6zirsj8qZQZHY9oq2etd4D5ifDwFk6tOYNa5V6D9Rig/YC6WQ8H5nL2C8KbFmgQ/TDkwTq i0IpO3k7U93Qdef+NUsvbyOisc9epzhm+1QykzdTFx1rutfkuEZbgN8chSP6HKlNcUkjOkdwgG4 FcMAAvJa2i0Hk/ulvK5PRd4xEnKpZja2+5ogMxt8+2egEtXLVfRzh4YMuRsJF2cf+Ioza9OsmOS 6r3fwUH6/I9xBk6y+zJdfCiHYw8879CtKBYz5rEeAm8HWJx1sbOxSyZ3b6VeQPccMIM5kgcQSMo bxM2HJxErbnCovM1w+K7k1YavCJdDpAZS9NWOEXk6xtyc+Epw8/PgjVDrOQfBaYd3XH+u9IrsG+ MSXxk9NjcSaWhb2ppu04meUK2XIsOapbRE1e33Ak/dGj8bmDY5DsP/M2ih9j5GHaJCkvqA15HU0 hbnNfbr6h9tILvvJQE6b02v59X9+vID4kWCnnsGpB9I50RkIJ//+G0itWtI9z2rAy3uPjgwv9yj RDPiRSETNW3Z2eA== 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. Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski Reviewed-by: Sakari Ailus --- 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 016a6fd12864f2c81d4dfb021957f0c4efce4011..6b1ee75a908fbf272f29dbe6552= 9ce69ce03a021 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -553,7 +553,7 @@ software_node_get_reference_args(const struct fwnode_ha= ndle *fwnode, if (!args) return 0; =20 - args->fwnode =3D software_node_get(refnode); + args->fwnode =3D fwnode_handle_get(refnode); args->nargs =3D nargs; =20 for (i =3D 0; i < nargs; i++) --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 B4EBB2EC0BD for ; Mon, 3 Nov 2025 09:35:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162545; cv=none; b=GhqclTCkIKAqrvNVcQKKj+7ZtK+qPwNr3njAWqCSiVTskjVMZ+zLp3aEPQI5WfA9CBnmnMXBDzn2mBg9eMZTYbUeQo0NgVqe981BcTU3H6rBKE7HWTm5/e1t+70suNf/qSHHDjSun93KkyQwTwDaZJOak5rm0qdnZZ/tgLtAT3k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162545; c=relaxed/simple; bh=8nCe1ffODQY7b/ZHkOseEFiGz2HUald40nRLcY5llHo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EbTee2fL6Zpi6EJCTtkm5ECoUFHA+CJ4bOBX3/1Uh6yRTP7vQUKRQs3nOsiooODDlvBbGKwmXCYr4jWxkjlVoIoDZxZmQp2nM1cKf2fzDQdWIqM8YY5ZJUDC+XsnvkW8QqfjpoC9a8vwPhvlRTR0euJtSMR8SDJIAsCsAky4Nso= 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=Y/czTzP1; arc=none smtp.client-ip=209.85.128.41 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 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="Y/czTzP1" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4710683a644so32769035e9.0 for ; Mon, 03 Nov 2025 01:35:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162542; x=1762767342; 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=BZmi0yPQjmv78bZP2daRDqMBsZVUhhJlneKShWpZEfY=; b=Y/czTzP1B/SDnkbu0p8m5QjNF/Ya89FVAsdjPsttKYxxN27EaqKSjO+Sf3bvgwZsT9 kkt90t9AkRK6q4RTErZJL6K0iFbi5f4sVLe9HvWFB6WWlja1duelfAXVpYg1XI6rUk7j WNIrKBHDgY46YYCbHwTNgjMfPZZVBEy9woajK9SFV1j87Iz0SPbmXeV6dSBchcaqHN01 OvXbRovBs9cKANjAscnnHJND3QaQ04gTti9nsZrOUpuSnwy15z/CG0xTrJyUSOmfk2Lx ES2WNxZwEiv+r9qLAgLPjmtKnCcs8Ar32Uh7xD/EFGQH4Y68PIh9rNNZlP2ZjYl3Nqyv r8ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162542; x=1762767342; 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=BZmi0yPQjmv78bZP2daRDqMBsZVUhhJlneKShWpZEfY=; b=M/ZFuyHhe8Xt9aZ7Sh37HZL+QXXuwsbBgLm/1ifbuE3rWP0hhh8sV2yEOXhI26NhCK KST9zkvR/UkWugNb9VT4pNWbFMORTo80ocZ61YkuwEgZxo+n4eLDsX7HoEOOVJmYSpsV W9i56gBkkYK+cH5O81dv3yCSy2A1kZqVmCfahoh371u3n+NtG80yo1I0prIX2P0awnEH KySp/+Vhhgn2LHUoF5ZDkFRurc/H3iKCRhsJc2y1LH/3cK3WZXslnXOv2CHlGRsEEUq9 KmZE5U38O4GMnzhThkyKeIDyXwQyekDlxxxxNPO/dQolTcsCNcR/9f2dkQuvmlHyFFEv fL7Q== X-Forwarded-Encrypted: i=1; AJvYcCWskhu11G4ghzBNtulnrYH69zHJyKV0bJZA2+uxUQMBkaJMBQv9N8hxcCL1IERcKppRTYXHG2Q/TsWA2VY=@vger.kernel.org X-Gm-Message-State: AOJu0YygZxeFpt6iBNmJ7n3dlKV5t7HOF6ci2x/bj1/AF9cEcRZdhHVK OaTrZlusYt9cr3FIoG/5Hf4zrRMYMOZjbYlL1XpQZApKrbA3ZTBjs0TlDVTtYES/qk8= X-Gm-Gg: ASbGncuknIZUAYJGCdpLIkpkz/lzcPZCJMFBKgtDF9O45I7+S52PRqwMLOeVrBjz4e3 IU0ItrUbBvCEjRNLmxCKQCzfNoWs5cyJrwzljufUextDQKxTWT5j2K5zAvbrNA38KkJL21/NOIl uHembRxEJ2CmPvFS2ndflnprEMPjeozIqiBYggb++09Es69DYuYX7QjW42gDbrliXyIu9uIhoKX 1oGyIE8l7PV1Ldgy0cn6DIzq5s8trc4xtGqfyD18BzlEipuTFYeYbrtjtjZsmhd9A9hTikPTUz9 GqCOcMMx6Z2DcDjQfTUXxwJbtH7nxtbMbMUeIyfErrggBUPi/TBea8NYSsqSs3UhsH+bshRBfXp sDhEFXKNSVzNotm/1zd2iFxIzfVGTYZytCufWe6rCvlUIhgqGWaPFNsDFI2Huz1LfIumNbhrhGd 1eN8oT X-Google-Smtp-Source: AGHT+IGdxLPcE/K4/TO8131mt2+C/2dE32uptfqFQg1949jUeNNU8hczBSRsKhCcvHdC003ivqXO6w== X-Received: by 2002:a05:600c:8189:b0:475:de75:84c6 with SMTP id 5b1f17b1804b1-477262a941emr130475275e9.12.1762162542063; Mon, 03 Nov 2025 01:35:42 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:40 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:23 +0100 Subject: [PATCH v4 03/10] software node: allow referencing firmware nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-3-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=5545; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=CglNdrfCAaq7YvMmTB5KvNkJJjQ/bxZIXxu5hpYZKbg=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdkuicPAmqOkm4mg7hCWcWFbVQvHI1UcTJro zg2xp7uiUiJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZAAKCRARpy6gFHHX cs04D/9t2nPBHfuVddQoRnJ+7j78sGCQlrTSC3o2NPGXnBw33tJ52caABoIpb1CzxceZd2q7quy ZTpC40BS2+5tXAA6Sbu38xHEiecjF3w44iR9C3kyCrzGxwPELzwSKteY0huiClhbhNMsglhiVL8 16gSYCPp7emqDteyCJt7pyGGu/6lD6Q/Y4qhRT8AE5B9jnCN2SZ4dKg6fEy+fUNnRUX9V6FpF26 N3YnwbGG0qrGB0O4Cuz6XUL4Ub2ITSDOLcDgO3Bp6Iy0pa6WpBM1zpY6ExIQ2e6I1+Z8rFY3gFq rrd2g/odePfia34k/RZ85B304zGDEzSUysRrrKxEpcWYE9ywYMde/1XubjqzenUnovjuTLEmXOC VVcusguW/7WKq7ZM4WTZGnRFg9qQ/ThOW28pmo8kXazAMOAJuSQpwsXSQirwP3gAjBE4ILzH7R9 HLpWU7+l2ZAHJwq4mAbVX9/Tyth/gha3Z+FyYYZEWvStWjeyg8AtkZjROF3W5zjjLckd1150s9T f0BFCbENuiq2QNQF/4+W4WryPtbdMjFTflg2ke2+6M07Oh6XSa0FHnga4xpcUZH2qsKjLA9eCzl /A87E/1wLbyAQ36Y9DbzSONVdYqdlV2f1DH+xCk54RAAnWe32LdZLGaj4lCPZZz5e8kRXfw0WnB cc352eOSp28LEyw== 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: add a second pointer to struct software_node_ref_args of type struct fwnode_handle. The core swnode code will first check the swnode pointer and if it's NULL, it will assume the fwnode pointer should be set. 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. Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/base/swnode.c | 24 ++++++++++++++++++++++-- include/linux/property.h | 43 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 6b1ee75a908fbf272f29dbe65529ce69ce03a021..44710339255ffba1766f5984b28= 98a5fb4436557 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -535,7 +535,24 @@ software_node_get_reference_args(const struct fwnode_h= andle *fwnode, ref_array =3D prop->pointer; ref =3D &ref_array[index]; =20 - refnode =3D software_node_fwnode(ref->node); + /* + * A software node can reference other software nodes or firmware + * nodes (which are the abstraction layer sitting on top of them). + * This is done to ensure we can create references to static software + * nodes before they're registered with the firmware node framework. + * At the time the reference is being resolved, we expect the swnodes + * in question to already have been registered and to be backed by + * a firmware node. This is why we use the fwnode API below to read the + * relevant properties and bump the reference count. + */ + + if (ref->swnode) + refnode =3D software_node_fwnode(ref->swnode); + else if (ref->fwnode) + refnode =3D ref->fwnode; + else + return -EINVAL; + if (!refnode) return -ENOENT; =20 @@ -633,7 +650,10 @@ software_node_graph_get_remote_endpoint(const struct f= wnode_handle *fwnode) =20 ref =3D prop->pointer; =20 - return software_node_get(software_node_fwnode(ref[0].node)); + if (!ref->swnode) + return NULL; + + return software_node_get(software_node_fwnode(ref[0].swnode)); } =20 static struct fwnode_handle * diff --git a/include/linux/property.h b/include/linux/property.h index 50b26589dd70d1756f3b8644255c24a011e2617c..2d838117b7912b5aaff75318f9e= 7ad256039f2e7 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -355,23 +355,40 @@ struct software_node; =20 /** * struct software_node_ref_args - Reference property with additional argu= ments - * @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; + const struct software_node *swnode; + struct fwnode_handle *fwnode; unsigned int nargs; u64 args[NR_FWNODE_REFERENCE_ARGS]; }; =20 -#define SOFTWARE_NODE_REFERENCE(_ref_, ...) \ +#define __SOFTWARE_NODE_REF(_ref, ...) \ (const struct software_node_ref_args) { \ - .node =3D _ref_, \ + .swnode =3D _Generic(_ref, \ + const struct software_node *: _ref, \ + default: NULL), \ + .fwnode =3D _Generic(_ref, \ + struct fwnode_handle *: _ref, \ + default: NULL), \ .nargs =3D COUNT_ARGS(__VA_ARGS__), \ .args =3D { __VA_ARGS__ }, \ } =20 +#define SOFTWARE_NODE_REF_SWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, __VA_ARGS__) + +#define SOFTWARE_NODE_REF_FWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, __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 +480,26 @@ struct property_entry { #define PROPERTY_ENTRY_STRING(_name_, _val_) \ __PROPERTY_ENTRY_ELEMENT(_name_, str, STRING, _val_) =20 -#define PROPERTY_ENTRY_REF(_name_, _ref_, ...) \ +#define __PROPERTY_ENTRY_REF(_type, _name, _ref, ...) \ (struct property_entry) { \ - .name =3D _name_, \ + .name =3D _name, \ .length =3D sizeof(struct software_node_ref_args), \ .type =3D DEV_PROP_REF, \ - { .pointer =3D &SOFTWARE_NODE_REFERENCE(_ref_, ##__VA_ARGS__), }, \ + { .pointer =3D &_type(_ref, ##__VA_ARGS__), }, \ } =20 +#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 =3D _name_, \ --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 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 0AA842ED84A for ; Mon, 3 Nov 2025 09:35:45 +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=1762162547; cv=none; b=nSIGsUZIJihTcpP+xeLuLt0Pw1oE/ojhiP/QGsOoiKmoFFNxbv//hIEI2Pxvo8/SB3T9XZQT/JwcWQY3md+2j4pIQdMDiaJNY+f+3TJZgo9T9S1HBI3FxeY+aWqd9+Dpk3xjP0jrfCEihzuRna1bilbGShX9SpNIYoM8vkwSWN4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162547; c=relaxed/simple; bh=kksf8j+Hcw5JU8yFcOn2UF2PlDbCA9geMD8Jwj5RJbM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eN0xW6TaCgz26g8a7wpcTFhEP+vcrQ9FHBPq/BVNkgPiiuRkHqr4eud+n8GbK5Cx79ewf68zV1QRoXL3CnmYyklEAVvA+4rZA/8HecjmcKbNw7eURqyPETz5AvlxEiCLJV3MDVxNmtLk7hjMo/oflGTEoOzunS11273lh17MtoA= 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=diuVwOjd; 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 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="diuVwOjd" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-475dbb524e4so24588765e9.2 for ; Mon, 03 Nov 2025 01:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162544; x=1762767344; 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=VQ/CHjiLyML2L8csBl+Z0R+SFBYXY+YFQ1rdbVNRMig=; b=diuVwOjdQtYK4d1yv8w3kiWum7gW6vBNhl7vYTCVemuRO0vYq0RpllM1OSfvONl8uj i95X37aEzqkbSAEZdkZi6LSjuPdlvephPk4A9tegzLE6JFWKlftSMt0jtTl5Qvhn2Y2L W4ExjXEPdQasTm/wJduXOQzHbBBmGEfibUcgPpp2yYFa5pVN5FzlztkdLfTqSf+ZDpZ8 9S5FNH97f2JHJR9dja7fWhZxeuWC40Ys+hYXbffCU87bQe+XnX5e6cVXUg49frFofKOM yvUPLh+pCaWIOSbrIeQJht9WV3y7HPTJk/n8OJwxlZzt9ns68L8MwQoN+8pcJOhVFWOF cMRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162544; x=1762767344; 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=VQ/CHjiLyML2L8csBl+Z0R+SFBYXY+YFQ1rdbVNRMig=; b=AFtA2YKWDBu+B1xxL8dZnXWUk9abgO78hkz+BYxTQxSAgyxucSc4jRIJ8VB/O3XNIP oWD3oXuP4hUm3ELu5h9FejLY7vu6aAxk3xSqiD/uSzWkV6He4XY34iFGOz0GnwzARAg2 0Vj/111R0Ojvt95jBZn/j2eCpYQhk29gHZ+GQ/7FoEYUtEHr3DmNtQZNTdjuafPr06cm d1SkZsQo1KNTtI39se0YQ5dU2OhyPvmhL8k4aJmxxRMIc7nhL3A3qTebbYQsV0ZZo3V+ sEGhNR7ejwE7BRgQsrkduYelhG4ex9qCC4y85l+SfHs7mkzYV1sDHHK+f+5RJfSl3YWe veKQ== X-Forwarded-Encrypted: i=1; AJvYcCUHW1BDOUlc0r1KA5kfHf6DyFjV8tsmqZS7XI4fA0HhIlHuFWkHFAcxvGsA73kf9BHb6IHXEjsWOFYQEvE=@vger.kernel.org X-Gm-Message-State: AOJu0YxpKrA6brulu9II0rTncS+s5xRBtHmELmZED6i6svrZFKyEFE0f Lb0+lZNaxqGQWwfckON6tTxIJMpCsBm1eNJtJBhkPbZnsobrk6on6jsfTu7TXGSzMhE= X-Gm-Gg: ASbGnctjEFjfIm4c0qXKKaydINYX/NNF8y9j6hY7CxhjsbidyE0lzjeeELrozgJntsE J7rc8WyME569re+OzpmrlHpT2LIztT4i8mtBXVjWR3XVllBr3/eSZZ3E5CJR8BGS927rxNAL9u+ D8jYLS2Mn4COM7WFBQYw48WdoYHAvuhEzgTyZy1bGfRSaG/+3WX810JFDOLMbfDa6nVt2fujyTv bvUSKEl4/MkOdTKfYzYFMa1tA5Mn80yk9rUQpB3/xlXoguV9exGi6z7Wzzo9mFWur6xtJ3jbdMh 4NHDLvcGtYDQQ0WdaOFl0pj2P6NHbZ/PsuPxO6j6DahgABZKoO+c1i+Ipnbiv75mmAzC7sETd2u 801+OJOTPPAaZPXcdeqH68so50vOQ5+/O45VU2olR6Xb70vjyzyiO7arKqoLfHCAhnJEXHg== X-Google-Smtp-Source: AGHT+IHN4PGzBvmPMYk45NnIf2vdYAtArzKxGN21jeZflOCEniXunDu4DmEIafaFywGvHU0MZkLB1A== X-Received: by 2002:a05:600c:470c:b0:477:bf0:b9da with SMTP id 5b1f17b1804b1-477308aac1fmr112539605e9.19.1762162543855; Mon, 03 Nov 2025 01:35:43 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:42 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:24 +0100 Subject: [PATCH v4 04/10] gpio: swnode: don't use the swnode's name as the key for GPIO lookup Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-4-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=1170; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=+SgeJi/LAPcV3I1FaGjOhnzlzc7OwWZ5YSpBPYWiI+U=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdlvyju2QWO0W3WvxOyVQeU+3VIAuq4ljqfl pw/rdKXyrqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZQAKCRARpy6gFHHX cqCgD/9pcmvHz+OyJCli2yL4AcetwaZfy2T/yDpmBuJGCZtlA06onONyzWew3Ga9U+ryAPs+qWH yI6/icLhUGJodJoNF7WyjWgXn+GA6JaqINQzWEg7ZP0Vfa8K/k8iwKF4KDdrW+9fsB1uXkolkb1 8139psdSciNoHGvvJHyISibTBLlN94PuIIyGOYhbrPk0fOgDWt1vmJDjmVSFP5V3DIaFhxe8XWr fc2A8wyV+GwCTACITyrnbqMvc/ZihSWr3W19Aec4HyRLkILGwrWcsyLSeJKVMUbEUjA+5ZkhkLW sB9Rpz9uCuQvk5rSOnsotoIGuyamrTMg6aN5VfhXfcpkGSeFQN1E8qHQU2fLM//bPg5OXJk1CKC HzeG9mBsjxv73d9q1IKeQcVexsMdMrYRvmNNbSFH/8AylASDKnyatdBJ0En/fGWl05NZQsmYtb1 jkv/ZYUYixd99lA0UTPhowxxFSozpCTAwNENz5d8zNM9r/h6TnuXjlF9pP+1aSI1WeFcFxCco6L BE14qNE4TpomKdm3fI25GT7HHL5oNcISsWRbvOaNtL2aiPw5eX7R5sUlo+O5i1V/GaGPM4sSnzH 3X5Ts8c8lMrAPLfR7S7+BL3QOhffeCgbXr3og6AOZ8kh3OZh3uWFV6QW6fkn1HuP5qs5oPq9X38 i/qk7dOpUfyCQbA== 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. Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-swnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index f21dbc28cf2c8c2d06d034b7c89d302cc52bb9b5..e3806db1c0e077d76fcc71a50ca= 40bbf6872ca40 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -41,7 +41,7 @@ static struct gpio_device *swnode_get_gpio_device(struct = fwnode_handle *fwnode) !strcmp(gdev_node->name, GPIOLIB_SWNODE_UNDEFINED_NAME)) return ERR_PTR(-ENOENT); =20 - gdev =3D gpio_device_find_by_label(gdev_node->name); + gdev =3D gpio_device_find_by_fwnode(fwnode); return gdev ?: ERR_PTR(-EPROBE_DEFER); } =20 --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 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 A89D32ED86F for ; Mon, 3 Nov 2025 09:35: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=1762162548; cv=none; b=lLCVLhll0UX1ypaT6YTrvLKuM4YaGxkbglyEOd2/zi69SCJOg9mrs8mxEBxxBjkoSFy4AeEtVX4gml3mr0OPhBqmwFp10HnqIG7pdu070khhQaFjwVCLllp4zE/X9SAErNEJLKyMKv6DDiKO3wY7pKYZkC1JkDuFsRL/m+8DK8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162548; c=relaxed/simple; bh=+skCMKtZUro42624JZ1QUZs6XXv2cnD0krG3QzW97Qk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WXwTCxn3NNcAqVKPc5nyCU0caQz6Hrbv8Xi1J0HxqcSMQm6TbZn8EojUIrGzVWaxA4BfltPrc2994Apg2gfK/CIy8crO2yByfGnl5oLBRAS9elcK5FbzbxZKatE/XWucr8Z1A/bO35QuijWr//GUDC9sHqZ8ZVtYur8Vu6GIS24= 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=m4L7NfH0; 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 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="m4L7NfH0" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-47112edf9f7so33714895e9.0 for ; Mon, 03 Nov 2025 01:35:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162545; x=1762767345; 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=9hARBiXPjJrSTvy/xdjK5sGzNu7AhBm6QjSrW+nMlBA=; b=m4L7NfH0Chet1jdap0A5tJniEQuBEREWWnBJhRNbFSuw1wz5HQfQevQ+xRONN3TNik rn69vY45o7xO/WiZrIEEhcWsjYneG1EjWYP9ZmUg5LmnWUUHKssErtI0lOfM9WXtnRO6 5ZV05fiFvT7sGlIQDg3W9UOoWmdJ+GH3SmOwzhQA7xZsW3kaPE1r9eCVteEMoKmmqRHU UMKNuAUsh85R+ALDdxJ3pqYmpgXazbVn+d8Pmzo8MKbKbkhAuq86n7QwR2hAq6OtM85z 9BrjLZjgLoi7ufYQAsN9bCLXHiGTi0kKW2L9Om7RuuafO9QHelM4p87i85bfuVDfnprk sxPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162545; x=1762767345; 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=9hARBiXPjJrSTvy/xdjK5sGzNu7AhBm6QjSrW+nMlBA=; b=DJ/3RueabqwX5k9b8924Cko5HZ1oD1leQUi4IadbNKCP4LOlQ04qqaA13moEvxWd8q 4marUQ2Rn5EgxHdFwPxAm+y0y2ccVOQXy03PmEQuq0d/w+uUOZY4eXjFsE0FNHB9Ux5S pkklWO7i0/HIq5CHRfu5dWc11UAlinBtD6WWCYRTs/o1BB0lR8BzZxO9CW8jK9g+1g0y lDPBDl6IE6v11zULRNRq05UyMXFaFplgomuGHFSPDH/ohAKOaKnRWuZqn5xsZVfV3NUT 8nZAy56WcmAcy6RrDGn0pmcea8erDQyrNMDBfWb5uDivLyxKE7oax8L6V6FLMLMxbsPm xstA== X-Forwarded-Encrypted: i=1; AJvYcCU26qjmxJagxY3P00Mfe8nNCgtZmaEGX8S4rJq+5s092VlgD4W6jj9P9a4YgfGtV3EDFxxTyci5e/hhuhk=@vger.kernel.org X-Gm-Message-State: AOJu0YyJxRMLaAd22+qD258w4OVZ5NxL8fnSYi3AdDSL+7I303gh9/wP QUTl3HNJkVHtRxC19c8+V2Y5gQ7YWxQ4CpvzVwYsRnRC7Tr00oQOy0tWTeuQYnV3yB0= X-Gm-Gg: ASbGncusZZigImeHquqXp2SyJ3U4oz27Misod/nfJ6bFLH6zWv2t9K6F0M/JhciYKQY 3YoIwZSUhkiFCV77klytYDu/4MSCMhx4bdSe+ep3n1AqaN83H+CN4GD9uQEkh/oyxLs3KQVpqZH PbDBfPWVeRMpdZYcF9JW+v5/XGSAHjNSnZaXPPZllkkWOI7+QlmGqOs1Gea3yXsZA56YnVIEdQa llOOaiBXsREX9zLjdyYwU+DefCzA3c0uLL/2L/0qvEtOr+5QseKcn68w+zjVDDsE/98LEDHb2hO HEpZh7atDMsjVFKcaGpX8IJU2D289Vh62/dbTTLsMRV3+5SfwmxuNtAKD6Zu9IxMRFyB9q7wxL9 nPyDbHWYVO8gP8clS3Ryy2fGpZ4un7nge3aU4RY0oeTM4eELIdPxA9Qsjmoak+yz7DsmjGMZYGa uCahwk X-Google-Smtp-Source: AGHT+IF7IaKJSdToPk66ygauWBuIYI4bhnWeBOc7JZzNi0p9M3D/pOagfL4B+gAkxX0uQUM9td9stg== X-Received: by 2002:a05:600c:3f14:b0:477:e09:f0f with SMTP id 5b1f17b1804b1-477307d763dmr110723125e9.8.1762162545082; Mon, 03 Nov 2025 01:35:45 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:44 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:25 +0100 Subject: [PATCH v4 05/10] gpio: swnode: allow referencing GPIO chips by firmware nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-5-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=1899; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=M8Bc1P0DLQy5VPk7D0DtzmmkQ2KhHSrn6f+3txDi7M0=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdl9AwQOZ0lLe1K4BR3pivzNYUL5uxic/vV6 Dg6562lyRqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZQAKCRARpy6gFHHX cnybEACaL21lCfB8IUqkV/9OqjRJ9SXXYy0LhUdavpRoQcKhHDq+3qVQZirvO+unRsSPea/cjVz I2JIk7YczwYX5rA4Z+bEcqG2R4N20Kyc191O1gh+3wZOxPllzfkbx0vExrSTnH+sSC4bbMAXH5o Sj5daga/hlpMB3ougK1i6xk3B0z77X9Pm5zVFjhXmQ8UkEMy9rJ+yW+vL9N7JeZZ6tQRzU8vqpa yYnMnNlrHhVQjBWLgMZ8T9XbbKtOKX2td6zV4e8kuy0e4EiEHfpuLSqiTMUdKJN2a0NE0YZkVtn yTGqYfNEte+deszdOJ6Ksxk2HQ279WIByqhkziuoEwLuiub4ofClLoSCM1lv+adN4nB+VuP2mWQ 2EbT3liOLeqJFicQSUvskjxVdLdkAmZgiQcjjtMF8vBhP3Wkh9FqLx+SprGfKb4lF4aXfLeLaUL H4lapvKPWdtANyGYbxS18vmSUbzrRInMsOIri09t99KQmzstON9VLUpOspC+ojw/kSj/zglKvmL VErXH//Jhqgooc6PPwkTvMWocTwdZKRGx0hqOCdFFE8QsmEePKOnx8JkC9HaGa9lNg1bxg0lWJn OHKq9LNYzapsKAt+IggSXYs5YGc8N+/Whyh+1XcjFGIA4SDsa/XmfiG1K/GHX73Zx5cjwF5uiT4 FKf3zwfOcN9AiXw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski When doing a software node lookup, we require both the fwnode that references a GPIO chip as well as the node associated with that chip to be software nodes. However, we now allow referencing generic firmware nodes from software nodes in driver core so we should allow the same in GPIO core. Make the software node name check optional and dependent on whether the referenced firmware node is a software node. If it's not, just continue with the lookup. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-swnode.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index e3806db1c0e077d76fcc71a50ca40bbf6872ca40..16af83fcc5aa886dd009dedc26b= 1ac23e5cbc4ea 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -30,16 +30,15 @@ static struct gpio_device *swnode_get_gpio_device(struc= t fwnode_handle *fwnode) struct gpio_device *gdev; =20 gdev_node =3D to_software_node(fwnode); - if (!gdev_node || !gdev_node->name) - return ERR_PTR(-EINVAL); - - /* - * 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)) - return ERR_PTR(-ENOENT); + if (gdev_node && gdev_node->name) { + /* + * 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)) + return ERR_PTR(-ENOENT); + } =20 gdev =3D gpio_device_find_by_fwnode(fwnode); return gdev ?: ERR_PTR(-EPROBE_DEFER); --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (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 C5FD72EF64F for ; Mon, 3 Nov 2025 09:35:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162550; cv=none; b=q++WRzWEB4AYCWhe2euNjy5SrzqJ/ABnt/DmaKZTgaV8C7Y0XKmm2KexiufA1QL7dxX0kysMyedxuy658qgsB7OvhlvV/Q/sOscyYWqmyo8qCMt4TFvgGOm/w6xABfaA0PT1n/qST4Rssp9xR511iyTahirxav43+slTFudws78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162550; c=relaxed/simple; bh=cxrSuSd3SffFCsNE0jm4EfEjLQ6o2VSj3hMZ52YiwyY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T7xchJEXwAKHL5t7LHWzjm9OcHFQtmGt9IQJX/KvYZQTM1wisQGsF/i1EGiEjqjkZQvLFdLuc9/E01twI1E0zXV8u7rd0m8+sKKDtk7/f+ieH5GLR2ngAHzy08gqMYVXg255Of5aRp/3G3EcuZWllHEcPSiHDlvgDuyDS/0SUfc= 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=gHIbov7D; arc=none smtp.client-ip=209.85.128.51 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 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="gHIbov7D" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4710022571cso39768285e9.3 for ; Mon, 03 Nov 2025 01:35:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162547; x=1762767347; 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=Ph4oPh3xLmZTcDXzCKTBGJeXK4U93djPD2oimgH5xG0=; b=gHIbov7DzpfAJO6Nmba4LHvyaK9qF0nsIPpFjMJS0T+bdgzmHYoZ6W4iJzyZEXbXEm g2jNbZmfySRJ2XEPYHeKnBZs3jc4Tp+RfMUagyZ8OEheTBilDoDLIIfLcPndetG8l891 9T6RKP91O8kostSln5b8Hsw8DcGg491KBBmARiSCtM4VaQY3eFktNTye59od3W/gAGEc itJk85NzuLWrA37zx/X7IGHl/Lv0OFVSs5BR7uW/x//ieuSE9LONOSj7JTPrmlkwuW8P Xk1j5Fgbpl/+cvw2OhhLOAkDnrEdr4c/6ZEx5SeY3KOMd3gT92U9J1heDBdII0WWIBqX sGnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162547; x=1762767347; 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=Ph4oPh3xLmZTcDXzCKTBGJeXK4U93djPD2oimgH5xG0=; b=SU4uGyXsu+jSL0eS5lUz+vQ26zaQMXq6lUcwyLbwgXIm/WBjTUSg9sHIiyH6jtwPdX lvEY59OnPxvF6eammNrcAk9qd9ntk1QF18tZ90+6dQFUdibQn5jGOdlrLtoOznfzEe7G 7ZqobIdXVZZmrI4nzfipYlBaSHZYdg5WSjz5WIZkX9NgkJ4NKmUV6wpSmdBrjnexXa2b 5ALXUrmXs2RLeYACykvhFqiKqyPMjiw+g6DVufDGFdi8I58dj1RWN3CQdsPO1Tpua8LW dcWzGTKrfTDbcrla7bhVOjTdH9JylJaoGAGQ3iSsD3JTZWECLbmBY5RFvjZMQHkF9uWA HFpA== X-Forwarded-Encrypted: i=1; AJvYcCUCWzIorm+YZ5K/RdI9lGm5WUch+Ce3Jd2JxVkBWxmgapQ1TSkXg0RwCgF965/jAmFBije0Rv4lOtesgCk=@vger.kernel.org X-Gm-Message-State: AOJu0YyMEwPCrKhUwpWbj/1U+eoj0z/1ZMvGuA3XPDpJTH6de7T92oWQ 7NToAckR/2RaV6DuxvuwBEbF3pAa5cK8sdIdk7ILFS/kHzbns8oR+uNmY4w7dGoUAeg= X-Gm-Gg: ASbGncvU/dYSlmcgHoCkQj+/iGA9NNo0nwU5PNo3zOtAGXcQIC9Jc61zHnByq+Xi13i iC4yz2qLBQTpZOGgZqykKJeixFMiMOMlC1dggH94zElZfBtYGac34ghWRBlF7X4q6NdTfbIprqh z6NdVrfUsIHepRsBLmESeh61I8HapREWu8xie09RT1sv1g26HzfBXxpSDhXL51Z3MYajjchGB65 ZhJR3r45Cte9ia0shZBuUpNdW8TogdwaqYDXNcMx5QbvyUfeZmMDGsZ30X9ltjT5TTZ/Qypt52j J5i7iLUtJvmlwXOrh134dHtjMYreslhJLLNsybdFnqDDT08vZprLjvUINR9evykeWeGwsvcwa3H 0/2MonR94B3zfpPwrk8VoI/aEp5adaNC59JX7ptQMSx4kKd8jIeX01MYDX/HxSVF8PeP+xMrIxZ V21XuG X-Google-Smtp-Source: AGHT+IFWvdmE9jmhQNsKEv6lmznwGqw5UnLkSV15MT4Bl2LI+E4mEEbQhnuOQCPZsh65/2pUAKVNOA== X-Received: by 2002:a05:600c:811a:b0:475:dd89:abc with SMTP id 5b1f17b1804b1-477307c147bmr93023785e9.11.1762162547012; Mon, 03 Nov 2025 01:35:47 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:45 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:26 +0100 Subject: [PATCH v4 06/10] gpio: swnode: update the property definitions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-6-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=1044; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=qZrP4QmicRIBgZpjf6GIYTTtJ4Ab1ZJJcvonbYSz28g=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdlOJbVRFWRlEo0P4nO+EKjxhnkWfiWzi/gi qvS22CUKUuJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZQAKCRARpy6gFHHX clHFEADAX1IIKJHPYl9molA/DVVacZ6hlCW756bmj9ygQweMqXKTT+Ro3HmZstzi2WUcBqTt3sd 8+9YMIIz6po2F5UV/AIL5f3SeApVKc8M8wdAuBOPRIwK1IdZ58Znzqih5oWZ015oFpBAoJ81571 swG1RS+7stycB/WZqDNQ/plBrYXLX/JaICRwKHu2mljxJ1hPPgnj6d1TiH3YDft64e4dmT4tIz1 SGltEOoNaz261yXI5BjxUxooq9r3RudHHPBxtSjiLu8p2ipOu8Idc19fnjwdRXqqDrm7LjgDrXw KHHvPc9phV8t8tgxU9gS2Wx3sA+CjsgK48wYdUdJn0cwc3szUdcEqQKYdRwDv+RlGiD2bstfqOe QdqBSVds+eO3WFJsA8QDpFct4yBr4vICwttJuM/Y+ZQ5x/BiDOG+gq8GQLB6TKO0/e64fTB54j9 YfslTv98OqAs47S91aWgLaBYaPWeQppbLsQ7D7qQ4cQllrR3wVQ8WaJLpfCT5WoAIX8OtjTdD+c +IXcCtJSkhQX0CHlMxMHXj0qrHP2mzOCwJ5ybHVxiMFFLdNiKOr1Tm25Yer+f+o468eTofi1Lan IWKmRZw36aH2ahMFQR1LhngfJ7v0U30OC1plYsO0sbGc1J50/s+EfFYibxeeD+WaqpIlbnhGxS8 zMCymHtbB6LO5zA== 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. Acked-by: Linus Walleij 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..6b1c2ed9c57594bf3ead5edc824= 39f9fb7f514fd 100644 --- a/include/linux/gpio/property.h +++ b/include/linux/gpio/property.h @@ -7,7 +7,10 @@ struct software_node; =20 #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_) =20 extern const struct software_node swnode_gpio_undefined; =20 --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 69A4A2EFDA4 for ; Mon, 3 Nov 2025 09:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162553; cv=none; b=JRde6a/+Gf7XeJC2Z/dmqDUzrrNih2UL2TrYoFZPL6BmIAgBXj6+9bh1l559897eqobn7MyaDSeiiApYB4xtIx+QY51ZZoofMRxTicTj2o8HmcEE9s+OGOUdovzwU4uCLK6APEIrk9dlQXSlmR9us2ZCSUxOfacBQ4qdBf0idFY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162553; c=relaxed/simple; bh=X8edYpKFxJakc/RTqEB+Pipzfl1zQL02ONMlmJvW7is=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GQED2A/c4a5w7DavKHa3xbQNQEMnh6LA7kqumeKmnwZnz5Zyh4VMYpZu6m4IPmFhcS1T8ZfEcEBo59elpQXjxBB24vfLDskWGu+Nc8GRTs+rApL1KkUgp/jlnOKOmgBfNhsyJ2FdlOXJIa4c2+0XKGBU3XGDy7Gv6bHFKuvFAwE= 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=AmGj0Gfd; arc=none smtp.client-ip=209.85.128.43 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 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="AmGj0Gfd" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4710665e7deso18960425e9.1 for ; Mon, 03 Nov 2025 01:35:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162549; x=1762767349; 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=cWWTasux6nuDvfpZkvePzyRGdU+qe2S0riWlt2ij+bg=; b=AmGj0GfdP/mDrRKWTedw4Rgv8zuFKIaNzeDXqjZc/Vjxl9ApdUYC/iC/XYkoNgnjLs cWLdOFIk11hdgvjLwn/GroEnrupCzDhR8rY/Tsq/8y8FBdN21/WQ47V6kuGbRKWnBS/+ C0Y9TnipT4Ss9ZemYRowi1f0uwIap+ICcU44Ewu2/xv302E1lCMaZnvID7dUzvIy9CDo zXwd9uiHcw/Uc4Ck60t2/tz8FocENU+HYV90H5GoqbL+sQVNuS+IJj3ghSsyGnByqXll SQcEvnAv9DFA26cpNSAH8uNPr5gFlhF3MMxbczYG9aTIFYnW9LjQd7WngEVFOdjhIi7F So4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162549; x=1762767349; 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=cWWTasux6nuDvfpZkvePzyRGdU+qe2S0riWlt2ij+bg=; b=NLv13l+NV4cHBbwTNYEOZgcPUyody1q6vNQbj1HDZeTjrtzZ500mj8mFJ1UoTTtQKz Xlv298CiFi57RvNn9J5stGr1eeibStdEVoDfXPUW1hZyG2nqcp9nNEp35QYhqdlm5KOR LZek9NgJ265+KoEk8kUsiS6LyFvElytMxBRV6uOHfn7zfd/lJ6C7RpGjxFajDsX1W7YJ uuHFajUe49Edb4SS2mfnZm7zabeWg8Cwxxw2st7RGTlAugR7BA5bxGx32syhXP3SCBJW VAbCIj+4WzMGp5+Le0ij3HDLR1gaObn4R09PKSWwpsjnUtWg/uTZevSbVS+WNwVXqlvI VkMw== X-Forwarded-Encrypted: i=1; AJvYcCVmN8rY9TC4fh5n2QlQiDsj55FaUhTSRVcae6Yai4YYXfhKN/V5d0k5FZTe4aGYRAB1zpSEi9tBMmjrYoE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3BTVQWAl+guK607cYkDZ0SI7/hMjmh66rRmMkE2qi4H8CPuqU gl3/YL0Ahast2pnFuLbNbbot5MsbrJm5ics7RSakVkHjDNggE/E+eUqyFOZUesxDAA0= X-Gm-Gg: ASbGnctFfO65eAZhhUbalDZT2yrEk61NNu01PVMMBqrnA8hqqjYAD/IcxWMlxiJrhzW LYx5fIo+EeV5AXkoSLbwTLTXT6iMWBQRgZpELWZfBEbywmNHp9zkQnCyyMUMbsNopdC6KrX9SdE emwAFUStioUaQuxlipzv8OuDMAo0ox623z92cuH4pnFwMRlB5iN40LXK+CRq5t9TM+Q42NXJDzs lbze3glmYrdUe/T4q4ehAlY0aw4f8a2+ggzCWpN9dHJUBsYYlJ4YmZTROGnTkophJtG4vcVdwx2 71DWiHc1Y9rwsuN/9Eg3OAhjl+fNZjqjOBZWS7z8XDmhF68J6VaM6NqP0ZxxpxLa+xFGcUbbQJc +m+FDrPNGAckx0S1gWBV/c53NITQPL5Ck7eIIWdVdRPdPS3ZxfzPue7DVJyOqOd94Y25LTW5nC8 icXCSb X-Google-Smtp-Source: AGHT+IHTI3Dcsqc4uC3LQQ73BmLmMpPwE9u0YqBqg1oMnpavHHPbOsA+9fvHiegS+pBrTB9gZhDBKg== X-Received: by 2002:a05:600c:524f:b0:475:dc98:4489 with SMTP id 5b1f17b1804b1-477308be79dmr107241655e9.33.1762162548808; Mon, 03 Nov 2025 01:35:48 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:47 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:27 +0100 Subject: [PATCH v4 07/10] reset: order includes alphabetically in reset/core.c Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-7-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=1201; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=YAQBLalSG4YSjo0vg2GdIJVruVYhGTc+UD/iGlJqB84=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdlq6kd9Yl07Rn0ewcMbLfCxB7GjAIR7zLAt imA7T5evWSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZQAKCRARpy6gFHHX cm57EAC3PVKe2zUsYx1icgb79Xrv0aqVB2RM1/lt2Jx7FxN8V8efLZgwbdrIdJfE7RS6qIBMIqB o1Z5vzbNsmLvn+N4sn8IpnoRQxKjsTpGfQG/X3CM82URbN+O/QCn3xyyhgq3XxxrTY0i9DSnzmw V2Akd/1BNKlHTlAnxVugDd5MDIHv4PCi6Nqs06g7QrvN+ws2Fze6GGEyEbafvGMZgKPf4MwMvT8 A1mVQlpKRqkofi3Ux8LSedqigF6P55B07oHMs3rm19gN9LKNWT8zpKvquM+9UMqeGwLSTgYeJWn zfifBMxDjt/OjOYye7hW3tY0PRqdbodf4Yh9n3QrJcQ4VGEgRUCTD6B7eD+w07+odweUMDTHzeb 1l24dscgPw9pUoWd6x2y8KtlmkcclxqPv2eL1QTR0eqxNKMsyuqYPUcUO/BZVDV01a++FyeVjcj S2flkLwYXCArRgyw4CcTcqtv9i5H4QvN9GCD/kWXDDHhIbdaTAZ/ZiMfYNaraUqpaDuUMyJBmbW lO/ZQafaV+DCPlvWjG96NwStFRLI+QkWaZC4Sn5Kb58QCd8sLLK6QkcSRQJXi5JtcDsWdpG91ul eN/3F0DTLN543R8fcmxjO6FO25GurrDMS8xIjiz8NRVoy6OPy4Rrbo4PAZLdtpu+/dJLjixJg+j pfy8Pj7guhK5R/Q== 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. Reviewed-by: Philipp Zabel Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- 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 4fbaa67a6f79a4af62855c88f6b74f92c3d97159..a368b14144e7bc29ae23becab2e= b7a96a4adbe44 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 --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 BBCA62F1FD2 for ; Mon, 3 Nov 2025 09:35:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162554; cv=none; b=rcfzMNT59bUK73Qh2ygc2oEIsFd5COmkqrMpdgwRWxSrqk3DJjiKQvE/S00FisXXf7fxBFG3E0Kc1gq5CxMTCI56/twtFDCqx7ss00oxsSwFNRyvKCtKPVuuyc9XbvqCMCSZJWehIbqUdNfcICxjs/ugZICtaxSbKbWUjd+1urY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162554; c=relaxed/simple; bh=z0YSr7KrcAc/k0WngzdsyXNvl3twXbRlw/uwLjuKOK4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dtqHvgpvOyxw2fYTvglVQ21qhkwb9q5sco4bJbnLpFGXaQ1SxGgqB2VNNiMXKkLankVIb1UkvKps9Ueb3yC7w0UCzdAvMGr+hRNfMwdEVin4g5fZBBEOsCpnsCEVIHMCrUm5WCPUznkvRvV55K5+kh/uIc+h/JSHRuKLKYpeO0A= 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=b0z4p6g3; arc=none smtp.client-ip=209.85.221.41 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 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="b0z4p6g3" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-429c48e05aeso1295094f8f.1 for ; Mon, 03 Nov 2025 01:35:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162551; x=1762767351; 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=Fvp1VGmfGTlzha3gDCL6Cw0t8OXa3klcmoFT2A8KMRg=; b=b0z4p6g3JNUPxg8hAxGKB+l+vjI8QK3D6iKM/m+MhMW88WPRYed5O9bFI4AqptUq8Y aSDxlnV64lyF7jnaQMgFWG41TAMYY5/z4ocy64HIx7LgRUxvg77PIQWUSfJ4sYsaB8fv EyJNRtVN/B4c/fnuTS2Qf/TPj4COgjM5ik8KlSK34Fh6dawZqhpsJ1BIZE94fB6VhHSo WnYnNWB0O3scqvwK30WBEAJSmgEtdwRN9jTiMSYRfd0iB6+6or6XWw7TxYGIv/ObCjdt NROQVVESRNTOb1VXKF9BXoROhxUdL0ofdq1ukWl7afbXQ4L3R0x9HY08y4eRUUtf1Bri Zl6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162551; x=1762767351; 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=Fvp1VGmfGTlzha3gDCL6Cw0t8OXa3klcmoFT2A8KMRg=; b=sP4zT2bGOrU8NWhI/Pc52U/llqQ/ePEbvduCGOBhXaaCgkKhfDmjBuXj2aX4rZUjmg TMCnQ9FWCZ4d8en6WULoVAbPaw4HfSJD7tIvxyO5+Wm3Tx8rgv6Vtk1/2eE6EozRjxSZ lTGi4QMF6HcO8A5cHE81YVN6j13sWyvlNlud5JQKFyfVkgZlwpv1V3uELCNGf+AeGnan 9u4JePlu5cMgL8KpTMs5ZYbUGH4GTy1IZc9Ey5VA0u4Cc2NEJSVK8ShfXU9rUH1qyy1V adqtGBauWpaOuvAwiRMgZpTQ2kxCeuNNRUuU1AktfSxuoj/I49+h2FzjUFXEq/dF2Kaz 6TcA== X-Forwarded-Encrypted: i=1; AJvYcCV2L94gsbdmkYJ1wso7CRpFk0vh8vMf7Q8Fws8okovLApId1d6kDnyYlzO2loLOuOWEgD2sjh8QDtj3B+Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxU0W/FuZMOD2+Vkxfhox8tqzF8tMQhmrqh+JyTd21d6rM2ZDcP uzzWPJfkPJkSuSNbbxSVwyboMWyraVxQt2913NwPdcWLeBjQWS3sQ8gsr88OciFLxhA= X-Gm-Gg: ASbGncsQqphCkVJqQPlcZr12Dx8pyZqkdMGxekSntURTbYfl+sTeWwQcIEGM4qboEsx u84YBT1NHjiGE14n8NTpEkI+yD+dBVIfkM53BqUcDZwhARZJD8eYaz/cGx/rGGKwicUcrbiTY1Z Cd0znUMPQYJM7tQaxnt1NmNeVQfcfVbm+Sc8VHNymIx/qjC9AqkWnfuMfwl32rrv900TyZbiNrW K7jOBAJCDCgrhBNXNWHLx5WMDI9V2hdIkL9E+QmzKV6D5nJN7MyMgOSgS4v8nvDwqDA7GWr+0UI IsKzPI1K3BQNHSFTW1Cc0GdGkZ4eJWAILj5kGNwAf9n7d80nLbY8eJ7ucBRF8j2/AYUbgL1F7YW UWfzN3gW/2VmvuSeOyo9xajCVkeLvCMiZTB+68JoreliuqbOL7T/SkDH/1m2cAb7lMC/UUw== X-Google-Smtp-Source: AGHT+IFqQ3S3CYZwWZGiMnZAuPwjhp/XDiyDZlbpjM1Wxu0aIIWefjdKsx+v5M34KYPoW6PDxxUowg== X-Received: by 2002:a05:6000:615:b0:429:bc68:6ca0 with SMTP id ffacd0b85a97d-429bc686fd5mr10797897f8f.4.1762162551136; Mon, 03 Nov 2025 01:35:51 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:49 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:28 +0100 Subject: [PATCH v4 08/10] reset: make the provider of reset-gpios the parent of the reset device Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-8-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=3056; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=wbCx8dCgwX5b7rXFrK7TZvcGe4EfqUhDGU8MlxrqJm4=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdmjaKONBp+ZDwctFnf8uPx6KzunB5fUw5Zg wWT/KtbtiKJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZgAKCRARpy6gFHHX ch+FD/9tLKBeH+qBRy7BkvsAFMEbFnHPkMDgKjUcjv1AVhVI7VFeoJKKJWIFEtHTITKBIcTexV4 8pAOVSbdm6beFGoZw0hFIto27EVZW+mIryG0c/MsGGKQ2Huh0kGq2d9F4fxDS1vNlJyJuJDTNqU HnMFacVNjWz5LUVyexDb/vCHlD6ZmWttOjzt73nOoNhvxn4qYyygFCuXTU7sgGxJ66O6YghLClE +GHtdR1qSwtQuvfwuursUuffU2OZQYy4NIwJOpRXLxVnRWjhv2cSBgoJklLQdnqwd8vtS6r+8SZ b2PsQbH1cBn+UC4dIZkdQgmEZyWfpIw5YdCU6a5dvKboXVFzxe32l4LUufGk1TMmirE9FC3oxVY YK0LjpoEcuuzxJIU25S/1/3fS6AMJANPW9V4J3xLlY5hpw2qZnFkg4AQqbWAlrSLfdx3J3ugWj5 JY7Ef7FiXbf9arwakLmtLes57DCymO1SgXp0bOD+fs6xAdlM0H5IMQZRg1OuhxcO6SAATOQQ/uH 0M732pDaQ9XFdJdMz8UHDpofGgGJlKdZxhjgzQznfp0CSmyIMA4ZeM1efd/Yr70OB/QFIwkbKeF YHj5AZt2DgAFut0E+m1ln17H094s/4Jk25HHtoFwP0QKGmiKdidw4M0PO2mRCXFk52Ja3qJqBpc AMsEHuu5xybJ7sQ== 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 benefit of bailing out earlier, before allocating resources for the virtual device, if the chip is not up yet. Reviewed-by: Philipp Zabel Acked-by: Linus Walleij 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 a368b14144e7bc29ae23becab2eb7a96a4adbe44..af42f4d12bbbfcba225219eac6d= 6c7edbe2405cc 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -822,11 +822,11 @@ static void __reset_control_put_internal(struct reset= _control *rstc) kref_put(&rstc->refcnt, __reset_control_release); } =20 -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 =3D of_fwnode_handle(np); unsigned int lookup_flags; const char *label_tmp; =20 @@ -841,10 +841,6 @@ static int __reset_add_reset_gpio_lookup(int id, struc= t device_node *np, return -EINVAL; } =20 - struct gpio_device *gdev __free(gpio_device_put) =3D gpio_device_find_by_= fwnode(fwnode); - if (!gdev) - return -EPROBE_DEFER; - label_tmp =3D gpio_device_get_label(gdev); if (!label_tmp) return -EINVAL; @@ -899,6 +895,11 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) */ lockdep_assert_not_held(&reset_list_mutex); =20 + struct gpio_device *gdev __free(gpio_device_put) =3D + gpio_device_find_by_fwnode(of_fwnode_handle(args->np)); + if (!gdev) + return -EPROBE_DEFER; + guard(mutex)(&reset_gpio_lookup_mutex); =20 list_for_each_entry(rgpio_dev, &reset_gpio_lookup_list, list) { @@ -919,7 +920,7 @@ static int __reset_add_reset_gpio_device(const struct o= f_phandle_args *args) goto err_ida_free; } =20 - ret =3D __reset_add_reset_gpio_lookup(id, args->np, args->args[0], + ret =3D __reset_add_reset_gpio_lookup(gdev, id, args->np, args->args[0], args->args[1]); if (ret < 0) goto err_kfree; @@ -931,7 +932,8 @@ static int __reset_add_reset_gpio_device(const struct o= f_phandle_args *args) * Hold reference as long as rgpio_dev memory is valid. */ of_node_get(rgpio_dev->of_args.np); - pdev =3D platform_device_register_data(NULL, "reset-gpio", id, + pdev =3D platform_device_register_data(gpio_device_to_device(gdev), + "reset-gpio", id, &rgpio_dev->of_args, sizeof(rgpio_dev->of_args)); ret =3D PTR_ERR_OR_ZERO(pdev); --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 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 A41912EF64F for ; Mon, 3 Nov 2025 09:35:54 +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=1762162557; cv=none; b=a6yQYrfrgW2ws1m82RPYfdTCMhV+nYo8x8O8YkNIOjoKLhNeGSDI8brjZOJD1dmcemsVm1wEcSPaNKmEPLxJdaLWDk5Homjg+ebeSQdw5saRJKjXjNdKDS6ERmeE/RFDpmoeNYJ/l6gkhkjS0eRVRkBH2Fnx0WmWrQ2tUggWCGE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162557; c=relaxed/simple; bh=RblnhEgjT1ATQCpBOT39uE2nJPA2rhEO7IRHMN8Quh0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qaH8n9WVZw+oGIpoE/PksmPEAIUH5L0di+BniEjPllzkxvOiVYa9fuwPgWvENSZasqA/ls/Aqj511gULF8weqiAhSCQNSIT6dueWiyDaZbEr9LnhhpWeo76V6Kytb9D3e+NpMwIkbx6aJBYXGtssGEFJS6BYFS4/TXBdCprxjYY= 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=VVzmBMrX; 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 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="VVzmBMrX" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-475dc0ed8aeso28315805e9.2 for ; Mon, 03 Nov 2025 01:35:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162553; x=1762767353; 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=zRbag5R4phUt0lvwmog2563w0RmrCN5eKMWnzPULmkg=; b=VVzmBMrXKFNBxkGpEXeesiRaURlqJTyFd3tsqzmu2PrGdwislc3oqnsSmhb8sMduuh iG7VtJvVXJc4l3CKYqu62ZSJE8rfNVdL2o1yKfrI5Swn6WLkfR6kO5euDuA4qjTkVJ8H gqPCOwe1Oz61cudA74lTvuzak4dJV4fPj6d1Zc5zvcXivjAYl2csZqLCECffJ2F+mN08 M2BXWksu4XVucZ5NnuwWEHjbn/lBqD9DrpMGFNVvmIrr/iVXhsCSMifmTbzmHZovBwvc bKrIy9GdIOd3yI+069hHUGdhO3mn+63xHidj/xvXdwTRGXhSUUUTp62xJ+jTfvF/JEQ0 j7EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162553; x=1762767353; 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=zRbag5R4phUt0lvwmog2563w0RmrCN5eKMWnzPULmkg=; b=dPT1QycSkSwvscN75BX0ov661J2/4Mcs8NPmZqdbnlA1VuL/1Ne1aHh9dR4hPe7iMZ uRcEcXLF2G5pSMdpFVzFpEsxNwVRKb/VbTkMBSnYCjoJeY4GuKrTmYsh8pz1jfOCnSdz hLjhKD1T+v5lbNsU/xuTFtmc4tlAlR1ZmzKfv37EdWRZfFSX9khi836B6dyR5VI0h+hm Hjm8TDPLmIMbZ70Hf1/aKjqURSFMuksPNWhsopMWCmK9Jmlc6yroKHOo4M7Jan+7+GMe PgQNZt7UAAvd8zguDMOH2HG+KfPChxFChOgeDdpEyJjK+8SnzNvPxtgfvrEFVqlgNjsl sfSA== X-Forwarded-Encrypted: i=1; AJvYcCX5M7S5lbJc5HzCNEuEVJhjIVc7WqZlCrm88/4MNUx0ZNxubo23NvKgfN+VW9CFrjLlyiWVJ5bLKmbiaz8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3+vbwOOHjFf79FPzii3/WUctR6CzjluJ91JFHUKo6cwZDroQi eL/8dV290fgPFznLhChmQGxgJT6askbnyk9eiM0dO+XHVfwVwRVfDn3g0sAgfnX1Sgc= X-Gm-Gg: ASbGncu+eSUR7+WDmt0h3teLISlwLLoxBTs0L7QF3Rs7L3rhUFAWKR8ycEbkev8/9Rk gtI+6d1+krpLe1HnbqrrQ5GxfGi0uUQz0xdLw4sK+0sYz1TOZACTJ+SkC/ZSbJKFOItXud8G9zB CUgTvwVYI7u8Rr+cTq7qr3XaCZWua+vhtr8LnVrxj61D2CI1tEpvqPLu/C3Dc3yj1BrsGCDvMT+ IyPWe5e8myVUl9udhi8RdOuLpqJa31On8oxDVReAqWV7yqKdhfjyK8B9nc1Vae3C7u9yhaPG9VL xHP/5pm+RRc0KA0uWdIx1EOlZVYsUOtP6T7yVrTKIrFNEqW1K5D4kZ162gYfuJW0RtWn5PB72v7 qARWyfy4/tqboY8uifVwlkfnRzDWF+1HJL/0cjECFTZyZZexbF4sAGoErNU6VhR+4S6wU2A== X-Google-Smtp-Source: AGHT+IGcBGJiBYkfwUV9lZhAdhNnSzM/sLW3NyAe2T/Y3BWamsfkik9AHrtyKCRLE2J8iwil2VteUQ== X-Received: by 2002:a05:600c:3e83:b0:477:fad:acd9 with SMTP id 5b1f17b1804b1-477308a4e55mr132233595e9.34.1762162552839; Mon, 03 Nov 2025 01:35:52 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:51 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:29 +0100 Subject: [PATCH v4 09/10] reset: gpio: convert the driver to using the auxiliary bus Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-9-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=5084; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=f8XqWT6MV/Vm24ULyDMORR+Vw3utb1iWh132/5v3Ubw=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdmPmpYf5eSE2EDR5bRdNl8PV7hR7lqj5JG/ m619oHMrWCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZgAKCRARpy6gFHHX cuwbEACDF5Jr0z6W5lq1RUEfOpSd0yY7UaQ3FuLmI2Aj43N+1KOIZp8OhlCAbuPorGt6kVlyeuI 0K8Jg6QftQ5v0MieQz8i5knxmkSKjH+grjHf85mzTzgymQooIrc8thq3FCrbHQp/4UN2hh42nOO AWAbHgQorq3/7VZeMBO5Q26ATV0I9ilWbMX1f6N7J+FX0UUCOzxRiyMP1Rbf+4Z1Vhe2dT/CYfh ZTU5lYz3qobQAOgPoIRC/c5Dft/hxk2518Dz/JpK3YJZnsgHc6/WjU2cGyhOsGxVh3ADQP9SUBQ fRZN/fzFOImUkS+G0RcLob5lUx2D4mDcXULsIqFZe6PsGvtzqWwYqq1sES1rYkPV1xzechTICHi KWJRE2fAEr+7d4r7K2RHPJLIfQmKbJ2rJQrpU2xmc2b4kfa9Y3leH4LMiAhY4aD9hoBLQCdM8S6 Q/ZJ10xxY8mBumJrjDiSq3RW5xMRb4aX5GS9HRGsDkdTiEr4nhz6vO/asjcgAzF5kCVroIMpA2B 6kVHgDy1agMSIM8LtvDO8717WIIooqlYTX4dbLtZSBChvgQCExfDsAmzchAOGXW9Y9xoEfWBoOP DCMs4RWgExNsWZGUcSDVtUfEIYJlPumnq3kYUjrE7huzbxxfPTn6Ase5T2lQ6PKc9LX3fzjThmf h4ELWWlC1oYKWxw== 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. Reviewed-by: Philipp Zabel Acked-by: Linus Walleij Signed-off-by: Bartosz Golaszewski --- 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 67ca87c9a86ecdbd41cbd3397d2a0c9921227eef..26c8efce0394b238691e87b0408= 7b3d705bfadb0 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -99,6 +99,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 af42f4d12bbbfcba225219eac6d6c7edbe2405cc..fcf1c24086e565015b0956fdd40= 334274a1edb00 100644 --- a/drivers/reset/core.c +++ b/drivers/reset/core.c @@ -7,6 +7,7 @@ =20 #include #include +#include #include #include #include @@ -18,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -855,7 +855,7 @@ static int __reset_add_reset_gpio_lookup(struct gpio_de= vice *gdev, int id, if (!lookup) return -ENOMEM; =20 - lookup->dev_id =3D kasprintf(GFP_KERNEL, "reset-gpio.%d", id); + lookup->dev_id =3D kasprintf(GFP_KERNEL, "reset.gpio.%d", id); if (!lookup->dev_id) return -ENOMEM; =20 @@ -876,7 +876,7 @@ static int __reset_add_reset_gpio_lookup(struct gpio_de= vice *gdev, int id, static int __reset_add_reset_gpio_device(const struct of_phandle_args *arg= s) { struct reset_gpio_lookup *rgpio_dev; - struct platform_device *pdev; + struct auxiliary_device *adev; int id, ret; =20 /* @@ -932,11 +932,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 =3D platform_device_register_data(gpio_device_to_device(gdev), - "reset-gpio", id, - &rgpio_dev->of_args, - sizeof(rgpio_dev->of_args)); - ret =3D PTR_ERR_OR_ZERO(pdev); + adev =3D auxiliary_device_create(gpio_device_to_device(gdev), "reset", + "gpio", &rgpio_dev->of_args, id); + ret =3D PTR_ERR_OR_ZERO(adev); if (ret) goto err_put; =20 diff --git a/drivers/reset/reset-gpio.c b/drivers/reset/reset-gpio.c index 2290b25b6703536f2245f15cab870bd7092d3453..e5512b3b596b5290af20e5fdd99= a38f81e670d2b 100644 --- a/drivers/reset/reset-gpio.c +++ b/drivers/reset/reset-gpio.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0 =20 +#include #include #include #include #include -#include #include =20 struct reset_gpio_priv { @@ -61,9 +61,10 @@ static void reset_gpio_of_node_put(void *data) of_node_put(data); } =20 -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 =3D &pdev->dev; + struct device *dev =3D &adev->dev; struct of_phandle_args *platdata =3D 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; =20 - platform_set_drvdata(pdev, &priv->rc); + auxiliary_set_drvdata(adev, &priv->rc); =20 priv->reset =3D 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 *pd= ev) return devm_reset_controller_register(dev, &priv->rc); } =20 -static const struct platform_device_id reset_gpio_ids[] =3D { - { .name =3D "reset-gpio", }, +static const struct auxiliary_device_id reset_gpio_ids[] =3D { + { .name =3D "reset.gpio" }, {} }; -MODULE_DEVICE_TABLE(platform, reset_gpio_ids); +MODULE_DEVICE_TABLE(auxiliary, reset_gpio_ids); =20 -static struct platform_driver reset_gpio_driver =3D { +static struct auxiliary_driver reset_gpio_driver =3D { .probe =3D reset_gpio_probe, .id_table =3D reset_gpio_ids, .driver =3D { .name =3D "reset-gpio", }, }; -module_platform_driver(reset_gpio_driver); +module_auxiliary_driver(reset_gpio_driver); =20 MODULE_AUTHOR("Krzysztof Kozlowski "); MODULE_DESCRIPTION("Generic GPIO reset driver"); --=20 2.51.0 From nobody Mon Feb 9 06:07:58 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (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 331E82F3607 for ; Mon, 3 Nov 2025 09:35:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162558; cv=none; b=Ic5dIxs3FCaQuvPnJySYd8oYCIq4T2+/51ZPiAlDAooiI6vyhyQ71SpPK1tNCUpB35jXuoZLQZ0Xhw31ehPkWs952EM+AXVmQxCLYFtSQn0uKNMdHHOSwPsWnDqpnh08/LFdxHfLJIiFc1/tTnZbfUV7xdPiwpsWoCB+XmNqvpE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762162558; c=relaxed/simple; bh=LVirDKugKBwbbhccPkhESHv27V21xLYG8l1u0h8U634=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BNbzYqQzOLJt4AuLvAIRwKdEmm6IvQ3OHiGq1JzIiJ7KG+G2t3LtF/w0PbLWwldhXTZvX+2Ye2on5sNMwgkIb4g+lhfKsw7arA0wPaedWDU0TZ7RKACdiCRSCD2bZYZiNz/Ly8kXCZmkADn7+CcAkVe2opd1xKCpnEe/7HvLFSE= 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=WbyEUyYH; arc=none smtp.client-ip=209.85.128.51 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 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="WbyEUyYH" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-475dc6029b6so37197395e9.0 for ; Mon, 03 Nov 2025 01:35:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762162554; x=1762767354; 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=Ccx+aLo9kBZlyDoxwdiUlxqcXIUYEmsoX9N+IulSngU=; b=WbyEUyYHMKr84mMD70rTZjLf3j6Lh6q35Gh/9YxOdly6LhgPDOAuJ+X0K8t1VkgvNX taduIJ3t8ujN/ZPD90NWCMqKI2WPnVUFF8am9GyJQpozlGFkwAUrxGzl3ubdmvRDWKRF U4SLxZeyws8LUZ48aAghIVvjAAVG89GNjT+K49RP/d538SYoOhlcChG0oEio7sxuHono 8DY1rfF6PWWj5yMZhUpviXlOJSIctORwrf0TgPRxAnZqsEc2Am64Kfw7ddhKqNfsnpAd PZnXv/BHXp2SfGlFdN9pyShL/1FExajUFve/2GfQV5+sr+3SNnepQ8bdnUuT5AAWbQYg uGuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762162554; x=1762767354; 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=Ccx+aLo9kBZlyDoxwdiUlxqcXIUYEmsoX9N+IulSngU=; b=uUSsx+jffNL4p73ht8WsW3XNHApC7r4d6TSG2ECCvxdGJg80Htwv9EfF107CPziT1V 4a8LP0KEAaxvadqTlX5eSkwJQkDV1S+C4uCD2nyyl867G/BTCPWUovpbHhZbw4rfPkE1 h/vYFU1uaU4vHwZT2CA1U4AZleXIWAAN1QErQlyRfiCllyqlkdJXvpo9NnlWa0MgXoxx QWdqh/Gsr/fXYYx1Jkp+nWEIoaHmYJXB13Qi4KvMo4s5OZfY0eupE9YQ2txyXjU5dcfA wU3BLV1vwUGF9kaWCEg5o7rPQHUm/S7Cz3vmd5c71Vcm/ezylahzTlbw9SoCZh85p1/S 1l5w== X-Forwarded-Encrypted: i=1; AJvYcCXIaccOhZA1pmJ/U/sTk1lCseRtvXwUFIclyIuQu7DAM1hj0gLY4qYr0tiocRiWGlYiaQ94xffFMJZZ0So=@vger.kernel.org X-Gm-Message-State: AOJu0YwMyoWJMwWYBB3uctsGHc+ctHJxNmE4hdqw1YHSCB2pkQriNEn7 H9DYcxZQ9weQ8Q7XzNrx73oU5vxrkKDn5ywVaVxhA46Vq71CrEzCqZdWV3mg/GP09WI= X-Gm-Gg: ASbGnctJi4kIGLz7Qqm1nVkQfvMT5HdWNUGp8UWBLNi/odv2V7OQ8iz++ms2GtmNEQA uRYiqdIKTa4O4uLKOYLleGMtOIxiqJ4OF7ncRUCFww1Kr4YkTyhXsxZoGxFtsH8n/3nK9xR8KDO 2SIMlHQZlyef6CetH4n7qFzToCxUFd2Fq1zJA0zF7drCd9A8vVW8uy4vifWLLTCAf4UA22pi9L4 Brn47uXPMUf9YdhHB6xuWP2PZuuxTlnJUpBZ4Kz9Vm1aNtnQZP1p6Mn0HNiHQ6vkUUzUluiVNmI IFY5Tez8CJQnupP0EKHx6Jhmmh/JJ1AKTU1d00ZRant67JV7VFTNzR2cjYttq+LqtLqURE8RG1X OHcU+BgYgyMdYV1VK6tNiKIffAmISgiA9Q8YBR7LkGLQxAhqStE6LH3PVc6pkRBJSL+K9bVMIe2 2OuSpW X-Google-Smtp-Source: AGHT+IG+c9TBxrNO8Rhcga0cjbgIHbzYpexTcWraDC03lZYlbHD8b28uw8YTYq3tgyvQ6c0CGDmtaQ== X-Received: by 2002:a05:600c:3e07:b0:471:a96:d1b6 with SMTP id 5b1f17b1804b1-4773b1f9db7mr85016295e9.7.1762162554470; Mon, 03 Nov 2025 01:35:54 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:e6eb:2a19:143f:b127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4773c4ac5d6sm147285675e9.8.2025.11.03.01.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 01:35:53 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 03 Nov 2025 10:35:30 +0100 Subject: [PATCH v4 10/10] reset: gpio: use software nodes to setup the GPIO lookup Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251103-reset-gpios-swnodes-v4-10-6461800b6775@linaro.org> References: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@linaro.org> In-Reply-To: <20251103-reset-gpios-swnodes-v4-0-6461800b6775@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=7164; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=zGQChOLYdShQxCyhFrgghwt6h1bOoSffKyYTaLJagTw=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpCHdmkfkiw+TPahVB/J5Ozb3L+OfwnbkEAaAM8 jTvH0EnPOmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQh3ZgAKCRARpy6gFHHX ct08EACxza1Nitcc8hYrFjP4g8/IEkDBsLvHarp0JA2folddmog9HvZ+5ikQyAfCGA0QNJPGcwh wO3i/Qoe7yClroNovCJpbq4u5qhaXhhy7L9uvYekvU7ythdhwPP7mquZhP2oxBLXKgi6WdFmDTy O0Ag+0NMjhGHRCGnGASBJJ+LIhS2Ub9KwLxWQ1NznREdIMvSCRPNRkc3BUTLS4WvCipGf6OozKZ h9lK5HPErNsanQ55jm9twkdV7VPIU5mUBUFiSmLcbZTsYDTGQPZxDeq9ryizMtY1mlHnBBgWqsy DudImTzWMoEjPg/Cr+ovz07GFjG5hqIF0HSoHU0pXW+BJ1WTfZV9uAHWmlWsdQM4Xw6v3+cfrMu n7OisPGEys+O380l+82SLvRU3rbBXm2yeSvlmOrpA6vDXrL44wSLXwWAn62zR6qgquNmkA9Il+B yaEpBjODGUFTWd2Sb8fYz60lzzKT0IpWfyw0VfCW7WyNJpHzjdLuYcQdOrCKQBevz87KfRCPBYP fBZZbKva6K1RO6MN8xgeA+AkQYpfIc4n7yPdjaw+XQXVisYS1DE4TIZMvIfB+qwmsZJe2dAgH4Z aah7PYXttCW5fv7QERqORVou/+Y8g9Vm+H1kczeVtjhFV509pxETDA+Sua3tYkV+o/tJ7b7+RNg uRGLDCgqYkxB/Sw== 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. Reviewed-by: Philipp Zabel Acked-by: Linus Walleij 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 fcf1c24086e565015b0956fdd40334274a1edb00..770d82ed7978f1006882908d925= 26fc6d8be3299 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 dev= ices * @of_args: phandle to the reset controller with all the args like GPIO n= umber + * @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; }; =20 @@ -822,52 +825,45 @@ static void __reset_control_put_internal(struct reset= _control *rstc) kref_put(&rstc->refcnt, __reset_control_release); } =20 -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_gpio_aux_device_release(struct device *dev) { - unsigned int lookup_flags; - const char *label_tmp; + struct auxiliary_device *adev =3D to_auxiliary_dev(dev); =20 - /* - * 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 =3D kzalloc(sizeof(*adev), GFP_KERNEL); + if (!adev) + return -ENOMEM; + + adev->id =3D id; + adev->name =3D "gpio"; + adev->dev.parent =3D parent; + adev->dev.platform_data =3D pdata; + adev->dev.release =3D reset_gpio_aux_device_release; + device_set_node(&adev->dev, swnode); + + ret =3D auxiliary_device_init(adev); + if (ret) { + kfree(adev); + return ret; } =20 - label_tmp =3D gpio_device_get_label(gdev); - if (!label_tmp) - return -EINVAL; + ret =3D __auxiliary_device_add(adev, "reset"); + if (ret) { + auxiliary_device_uninit(adev); + kfree(adev); + return ret; + } =20 - char *label __free(kfree) =3D kstrdup(label_tmp, GFP_KERNEL); - if (!label) - return -ENOMEM; - - /* Size: one lookup entry plus sentinel */ - struct gpiod_lookup_table *lookup __free(kfree) =3D kzalloc(struct_size(l= ookup, table, 2), - GFP_KERNEL); - if (!lookup) - return -ENOMEM; - - lookup->dev_id =3D kasprintf(GFP_KERNEL, "reset.gpio.%d", id); - if (!lookup->dev_id) - return -ENOMEM; - - lookup_flags =3D GPIO_PERSISTENT; - lookup_flags |=3D of_flags & GPIO_ACTIVE_LOW; - lookup->table[0] =3D 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; } =20 /* @@ -875,9 +871,11 @@ static int __reset_add_reset_gpio_lookup(struct gpio_d= evice *gdev, int id, */ static int __reset_add_reset_gpio_device(const struct of_phandle_args *arg= s) { + struct property_entry properties[] =3D { {}, {} }; struct reset_gpio_lookup *rgpio_dev; - struct auxiliary_device *adev; - int id, ret; + unsigned int offset, of_flags; + struct device *parent; + int id, ret, lflags; =20 /* * Currently only #gpio-cells=3D2 is supported with the meaning of: @@ -895,6 +893,23 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) */ lockdep_assert_not_held(&reset_list_mutex); =20 + offset =3D args->args[0]; + of_flags =3D 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) =3D gpio_device_find_by_fwnode(of_fwnode_handle(args->np)); if (!gdev) @@ -909,6 +924,13 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) } } =20 + lflags =3D GPIO_PERSISTENT | (of_flags & GPIO_ACTIVE_LOW); + parent =3D gpio_device_to_device(gdev); + + properties[0] =3D PROPERTY_ENTRY_GPIO_FWNODE("reset-gpios", + parent->fwnode, + offset, lflags); + id =3D ida_alloc(&reset_gpio_ida, GFP_KERNEL); if (id < 0) return id; @@ -920,11 +942,6 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) goto err_ida_free; } =20 - ret =3D __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 =3D *args; /* * We keep the device_node reference, but of_args.np is put at the end @@ -932,19 +949,26 @@ 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 =3D auxiliary_device_create(gpio_device_to_device(gdev), "reset", - "gpio", &rgpio_dev->of_args, id); - ret =3D PTR_ERR_OR_ZERO(adev); + + rgpio_dev->swnode =3D fwnode_create_software_node(properties, NULL); + if (IS_ERR(rgpio_dev->swnode)) { + ret =3D PTR_ERR(rgpio_dev->swnode); + goto err_put_of_node; + } + + ret =3D reset_add_gpio_aux_device(parent, rgpio_dev->swnode, id, + &rgpio_dev->of_args); if (ret) - goto err_put; + goto err_del_swnode; =20 list_add(&rgpio_dev->list, &reset_gpio_lookup_list); =20 return 0; =20 -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); --=20 2.51.0