From nobody Mon Feb 9 01:01:01 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 F134B37A3BA for ; Wed, 29 Oct 2025 12:28:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740933; cv=none; b=VaQvIDk1PcxWRpaNRERFSy9nDMNP0aKjuhZZ98Pl17gdC6ksQr3Q/2GPjOMydMSDZWVxgXCSpWHSzXQktK+2DWVEN7ypgqkboHfK7GQ4L14mR8Hf4hhNOWwPcdeV4WNa/v2xqBE9heBheq+Pq4gU5kCyv9rAMKQVvGqaQW8I+iI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740933; c=relaxed/simple; bh=skajDdkx5Zlz29MD/hcb1hp9VY6nNzXDfPCVk14jKnQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Dd6VMVwZLOwyEP26gtBsoPi2deLEjnYyyLdKnoS80LAJYVerqaV6U8mL5JSrsKyaDxdOqDRs9UW4RPfbVbBIG66Tq7qm75cCYLXG068Xvjd+mE6VOcD7fyIZiEXsmFPoihE+JwVb4+PGR5luyn9gMdHHq/yr4aQQAGjkBNrhM+g= 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=bhGyUaCa; arc=none smtp.client-ip=209.85.128.50 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="bhGyUaCa" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-475dd559b0bso60714915e9.1 for ; Wed, 29 Oct 2025 05:28:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740930; x=1762345730; 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=ADoOM/VSdH1svjCmremSeFtxhsEEw1L9u9ya69bdw08=; b=bhGyUaCaORuWVfs5DVPcbvoXApWKo8dIPj5MxCpDhIektHQyrYReZujhjLopLp3Afg wRQT/VILxWqpPKe/AkqL78SwfBKssLaTJCLEbrA10u5y9oY07EpgI/0zta3DnOb2g1Pf D4f+ogi4p6aqm/qynSTh6lK5OcTsgeDQkYPyhmN1bsP8CTKnhvUQdLXwWLgzh4gjnfza ejGOIll3YQIvi8oGqlSVUNKrvbk0XFu2zkwbHHzZNu47iu059X6Mxu5rBMNHp5aF7u2/ Q6DpGfHiPspeKj67rA4iDSSabsQlmhdCBPYczTfgne51aaEIV01hc8gNhgyDtctB6CK9 9PvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740930; x=1762345730; 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=ADoOM/VSdH1svjCmremSeFtxhsEEw1L9u9ya69bdw08=; b=MDS7ICamV1xIDi89jWMqYYRkEu12k4HGlsdoTcpfzJ+LbpERSlqc5fbtgoQ9xWx7I5 ML8lnPCvb9CEOk4EFWimEuS+zz51CIpvax9GYSso5Xo3lHVxkYjyvCpGeZ/8i4aNyylx Q6wq2Noake5zFNsnnM7T/6DSxwzNEqUz9LUlj9qusZp8uawt4WvwLSvOogL+RVKp8ni3 mEV9bqoAbLhOqome3lwwF1KeX8C2mAJRZ6pkPYB5UsP23R/D7yyu++MurP7zrZIbYLEY DEJrlffS11AB+Poxnl1OPRaF4YIU8lkl5XZUL6iaHhwzaQdVkAXEjWmxHDy7tAazAHkj Lgog== X-Forwarded-Encrypted: i=1; AJvYcCVNMdafz5JN0UmQSq9iylv3tJsL8z2NMJV0wuueyFXY/QlAaM9Y9NAO2rC9BBNmUnzWGS4uX/CRXWsrVww=@vger.kernel.org X-Gm-Message-State: AOJu0Yxdl1gA20I9vpYP1ODopu/3ZbO3aKwvkYckq82S901253A83GkH eJYeKrvyxyIaD4QrDA9U7tCVhoXrW++IHOqHFnUs3OlVM97JGmUYVm8vxQByDjZvw9k= X-Gm-Gg: ASbGncsMzjjjKiqjxTsCcxtKuw3ats6iq3W3fhQlQEfj0Q1P0/Ce7/C6VLdlDBJIv8P NagHSGxjxbl5Cy+hivbMUC01VO3sN+pKfn9P8rn/dYOErLSZoaeCSvwhvJTMcaWEC4M1DCCbbDR ii23Qlz9r88pUQDSMVrzC8WuFgzfGbUkto7cJuAM4u+HiDOBtgNWGfWbHKUJsfWLiOhzx4a8FXl eCSNCzi1xHOvQZRh2nbXOoMeK4JC1K8zIOgngZ+VSMqk42e56S+572+R2pshwbJv+yJzV4plI5T L+kw6nVnGzVRKpp4rWUrl0c3PEPqymE+n87E0FpKufCZsGegrH1qZotHQeMbH1/yx/gvdqNieER 3HK50CmM3GNtgJRFMHJ9OGvsanE/9eOSOSAxKuc4dn9VB3TsfNSrt1XPkG5nkhVy8M8IhkPz7dF 6XNh7I X-Google-Smtp-Source: AGHT+IEnJ+WhxDkZIJ9MuK8VVXfeLR7pgxX7wrR3Cm/oHex4VAz3yq0JAGJ++1/P5p09YcF3eLjcTA== X-Received: by 2002:a05:600c:19c7:b0:471:1c48:7c5d with SMTP id 5b1f17b1804b1-4771e166d82mr26066235e9.5.1761740930278; Wed, 29 Oct 2025 05:28:50 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:49 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:35 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-1-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=1039; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Y2y5LmjezurCeJ0tOGGS7EN2B+Sg4Y820lPpRdnBzxA=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh987Ua61Y0IHc7j94O0sWWeNpeijiq+Xbgr wfDwuVD52mJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfQAKCRARpy6gFHHX ckbxD/oCf8GthQZQ7GAyEqL3Cp8rHV9kzEeP4bRMf8hbbWQ6crNOn6AD90eeOPQWrjJV7Cw/5TN 6W/V9WR8drBRKWdVPi/MR225bdzh/5XiB+cbd0MD9EYti+ZHnVhNl7oZCo6znnSbUWrH/F/NrUg N9/vhAGqBKNyRuMHx6j6glju3nIPjQlkUzhsBKGVwg1ck/YjLvJDTM9Nfc3U5qgw0nCDrUSKb1Z TEGVRUn/Iil95LGOOXxiyH8gphD8shbuWaJ6NIzw3AsV7+uv+cRcU/g/wjHz7hoG4QrjvAAEqU+ BVO3hupD1T839IPqvH1iI5kop44Un/GSXbWjBPsNKjAEeWD2rODIUwPi9GXB/swy1vD9BZeHKWw DDrWgyJPqB+AbqY2USCKuWnK6oY1zzC8+Jp5GzzdTvqtbF5lbS/hyyK5RMeg2+nmte40ZALoWQy CcEUp++VF/hcAYBcAB8eHy/BT4+CxFTDvHHHRhXGlza20bvOWtoYMhIKkqUQdRKFc82C+gWLqTv U0BlsplZ4fMLCorbOw1ga9RMutjTqa3HgMXMyDlPtqh1XUuNuTBmun/zJ0/SY3nc52JHjUeyk+8 I4vTIPgV5FVTtP/CVYlNdlo0Qak5FRjLQSj4nPcmp7JW2sHwVddmGCbyTKd2uQPpXEoy01izuxW ipgFJ6rqkUTNsrw== 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 --- 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..2994efaf1d5d74c82df70e7df8b= ddf61ba0bfd41 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -540,9 +540,8 @@ 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.48.1 From nobody Mon Feb 9 01:01:01 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 9BB44194A65 for ; Wed, 29 Oct 2025 12:28:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740935; cv=none; b=r2Fd0+9QijmAkHGQy+rkJN56NJimUI+WBxlzrE95Zqy8sfKmF/aEIM25Q2HtTK4wltGwSuHXHlBaqy6ACPoXCUa1KKVjJP07RACs76r86QiRxVFzf+BfB+fnCH9iSs1LeB+vjEjoHtjvz+Of54JdkiUvDZx96H4SCMk3bEdnZGY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740935; c=relaxed/simple; bh=Qs8vhyOoCvNWF0j+x9Ihy0ZSJH5YgR3lWq9+JQ16CJU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gmMaT6TCdEDuigTw3TVQtvbMTUzZs/HLlbK9Xekx2h34G3o+esozRa2eDzd8w1YfOZ41qAC8AW7FE6dp0uSKf2ayo7h+jvy5rxqE3qCIEtmj7KvpnZDtehANSUvgHeiQcf+ybRdzLhGE/9XYiXbKAF9IQ1HkrXnH1/kIQzdXm7M= 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=NZzxv7Ks; arc=none smtp.client-ip=209.85.128.42 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="NZzxv7Ks" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-475dd559a83so26339065e9.1 for ; Wed, 29 Oct 2025 05:28:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740932; x=1762345732; 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=CxAcLRLFuFPkJ4GNJSGN644S0txZ4Lw8m8ySKDPzrmE=; b=NZzxv7Ks+XjtNx5wIB3Bs1xHyX4lvgEOipXxeNEmlE0eaEbppGFfMEuc4IkjbSS6KS 4kuziF86TJn4Aiff+Gm0vKYZyHltIuswu16BA1+nzfpEN1XTBjUXkYirsXdpt3GCW9BY 6YPxkkZmJsB1Ny3/goUBbJreqlI8iArT278bGo20JRPf4rA7+ZW8uJ2FCdsSSrcgNk2Z F3o2L8ASMjo/w5uEv65FK0ykTk2AEnGDJ6tS3OFehBTD+rrcqNczZqwnMSvYV6H9XXPo QduL2BXnz6/1WNvt2Wu76NWvxkVROlDT4I1WbOXhUqMKAoxwZOOMxZ3oOhWyTYZq082w cT/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740932; x=1762345732; 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=CxAcLRLFuFPkJ4GNJSGN644S0txZ4Lw8m8ySKDPzrmE=; b=anQTNuUDnVGNXaTQSmn6SCjvZQJgnwH02MrP1HDdqgEK8PdbyeYuA/DGP1EkqMZzSc TkGCpDj7ZsS3Jn/CAjI9MPEKTp+GRVvS4Hpd+niRQadOUtwJTk2UDIN7BqgxqkZhuACE 9Pw4ve2F2HNTZs9q3c6eckpn1Vn9GaSsIu1t7q6ZduQNtDtN3BaypMiCNGzSz+zvibkI B4t0ppuTPSn6ZA9JTfNqwgUdoKgUZ21K6ZuNTYGPaSJys2CLTK+yMFhxq5f2AOB/ptGd xXeflMdE1GfxZwbG7O6E6EGu2UMkGczAznSKDWqW62zAtZ6uCYwLUHU4p3LlWWt3Rk0b cCJw== X-Forwarded-Encrypted: i=1; AJvYcCWwEDzT+cnS9bJpWm2rKxMnZoZIGXJwhDY2aK7B9DZekwdP7fnNiqOHE8V6RB53aEwzO6sKBE0FODC6D0Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzQS/WBrT50kJPz1G2dOaCIZDbOVk7k0nW7OiO9hBkWJBMYVr1j mgrI5qVrtyGo10dKsEjwXd9nf3rGZoaKlnyqyqeSjp4CvmEfbKXA76Etd2a5tZRPK0g= X-Gm-Gg: ASbGncum61CybIYpM/ZK+XgA7TkuYBv8OMQvryapd9mehxQOYyAp+B61iVOjTF40HxY /Wsu8SaTrZrMB4F2In+x9gnKIueutApCSmz4Mc95l6faC2485t/er+QFaAv+6gFhktFlAh8xi2z CEqt+nConjfYXbJ0BqqWzYJjn+JB2XZ08kArUm2m4hI/gXOuy9g6qUp6v4OGEAB2NVx1U1NyUol iRMBvixWrrQ+24HS24oyBCRD2W6YVZ5gLO85b/jdPXoMnF/d5xlM8brhKrBhf6qO5ulc8f9Rk7h jNg735Xwev1kP0nzfgUDafLuqXF/HuHReEQ9DJFgzk+FbFB7yxGDYxloZNoV4hibXPxz5q7+11w Blf+Q8RC3ineAaJCL/kU9pSVpxwN6559WPoxJ06glpukHzBKrSVw+k0cpqlwjpezowCSSeBUSUv iN6Qv8 X-Google-Smtp-Source: AGHT+IGVSIyGHooFUNwJFOzgP02oaNQfaoSa8LUBv0H67C8L7NLZJDtS9Jjx7pnxWYORGUjGIOom5w== X-Received: by 2002:a05:600c:474d:b0:46d:3a07:73cd with SMTP id 5b1f17b1804b1-4771e1ca0d4mr27882115e9.23.1761740931794; Wed, 29 Oct 2025 05:28:51 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:51 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:36 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-2-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=4MJAfoZ4MOXSK/aVI5nkAQoTezWuvKeaMoxZLush+B8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh9qP5RDqvLYPjRG0kK7LDKyqTLSCgKta+GS Bb0AMsCovmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfQAKCRARpy6gFHHX ckQGD/9Wr1DFAlSPL3hjFIONxOnWJ6VUG431FxgF//U0pSgA4H8G3zZFgceXMnkJqW4o3ScMRoY uaMVFq4opsSZpwSxT9yO0qsiajx5QASjjn+Pw8QaCJcNos+7cNIzx/5zz9UBnb5PGns5dpkqLLA N0pA7Hv2Ky+2A33aLtCPTOJ8UbwmGYwHiZGTg8p/CZqx6/eql1WnLE+FKxSFaHDaDll4x0vEuvL muHhKFO5rpTmUwdevO+ohSWt2atNyyUlTl5AazOI6iohZ+/G7NsFw/eFzKzYRceA53ejPTUCM9f iW4ymxHNqxnib9It2M4Mv4D9Q6zjXyhSCqY9jTAWTDNaR8Mk6dh62OA2ftBxW/tKEwECYQAsW25 Mr0OEhtB3SvBOvPPyvKXKP+vO6k6pu2S0CC57Hf6X0BBRuZWQYqGgXAs8xdxST/EyrZ8xaQAMWl GYQg5IDNN3ole2frFNobuFSFnTJpJE6I/Nb74J5bkKB5m5OznDnlgLTfncVYG/xDTDoXhmtsEGM wlwguFgWGS1Tg6u/EpeQpmEXP5tWrUE/qWuGJcT1n+G71LimrgFJhqPTLuxaAGeKCymYfNjN/TG zPj1RZYS4CzdYmtL/djXlKQ7xoa7Tb8SskZmAxvJPMh+dOWrmVlnh3vCqKuxWzF9/b44wMvLGVb MVpSAkTAqVelzxQ== 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 --- 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 2994efaf1d5d74c82df70e7df8bddf61ba0bfd41..b7c3926b67be72671ba4e4c442b= 3acca80688cf7 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -554,7 +554,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.48.1 From nobody Mon Feb 9 01:01:01 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 430CC345736 for ; Wed, 29 Oct 2025 12:28:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740937; cv=none; b=taVCk+6cBYdzGgbaXb4eJP9TUIxnvfeYoNCbzx89+qPlcu7EcK97syQ56fSSJS1OsuJs14W3+OtSD/d3UVupA9fHHhsFKRRqrsYBTLH0OAPHWd8dgAr+MWFGl4EuenOV2EpRrvA7B7UtlzGO1QeLVhmXQsP/g7l6qptg2rn8ges= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740937; c=relaxed/simple; bh=r4EN4cUQhmdttwT8J7A/ALIumhx3T83c2IIKI9j+cTk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BMFDRV6rj23pkmulDk/YkBM+lEXOqLsJpF85FG54jjSfesfInp48JM+Q5Eg9x8iZR8+lbRAHXSD/R7AAoAXEQghQKmF5r/wuel4hUvT8cxR3dP/fGTHHbVw7tdChMKSAXnuoq5N8MSbC5xh3Dbnsk2H9ZMcMZsKx1Ue73DyILBo= 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=ypmVihT+; arc=none smtp.client-ip=209.85.128.44 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="ypmVihT+" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-475dc6029b6so45742875e9.0 for ; Wed, 29 Oct 2025 05:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740933; x=1762345733; 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=n0T7W22CJyD3WK78vbrBChBctKIHWzgfiMVfymB9+2M=; b=ypmVihT+i3Lws/bpouqKIY7pAphwoJm6zjvzC0GtgcY3I1D8xjuE1s1u/umO8W/FDy zyu2uU++Ku8FU9Z5Zdac+fMIzFrrNiB4TltgoE7mMvi6BCZJOyOn29qpbwM5waRAibkb /LAn+oZEjO6KHh2ahkk+l5axFwnfAQmaTGVM0nLnwqpUTWTfgxNc9z5kiOGAVk1+hTZI S/AJ5p3Ga4qmow+l74piRC9q7FDzCg7mNHwoxyzgmOn+NKiXvq6fsvU1RAA4jVv0yJOC JdDQkaPgoUwkWwZgzcPk8t6V0WqYz4jNAYfe+Ve4rW9ybykv2CDjQdfMclp/pKvnbUs+ NnmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740933; x=1762345733; 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=n0T7W22CJyD3WK78vbrBChBctKIHWzgfiMVfymB9+2M=; b=BfcMZH/FZDw8dvMPCOHRDzZWQB87oInf3wSmLohGblY5AGiZSUJewGGXakhcl3agqR 6/pLY3rNM0ZoznQg+qlcGZBIUNRf71txuXUWv5mcgP3oTu+jLi3V04yoIwsEM4iMJyBb f2ALmUqiNCERZjXB0V37bRjC12SFMwcBdhxnujohxSgk/PP/rfbPZJ1A2JCL42DVj9CJ aEmdBq64i8XA/59yWEFOYvWWfiALewPbG66v0jKrwBdKlcPWsYCg6XZF6LjU+CvCzYcr UUlgCDw/wHcJ11tdVKvPCtbdIhad72e849D4eoLGeRUoyCYCLOmEPaEkwpUdFDqVdBWH XW6w== X-Forwarded-Encrypted: i=1; AJvYcCWiGWum8O8Vq7sbgTnDFtC5Sw+svtC2YJ56Fp/rodZw4xIFNGNi8QC70+4DPRvkN8xlWRXr1h10PTz+jUk=@vger.kernel.org X-Gm-Message-State: AOJu0YwHK/KUdkvljTg3g9EzfsKeJrXDyOFx01G/Q9ZBx9k8ap49pfhC q90LeFPtanKjYl8lDAExZjvC4EkwAOkFSEplBA27eQcuzdml0PnMZCqiPX/+1cfjmGg= X-Gm-Gg: ASbGncurbzbwAv09LxS1D7ULgn0WHoSqPArxx08MHMC2w0QN2yjosVsPRHSpXqvfSoS dC3vz/nWQVi3UeSKtwU7q1X4gPAg5uoua245b5xEO+ykoDM5wyo/6ziCTw3WnP9WnRN4acznrFT 9pyVXmwdA5CZmCWp8nemIurexJg6fn82MxIGoLcekMakY7CBchWYHFoqRDuRSwSIFmzsb+0x96E CQOIu8yHAcheJ1ZkXFfarKr5s/NMva0yaXdeJCoeuftPEFk8ObfKXWmZRp6+mjsKNpJ3mwu9foA mzHGKnN88nZs5aFzPojRFfqNsEEzwLAvyehSGyXwfUYvQbzNgyX+LA2SjEErvgl1SQSMl4nb/S1 LlC3EnPWQ1fR6FcB5b0/mMyJhr7iZ0PVisYNivv98QeaYC4cb3YaQnCQRWZoXRr1JEX6AHQ== X-Google-Smtp-Source: AGHT+IHhGdiwetSWYDCCixJ+vXAkD6pjOHz9Dc9Qp9sQJVBipevjCg8vZIWpzFdaT96sDMNDQxJ+4Q== X-Received: by 2002:a05:600c:3b07:b0:475:dba3:9ca with SMTP id 5b1f17b1804b1-4771e1f59ccmr23510325e9.39.1761740933570; Wed, 29 Oct 2025 05:28:53 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:52 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:37 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-3-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=4794; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=724+EoY2pKjkgvf7fb+DRalEW8uhDizNctnroZBQlZ4=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh96TGxDUekua45vs7lzh2KmmmRwVQUE2tlz 0DVF0IlogGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfQAKCRARpy6gFHHX cnmcD/sEumUlXRnqDNWZNKosIV9jDSGycAi8t907Lrlyl3V39+GQnbcUw10omO1ndr5KTRWZUX+ xvnl8mPxq+Yjw3z9R8YJqOnhGSqAdjdVhjQnmS6qAiqdCmTGb/2c9DnLGKeLydAuxFDBsT8YVkm dXhyMPUDAuHxDdxsIwOy0DPQqMnsRK4vs8Ox1uYG14j25bNBXckHo/nLwrfpeEDKKrPSIv/LVA9 g2T2l96Q8wmt2sq+21+s27v1otcBseNCJQf8d8k0z3oux/AFN8dztvYLZLmoc505/r+eTJZ/SQy NGxNNxTbKdf74hUY/0B+/sqS81m0SROQcSk2wesW1RfK/YgXoeHUwx/Nn8SmP9QNqkYbZUnjivZ aYgFLbloXqgamxQsAWfAah950FPvHfFS8FKM93O8MMkvo+R94F9Vv8kt1aEtlteumYiYbF8sqL3 Z1SYZUmlmsq2xgQpw0Niqbsw1hzwwyYHs87PusP4BppeOcCayAXEf5ZZOzpfAR0I1FU7r/1gDfI DXcm+hpol/fkCNTy5eLEAii93Joh2z2evOaQlznmEErYAJKFjSrfWMwr+ruhytvRMH0KioKQ92z l6JBhjkRKomZEJOk10TZNO//2cGyohXZUcS5zRimO79QWygw+WxPCjWIYUMFvjRNCpk9qmwmnqt EaQIJoJydIjzagQ== 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 | 13 +++++++++++-- include/linux/property.h | 38 +++++++++++++++++++++++++++++++------- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index b7c3926b67be72671ba4e4c442b3acca80688cf7..8601d1612be31febb6abbbe1fb3= 5228499480c56 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -535,7 +535,13 @@ 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); + 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 @@ -634,7 +640,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..66640b3a4cba21e65e562694691= f18ecb2aeae18 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -355,23 +355,35 @@ 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, _node, ...) \ (const struct software_node_ref_args) { \ - .node =3D _ref_, \ + ._node =3D _ref, \ .nargs =3D COUNT_ARGS(__VA_ARGS__), \ .args =3D { __VA_ARGS__ }, \ } =20 +#define SOFTWARE_NODE_REF_SWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, swnode, __VA_ARGS__) + +#define SOFTWARE_NODE_REF_FWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, 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 +475,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.48.1 From nobody Mon Feb 9 01:01:01 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 ECC13350D7C for ; Wed, 29 Oct 2025 12:28:56 +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=1761740938; cv=none; b=AtmYQVYNufBDdYC4zTR02gny7Ynb314PImu6ZamU4NSN0znheUuTMBLIraEQhmJr2eCWzREjxjKnT/wpQs4a8mn/0FY+ouiMysfLE7x2vZbDyt4uVuwyddIlyylJCfTLSV5x0rXUk9XUGT3nenzWIYyklKNHFWdQMNCunVek6Ig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740938; c=relaxed/simple; bh=fUpAzw4nM5JJHuP8Sbb2LWRCGoMnGpXyqpqEf+oHz6s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QRwOKzlBJc3TV/rsE67cwvMuJqJc5x82YbMkKPWNz9E7sdghq9KZeVS5o4u6/PSslT4SgsWFhPRxyTC7ABntryZ4/2+tbc8V3mV+vDNgzrd3hnuWn/TWkiVcV4CF9s+aNrjN4O8g4IVYqztKmYrBetHEUcfwAPeKI7UJuSp1HcI= 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=c94k5E/V; 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="c94k5E/V" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-475d9de970eso38848545e9.1 for ; Wed, 29 Oct 2025 05:28:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740935; x=1762345735; 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=Rtuwgtaf9SKTSGooaAZAvmcQb87Z9EWsFJYmE2FTQuA=; b=c94k5E/V1pFsMxyTP+Vj7EI5IBJz1sK2zoCDAvhYUbPykxErFVo0GmAd8AAnlLeiG0 dnX8VvtD9uuDDLpWL869UFy1fWqbxsHAvRpTIqZfZE2mUT6ZaBv4nj4vInEx0bYpfcX2 w1rhVcyjZiNzJAaIb2CJOG4Z+BODTk0PSpLv+GTBUkDbw5ZAd/9gUDpgdqw8j14XjwqH VrC9VTFl3mpcvb5Y+LLUmsevMsY7zNvyp37dG7gQQftwFQuf6qHzOKuDgNt4qnl1EjJv RKX90ObiqG82F6FgUY1yvAqRSjYhTSELZbAgKbTMjjJjxM8jb2X5Uic7P1GziNsfz+j6 fm7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740935; x=1762345735; 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=Rtuwgtaf9SKTSGooaAZAvmcQb87Z9EWsFJYmE2FTQuA=; b=RzwRJsT3nMv8vi6dh5Bstkz/8D++9zXm9NK1M7QYLaZkARc71GB2HGnn1sRd3dUZw5 wIHP0CuKHsQODpU1Aa6b53Ooot708MrqZw6aC9epfPt0JOY97CmAwb5vKgIPzGSEWZyN G62+usTDebo0cKsR7YeJxaPHZfjWuBd/Arprhpj59xxLUgoe/k/sei7vAz8HfG4zEU0r b+OIO84X66rcBJYnd0kHfm36nTAuM7UJxNSVz6PxQ8sERkkhsOtJJgFMPStwpCxBL+Ce zK0va/Z1/LDCIt+GbABWFrlRukk1UzIjrgVc8AswhkZBXPYs17nz6vg7b+zbRdDx1Trp 9JQg== X-Forwarded-Encrypted: i=1; AJvYcCUr6h6Q4cRWYtWRHIwOelAhi1gGvnDdeSpAk5ps+5rBdzdYHbESHgdD9BhbUABLbTRI7ixqgKSI/8scdUE=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4LaBR+XN9c6SlUZp48kdbkwSMYkNgHeJQG6KMHEYr1yT+HkpL klgYFhAL35r+MNtVFJK50dfjnV0rrejWrLLsgH9QLDdNf37lxhQvQ9/BkntWYQTL3ks= X-Gm-Gg: ASbGncvz4UQzZuPlPud9wWQlFMFU+mooLHeOb2buIKO1CzTnqVTtwuEXfKnMc7MdnoS r2Qkqi82h4+Etnj//6RdNL5usSboNIpU+g4OolHI0lGWI+bfQl3m1NVTdgyTdLLBMOnVMFR8DAs tRAUX16F93gB9ORZhI+Gb3AAT4pm7lsUjpJvJFPuPrsqc5DbGveI2ytZSKDhXdGkY4eQfBJJK0g 66uc9/s9yk8t6fmFlOr97Z5ZBcDlxnew1GVIvzRWgsQc+MFvOCOaGjaJT9gaRbDs+p2OuzL2esG t9TVt1Ug8hPNMinCOZnMrJAME5sEb+5Ph32qIpfeuO3BCUsp66OToZ4JT6eLKt2fBSysh4OiN+s st0JaM1/Bao1ky9UdEDazJY7rxbcuK7dtR3GmOaUEDSLnMdss6GcvsCMCyV+opIP93ZOnIA== X-Google-Smtp-Source: AGHT+IGUkE0j8GnZxFXdtLst8ZzK7+0a+ebiWGoWZ/vdSeb7tn59v7NbOMfFAUeELlw3XtGyxfLkYQ== X-Received: by 2002:a05:600d:839a:b0:477:c37:2ebf with SMTP id 5b1f17b1804b1-47724beba19mr3491335e9.22.1761740935341; Wed, 29 Oct 2025 05:28:55 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:54 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:38 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-4-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=D4sw1MpA8EvavyQl/IWO9QhPPoCb/aOZziV4a/E68ic=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh9B0+8gSBxF2B7dDKAZZTR85rAZCeOdh8Mv PbglPLgh4aJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfQAKCRARpy6gFHHX chVXEACaHEVjpy4elgZrhTWNtKiy3iyVJDwmT+OeDp3yp+ryp2ar37ptrFhu2lPCNcnNM1An3Sr 66dl8XZ0+vV0ObraU0uOC2EU+yuThOBzKn5tfMpQQIYtmEwoD7C1dxW6+2FU0N5xKjTv5Wk0gwY 2UqFAO6K9MUz2c6fNDfw6XXDc/nGW74gI/Hw70CR3Wl6TVDu8xfzuRvmyduImxQ7lh/wFr0DlEa dXsmBcRLFyyG+gdO92R8C9JqiF6EAXRQZtXB6XONAh+c3YV2bJ9jK84ig82oxtv/P+sT+qH6hwD pEGOcebEXzUVFjHhdORwEPmRz71pE2xwb2V25ZrfwlJC3UGN4jtJP9Cq27He2b0wo902YwIF6nm OxsbrCqqFqXghp8hrB5frtsEicSQwKF0iZN+JJTpDwnpYWcs5yph5Jq7KKntWCfwKq3ZzWnkCon 6WQO+8Z3vUJ/CTUO6cg1i+qW8O7tD7UeB/bgEK1XDeSaenIg6IaW8o4uVMEs5B0Gvk/G0yHx3Z6 WY1tXYDxM+Urf9xPiNc6VxQX/XSEebO22oQ6bN/xhBWyuZdzVCYK0LLGUlij7t5t/7RsgP73xXq qLrS+vcCIbZGlMR/w0SHF5XbsGiEGl/iziDlFHhLTDs8EGCKbVNjIAjRTOeREMWJYjJFJZZwvuP mYfhRynX7TSZHmA== 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.48.1 From nobody Mon Feb 9 01:01:01 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (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 0009C354ACE for ; Wed, 29 Oct 2025 12:28:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740941; cv=none; b=dDt+IPN1wcpxXHPK0XqlAZRduTrVGB3VwAYJ8W82FqxwB7TTRsJoXt8YJBdzQRtd07HYTY4FvwxnvN6wlwtPp4aCelG3CyAyWiHFmLT6gXvVUh1YFjddrBL2dg+OUqxkEt80V0ol4u9GwOUvchTYG7pKpQzbNs/FkyTo0HcYAyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740941; c=relaxed/simple; bh=4ect7wcRHMZmzFsechyHf6/4R+MNpwXcjK0Q5MMCaDA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NYwCV0TAGoRLAZCvVun2Db3eqY+Nwa2g4Vfy7N1m+5VLZyCT/Lh4W33Yf117hNHqqRXePGYZTe1bXLVlZI3Y+poLfdoFeVuxQBKUTdvZgZvaU5PsqKdf8p2LAtC0lTg+0WMK6iZfBMzPBBIJ9tbOPBn1BNouS3vEEBhvcjY+KO0= 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=rtLeqQBA; arc=none smtp.client-ip=209.85.221.54 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="rtLeqQBA" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-427015003eeso6310139f8f.0 for ; Wed, 29 Oct 2025 05:28:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740937; x=1762345737; 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=XRhCeiPdliuBRyPofLeFsSwRxTI7EjHhQbIRBNN9fyg=; b=rtLeqQBAefOkeJ64SMfEnSYOfl2uqBmlMdi/oql6m+kMJ0zKykN4PxyHRNtraAefim uFi0KDZfXrlyWxsdDQC+2ihg50yjnyM0qTGe64M0FwdzvGhjdzWye2GHDXQjkX+8Lriq E7juONqxteEXHzQSXloY8pEBDtsyEZupJXjo03tvotyUXFterPY1WHfQctMObAxJIa2O +vXtyE4DI1XvUG1+oSNtbhxVIEgPBuQrV8dnB+1Rau5pvte4/POEAa6+JDVpQa8fDxo/ F10Om/6qFHGnIpBruEObohvQxs4CKkSOvRwtUW8Mka1slUSG6+c83ng51x01snd6Wax2 P/Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740937; x=1762345737; 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=XRhCeiPdliuBRyPofLeFsSwRxTI7EjHhQbIRBNN9fyg=; b=aEb4ciGAClerOiGMZ1Hb2XWCuXLvp9UXcX0sPDwk/ESwtoKucTM544QNUcGOG5Isjq DnbmGPTDpawE2SeCBAQo366Wk3htZKGUO2Zq1cF81S/PtYTkr+B7D3mHZWLmUleZDg8A OHJX5sehncJHqeJyJlfVB1eiVZxmFsQjFV38e4cbxUneExVJqtIVOLPc3AdJH8Kow+so bY1P9gPjnmypyhnZ9so7YNlIlEN1VvdbFVjR+7alwvTtAJoqZbWxU6plD6y/+QwSaunb t3ybCelagZaBaj1yG2twoYh9tC2VFx7Vtz/hoGl+uOaDGZ7tapctHo4uFNL43X00Ogjg Sphg== X-Forwarded-Encrypted: i=1; AJvYcCU1bp8OtzVhR73IVWOCzebEgrmzfDVOjwaf+ME8cdb371qRwfhoN7+lF90hG9U3t8onUkTkMA2XuLaK7lQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2TnFXl2+/C8kij6dw7wrcm4KNFhab80MXds38oS4p6T0MbWUQ VOFsie3nXkHZ3ddrpZEU62Dbq8d2xDfDjTtZLkfITLCYVLx3F44wqZtAxwL9Hi8ziWk= X-Gm-Gg: ASbGncsHWOB3UfWskqvoYOti4x6MvI0hCxelH2NYm/7pvI7l3GPuF4Bo0kf1BnOnyrO Ah1+zYj6qQ5bsxPoN48HSkkyw05EMfhVTpDcjFSXX77D3bCMKKLcQiMxeDAeqd/FKwqrgVbQMqi fHLb0haJhgariuI5FPMTumm1G5M8k1fgHgiwtTtvLJ58gFfa62KfhEX7KM/SD5v42f06LOPN4v6 cWbktSBGvAlIMJuQoMqePU8DmZv9I7hueGLLqhOENBSe4MbJVU/OgsWGljk1KlPJoIL+KyRHQlg zoGq54xqdOvYaHTN27gOGRJm2ZVEdMfkxZ21+SEdx7nQw01Vh2UeHwBvDzQfFm8Zr5ayPjYBdvx 2vNQIiLXCGttVY17b9WXvdRMxpOpKEOaZOs8uP4AGieIQthJgG51EUvDJYMHRk241LfZ2v/jxdM i7GDWc X-Google-Smtp-Source: AGHT+IEPQz3YTfXJLt8ieOl+lOhyjw46aZJZu7fHPE+eOz7j8SPbJazCBGcfMpnzBZAH/pW/wZ5NHw== X-Received: by 2002:a05:6000:144d:b0:427:9e6:3a64 with SMTP id ffacd0b85a97d-429aefc26e2mr2306173f8f.47.1761740937234; Wed, 29 Oct 2025 05:28:57 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:55 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:39 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-5-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=2sDZ/ng0/1T7nWdfrtzJZfWAdJb/GQGwbNCuejtuSIY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh+RL8x6ysK0j4vaEMu5ssQ0Lnl6HKlu5Nvk dtJNVI/4giJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfgAKCRARpy6gFHHX clFMD/41/OfmaqSum846DdilwE4zku1SwWsqUU9pbGkI5Z46DGTFuvwSZCj355xYoIKToauhkWa YtWO/AB3ux05l4htGy2EXtN2dMT4ft4TP1K6pg9J9/OyqJisIjZ0FZqAVYy2PnM5D1bWWfDup6/ WugoqDKM6r6QNQIrWvHp8IM+w4af6PKcF8WJMkcENAUfTM+PHCCjWoccqknV3AeqEJT6fo6vx9K Ea6zpRv3TGGYdm1QP9FnQoykJ5DjCmWpBGWsyoNQZWHhOB1+ONmikBgfM2lU9j4gdYQI5QENXRV 7/iWwBkdECYPO7+cc0fAsjo7bS9/9JBEvadh9LCesmAvASMj2ONiMCEKl/Qim6wncv0pNV2kX+E 7Fj4v/nBDsBM7VBM7rUTcC6TvV3aPNn9qsiG7XMhLOlOynx+PDniSGiCs4M9+pVtCyu6rhkCdZ+ BBpwyQWYEIk7hFD8H5oVeemRsu6w/EjksKqpFYu+SQrht/2FRVNQlfh/CqFTkSBukoCtvtkuV+R AuiSGpyuhjwSbkGeQt1vTkXcqhRFro0dVdvX8Be9YicDLiLzBVfYw9QlPAyGdxLIw+DMia6OzO/ Dp9Wcmvvdmmj/KF8K2ZN/z7L35YDS6SbHIOugWWuxoShMuxCbpM9uLBd3BtI3vpTstpftWecmih COB9pUsgEtDlmtw== 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.48.1 From nobody Mon Feb 9 01:01:01 2026 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 8199D354AFC for ; Wed, 29 Oct 2025 12:29:00 +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=1761740943; cv=none; b=a8RAUFVcisalQgTLiE/EE+nJFT3ZCblA8r+TCrpUD9dz8Jvhsjf4NUCQynMVxe3lztgsWRhiHBkcSkf8Qn4BHvX7cD9H7XKjawmVy942QJ/Z7xkKkJuVyoCQj4XjZAbt7SlhTc8wDft7hQKTs4G/ify0JJkBl+xE4Zscl8qvaw8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740943; c=relaxed/simple; bh=NNGvjwESjllaEF7LxK3T1yowFNpjBHh1JCstJa8YZdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IF4saYre+1kSnYkpTMFGjolrBu7poiCD1pjmhaM/sMrv1LBD2rtEtwFYew7TcsunuP4EBbEIbkSY+WJIMjso+geC+E9+TnroCZ6RgWO899pfVBsVnCeKgYZ/Jv479SWIjct1kZ+XPbqp4jqh2LjZCStJJSYlH6JBNjB/SP4y4y4= 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=Fps+S7L+; 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 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="Fps+S7L+" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-47118259fd8so56018265e9.3 for ; Wed, 29 Oct 2025 05:29:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740939; x=1762345739; 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=IzbX/LcA5Dz6VEQqEws9evNBv2Yi49eBen6kb0VfhlE=; b=Fps+S7L+QV2ezvhDz6w13RtuAVSObqOXel2aGPb6YBczdvQQkf/9zh3AwiHJnWhKt7 kTiB29pAgzijdwNE0HY1Aih8g30VyyYj4dFaPfiWDd8Il7MQXPpxvHe5DYikvu7G84Br cGm3iUbfiA/eUb6GqzU2byNUk6I3cZavWEbx2wz+rUWqYJyF3SJRrQ17fI7vttYmjTOL JCu7Yg7XvGg2ihM3Kkj3RKzytpMrimvvlEScGpCS5JN3BABCeYB9ORtY0NEdCM7Qwczq KSqA4ETFIct7rxP1Ul/DEO4VtCtvARl35utAQUOzXJc2dqUrXT/VNhtzfMvyljdi4Z7C oZCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740939; x=1762345739; 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=IzbX/LcA5Dz6VEQqEws9evNBv2Yi49eBen6kb0VfhlE=; b=BMu2lBv1o9XbLcy23MDXvxl60jqF/TQWMVn2E8gX17fwW9LX2iHbzp7725S5KGC+qC 4Dns+5Ps1xAnnknI33bUW84Y9DfT/HXNG1NmPclFxf20yVx8w2QTeWX8yM3Qwii0wdhW wNyVxDD5pBozFjNtBXTKIJa70w3PEsikP/fwE2HoOfyKvTasronoR1PVkvptOaeu6X+1 g/nhu9hZy6zkMv8iqWR+tu7kZIhNVI4WWeqe4M7vI6V8p+oi6AwoGGR5lJsmb/9l5Tbz utw4rVQvZZpoBq3o6t4eO7COlrMRmI1GkV808mKhfyPWLwhSziWvoqslTeeeViFGAaGe snuw== X-Forwarded-Encrypted: i=1; AJvYcCWMPJg3WqiR4zw1+y2i/s8bE+Qq27B+D6i8blxnBNufxOcjjnotRWKJFIXRhMdkQPOQP3SVmqPvd/RnfXY=@vger.kernel.org X-Gm-Message-State: AOJu0YwddMZw0A4ROS1NEvy7q6sYqp7r+5X0OxX7kz/h23dNwKYt8K6+ 1FAjZrMcERoK1xkoZi2KZyGggToKJLrlxkOMgKbp7NJPbRnOaQ6KRI4GdSVLQ8Sktlo= X-Gm-Gg: ASbGncsTAq/iGqpWfPNbUBMbAMFp+lUEe1Chrt5YMH/whGZNvHCRY4XBjdQ8Nbu30qX w7C1Bv0rCUi7QsCPcmoGQ1lOFSPkFS8x3GHS/EavRi1HPOmZqv27EJUjM1O9PCph03I0kEg5z18 KnCbSpZjAfdXvtt8UGSoDKeId3cnDIqU5kh5QDCFMCriLghMZJGqLTAR81+ndN0RVMJ9pFkMTnD UM4xKgahg0iaDhorspGgNZkzdisqt6Ody1z0L2n2MmjbCApw3rHyONfF3tMBEaCUGThwa8qp19f qH8CrO2Kh/dBhw4nLOakb79ogRlcocrV/PWJ+EYvDY1brWy++qOzxUnCMMFo6Cb9ZYqEMCT/QrG sdWOpsYoDABItlQWtejQmg1kb9TaKxBkva6rkwKYKa0jZ+6o6PGvig06sI1DGcrJaC+Y0SDlbfp Z53jun X-Google-Smtp-Source: AGHT+IG8g6hB5SNsI9e3DFIiomt04U0/8paaItGpGlO3FT91y0uqvdH+5yl4I4VWVEOoGHFf1gWiAA== X-Received: by 2002:a05:600c:3e87:b0:477:a9e:859a with SMTP id 5b1f17b1804b1-4771e21ed24mr24759875e9.22.1761740938806; Wed, 29 Oct 2025 05:28:58 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:57 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:40 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-6-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=D+u+srU0OvfgxDXNvd1XP1KSLBihAFjsPd14v+EnoX0=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh+2HH+Su1AAscYKxfH8/3rvA7k8r533eDCn Ldd6OcmdAiJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfgAKCRARpy6gFHHX che6D/9p4upU6sk3sQDuS0I2iQxv92BNCBoKjG+TgACcJJkxU6gyOeuHQXE50IpbE2xosVdtrP7 1IAIOU8xIMZEKdejFaDCJGSQcEt736bVQxE2dAL1nHzEptoQpighIlHrvFoNh74kaRPEZzbW3OC 4JEokhbUb1skelTNCxcnEpBBwZU/eOTRmSlzaMJJ1ZDeDyZYMzDxEf0iQ4Kbt7czKAAqG6d+hH9 L43IIu1QqjdhFq9ohwnFSauLOtF5e1XYSsQICLuu2YPDzjh4xw3/oPfl/fZnrwJyhGaCrAleiJX Zy2OgE4pqXz0aMNzU03IZwR83zUqHcTpWZLH4oIR+qbf1EdDNCVtygCu/LPVUVJvuh1azuRtxUb Ku4UpH4CCWJCfak/Rh/CQrvhADdIMHlxu5NeQNHvryNmg4qaZgnZQN8n7F8v6OfOrlcY+7BV1mL m8SwgjxaXSk2c4NdQ5edxIYIkHkNSdco4z7f4CvIhHBzk5VTHiYtKsAYs72npndQqVNDtMs8kYy uHOo56N1n3r0traQSanJWHCKUqSdYXakyXCzsbk+mc07XKLcWDds55EFV9AznhCcTI1Fqi9BqEu fvBdoEQZE02c0hWqhu2jAAO4tHluPPK0xXvuPdVHONE5e++f7qgmRAqpAS5TGgYh1+JxYIr/FT0 GbxVZXq6EdNM5zg== 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.48.1 From nobody Mon Feb 9 01:01:01 2026 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 4BE6735502B for ; Wed, 29 Oct 2025 12:29:02 +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=1761740944; cv=none; b=BNTNIs3tmipmze2273XLeyVBtCdf+iD1iYAzWfnUAOkEkl0ObyXHqwp3mS31Fx+J7ii93NIQbtEMqshBNzKGSTI/cKOezqM0i0Kpd2TKJht3xvR+Y05aURxmameg5OeYfYjtpuU8JSYPBb6Q6oVm6zHw9n71EjCGWlIWIvZGXZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740944; c=relaxed/simple; bh=X6AXe1jSRBq4KEJrHmdBq6xZuD9cdi0d/HUSMjgRwhI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=srH04/pXBOB6Qy8GFX8hD8yHR6YqnXCeoR679VsJrHunfBorN3/etBSadj+XDoSoDLReqzpGz+W/ahXib21LiWALjsNS608AlEoCshiAInHNOKSKTCjW3GuPxbwXblconvok0ESEE/5Os9/Z1n5ZhH/0FTHZBKF0pNJhyEuH2Yk= 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=iLMFvC+e; 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 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="iLMFvC+e" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-475dd559b0bso60717935e9.1 for ; Wed, 29 Oct 2025 05:29:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740940; x=1762345740; 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=2edun2hn2o8/WMgJNeA0p3kxXswqKrNqwNnjThzAN6Y=; b=iLMFvC+elPkSAJK7/CDVNUI9srbHdViP/k/4U2EhPUzPZhgK4N27lnsPl1GR7nZb3W s2hK9LewT3Q152667XC9bx6m+6z+mu3PjLz9O67oZr0A7zZWOAMGdopWt80z1flbWvKT eegS4S2ll0zRq2qfRsgCny/ZSmgLpG9WMl2f5llPSp2R8H02GPIYR36wunaqVaCBTKjq GoSuBlr9Zgtfuuzfx4T0/2zEONW2trPI07bxU/FZZLXesapPzOXsfWjWQ7fV6wuW9BOL jzeW0JarxS3glXttu1IvM8ofRC56jED93witvhfp1rUC4e4U4zrexVZuWXULjimar2lH SUxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740940; x=1762345740; 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=2edun2hn2o8/WMgJNeA0p3kxXswqKrNqwNnjThzAN6Y=; b=NCpQArbjm363IER+Ukxjy0CbsOolRNFbOYVXWCERmJ/g4wQ7YgjB+0Hf+LwDK5vAhc IG43mb2niCX8frkTAj/8o11CjDWBAvvzJKZ9oBgko1oLcqzQkVOUF4z4jD9p3yfre1TY FN4k+840OYcggAtJ2sP5nqcI1AUehSVGYm2jicNYeUNQZuwldz1CWya6JOUm/DomimVl JLmvxAjJhiMlavpOjKDAjymKEMN+4wzrmDZMoI76f+q4Gfhd1/L7Ye+e0FCYbPeKXQ/5 LsWrpRW1qVcPpgD+8MdJwebU53PIDGrrWHxLGU95XcE3Qm63E1rG1aPbCUa/IqwNO6Nl icIA== X-Forwarded-Encrypted: i=1; AJvYcCX2v6tnYwJIqPRNpY7lskfJH7E1fgveG4jBx2IDnblMkhUSl+j8xapZWwGTv1U2fM+z+jdFHtRvSXwNoOg=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5pdxDIlCapup8Vc9s408isxv1Q4bOiWIqIbgZsAltls0mmyFC RMylL2xI33NRZFRbmKAZPcxTBDz77qeYvKavsgUruetuE8LCRcWNkddK2U5BZUoYUcU= X-Gm-Gg: ASbGncvkSGV2CAGI6se2NLG3yfKK8i2X2hqVRZZimeQBa8NvQd8lCRDDbD6a76cbKLd GYQs8cVaFitfwpM+0aIfBmPfF3Ujr5AuNj5yCZ5s34r+nr0a0j+W3CymflKyO2Fx5ngfIJveEuo /Odo5c7FutIsM+lqAoyKS0sJ3X+mGdB+lCX+nX9jVpw6Be6OqArhHAaUuIoY9b3TjGdcGLO0cdo Avds1TKTqOYPYXJHdCzFQNlBZ5zTww/1JGKrkhYHTGJU7ithv4nkcavb4djYAY0IbJzCAvof7GX g7IVe4Hf1/2MFBkvnE4nIsdN0JHw8diUmkARWnfQmGZM6kkVhJ195WFC/c6YY47lh9NantybZ3F qqLEdUWv+1nhIhaeM+1ku/zRAvPhATP4hBXQqgjCaQSQlBZ26FP2mf8NdEQm1GtYQHTDALTl+lC ZmZO3p X-Google-Smtp-Source: AGHT+IHS+VsWEygsOc+A8x/7XjIirk6Z2+ec/QSTP9F+rFxuXxZu/OJVHHDmiPLgNVJdADJ0GzGP8w== X-Received: by 2002:a05:600c:3b25:b0:46e:394b:49b7 with SMTP id 5b1f17b1804b1-4771e206a1cmr25175295e9.37.1761740940574; Wed, 29 Oct 2025 05:29:00 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:28:59 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:41 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-7-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=3ioQwKPzou2lSqn80K030vy/XMiDzWorAZyKbBrMyu8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh+MShEqQi36ZJ7GYHN2epnXfOxGOvyPD1Az 5/iBt5biO2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfgAKCRARpy6gFHHX cqHuEADhMa/O5AM464uKfoc66jVysImTGSoaQVrgEg9g7bMaCDLylQVbwPvg6yni0h0pv0L1nC8 6tfSb4WukhgO7unX57B/aDfU6Q5ciGVydTOP0U9mPCF4ZNr980kwoeu/Sobff7HOgO0Tl6SE3yC U++TW2n1YcHTfITwhDpFWhAs7d+fLPGV674ppjfhDpPTTdU7iJzpNj/A0Zd0WB2WQmQLVyb4LWm XIg4qoDnUpJ7CohXFNUouo7Am4W0PGzOSXn5umca3GryiCfvLC8N4FwhMe/1xyhZgWWAqvTJk5L HOqjKOV7mi/QLqYSdcPGCMJe/QKT1/kflUsh9XaNpiQbfEInr29F8r43s/+rcxWYyMNEInjbFjj +K/95NOGBvtwDek2aOtPzBJeqpCvywFYrjGXM6eR5902TGgldJE2BI/Kpxkffly6Uv9G2aL7XDH i/MTU4p1W+TAFXYYMx8Kmwwz/8gKFVfcH5wq3dkRGDIRuhsn54om1ZAkJRKpVFMlNvaddMSQx6F P3xlGOCEMplHH3zF9amoENjn7rchB/OHvAV41oU1iBcNPvgQPae58HchHSsiDSsOpyxKL1C4k4K 8o+kUGmobz0he/dyHF03N4E4cmejU7quIjfhYqxrvXDBcnTugaYSZR72LgIOw5vvSGxSZIyBO6M 94NPbHZ/QPPoQDA== 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 22f67fc77ae531c6efba3ce92cc73a2d57397762..5a696e2dbcc224a633e2b321da5= 3b7bc699cb5f3 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.48.1 From nobody Mon Feb 9 01:01:01 2026 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 E34F035504E for ; Wed, 29 Oct 2025 12:29:03 +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=1761740946; cv=none; b=XmebRPGuQz0xslGiM3Idml2el8S3sHxH+yA5RWgmlb5mQ9LX89o9tBalsUE+BdRWDlNnJEp37NYURSS+HlmW2+gZe8U524yho6CKO4eXjmbxu4RbtQlBYRPUJIFX4Wzc7KFahWNS21osU8m0Tws5Dl/yXQsG/63i/6QAXWWJEhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740946; c=relaxed/simple; bh=pihEqw63iH8miaFJi/OO1LHWkAM8Q7yQvsG/Unqag2M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UKuQnIt/LZO8Xe5p/IgA78F0ZAYXej0WdAxc/qT4ScQ6G63aJFTDKQ87VOB/avXIMqKyNfkAsqg5CqYFjzczaPArmhXO8oaHtKlvADdga//dmMhyknJmJNuNn9wgfkeky9rkf3GZJYYs4FWXvFDdzKR5yLfaHy/IiOMnbIC+ohU= 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=WR9+EXbh; 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 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="WR9+EXbh" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-47118259fd8so56018645e9.3 for ; Wed, 29 Oct 2025 05:29:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740942; x=1762345742; 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=cKWwb+CWR52sgUt18Trk69nB3HUB32xJzIqtVQA5qjo=; b=WR9+EXbh1JT2hN6kYidRWlnEbB9zJanMCKu74aeCF+PQz1Ym4bYQxSFviEAsFcM9uH CveF8xtcFMNZ0R/Gjk8J2Qs9rEpTC2ZdljqlwZSH9Ltzwj4ftfqEAFWzSXcWIMXwpQsI pp44SWFtnPrYDOkL8pq7gPQiH422RUmXwXnq14B8L9P7bREyU6VdVykuiVDfDHHJxy/t 5aqFy+/+Nx0TnAj8jC9Ligr5czwxlP0QhriQC9oWOYJ41ZYwsgHSQPgtRvfMPCzJQDZc 3WfDiZi/TG5j1tfUBx9smtuYaPT6RHj4t/+wFmTSBIbQMl5Zj50qVihkDOfveWi6vUBq TL3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740942; x=1762345742; 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=cKWwb+CWR52sgUt18Trk69nB3HUB32xJzIqtVQA5qjo=; b=sc20qGI+rKFmOmkXFMp2huUHcKyJSxT1mTN/GCKTQ4lyIM6Awf/FfC8aNLyqmW3/2Z XbbGD81ni29Yf+MaXtUY+TNGAucMswxal4fygXNysShDCteu+Z3aulAPH8YSpaCSBl+c F8gQRYKDd9EQ/blsvHCaXf2mGb6qcdYd8lKv/vCsWp0wF1IgF76MKXcTRJSLGDmDrXij OXRDmIyi2aqxobUmfLPmR680t65iGVFFujRgezYyR0/heV+YKBbhJ6GkeGrg2EVM21A7 IQEL05nqHRCU+4PO4odbm6XdwkFygYrCeRfqjIeBflcy6byWM98cutm1lWYqiJCQ07+Y HBKQ== X-Forwarded-Encrypted: i=1; AJvYcCVkqJaEJ0yicT62WPu+pOzFpTqaBriEEfvUiU4IQKMbt3jhJHOdZ86ObX9l3XivP2OoidwDA02i8nyHEIw=@vger.kernel.org X-Gm-Message-State: AOJu0YwcA7fNv4ReFZ3is4ddx5lRhOKJxSJVnKcO1H6zqVSY0df3eEWV L4hRdWJH2+M9UPrqOQIoK1qH26wyuGuVQSec+ZWmMb4xBck7reQw0kFa3mkX4S2ry2c= X-Gm-Gg: ASbGnct0T9js6YpTmE+KlWvOr1rd8eLcmVLDkqVJu/LQgUZrQjklbPBMVkMDpQU+qC7 0Xrobe8uUyONij7ua402GHwHwlI1f2N32cGZgapLgKT39PSZ133+PIgysHp7pwX0jkk/M06R/5C Pugj9Zj3f/hkucy6x+9Wvutg+ujdwh4KHw+mAmbz3DxWuZ9giGlPiJnRdSs2unQGpe/1ZGgpl0c Br3+tUYEu+dBnJykJdIW1KZFh3PK468JazmpLx+V/kJCgohejJMp2e+/jduD65+6sPbvGRpocsH Hmp6FcpqfjejYaPA1z5E7oIAScitACMMGPj+Nkj/zHUjuPgsYkFa6rCMLvlWL+yg1hWDNwpEnfd XdwjWw51smeXqVNmLMA/N610lu2ywRnXxN6oLRbm0gL7t15uixWTsoMWORZwcRSS19DKSDZ+VUI 4d/Od9 X-Google-Smtp-Source: AGHT+IE2bEto6dm9kgomx9Gy3unCJ/VhB2xVUZhKdQJiKPMytSociWC/cTOVz5iTb0q8YRFWnxzeig== X-Received: by 2002:a05:600c:46cc:b0:471:95a:60c9 with SMTP id 5b1f17b1804b1-4771e19ac2dmr27909795e9.8.1761740942232; Wed, 29 Oct 2025 05:29:02 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:29:01 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:42 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-8-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=GNsd7cWIVZyy+GvsDtQHGz7ZcDSeeiM7GomXTvhzcVM=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh+tbOHr2GtTYTKacQBaZS5LtYi0PYkjtcyS ZfHQCN0aDiJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfgAKCRARpy6gFHHX ct0eD/wJC+3IUqoToQlEO+77Y3Otupc+hBKyQ/4jPAzJRFTzE3xxnUdKdBUpWyvfHGdP7wSZPg6 srN+4v97xnr+HgiTv3gF5tBVCxevzClXWLcVa+AMvcsdBw4qcFHif3XyiINmNtuOsGAoamIzh1d zOzwAGGOvQjqLaNrHmrHr558/Q/Ih8SBsEEHOeabr297FYe20dyCHEcDC3/mPDFN/L8CSCW9uoH qObFhUFkpqCCq0fz4XrY5Q5ZCtHnq5YHRl6b8gvaJbF8tEtgxsZ4R5muPFvfCvh1Eynp14oD2DF 7JMOyHum/eWLWPQ0wFKyn9ktXBx1bldmIo0dcWIel96W0fXuuBUV4qvh43g1uiKkGB6APT5NAyI rZqWCJ/tiXOb00mzC6jhA0+EyseKzkQzwI86HT3GtElh0RVblkaxzJO9d32EjJt0HMPuMfbD6sH kkFzbokCJEkGmkZYBCuexXDTAi1iuYwqPaGaKMNLGeXrCrxmkYDbfmZVECPRLcVgv1b7Zk+NkJE 8TXmT1AfQCtJmqJOvRnSz11OWaAltF2XzUypqfJub/tz0l3c7c2rENCt0UJ6N+iJENi1c1/5T5O idZ29DHHttNu5Q+fOhvGSDZIjO7e3tLEZJ5FolBTx5I9fGGZG5bkT74NnDuTfSs623EMAhbskn2 2wbdyblzG9NPa9A== 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 5a696e2dbcc224a633e2b321da53b7bc699cb5f3..13236ab69f10ec80e19b982be2b= ee5e4b0f99388 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); } =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 @@ -868,10 +868,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; @@ -926,6 +922,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) { @@ -946,7 +947,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; @@ -958,7 +959,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.48.1 From nobody Mon Feb 9 01:01:01 2026 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 BD36F3563D2 for ; Wed, 29 Oct 2025 12:29:05 +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=1761740948; cv=none; b=QdflvRdze/IZ4+jopROmjWmY1FfHUdtyuMisqISjl0A7h7oTIR3J6aREbnFAkmNcmD5LfaEqjSX5/Vuaog2/wTNR1ewvhIcDu+Attz/iSNhqJyGZkro0CHUcGHxTjOqXjiLMICQbzQGiL343JhwHe7TxMK0oitzM4NZNxgCfIL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740948; c=relaxed/simple; bh=RkTFxLSEsp+4zVxAcSqedLbjCQMJog5pe/IGgkn9Blc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YGtsCJ0v751oK2+eKKoqAXAoB+hXVjP6PEw4tbLNfJDkaKM1I4N7aBVRAeWutrSePf9nrGc5NOqrPlEr79sBYDRFsipkW8c/0KiW9113dsJn9GAwMOIGJuTQB3+eR0iin7myI059GvmkJB/dNQxeckImPUvS4YmYrqT9XoPMtSs= 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=b8vPVpOF; 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 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="b8vPVpOF" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-475dd54d7cdso17670735e9.1 for ; Wed, 29 Oct 2025 05:29:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740944; x=1762345744; 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=fLlXh7xAPYabDwn/ZAn4Njm2Di9lLltNrVWmb7Qyaxc=; b=b8vPVpOF5wt9JlDaTglgD4QvG2xgIKO64CMm2T+dVkWaLVXk+ixqgYs54Ous4h5sVD /P5u1U7tdK1tzj9xNwl+RITgy3dhL+Uu1I6nBwPQqLJb+pfHHeKKG7rwr6O4QmEMdFP4 mTiqoC9Fk083yNJP7l2NzxRwxzXfvyGaKJ6Kkp3OcJtpBi/n/Mxg3gk0MjcVp1PFReEi vNMXQTKaN2QoMiyddEhTxXVXARDdbD2Zfy1P6/g4Wi/EPodAIKlkvuCBYeGCnHS79Qff dEvG0uYjsdlOQkYPEdZkZ5/TKRfTAgZWe6CC+aEDphgpyLqMMAvEuWr6LTdbnmkrZyup tXAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740944; x=1762345744; 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=fLlXh7xAPYabDwn/ZAn4Njm2Di9lLltNrVWmb7Qyaxc=; b=ohQ/BP/XnwrKguqtpBSNqzIB/x4eA5q5EiyK5m6mxuw4yhWpxF+LE5U/9XUSF4FZX0 icGEV+ShlKJ8ehUK29JWWfBxv6vqWr4eoYC44ldwsRKfM9Z0jwBOD9hKRIoY/3EdXOvO kqe1gwt9vCF0g//7OJB/0tk5WdDAAetzkyMiksyGJ7alUo7ZF0ymYdXPaKsrJ08uxYZH Bx3qrlnzoIE9SfLSOSt6dvbzunDsAcRWnAxcMi/JqI9FIV21CE8unUkMmfxoDxBr5Lz8 V4LG8Lq8hdEscbAvO4veT28d/R0fiKQ8+mm6Ig9wcmkz3FXHJFwSFYer/sOiKviOnDdG AuWA== X-Forwarded-Encrypted: i=1; AJvYcCW8oKIDQPm+0CQ/B8njNqzvWtl1dRZyRDwFnqUOv//EMmDN70NuiC7dVFga94c7xROlcemfrrEHS381F9k=@vger.kernel.org X-Gm-Message-State: AOJu0YxKklLNDs4glL1q770hc8Nwl5fzQc3DLgoebfSJQrhWlfmgrvUi P4nSJaUn2A5rkK+x89xaF1dx8/plk5h0+Qx6oBWeLz2y6WXlaTZbxr7XaB44+xy1f5g= X-Gm-Gg: ASbGncvGJ1w7ATAwHzpM2jsPkVwUH6rVSPUnb4rwY41yllP4ccySQNHyfHByS08eBft INi9z+IiaEnUP3Y7mBxyzJ26EOmENlsk16RrC4xI+Gt1ZB/ClAUYHCR9KiEoZPB9au9pTXlGRuo xb7WFLIaaYnLiU0tb3/YbTeq8oT0TLFe3c5adK6L1Fm4L1+oxCX2ef1hEbE2k30mmhYlDSbQWhA cFwCIgDc2iPBQu6MpPXir8jY/z6PxjVh+EQ4UsOws2vQcRzmfBlnZfjhkN0vTeKlZtAwUkXiwYi nvYmof1ynnCl/IIuPACNf6QD3TStVlMZTYyR4DweMS6lfqvOg/MSw/FXwf/bDv91IfnqutF5iNX JUM6cbHz4RCROx6eT+g1h821yFKx/OuSIn9Ro0s+IW6S5ed+5CBAmBYP62FSQmp6RsHTQBSUjr8 wGy6uz X-Google-Smtp-Source: AGHT+IEmrlNYM4/BKZqEWQR8ej984BigmtUtonPiP+Xp70NP3czZd0lZUVc4JnSScrAAUADLMfErCw== X-Received: by 2002:a05:600c:4450:b0:459:db7b:988e with SMTP id 5b1f17b1804b1-4771e3a1a0emr23887935e9.13.1761740943967; Wed, 29 Oct 2025 05:29:03 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.29.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:29:02 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:43 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-9-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=36bSfD/pPj/bUmmxO7m0DLd6JwfWjaAwqV7NJKDs28Q=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh/goZqLc2KGk7epetCE27WSzRyl46u5UE7j gNZmTvBFQGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfwAKCRARpy6gFHHX ckj8EADSykcIYcrf2Z9hVqZCvlpGv0gIcuMx1QaEkgH7lEnGn2XEPXP9Zvw8h4w2i5pbKINMSoG Y6/K2NUfD7UEh79q/RlFIaxzj5h/KYfzvjQGRC86mEZ0vh8QOYcN18O4O1xpAffV+9Q/XaA8UHT Zwj2SntueTZDRz1gMx1aDndelqLkswQ3F1NF+4lrhUqQ24SmMTJloAQxvPv5aQzJFpIMSVGtugW cU/rVt6FqGBx9VOEY35UxN2euJPI2zscEbI3qUFv5+kJjvPyWnNBkMdAxbbrkOfMCrkwXj4FD1G t2tljA2CBbYwA6nc4eICr980HvM2/+qtsa+oaQUC3vlvlgNqu1g5o7B55M9bHKbrul4E17wrx0X xB6WIOwdvLNKzGRLIAQ7EyXaVjy4KC2PU5r6t+8WprcUB7+7uw7KSndXJNThsYo0O79yHxzf6IK 6XiT111Rj0fCgb3x59vrNbOtsMPayO/tWY/cwMb7Fn5Wl6zaJ1U0uxkbnaHy+CfCZRT4vds6qRI 4AEm2WglVc+LmibGLgmNWUy3BwL9F6nfG1ZiIRHLeyQxjysrgwjM6mv7oSTPtkcnbIMXtCC4JMr bKWXQJZZ3CyhGl3mGTJuCBSZiaY7y5m9MsIISyzXxrSh045VhUwGUfG0Oh8JtB8pb9fLV1ZVUjR XvRIvQmdgyruApQ== 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 3102f5d7a93690f262722733e475b1215f61051c..24c9048cc7a31d3a6c9fb9af072= 6a8387bb3154a 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 13236ab69f10ec80e19b982be2bee5e4b0f99388..e129c4c803eaa7e7e7122d96e9e= ff187f8dd826f 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 @@ -882,7 +882,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 @@ -903,7 +903,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 /* @@ -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 =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.48.1 From nobody Mon Feb 9 01:01:01 2026 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 F2E6A3563E5 for ; Wed, 29 Oct 2025 12:29:07 +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=1761740949; cv=none; b=o/Mc4aaD72HxAUuwJC2tTK9lyJnIJk/PzudqCz4pAcXvTOIVK0SJwbaINwL+9e3MdA+sTUshdNpXiF+epi+lFd7Xa6Hv7ihvR2Qkd3z2kYykbCAPM/NZ5s9pLYTWczzAuarmhuPRaIc0ywvVLlbd3Y3D5QBkHozvbpuljHJLp98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761740949; c=relaxed/simple; bh=KHUpwyaRy27jndVwBTJWj6h9p/PHS1us3gbIrxKp/eg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e0k6dOWxMPbhdirS8SwQJSiAsGB6JFY0DfwMVDOCTJja9w41of1IYLBOSTySgaiJWLMdEEfM68/1M6TCEgsW3ri/HE3q8c0WlVeUHIxrTMUBfuuuYQED/P/iPCwFz0rOpr7UwdRuTkBVE7SHvIutS2FWmgrnwblHpoOQuUGW1J8= 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=SNf7g7sZ; 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 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="SNf7g7sZ" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-46e6a689bd0so72027805e9.1 for ; Wed, 29 Oct 2025 05:29:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761740946; x=1762345746; 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=tuoZoKue2NApDFKbLTdbDzhemOg3AhMIDiuZU1f3Kv8=; b=SNf7g7sZ4VSzN5IrbqR/SskH+sH1f6q5OZt+1youNEW9+Zd+zHN3WcKavi1hkjTcM+ t+TdRPpv0WcxJWD49a4Cpt5oMevvzK18VYwD1KDVpBHwmF6ZnEGFdZq+JkQFAesvYjlA 1BXYDPmZ2+nR/jiNKyNZwMPwLZrWGauycVDnRlorVrTfvFUUap6hJwaqv/rX2RaNUKZq IkH6HVgVBAF+Ax7QwSFYKHqEVEH/Xxp8RQMmmbWOQywjge5BU7EQFtY5FaEY7ST9DMf5 Rd8s91170hkWOPbnroYA9h/xzXHqVe/8NPfsWFgITLlPLhwHQ8X2/FmJoIwhYnY7rMSh gpGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761740946; x=1762345746; 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=tuoZoKue2NApDFKbLTdbDzhemOg3AhMIDiuZU1f3Kv8=; b=JSPy2kylQOypt/nnbwWbEqudSHCtTUVNuaUsRFQk9cU6e8KzwrsD6+0kZIXble4AIW lL+icVs7lsoWHxhcfv3pSgViRtt/ExfnrnGWLTf3pjkiq2D/gNVH79NF87aueICZY3eI esw1cp+NT63EJuPX7/8eW8rnMLgLLA+/Gxz/hBqMkqwveMI1cOai4Q7JmRRO7H4o0z3S WxuafJMiR4umL05yoxEwUVec0ZR6tgzljZ9fZDc0vgocmZT18g+254hmsSBZ4MVaI7um YtYsiCHySGikx88joogCuIanzRyBAA2NBTXUD4T/dKjt4oKwIDKzbHta26ybwvKxpxZZ I+SA== X-Forwarded-Encrypted: i=1; AJvYcCU6oPWNvyueRcfd9QL8B+gU3IpnWBgbBDr7beHH5O9XyfXBdPFBkZ2uBZfs+jVUnr8a8NBeQKn/jYCcb+U=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6k8RNcTVim0WCsLuF6vXK+BK9IkYof96PLYIacXpFp3ZmemBW rOLUNGXRoGOXL1jZFuCTPEnoVD8JEcjZDl8MyFFbhO3ep35gy+2ZDB+cKMBDs+V2BwU= X-Gm-Gg: ASbGncuPZswY8147HjyJfFaox3/nJq24ndrAaPJEdc1O4VmT0bJckeIKdsQiwh1IAK9 WTueTq+TaDz+0QL747/LJAIvCOI2Yp8qmyJWz/81JlDTnmdd2MoXne+xjnPO2llADV4xfH7hU9b 9uGR81HjcHllM+wBDfgIiyqYxkqXHyAslGRl6aku3v9J+SOyaWiUukUj1jr3tuepMcaTSLEI52+ o21G3CLic8X6oYcfMtvkZ0Y6W2bK+pSxO3MLjlq9kRYmbKtCDc8Dj1Q9nOp4lKT7hnSb1Ea0Zos /QEwcd8x/gcUuAXmgal0iyAGAeY5UQ9NUXGf5YXSggIGsJZqHzh1gYJz330gD9OXI8YEPFySodL 9H2w6f4XatuL1xEHdZU5brN/+b+yHd+OXZEtQi5uoSGRKn138/vDzCU4P+CBr+eLQLEf9cDIDs4 gFsbae X-Google-Smtp-Source: AGHT+IHwR3E1ohqgQkFjbdi+3LL+LGnvdsfijT0SDDASW8GHyDOAQXbsqr8fDlS2SZMFnYAgebrfIQ== X-Received: by 2002:a05:600c:5249:b0:471:131f:85aa with SMTP id 5b1f17b1804b1-4771e18318emr24404285e9.13.1761740946181; Wed, 29 Oct 2025 05:29:06 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69f2:5f2d:9ffc:a805]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e3a88fdsm52775545e9.10.2025.10.29.05.29.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 05:29:04 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Oct 2025 13:28:44 +0100 Subject: [PATCH v3 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: <20251029-reset-gpios-swnodes-v3-10-638a4cb33201@linaro.org> References: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@linaro.org> In-Reply-To: <20251029-reset-gpios-swnodes-v3-0-638a4cb33201@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=7119; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=eucl+zWe24QxvRKIj278K94j2hpn49dlxqon0ctdxUU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpAgh/Bf20DYGz8KasDtJFbAv5rSTD8oB6IVGFi pYQXnKy4i2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQIIfwAKCRARpy6gFHHX cuwcEADL7swZTZD6jjith1RSc0baXR+/qGR4nN8bPnzbmgh88wviHZdwotlOcwiMEksUcjPqbae Psjgml1/ZZJZtLX9axmdnmL1pZZSv9BGa6/S6OY2yhHMAatKKo+XWxdgxAQJrATr+jN384/294g dsednynqDi7eDcuJrHU7yuoNO5GfcGxrPilf7ti3qpUW0iz6J0Dau8OAsbONseFTv10CDDEkWZd BQq5Qp7yh1PLNyNWPkLqXUNebNr4wiFTfKx65w3NE74LDV6IQBDQ498VlrmvIe7ldRHcai+qyzc X+9hkgInT745mQYtsC16Ggf3Nq5+nfY845r2PQpAoycDxIvOLgLR6ruZpxzU/im54Jenhu+ge+F 9GOoPDQjVRoExVVqqEIhpHoD+MphFuEKM1vygYqr/z3VL6BGaGToKeZHwWTG6dEgxGqiiBHjBpi G/RqYkQp3O1sHl/qJIo+TtGYoc7QdpamVcQRJVMZawzTIaeJLE/9GIUViuL9pS1iYOO88D+TMnk eipaQnsb6g/y0vjcHclJYr6t+XxQKRZnMRjlWaWMg+X0rRcTEKf2PjNxTu+Nr06Cd5HjISQjjk0 gCk2tV7Ngv/fqG0sFbaG8qQPUpIln3dMvJcCvq7Xhel827nWqAEeJY618kFUGAfLgIwNWDwGM39 2moEja05nhqORdA== 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 | 130 ++++++++++++++++++++++++++++++-----------------= ---- 1 file changed, 76 insertions(+), 54 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index e129c4c803eaa7e7e7122d96e9eff187f8dd826f..4617bbac58314b1f37b937e7b0f= fff745a81fcde 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 @@ -849,52 +852,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 /* @@ -902,9 +898,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: @@ -922,6 +920,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) @@ -936,6 +951,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; @@ -947,11 +969,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 @@ -959,19 +976,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 =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)) + 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.48.1