From nobody Sun Feb 8 18:35:18 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.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 CC35E34846D for ; Wed, 22 Oct 2025 13:41:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140475; cv=none; b=Lq+N9XqmWueRv9X3p9e4w6gjPdYNShz/fp8JIKrEY0FJQJeoatUf/09JPRvlEWxC8bF6vq0Jn9ZZ1enEnT9CBGCYkjboKwoSeJ46YeJ1rwvpOI0uGuDXPjA/KHq0Bao4dg6LXaKeE3KJI4SjhS3rB6k2q0+WDmI+3Ing0PIi73o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140475; c=relaxed/simple; bh=KtuXavFSO+yHts6nDETGFNophDcbvASbEqMZFzPoklc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c4YKzanKgF8l6yCIdrVMYWsn5LeodjxzPtC+c9iYHiX3RQTKreiy/TuURP1l5GcXA0Q0vRV2GIdcGZAEt4vrBW2iGbC7GC7Z2ftLDh2Db+AH/hvm1KG6Y2z53N16yScYyqRoLw5gL1ers66gjnEdqj5DzyvkMQTzzDbpz6u1qw0= 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=wvFdPYpq; arc=none smtp.client-ip=209.85.221.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="wvFdPYpq" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-426ff694c1fso1866594f8f.2 for ; Wed, 22 Oct 2025 06:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140472; x=1761745272; 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=mMCGgThfY+V0RirzP1gdBriZ/f2hZUs3X0MJBzFD4qQ=; b=wvFdPYpqEoMl0j2A4uRIM+FWd/fKu4IscftCw6k+SLqQ1Qr9d1/oa/HI02XepiRTqx WyDXQcnhjDywz5rXbRU0+PRHpvo0Go1/3WpqY5cyKUTJOc3mm7XohuueFqz6w7J61+6Q 81tPHBedPCf+bESsjxBJxO84DZsXrWvZiQ3sBmd0DLtUBgNC4S0PrREjneOrMPbPe3eo S8DJuZDqDOJxcvAK2WmX1zrIVmWO3b3eUvYxq4Pb7i/57kr1gyJ63v1FF4mv/IKFaF3M ZdKplfRqcI1LfK4CciJdZnncOtMZRuFw0mCi54ECJ/DZDbWToOBnPxgnlVQs5wgrWtn7 /2Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140472; x=1761745272; 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=mMCGgThfY+V0RirzP1gdBriZ/f2hZUs3X0MJBzFD4qQ=; b=BIHnFl2EHSYBr6zXYL0Oxv1JJt0J5fgXp2WzA0uC7OEsS83cQNbNRkSqskFcNJwzWb xsZ5pA/Bh+OM2Qy1QTaAQ3wfYiIOiGbm33passeg29Wtp/WrPNKKylU9F5SNJ21eEG19 LXj72WRoofsTR2xncqsTJ9mj7mPtUwjRGpUMqOm4weELRyuUB3zRY/4miK09tTYccuQ/ xLrgPND4nswgMqIksV4lrVspbcFuNo4CVpsbO8Z4+Zto57eRRgTzOxIfmVUVsbjBWxdL eDIc5Q06rOBSm6qxeFpot4s09GgBLZpzI+zBZQmIRwRZGQTlzleQpb6pOhqN8/Gv6MV5 nCIQ== X-Forwarded-Encrypted: i=1; AJvYcCVvA0df6W+wLJZNHC5/KYtDcvSD22zUsIIvgQTBc40GwtUjU+oym3A1sMdwJcwH7HRxuig6ucTAdcnmYSQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwKKG1z4Uzjnv2q6f18qnDijieKG65ijLMexqbxzbw/jfDQR0sD K/lOmps1EMSH2Mn+9QQjbQFAil+jrW23mI98rMpcWR2M6oEZc/ICueLQed0Wl5dzUI8= X-Gm-Gg: ASbGnct9PcaGBRv767YrX+sKkZ5CNNlxfzVEH2Wgm6V0ZFpbR7Fvs85lW6M2dnKLwLe AJsZL5MoxTkDuxAde+3IoSRH8hyBsRack8mlVpQQZ8jk1p2O8W213NFE3u4fYAgO2gA9Gfb2Cyn db/aMILvpgwhSFgwxfY/6Bjf5KcORa1T3muCY7zRjc+CrFuLVl2IKZ8mZLArzMlke/N+zX1gCAp CD0QX9mLhbziNvFH7kB9x5vJPuyE0tUwg0R6SQCIIgyZVYNhgYQGSzGniFk35RTt1Q1ZaG9m1jc v0MKfaVGhE309ae6QKo1SwXP+tP/ywMvk0cgIDDd2AAEBKBB5kA3gv8d+x1QrXAvyy3waB9hqYS Kd+mijpIC4T50HxFnnlw9vss33BxT368VsLho1Mf2eeQnr+oam3hkffMmAeT7nTC3kWmXywjGOW gZOy4q0w== X-Google-Smtp-Source: AGHT+IEWGkNv1ghBf/K2OQ+bJlk7L3ZBRKiBQs2VoGJ1Nf+CsDJ+02T15fTRy4Ca86xVVpT2D117Ug== X-Received: by 2002:a5d:5f48:0:b0:426:ff2f:9c15 with SMTP id ffacd0b85a97d-42704d83d04mr16052655f8f.5.1761140472122; Wed, 22 Oct 2025 06:41:12 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:10 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:00 +0200 Subject: [PATCH v2 1/9] 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: <20251022-reset-gpios-swnodes-v2-1-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@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=987; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=4gUQtx1OPTw/Dg97I3rmMZzhZLKCx62HjY4kgfolpG0=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7yKCCEFjEmVRu6hBBLG85svY7H3gkvZZZ/e 4JsWArxqYWJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8gAKCRARpy6gFHHX ctG+EADVuYvKf7J97Xfy6aPL28SA4xG3bpblIA1iPGZqVfNpzaJMDJ+GbioeJ89alKEabDaWzYU w+ruZFxwFxZSIOIlrk9lFkeTTghOpDC4WDz+xSIM5VpshSj/atpXW6rzkn7TVOWiT6+8VPkD6jO e1fEYlT094ITtK1mYEz4GNkJ8TnWEXA0ShhTnnMWxbG7kpKeHwW6InHRWh+LE8kpiogZcn0Vost OCtNeLk2w19sTzReWmxSY/t+tOafQJh+aIfXJq4jR6MCXz1C9XXjXEsvWiNoMAT9sBxtZE6Qp8+ FHKNRJWjI58010OxchcYnesnC0tPAjMaOPQoIwuI9awNJ/9KX0W8iC3iBhkH5WtKPHc1bLJvJgl 93IhaHIFmlihFrerp+KYrx5rX5KNLgjSLF1F+wP1GlfbKqHXzTMby16oWXAWhiwbmEYD/zIlqI8 udCZ0CYQZMxip4iLPWZacXQg8PQ2FELWQGh6KU/PUsfe8MxlPlB0S7jZrVOtDJ3uny3tsQGw9kn JdXnSS57uEsLuE/cA3QAfq5YSvddiLa8aH/ty7FgMCMiQ3dscHtTrDenb7jqeCJjjJMDEDXpP73 FEX06fRq5Q7/W05Y3XBNiBtoiaDoCorZIceSRiUPc6bMWWNgNXXTNBcZyeu+PWTnCG0Dgfn8x/A 31KICtJHlMq7WNg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Once we allow software nodes to reference all kinds of firmware nodes, the refnode here will no longer necessarily be a software node so read its proprties going through its fwnode implementation. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- 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 Sun Feb 8 18:35:18 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 BF9DB348883 for ; Wed, 22 Oct 2025 13:41:15 +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=1761140477; cv=none; b=AS3LJTS/jqLuBDnMrNv/JlBgPGaEHoxZ6/syzpE5Fyb1jLblUi0DChBbxpZ8ztxGbOxePanePhmcvQaBT5bofF6HOTK7v8LTDfNm3/ZXMobSuIHJWH8d2AwchHf44kq4dH3hhN2bzTVZlLIbVCVmlzXQ0RZhlvAxUYfDf8VclXw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140477; c=relaxed/simple; bh=Sk8U7a9xdIv7rhl6VfQ8bi58O5W6k5O2DuGhhUqNLGA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lP+XlOZKX3MHy3KPwe+Y3xdImXFF7ga3yjeyEZRBCFpZS6lE+i3B8p/qHBIX1tGHd3EWXPNIYfgobQqRJdf2VrdBhPFB4/ZMQ+/wcNcPUc2+bIy9i20zoCYKYtGnC3aYXBpJVD6mmLkwwC2275ay+efyZv54hvCFvQO9eVPnvOI= 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=vTrxrYAX; 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="vTrxrYAX" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-47495477241so18555125e9.3 for ; Wed, 22 Oct 2025 06:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140474; x=1761745274; 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=PWPl5d9e7d+luCRqzeSP2E2W2VLVJsed8thOdmgLxEI=; b=vTrxrYAXLf4rnVEtMqjUzimipbTkjlgNQ6BlhDjppvNmtT0ezsLGfnoruoLBbK5L18 bMkRqk9gzOtt3tJvVvCp5vRvPbH9K/vcXFKexr6uzDPXKp0SIW+jBSI0Tk7q35CTJcKL PHD+YwgxssuzBtmpnImEVtNmc8pdrurF1wOO3HGa+JzqbOKZZ+RLQ0f9O2iSc+0AJjnR io8hmjWyMhJg86wvofbeqW6Yk4FSvvpzfY3YnOF6jF0f96RyFTyBMOTUjBXErIMGjuJt z14cYQjcf/xSmknd7mHTR7QoeV+naYY0/Hr1o6CAOjrMgZPr6gZBCc89HWV7xUCe/vsn z5PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140474; x=1761745274; 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=PWPl5d9e7d+luCRqzeSP2E2W2VLVJsed8thOdmgLxEI=; b=XTuYVXi9CYbZq7Oc4KUjV8cpioKZ/Y5fDxsIgnRhTBtW8vWpRz3HkwX1WOJxdkn9yR mPWKz76oXuFhIdk1h+ADynWMxUvN2uJX+tOaEOHvac2AG6LxcB3SSbiAOam53caBlVd1 hkJw18OzABFQbAywe/OuN9UF6fYj/zerexXVrmFR4vzMmuUzRgR0gDgogOgnkyBx/qvK bqoha3bSaTCLEixeoJXY6+Eap9iL2jAmXo9HT7Au3O4bUtHOPOrjGw4aLccLigSiaVs6 y5cscA+MRNxJO1ORc5769b+ezK6sdVLHLNrl11GFg6igbEgMXpLyJhfN2hjeal9Fd0pM TAPA== X-Forwarded-Encrypted: i=1; AJvYcCVygRucCjzZmQZPJvuF2Y3p8HXXr22Qdnnz2yV8wunMxJwqqc972P90m3hSO2kdTCKVhurpFl/zqd+c92A=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1grcAbKHHJa5DEs+YFGNtcI8v0K9RTwLB8EY1qL9BkThhGSd+ zuh57keLI2YerScw3wdjDHAu9StG2Do/qfmDnajc8WSYVMJ+gDwt9/Q/JQWVGXFDkUk= X-Gm-Gg: ASbGncuMJVpgXee94ddnck6M7bvsWMjuDbbHIVs+q4M7VOt7PKEH5zA+6c8Fz+TDbnO zavaeYddLz0F1g6VIJMtTO2blL0kZzwixTAkXB769mDkViHph1Xx5Z9d9/eoe9VOSgWlTxXcC6n i01ritiH1cZHOeIOtrxmV9e12QqsLNM9gkPuYpqLSFLo7NLKY6E0ovTgLx7RTzM3y2+sAiomjhf EX/1w3QwGtNPWGIr6fyeD+3Z8acS3xy9PiJXwTEWyZKkcY1MOoHIRnMg+apfgPr8DWCAy7TQnxY +wqwvVn0EEeLDvQqLQnNwDovTy6kk1cjW0rQenleEtZsIoYWQYJREiXdKA3lfeqOP4/H12FccNc VIviRV/Sjrp/tauUkJUx9eIcySSyPVAsfxd9+0CqgUZzy8OaPFM8JsewNoMsvrknz+HE8Mees8x bTXz4EHw== X-Google-Smtp-Source: AGHT+IHqRn5dOzMWDgdAzafkqM+1zXTWvQMR2Q3PRRUvUZ0U039wIwEkxcI9Lkom+tXMX6XvHpd5tw== X-Received: by 2002:a05:600c:3b05:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-47117874689mr162448315e9.7.1761140474135; Wed, 22 Oct 2025 06:41:14 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:12 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:01 +0200 Subject: [PATCH v2 2/9] 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: <20251022-reset-gpios-swnodes-v2-2-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=853; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=y2MgYQ2aQCXvNHL2MhQqQnv4he+DDwnO24lH7mOa7/8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7y2ybtex/HkkIo2MSMDjXUR30Tb7YHJVLsO /tWAKBg5DSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8gAKCRARpy6gFHHX culPD/90V7vFeKZCxMnH5nsWa2+uShCJMqsaW3dY3Afuc9VSP0iDOOTv57zBtVzpPY7KDE6QTQl ir2A4aLbHDqQ+fNEqciFC0d7Y6zWFrnoiiO9Bx+5I5EJb/iObklXlLEjR5caEDOlOqtgqCncxN8 t66dR8nx5ZmyoHjd9jz4rPWcYa1feinmdNvnmdw9PMj53VXroGNaK73zJWjZEVSgzaTZmPbdMKC myNqoj6LkL1n0+Bv8y/G0BDsFknxpdhCJtZOjFyEWFkuqVzjBdDdndmQkNrqHBJ8JOalba8DjaV pKTyxDyK/DTm5RAPJvg5Yk8Jz7afg+vKU4f93CXPSECGUaW6RY+Ao3zGj9mydMHzaLq9rFu1ge6 yKLB4y2oQEECj9CoCFsVYaP7TH5Nbm6tOljEsUgnrlwmUjQlExmnVo9UzoMye7H+MAcKWxDOB8B AETv1YxvWePbpLWBTHfMplDbP8oMeiOXaKIUR9fdJWu78hAu6fVxfVJBv1gOCPkgZg9ADBnqioa y6c4F6cpWx131BvZah3ca1wmO6WMiQjcSab6CNhwDNOku3fIu7DnIej45BcJNJRcVGm3BXQQg4Q Z7nJUiOOkHNyGa79AOxAEU7tYfOB03XM9tXs/4mBLy5m9fSSP13jNtuiSJXs9cAp1VHiCffYS9p PS34IX8l0W19DDQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Once we allow software nodes to reference other kinds of firmware nodes, the node in args will no longer necessarily be a software node so bump its reference count using its fwnode interface. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- 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 Sun Feb 8 18:35:18 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.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 CB17A3491FC for ; Wed, 22 Oct 2025 13:41:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140479; cv=none; b=GOJ8CXWeuYvZE4S9czmuad9X4atA7+fq05YUfy911OPeN7QzEkT9P/8yfziNWcjBEMpNrU/CT5zNvy5VXLNum9FgAPZItkBDQeID5KpvCCwNCIbc8JvkfB1Smy6KlJYoMYzFbNCShepLGe33EYV8rtIwTpY+oePQ6k6D6e4N3Lo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140479; c=relaxed/simple; bh=xumNdv5tHSlGiR6Uo5wMB7QnOViPzTZ1LJlOZQLZ++8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rUOoe8O3QWSyiTua/LQAkcaoM799y3bULxBVtAj4YN5++PjLYFao5HhpCrN9GWi57cVJJHi8psdBfYs9hVH2KaD+UzxjCjfehMTFq6Kh5UOIS5gMbdf8UofgqkwYS0TMKYDeniJ2B6itn8WSL62SMQfZxUStrEV2RzcgMcYQdH4= 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=1VNOiWHK; arc=none smtp.client-ip=209.85.221.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="1VNOiWHK" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-426fd62bfeaso3158804f8f.2 for ; Wed, 22 Oct 2025 06:41:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140476; x=1761745276; 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=r4k+rjq3pbnrn+KAlFDQYkobdD01FjitFCK3sS/xHt4=; b=1VNOiWHKYlPOOv1RVsWgmqwuxEs3nbvYAm7JA7prDS3bxwQauk00Evh5YEE4o8EmWD YsTNB/6Xy9ImnssnhZlFlSpDi67u5REj5NddN5K8gEhsInLqKgcN+RWZZnMdpSzZuBKJ Pjiz+8ICl2UnpUpPVIN3K5F2mqT+YCgXIpEMaazqWxnISArcbEIwlf2ZqA5/PwA5By6M hWxYq777dbrD5TJH429bcgGVysjI4+2JMHGAh6SSl8eYbxXncPiGZzOp+YPMFxWYKUSa b/9ZvRtRebxNGf7IgxZt+Ibv3MxNbHzSkILrJN7HHI40WVSR0yasLANM++1Yv1C9jpeL 0pgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140476; x=1761745276; 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=r4k+rjq3pbnrn+KAlFDQYkobdD01FjitFCK3sS/xHt4=; b=KxyCw/hlxPxItun6aVcOLBgfRhfGB6/PAk+rpCSgoqjg1z6yTneLuLQAW/3zoc1zR9 mcqizl9ShJXlk5JYHZiCElqmmnSMtyuGcCg9mFFbPoLb0S15drtCHiI/3hcD82cyM9ZU kJ9inuJqlOsF0ISYFIGlm9sbpJMi6iVlOXi6SanT8/1WYf4qmDJzcw871cz+iRUe0qQM jLV+6/8VbWDPWGBiZhRISFePELNzM5pF1KF+d2IdViKuDPyd4T6l/w4ip/r/y59u1Ez3 0w+IvasfUl61u8tID3DsTFZRfLHrpJ5s59MEI4Z3Ha574EdIN5dNYHAkp3jlTzPUaq2j +23Q== X-Forwarded-Encrypted: i=1; AJvYcCWOk420AYqZJnZGWB2nhXzGmC1oEjSRLWPi7DhrBJ9RxJ/wVmIZ4w8lQ1Z9r+8YYwAeZT/G9VuR5wiUF94=@vger.kernel.org X-Gm-Message-State: AOJu0Yznu/Yh0Sf57WNWU0+aSK6ezMTiu9v17NXM1tSw2jaSax/0OlVJ hHXUFsIDMtfqKbFZzhb3SKJc1Geb6nKpFI/qMmqECn8qgxnyduAwOqp7qErt0VUGBYI= X-Gm-Gg: ASbGncv3zFAkKzmovyl9oyqcN9hOE516LW/rsAd5EHBChYe1j//6kM0vkNQW+xm+q0J Nc+CyOQDrld9IJb0mcoo9ilXqGXvEi414BvEiLgkHllV8Sl89CtbrxmAsjtNAY9HJM2qNgFcmMU Bw+dohAwlZlxGe1Kmiu1WA+klosr12GYbTOPRj0+qY8s7uQv4THNFOk+zd65jB3NuzdPk3DlxT5 oPUZEJdTnxJR+TWoFnfybtCWDS1fXrOiK8TPv+KZwEauQbn3T3vauBMCFXTBJD3zam6DPmS4GEX qCkNsGiwtiYrySSsnPW71H5t0W4MN7qGXK0+AE8Ge7Oc7ravseSxb9uTC9zi+ODJxr5UlhY06FB oRcP6k5sfg4arI/Qp9sxGwVk1fa2CH/KCgP2hEfPkcA65IQ4/nPkXO4WWihvjxyTsoorZ9SvL74 y2q7yGPjrlQGREkRLQ X-Google-Smtp-Source: AGHT+IHLfDyL3EXchB673RpcLSv0UUAc7v6gA04DageBPZBXkPdvk44uHqu3KvEupWX+WpjPqYyHJA== X-Received: by 2002:a05:6000:144a:b0:427:e1bf:13bd with SMTP id ffacd0b85a97d-427e1bf1a74mr11502789f8f.52.1761140476166; Wed, 22 Oct 2025 06:41:16 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:14 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:02 +0200 Subject: [PATCH v2 3/9] 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: <20251022-reset-gpios-swnodes-v2-3-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@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=4835; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=ZS81+7IzW7IqtPIzir6NGPfgS1nTcIoT685vTF8Lc9M=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7zTt0c6nD8CCMyT/wCZsYMF9bOwMUJXHUr9 OwPYRna4KSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8wAKCRARpy6gFHHX crI8D/9bScu7f2CHOXGM7dLVq6qAmDKz4JY/aRgl/l9+uCKnjRoH+1Sz/Hj7wX0NjFnI47lNgoB tEUDOgeUnHUdvN4TB11MNBa7AXkDnERkBEe31BayTup8V068l9IonpW1g+HxalXhdpGdVJXLmwA HLUYxm6bYSNEjFbI3EHEmXL6uO9894BNNteWAcsKbERmDaWoLvHebFsYo7GErT9TnHX553qbZRr 5Qq0oTQL3JhWkQlvkOu0CYYH4F92Ce7BQHqbYYCCTksxg6tJn+t5wolL4yYQuzqxjRMuDeEc61E gy8hzhLqOFUM0wvypmnceDLggvtnNSf3Hsd8LgBg7i3a7SCUjrkVa4BAWB3Ze+lthKfWYAVK642 OkDbaFtUHuDjEsyn69c50VjoaZUG5qBLeKfmEyf5QJtkUhFBHxond6dyaCJNUEDwEV676Qnva5o uS6VOx7VnfZ/BpIkHWxnfTrK6bt9P7nAqksjOkNp9oUowOWJ8dwqKalhhTc43WCznMF5b38WHWc odkRu5y4SaY1n4eoXuzzI0xxj3acesE8Wqk9oVSU7KJRhB94+o+qazvVVTg7Fu9OUCi4ZMFfnTm LKQqO4Yka9L2reV4ro8pslWyU9WTxGHIdYplp8VCIC9tuhXCBzGxof8TZokqQXne5QQfCjFOK2g ZHOI2aHB/ANHNcg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski At the moment software nodes can only reference other software nodes. This is a limitation for devices created, for instance, on the auxiliary bus with a dynamic software node attached which cannot reference devices the firmware node of which is "real" (as an OF node or otherwise). Make it possible for a software node to reference all firmware nodes in addition to static software nodes. To that end: use a union of different pointers in struct software_node_ref_args and add an enum indicating what kind of reference given instance of it is. Rework the helper macros and deprecate the existing ones whose names don't indicate the reference type. Software node graphs remain the same, as in: the remote endpoints still have to be software nodes. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- drivers/base/swnode.c | 14 ++++++++++---- include/linux/property.h | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index b7c3926b67be72671ba4e4c442b3acca80688cf7..d08b914c07691336540cdf1dfbd= 77a697e7b4521 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -535,9 +535,12 @@ 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 (!refnode) - return -ENOENT; + if (ref->swnode) + refnode =3D software_node_fwnode(ref->swnode); + else if (ref->fwnode) + refnode =3D ref->fwnode; + else + return -EINVAL; =20 if (nargs_prop) { error =3D fwnode_property_read_u32(refnode, nargs_prop, @@ -634,7 +637,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..52e784a3dfd4c93cee8b35e1cef= 5e0600639ecc5 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -355,23 +355,37 @@ 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, _type, _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, SOFTWARE_NODE_REF_SWNODE, \ + swnode, __VA_ARGS__) + +#define SOFTWARE_NODE_REF_FWNODE(_ref, ...) \ + __SOFTWARE_NODE_REF(_ref, SOFTWARE_NODE_REF_FWNODE, \ + fwnode, __VA_ARGS__) + +/* DEPRECATED, use SOFTWARE_NODE_REF_SWNODE() instead. */ +#define SOFTWARE_NODE_REFERENCE(_ref, ...) \ + SOFTWARE_NODE_REF_SWNODE(_ref, __VA_ARGS__) + /** * struct property_entry - "Built-in" device property representation. * @name: Name of the property. @@ -463,14 +477,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 Sun Feb 8 18:35:18 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 C826434A799 for ; Wed, 22 Oct 2025 13:41:19 +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=1761140481; cv=none; b=oMy2cZn4HJmUjEQroIyd4OrfvBdlZ9F8EZJzgODQ+pmcjrY2tC2OE5VV3Xv9dggPubGpvjKN/gkdFgPseGoZ3q4drM30EqIERr94CYfR1uoEgLDM0MO+gumYgqeccybqJHGTW2JE58zjTIPUZ00DxEOnAc+qEMTFIPLS8AqyMv8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140481; c=relaxed/simple; bh=5pnEeKqHYnawOAlljhNqLC8nrX9toglKozfFs0IQDGM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oIQ5TYT23bBO+kGJCVuVhNYla9wrBW0IrKUcLQL8VCfjugjwKLCwjc8I/NgjhaTjRioz4DousTQBPey1jRnCJLi5GpZ9eit2mILQx3fBAXjbvo2ShzQ3mUhAoAlktIkyxLHBueR2GiU09r79NWpprVXFOBj7wCEbo5c662MYw9Q= 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=xy6KUmqm; 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="xy6KUmqm" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-428564f8d16so362098f8f.1 for ; Wed, 22 Oct 2025 06:41:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140478; x=1761745278; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=IB9li0p0kE9jGTTsXmkO4xLyhxPXUk87ZAQLNug4IQk=; b=xy6KUmqmO2LuRsaEJZ2cX1/pPNsOwI0lpKn585/62UxAz34II8Oy2nChoJav6tqtiw dwTgCYtDPgxYEtSinTFjJEEk4RwBLhwSw4b9Mkuuwnjk2D0xOvJyXcmNe/wE+yP7xKwZ dmhFwOhZwvEoj2Fvrr+IHAT8AFhAEzI3xQtUFv4LoEGvUJIx+DbVgJhveVsIDVvGcIsu wCXSfeZ7oYWurXQu5A9/M0pIEOkJsg1tK2o1kAgq4I3GUayx0h/l1pS9rOwyGpYcCEWB 1HUf8NUS0NKgQnRiR67/+97mBN+ZQGc7vnVp4fEaonKWW6R8AeBDYgZ0ZE8o0J1vs1yX CDJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140478; x=1761745278; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IB9li0p0kE9jGTTsXmkO4xLyhxPXUk87ZAQLNug4IQk=; b=TVegbNlSq+2T65o226PpDNXtqZ31ca9QDSt4eAFFzEhvNF+0dg3bvZ6HDmcWIy9UQz fkR75wXFNg55lKqpQW4p5ufUuNiHdZeJgIe/2SdokAKbgrARskHzAKtEDoNJ2D9UhyTk 65uBBMJ7zuqA6qrhJZekBSFzpzLKko5A/XVsh6RuAdD49gTKZK/72J2dJrwA3ZlKbBSM Yig28b8aL4shM5dFJErd1o73OgxJT9jsZiNX5nRot1IukkZK5iuwqF3O5+rar2+g/wDr ehfeFrXtqcNu3Tjt1LFwy8lJsv90rbIxjLW6eh7gFckpMkUKt1ToYKBYIBJDTr2tuZMI AeEg== X-Forwarded-Encrypted: i=1; AJvYcCXfBG6wxhu22saY4EYjVCWUun5lvDyQy5X4ACGyHp+iI5d2Q3KSbGwtTSjsvdpV17T2jTMVpauY8AX8VwU=@vger.kernel.org X-Gm-Message-State: AOJu0YwjQ59ZAbnjWJzLHsZZBMDyWPwrcwy2wOj0ZfMd4a4Fik3UHUSH ZaQcOQkesojqWm66+vwrVRFE0wNGjMMkLlCjoRsjs1JSIegFFsfCvuJG987i3LcrOxw= X-Gm-Gg: ASbGncsSiNJ1YwNqDpKY++8LzIMOP631HNwNeQovsDU4OqPxCL6G+ngP/8r6B41b7/y efDNVJiCsncRHYobpqqo+TWvc2y/II1PuHnvm56RTvHEWFQG7hT7w5bvVkNwh672MVOUG2yWlo4 KXSyWsQIWFf+eAuNujJ0JqazyFUi4zs4eXw9khM+9+Pv4U5bAJcuxSmZbaPEn74zv+eOEFpA8QK p8hCjaXoQ3Z2ez0Bp9nGyi7bwe9AWGh3uNZeuW1sATr++iNYPy5W6y5vE5rJWJXatdZsQH1Epeh iIG4G2VkbRrPxRv9ctLcppEkJ5gcCJHzBg1TCMdDb4dgA3ZFVbE4sbgO2ldKyqnxMffxfCOjfkk RNFgdsglOs25ApF4IlRxnTjC5HP8HpWPBKfmxo/fPWDZVVxOWC660nT2K6emAld1Ts0UR/Dnb5f xfiM9JYA== X-Google-Smtp-Source: AGHT+IGIAhHl3iBbSsIlZxptiKhSeaDZ+A9/kpiciRpUjZ51o0YXjN8IimxBA1mLx2BidoALCb+2pQ== X-Received: by 2002:a5d:584e:0:b0:407:d776:4434 with SMTP id ffacd0b85a97d-42856a89d28mr1422269f8f.30.1761140478163; Wed, 22 Oct 2025 06:41:18 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:16 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:03 +0200 Subject: [PATCH v2 4/9] 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: <20251022-reset-gpios-swnodes-v2-4-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1995; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=j0RRfSQSsKVGeiwXPp8qsWRU8zLDV2TSTGFBIXN+YdY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7zN9M1F6+4W/2WiZN30Pc19ffcx3bG0PGon jferVnkFZGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8wAKCRARpy6gFHHX crbjEADRzMnnMUvUDGxPFquwAawTcGYdsAROSzDL8Hjb3McdgxFrLrM4VxiTYVIV6UQOECIo4of bYwC/B/dsBs1Wpwuk1R0B+4axozYKb43/odBDt6YX0vD8p/5aKc5liBbPWhr8wT4xqHsf/HVDEb trKeSG4W6WFkHcaxXdhql7jNUX2dr7Qxnif77badixcUQiUo7q2Hq8k9d4X9maW3/hqdXqi0jX/ ds1Nwf+sa8fzOmWdQXGFbV6j+G8uzJKpM6T1a4mAsIgy2FbVZpuvTaBz9rRNUkGD87VwUam8sou biE6gUrd/l9UAWIfXTXesmxNfAmTpj83RO8m8ifqP9lree2muENZiae2m1wYYGmOb9JsgacVMp2 oFJ92Kjv1k+ZYVTrtejwxhboPJODsF8ns0sCz4nDmwVPEYHyT7DRLJGLIbx4UbM52m3Cftf4V1Z ETZedSDcFXVKJ7gtB5C3MmdoYrP2mrIXZgtYWloN7XxRhAqNUaVSurW/mCQrF5pDoTAW83r6oc8 5J573jK0TIE0P57RjVYLtTRIaPtjohoUJUatgKAmVlA/91fu4VnD5GXH9NXc9c0hgQRtsXZpVK+ sf5J5Xl7Exdoy8Z+lDl+L12ndos96H1PRmS2lA59Gsu5ZEHgpZ+Smp1fxX5UrZZxTD13D+Mgtqb 9h4XB0oRz7I4zew== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Looking up a GPIO controller by label that is the name of the software node is wonky at best - the GPIO controller driver is free to set a different label than the name of its firmware node. We're already being passed a firmware node handle attached to the GPIO device to swnode_get_gpio_device() so use it instead for a more precise lookup. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- drivers/gpio/gpiolib-swnode.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c index f21dbc28cf2c8c2d06d034b7c89d302cc52bb9b5..573b5216cfda105bafa58e04fc5= ad3a38d283698 100644 --- a/drivers/gpio/gpiolib-swnode.c +++ b/drivers/gpio/gpiolib-swnode.c @@ -7,6 +7,7 @@ =20 #define pr_fmt(fmt) "gpiolib: swnode: " fmt =20 +#include #include #include #include @@ -26,23 +27,20 @@ =20 static struct gpio_device *swnode_get_gpio_device(struct fwnode_handle *fw= node) { - const struct software_node *gdev_node; - struct gpio_device *gdev; - - gdev_node =3D to_software_node(fwnode); - if (!gdev_node || !gdev_node->name) - return ERR_PTR(-EINVAL); + struct gpio_device *gdev __free(gpio_device_put) =3D + gpio_device_find_by_fwnode(fwnode); + if (!gdev) + return ERR_PTR(-EPROBE_DEFER); =20 /* * Check for a special node that identifies undefined GPIOs, this is * primarily used as a key for internal chip selects in SPI bindings. */ if (IS_ENABLED(CONFIG_GPIO_SWNODE_UNDEFINED) && - !strcmp(gdev_node->name, GPIOLIB_SWNODE_UNDEFINED_NAME)) + !strcmp(fwnode_get_name(fwnode), GPIOLIB_SWNODE_UNDEFINED_NAME)) return ERR_PTR(-ENOENT); =20 - gdev =3D gpio_device_find_by_label(gdev_node->name); - return gdev ?: ERR_PTR(-EPROBE_DEFER); + return no_free_ptr(gdev); } =20 static int swnode_gpio_get_reference(const struct fwnode_handle *fwnode, --=20 2.48.1 From nobody Sun Feb 8 18:35:18 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.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 18F3E34C99D for ; Wed, 22 Oct 2025 13:41:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140484; cv=none; b=bdkQdCCnI9+xtRCjhc+e0lPYaEpgT2lOX4Yf4neh6epD5n0MVEK6LNfnz956+CkeGLc+hN2GpcCZSBr6KXMAWQO/Tze5vk2g9rOzOmOcwkRBQIrKLgX4i5+/W1wzmSHoIgle6/BLxQ43qgUzqdqNjRx0FdweqbjQc0crDOJ+0wE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140484; c=relaxed/simple; bh=LiKNRN4b6Rog3bOF2ZYrAAug90U1uNL0NBVGRtkRLdU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DJKXXTUeT5Ud/iRIrKMIfKjVw2+DEuNZNZ5jpMLBE1ODNpY3Sig+x+evuMlKYIFwf+avT2m6+gQd3UgNWYdc7VQ4Ac1j2hXnSNfobmg9+ifld3kO80Nq7LKsP8fn5qtVvj62eO736bjky6JvBi+k5gpo6m87ktdoyhKp6RE9ljk= 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=uZU6H8ar; arc=none smtp.client-ip=209.85.221.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="uZU6H8ar" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-3ece1102998so5639640f8f.2 for ; Wed, 22 Oct 2025 06:41:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140481; x=1761745281; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2UJiGuxpdr2uQskb5nJaM3QuQzryJ9Mudo5s0IYG1NI=; b=uZU6H8ar69kL6hcDZTSxOk/aSP/k6V45U696XCd0RT7r81P/9OwS2h3GFbUPiFTEdE wUj+MBa/ecrS8anixKaPK3cTkcWh5byWDRt4vgmNxpGDgZlfPuy85TEzjhyP7XYgt5+4 s14IE3zlUDEy8gZUwT9aatOCeFRe3db0jiret3eonlAWsJ9XR5xzuSpXNLXUV4twDNej mWQgwPpYQirCr+eFOsi5o5h4EXjvaBBR+1PPyjy4uxqbIAk5Z9REBQ76+QVuWGpt0vXv pgdRmbpBDUBBGQVyAWMTdBokNfS8HotmkneFuJnwh5Zib1MD1aujYatMTAZTMd73xSdL N2NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140481; x=1761745281; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2UJiGuxpdr2uQskb5nJaM3QuQzryJ9Mudo5s0IYG1NI=; b=VB+CJ0r3/Nz7MJC6b6H0fp2RuPjQ6u8GBC3tRwm0FD3pmlsjdgQmZ81cLebjF51EyZ c5sFtyrUoQ8ode8zumOw94XyaIC5uc6+x0dbIymUU3XmDtV/oIdtujaALVLBPGBeLfW6 o00uRjFtqCaTeXQzzZxRKG5lc1c1Zsk3DFD6baTj8WRRCgbv0K4LYiasDwNj0MUFH2H5 BdpyXvle03X5ufhSKNqBKlb9EvNCCG+YPk8FixnEw6sN9XNU0Dd2x4ilqM4p4u2x8+So 575ffxXdqamTomGdLHTGfj60UPcMY+QxReMhKSgGXtyc5Q9zSxBkWbFEqf66wgoVwom2 NNjA== X-Forwarded-Encrypted: i=1; AJvYcCUFMtP3XB10/21bza1KvdUwaIsoGDIfsxImYC5dRISZLbQFku78/pG6JrqYvEOGewJlqgSnhndsuw/j9wI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6RW4B6HMv3HviOnsV1r3jEF6Q6nBfi2E9stqUBV2R/M6fhVUG AXs1awano8TM4ugfc0jLF7qEe4KKZd7EkfnJ4elEIuyHsTTzjyP4+d2ihqonxxvQXho= X-Gm-Gg: ASbGncsqFar814ZJt4TUyJgxypSoD4SN/c/qZGDpIRMOiAohelfgvIVO9BY2Ldg1WJT jCL5DNWVYA+6MDNyHoBFX2htfe7vci+GO8PjeWArZWGQTot6eqRdfMl9hdPAeFmvZzESx30fq9W Q3Ry9V+KCsKtRjKE9pzT0PD+YdEzuDvVLvPHqm4tE+b0YQL9ciymo77oq9oORZSL0xSrCA43+ss CoFvWpE7B77z7o0SZQk+C5ih8H6gE85d/ybCG5Z9cQFtn5xPq1w6Wvz3/0qa4IomCzu34zc9K8T z9heuMLyE/gP1OMzlMEXXqq8T4cpI3ZFOzv1X5uDi3BFRrUOeB26ECj4kEwFaoTWKbUvT2K+f7Q 1gbcD+hvWA8fbq8RYVpDHi//5AF3KzCNJycGXJA/K/skYnORS/4DNniBU66nJ7AW5+sOSKMk= X-Google-Smtp-Source: AGHT+IHjMRgBOQgbuIn/UpGEYlh2Hej1FZDXf1SxMg7Iy5jMo6Pqu5T4kyyalcCuqxuYJVl6o2GVZA== X-Received: by 2002:a05:6000:41c4:b0:428:5659:81d6 with SMTP id ffacd0b85a97d-428565a6ce5mr1176626f8f.37.1761140481360; Wed, 22 Oct 2025 06:41:21 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:18 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:04 +0200 Subject: [PATCH v2 5/9] 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: <20251022-reset-gpios-swnodes-v2-5-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=992; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2oDrBv8aDfvA250bRkDwWtWP1E31zoeQQskPCFFlV80=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7zFojMX/BJEyWXQEVvBwAs+QrpxzbRZ4sCS S6vT+Y3XUmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8wAKCRARpy6gFHHX chnbD/9x7bQ8Smn8kXxfRUM+Av0UqOltSsg5IHmwdwaFhelxZoEKxAW4y7xOeqnJuV+eeCClxKb 16JfuXEeIEndR6YIqL64BAZYIVIflSMcE7xQrvMGnxVW2MS77PxNSWHiRF0SeV2n3rkJICh4x4J qAOUCwavkRU1hkUv1gfoU5b2r3CbNx54Xta0tsdRzIFaCvYKjtWxawJ7RcZG5dACKQkuavLnYAc nNhswWH79fLH9WjflU41HROZIfilLXJvUVjUyDR8hXc3Ak1h9ncCmf4FnrKT8rWAReOtphdzBiJ qZyA8eehsBO/O5YgXCdfXsAYcdrLG2x43SRFZs571L9lg1OvtD9E5Nk2TDuZb58bJ5g2qYEjvmS KkfT4D9WtRo2qAU8bAJFoSf9zraP7hSU9tzpdDzOgMnwdDSZmsHnn4t1+rHYZVmu6Y0tixGjWZA RChXWF7OlEFwYwEcl4ngYsjMpK2GszKm86MVW/u0tux7xVM9q5muEnAhLQzVLFAqoLsv2jjXCfS DKPC8DXRLPGLqtqBso+edgydbFLfXn5yvaU0pfd0sTjfvwA7DSE3c96gHnT1bO/OfTcUQX7HHSJ LMwE2YxMUL5h6hCSEQO3G7TqOcAWT7BMNFfy+55MDdHrl4Q/YVh9RlHy3xa9n5Po1PSGTn7CEN9 zuWBn1MMVQV6hIQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use the recommended macros for creating references to software and firmware nodes attached to GPIO providers. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- 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 Sun Feb 8 18:35:18 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 0F9C934B19A for ; Wed, 22 Oct 2025 13:41:24 +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=1761140486; cv=none; b=k94qFfIIR8FJ8hfy0iIxTbOKcIYBz5/sVs8kHEKKWc75Mb4RMmevJjH8WrOcYnlQayWVJXmmmOqGabNJCfyahiDPM+ZRgyaO5nsHD3XaASD8Z0IIXVxCemT/w1+qP54oqEcdyxmgAwM15D2ue+oLBlfnOBWXqvJCbINW5wzK4JI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140486; c=relaxed/simple; bh=Wl1fhQY1rGkK0sqqeQ919W8Y5zt1r+WQd1ilNvMu78k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WHmT/IPCx/H9a2Jrtnjse3jvpLUoOQjA6sUqDYScYhNWkpxrprxiCcLpkB83TkN6hrHh66pZpo7/XvOEPKSlu6OCplwI68i6euIuLrqqtyO0+tx0HRDSOGpbHom5wGKg6mbWkrV9Dk3KU8I1Vt/Q4IxY3/+jyJj/6uATWJnipho= 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=NUV8QiKp; 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="NUV8QiKp" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-3f99ac9acc4so2341498f8f.3 for ; Wed, 22 Oct 2025 06:41:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140483; x=1761745283; 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=fka4GOWd2iYzDb7Bo8GvMcm+GI6H6Wo/3syX0K5IZL4=; b=NUV8QiKpOtbAQ0bzcabcLV6DlEW/38wt48oLA9hAY1ayRwRhQghzxaRVNXwyeNdON4 gGLx6cTmuZ1d+L9RNRS0HkUdi78x8888kwH/z8TE//YB4q6zPVgpuz8k+ekS2gSYqDCg Gxch3osEbxX6KB3Nigq9fwSdyVR7fwE8x7QIw2fCw5h/VJJE9ni4Thw2Z85S2OttCFjB nm9fHC+4UB76B9ZVPBr6kizfNNu87E6fBZSyouEVeKAns/4qEwnaBA+SRFPPqaPQnA9u JTFLsxmqfk7T3LH64OGwg9gdszrV7lXtHzur56FtgSKSISEhHCffOWqGeI4liB34dtAO qg4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140483; x=1761745283; 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=fka4GOWd2iYzDb7Bo8GvMcm+GI6H6Wo/3syX0K5IZL4=; b=cOld/1Q6oTltU4KaIvqCbPZd5AkVlqZ9B/uJhzyOjGAYRBYec7JmYia8kNPhO6kCba k8noN2DSd99a+meZNg7nR5cLeRrBsVJyTb+gO7dZJv6xLQi69K+pAMTitylu05LGsBDX 7EVAOVLQ8BxFvjZ1ainADcqlh7JQTq4W4nKzmzqULGnH3/Fknr+MB4SDzDfS1czgP3A0 857omW3U96aDga4aXLCTW3S5Hv4/lwMSMnUKXzO4W53qMmE7b/5qkuAlAg/uog0uHWtF y3SmDNLa79g8qeu8aSb+27iXrpJEXJCyEVNvvdkrKhR0HcRJjBZRiP44hjOrVghBW6gZ IuJA== X-Forwarded-Encrypted: i=1; AJvYcCWHzDGUZzE/Z3ga5jMDavDDTO+WgaF9ZtAun1UFXJNEm4SG8X1dPVonqV3X/wVaPDM7/i5tXJgm7T8WzHY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxg0apzdCBQVsZAC+M5+7UDt74kh++QBbp/3l/BlNsjpo3ZQ7TL 5ue3iY7lrM1rHpsmnJMpSCh4fgaadg0kMmxhedPph3WsuirZZZbcOdiEwQUI4RhNYe8= X-Gm-Gg: ASbGncsK/WKAva26d3acBuXtYuC3o/OvEmncdtvkfB7vz89ivcNz7YfLVMyV2raLwvq lKB5U/WickWwbDnMPnpF6HDiEqs5kKprfKKi8cewL37J4/K/QkAOXBbcRxnjEPEW6i1Fssw0sXo NANJUZOLXyJiWvg06yRscE0sFchIJAxIHe+SU21J6naDd00/IYHd4VSlSAK2cAigSqhjAUWFGNv zt0pyNvoUCZceVuVAHYvl14zuIaC96C9D3BDF6rIafDX1d6e7IhtNXufIHgttAsOCjMtUv3x2Jq NC6p5b/3U5gcCxrtBx0Jw5AtnhUHzvJdCGSBpY9DkaQpXCmCz3EgA07/5TEfKQGiga1J/Zl17F0 cND1+ufKy31uZpvqrAjVPYZ7DqIxkVp91VNOxQxTteOhhmjCH/RuySSfCLZEp1n1exJ2Ab7k/pG 91UPNzzg== X-Google-Smtp-Source: AGHT+IFtGxupvrrz0hEyPkQmR4lio3If/UgF1vzWJPCwH83IGY2c2Ss0pfjXFwLXK63D78jhlQy8rA== X-Received: by 2002:a05:6000:2884:b0:428:3f70:4b3 with SMTP id ffacd0b85a97d-4283f7007b9mr10981225f8f.59.1761140483451; Wed, 22 Oct 2025 06:41:23 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:21 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:05 +0200 Subject: [PATCH v2 6/9] 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: <20251022-reset-gpios-swnodes-v2-6-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@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=1149; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=5npitvf0JoMP1eHJw/QnxV2d5U00sUQL86r2ZKFzddU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N7zY2qos47RUa57cJk9XHOVpyhKy3o6I02yJ GbC3D581tGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje8wAKCRARpy6gFHHX cjIpEACPoNgcXFMZIb0kvxXvdKY4SoRGAPldi97mlODq1eEuXwycrzwrttSfai2AmUL6CjWDRSp GV/GEG7ibAvQUl6c8cnILE2zS12LA3ooGFhIBherTTe1Acx+JDnsMCJHNxdzFUWiWfxYAkFee4G qo0gJLv7iv5ezTuoYNyXlh0/PeKa6uqmmj1rLHmS+a9ZXyW/tjaNPZMmEY6SpeXjIWfxgw/dX75 05ubxROI0yIsMjUp1O/BbYzFux/CPvLEXzfSdlxiEK85+Fw4xtsKVNfYxi3QBBs5lvGkg/OCHbh YXbjorgDSp37ROMyPDboqwj1JlgzYIfOZjBLTZusE9ZCp6D91Wn8K2kBKbI/IRVxev1wAjDC+xQ nKSDwl7Vf+MjEbRSu/zoFonzq24CcQrEbzfJUmoRD4jCVA+pgMnYzjhzFrvaBsBh1DeK7qTvfcD sJl1+zluX8rWMQDaYhbcD+s6qbaUxq0bZPjRbUEl8GitTlAHWkeDovPFaTXa7U/qTJ+L79WJqc9 FdD/Ix2bizs3AnKLJbkrC600gvBil5Dosh7t7/mb//FE5oHJRACQ0HQgXPfkFAmSbsr9G8B/gE1 cwRLIb2p7JARNhsuBjhyl8nrYNxXj4JtL4FBztjKV8OkT/sP6iKVidJtK71KEFkSu3m8+rINnCD m2RKYnOkKVSxo2Q== 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 Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- 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 Sun Feb 8 18:35:18 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F226734CFA7 for ; Wed, 22 Oct 2025 13:41:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140488; cv=none; b=jDbTkN1rqMdOXgwZKcTStgK5oBiVQaqP0G2GWQ6mOeXk5liXOBr69BYKoD9HhSaaYs6xMIEKp9OJjm1BsqjHISQs2nzfeZJVJXJQAWc/IBbm3aUjO9jKl0f33dIbPhGDYsVCMVoCLzkzlxbdcVhoek1yIzxVimaQxyNj1mQESIs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140488; c=relaxed/simple; bh=K8U+CHaEDTDTAOOAhIZGQLKRldV6biiXuo/pIPzTEZM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MMDeEuRbMlHuSE4mR7dLz/mGXeFQgJmUmAU9E624NJYQGTrP88JzkoK5ZavZKIv9po9LAG8BWGsRKt90e5duUXratOdjfsyA7euvL3PE6yk/E7mgFqjpeToAy9QMn4HcLBN9dzTc6fjEv67/ufx3/OUxuKc+KwtYVY4N4op+mj8= 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=hDbl+cls; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl 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="hDbl+cls" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-471066cfc2aso21197355e9.0 for ; Wed, 22 Oct 2025 06:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140485; x=1761745285; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6pKa9jDqQ70bpsXEO6w9amEFdc6+U1mZOoJWBfQBYnU=; b=hDbl+clsC4I6duTYcdmEXkaRVm7iPBkIxr2mHkRdQ6JCgNN435e3uD3nNcvhTU82pt WIV55BNY0Teh5aBk64T7oKRQCaU4MI6hGuj9mPP+b/5TIaAZ+MapMvaynY4RP4AYWZim SOcsA2bBLhVAHIw17b2R047ieFBR4Gn9mFp4r7cStVrT93z16BDBHcLiKL61R37w5MwU haKfATbEdgLGtVn1zvLAKBFYjKMvEDP84XP52Zb3C5OKD//9pyQiFfXDRCoDJn+y1bjm rydXqxnKwb1bok7PW4NJ7l55CJFn8TUJT1EMhQ+OsFjNvQR5P72Q0jYc+RlDh1rzfkNj Tg6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140485; x=1761745285; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6pKa9jDqQ70bpsXEO6w9amEFdc6+U1mZOoJWBfQBYnU=; b=iMyB9N3eFK4zmDq8h7txJVBmR//OfuIOhp0Ulww2/J5MACdtLw52c1P2EEiuFf7Op7 216/O2t1PBngecpH6SkrzvwkAcQQ5uuFYdgDozRXXIo7k4/uMU2b+KMV4mp6fN1LJWEH Ay0NFTLBzl+FAV2FeTHGftPFvMpOgCNZF2acFNwS22yok9ea0/WNvEqvz8gAQxlajVNv qcI6FlK98kw5DtSB7JwI6Gy+2332DuXJTKnoCcQeZVJCslHkcbqX2BPsX5IWZ7DfLNjp 03jhgaEIxsXdjxpF+NOCgIj5q7n07DxcAT/Z1d14XM8E/g4pLm+4qla+1HtJq6NE8e99 m4bw== X-Forwarded-Encrypted: i=1; AJvYcCW5PMqKcajdDX89GWsAaxUzsXNmynqC9SXjXqRGfl/Mpo8YFFbuXO/sMzxICVa8vVaUdXehcOu2cGGfxbU=@vger.kernel.org X-Gm-Message-State: AOJu0YwUN3bKQtRJ3RX3QPoUuiGky8idHKnKxY8M1uSdF2JMb9ORSsE9 b8yw94Mg4VbbYZYq6jntg6MZsG8TsJVk265oKaqEFlvnU4AomP2ZH3R/pQSET6iLT9Y= X-Gm-Gg: ASbGncv30oCUZkpt5UVUPAbfIIVQsrabsOnFpV/dv0UWTrlNkpbSYs+/OucHV0Q/E1o dw42VtsrlKSQM89zOnrZK3q0S64X7SGsMwMs0WFuBygVTGv2XJrUr63jdNVbHe9KLIguYTX0uSd 73T0u5InpPCbbQ+w4Uu+2HUjnOIxSF7uNWKH53e9AwFpdVFSgJR6xC9yjwHmjj4L51MI2OJZzbq L4Y5Em2rLjePCe8EZU0Gq4+sHVazGykYcJCXmBe7+HZdrtyMWiei8uSaFZsrW1jkPZ+TqgvDoGa FpevkzWDjAM6f2P3IYI0W3N+8dapCo/7G9HA/6oFoBycT6ReF/1U/pTh/kQ0PaA/qOiFbLjQMWr X00j62vn+0uwYta5AlaquKUulYmz5AybSlB4sRzvaZK/hQzBttkBVF/GLqhh79mAuKScfnjw= X-Google-Smtp-Source: AGHT+IEWodi9VtfUFgyR0PhAnN9d1R5dKHAQUd7Av95doTmMXw7eZ/NeFsiiRrgT3YqE4AKBtoHKjA== X-Received: by 2002:a05:600c:64cf:b0:471:12ed:f698 with SMTP id 5b1f17b1804b1-4711786c793mr167093185e9.8.1761140485406; Wed, 22 Oct 2025 06:41:25 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:24 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:06 +0200 Subject: [PATCH v2 7/9] 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: <20251022-reset-gpios-swnodes-v2-7-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Philipp Zabel , Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2973; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Zc+xs5tXGUpl9lw3Fpnc7se6u+D5QtL6RaYw/hFc3wY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N70lgZq/69WAbh86SPgtuNEqqEozH06DyaiZ R6ZoYzwJeOJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje9AAKCRARpy6gFHHX cr1hEACB871FkPQGyrxMmMwg4Chadg/Dp0ONPm/eImZG1uBp0NRFosuslDu84tSGaH++9yIU6VJ 30U7x223V7RFMO+5zEFa6uo1AMgsqIu+3DRvY3JINIZ7HMQgZDf/2WXRQxTgKnJbn6734osLn/0 WhizdzOz+JgrsPQR7daT7UtovtUOTpHGWVL0mtvVLQzYD9x/Ex14afMFoaINkbtmhq5le2S+fft EmUU28/S3OyHpjmWnBgCecSbmmjA3j/yISgPC4jbCq4tzE5VSQDzxSiRFSKz3wYgEh07R4M7R9O WKAnbl410ijLHiSyMLtMpLzWqfRBj35Q9t4YSaSGNpkoqbbafkCCWhQjDM7OZi4XFIdR0vRA4q5 tvDt0eT5IGnihe3xmv1lZBGs/JyY5WF9n7pQo5j7hzrh23aADGI4c4SrYMumIVqELlXe+p1h1hw 89gQqssC2sBn/FnySDHZGk+brD1N/v0doEXLKQR9iIAXMIan1GyBUFrcE7Jq34VttnXAoGfTMeB udmkYVvLdmyQJIe3QTxMF8myvfyxVcdG2wyEGueXWncvJin4xjcRwwcEXGUTPYm4kOBN8MPV0yB NGXDrgXjDdN39wYjnDccEB6H8swXqoeSf0UBG0CG4pNSTOjHpAmWigReTw5WB9e2Vd9s2XOhBns xjyALBpYdzZdzRA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Auxiliary devices really do need a parent so ahead of converting the reset-gpios driver to registering on the auxiliary bus, make the GPIO device that provides the reset GPIO the parent of the reset-gpio device. To that end move the lookup of the GPIO device by fwnode to the beginning of __reset_add_reset_gpio_device() which has the added benefor of bailing out earlier, before allocating resources for the virtual device, if the chip is not up yet. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij Reviewed-by: Philipp Zabel --- 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..ad85ddc8dd9fcf8b512cb091685= 86e0afca257f1 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; @@ -919,6 +915,11 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) if (args->args_count !=3D 2) return -ENOENT; =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; + /* * Registering reset-gpio device might cause immediate * bind, resulting in its probe() registering new reset controller thus @@ -946,7 +947,7 @@ static int __reset_add_reset_gpio_device(const struct 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 Sun Feb 8 18:35:18 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 3432634CFC4 for ; Wed, 22 Oct 2025 13:41:28 +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=1761140491; cv=none; b=maNdXUdBYdKpns7px2jFjz4nhzBcvGiK+kT210N620mSZy7+pcdveMSKfjq01u94Q/xIgx0X4lZIF/B5bxLXsXL2Q6FRoSrXndNYFxTNjDdJffOmfBsPOgg3xucE8JDR/bQdWv1cZMOWgZ5fD41mv5AcazFfq0wRePurFc/sHu0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140491; c=relaxed/simple; bh=m1JdDoMgh0ca95Wdi4jbY82dvu7Rf9JBxKnwAoP2oQg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sRWy9MvbtRKRa/8mLFVZx2gU6sUL9b95R/Ljr4tjeuGwMdWv6cRXurJ1wSI7P81s6nStR9uyYlpm7hTDBQnMRehQtQz9igscIHSlQbzWNYxdyxVmk7DQTLjHgUnn7ftDZMFhSuzAwVR/PPz8nvzw8Ysh0pEq7zgkxA9f5/DK+QY= 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=vpfAq8cE; 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="vpfAq8cE" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-47106fc51faso82142975e9.0 for ; Wed, 22 Oct 2025 06:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140487; x=1761745287; 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=t6a1DjmvjfMTN2KJlpFLKmRLMiMsMuLAksFf8E70/QQ=; b=vpfAq8cE7LsNu6BAL7Vt4OiVZVbQ/RuHf92p9rg6iGqPSYlleMR5IG2BNPfC0OiuNV waOHrqMfWXVZUoXFnWwl9An7klGr+83QwOGJrmZn7EvkRpq5eNFKZtN6hRjvA5oqmdms 6iDRdZgcKD3yUWt6dnq0jg56T9ubnuBUeqSJFdEALTpbVDStGcdj0S/3c5EG1TmlJkqd X1eh9YT0lyxqBcs/PJnmzMu4QAcmx5ncoXAmtWkSZpN136vj5AQZ13xBd4B/IciFc5Gu S1l/2Tq/Qxknlu5SekCY2qxhcTtHGpOZJia3pxqBqt4Yr0E72CmfPoNgG/pok2DPXTec JViw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140487; x=1761745287; 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=t6a1DjmvjfMTN2KJlpFLKmRLMiMsMuLAksFf8E70/QQ=; b=b3gZlRNJlXpIE3gBahlE/BEUafv8knjSTQl4M20agdUFLU3Zb+7YoeAiMHkniEP2je 9znX2FTTZuaGoNbhjwge/nGNI0R11dxzPl7CO6zy14C+8EDfHKtOFHza75rSISoTN0Vp m9Go2qZnLGw3VXnsUQd36ECHkZSzbapTqhSxSURruqInu3lpePKQkAnA2nTtp1v7NrVT qw2dxu8Fz0hRVU+ABIeHQYkoj5VE6E/SGIIjk6Nc/sUMcRVQD0v+qdtWd43HdiHLzZcD RTwetlkmYBScF/3i7H+ER3kAgoFpntNfRldODiN6+X2Cywgj2O/lFeovYzx3VaiIsk0H zLYw== X-Forwarded-Encrypted: i=1; AJvYcCWEJtlG2+SU8YoJMrwKDrS0RxFLaOw3DWO9phxdPMERkDhAYNykMTbQk/4XipJJGIUFGA6TnLrCqQHRY/c=@vger.kernel.org X-Gm-Message-State: AOJu0YzxjxancLCd9PI8ressVsl6CWn93DdPx4vbQc+ql7hd2EX+6nZH fQymqRuPJAvUbiiFPJtwQeqEFk5DPCErFLf2jSLuEeDT2AdTJVgslkxH+ebKeC+fQjM= X-Gm-Gg: ASbGncvxrOMi6k0DYdtzLjkFkHfr9/uC4y7SbPw7HBdEYfoBZTVvhPOuP3kuYKMIGNO lrkTrl7heX5QDl8TDhWUUJO9bvglnzPH2Sd6AtvMACnKk93m+soYf1ai/jrBa/Hf06JcVzsLVbq B/ikE4GacVefP31aghNBplh+UTYXMJGAJeWrPCCW8z1ITeDw8XKpR3Vu0zJSBRTDRxQdGGFYV9a RW/sqzAnfyNjMoOODLruIh4rF5doxrFoDCTwk578CApV8ba7RQm/GzqvUoGWRMBfbHr7+2JB69y pZQwCTFSZMiRwXz8zD3DeHtYD5TBrCSRwcTzWM32YMgiwwH4/2mke36xi+q8KEyaAChZXcALhaJ 6aws6FrFF2Nqcz1zmvVI+E/bqJWJ4gODCrAX8YYVu9iI8QLcvVBqmE7kNcpS23X2aGt2r8HvPmg acZot44w== X-Google-Smtp-Source: AGHT+IHpoXoVmPxGH57ApO6bnzlIOoT7JPNqbzyRJBdcn3OmRzck3tv7+ZKYpLI8FbEQF1XOjLmk7Q== X-Received: by 2002:a05:6000:4305:b0:427:809:effd with SMTP id ffacd0b85a97d-4270809f192mr12834301f8f.37.1761140487421; Wed, 22 Oct 2025 06:41:27 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:25 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:07 +0200 Subject: [PATCH v2 8/9] 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: <20251022-reset-gpios-swnodes-v2-8-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@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=5033; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=xbs7F/Lj9CLBjlX08WLa+wBJkZIyXIIqMlNQKiwhuNU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N70RofZRYEECAhD3Ra4FsahYN4O5g++Ouau/ RvNInoMnlqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje9AAKCRARpy6gFHHX ci9KEACPGc4sRnW6ThD2w623/pdRIcJJ0ip7RNYm72P/8YY/6Nj7yDx+njaYDiB93Wp4vi/B5od 4PVLJloCved+632IsEzsvImRKcg0czslGIpEFbjGwbo4jNQXAmI5uH5n+/aeTM0PXFakFot2kgB bdqzi55+2LRhk/UQwddLHa/ESTwAB2UI/gTuKxaW/cPEd27+NuE7XbOT8Hy4hQPTOYm3gnp3Czc wTi9HdloxsdxDAvUXTTaNW1lO6p5+qRxS6293VGbyCF2S315MFGuSEkL0K7bML2adhNAdZzfVS9 6O4IyqdNLXgqm/SIcdqo1JX1Z7DXYYzu4gxzHwDeJCeeXIi9OSwB1VtZtCADCLsIE4EPiZxfSPz NMNz3nJdjZSWav3mhNQPBGc8M+2OOjJuS6q0tzSiijSmTVTvdBRWqZWwu/SPkxHxBC26Ssc2/VO /96yif6chplfaKcOTEX8CytjfwIhc+Q25JpkdfhKfH6bCyM5/WnTk62LYjyjOva5n82T12NCa29 J2e3aAiBG4HP8UzNPH9iK6GHIAaFtMPBMT89hutvpiVKXUcBex4x9V585+3aZN5heWIC/3xs4G2 qZDmnFkZ8yUzMKh/Uwt24PZ+enjt9Bn1UO+z6CWxhqiOWF/t1jGB1Ljg9cFQMUFr4HIAHzGX2Ff bhBMr6eq1NIP5mQ== 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 Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij --- 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 ad85ddc8dd9fcf8b512cb09168586e0afca257f1..c9f13020ca3a7b9273488497a7d= 4240d0af762b0 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..7b43d61d0467aef5fbbad53d531= 294fa62f8084a 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 Sun Feb 8 18:35:18 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 10FC134CFD7 for ; Wed, 22 Oct 2025 13:41:30 +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=1761140493; cv=none; b=l1cmKDa4p3PDzlN7KKgKS5231gDrG5x5QHH/J6VLVu1Pmu8tBZ1wCRk5AMCWW1aaiJ9lWlmqLezgEokzq5eprTYNwiP983BHkpB0N3yZELlSaoUDHtzbOIxyy131FXTX99+K3Xa1lH7ZYQL29k8bTWIcx/OGu5dKaUyFwqw8eQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761140493; c=relaxed/simple; bh=kmXAtSE3HnrhoN6jQo1dJ1cDI3xe1YoDYFqyP0G5bLM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HXmPT8CHCuCeh3ve18UxiIdqQMIEh0xUw6msCDl0TCiKTVHwj8yBMqvZ6J3jCmDvTlY59foKqPTEpqhCKJN8MTFBi4FmanBVvtTq85AhfJ4Ni8v/HASZIAks00HvERDXsv7Zh7gf2f6MydmWuDSrHvnySflCF5tlsMRKcQ2b7cE= 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=QlFkgtWQ; 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="QlFkgtWQ" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-4270a0127e1so3446925f8f.3 for ; Wed, 22 Oct 2025 06:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1761140489; x=1761745289; 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=SfExIwUemKJ5MA3EQ5p1dELGI8YLjDgxSK0E7YT4mrQ=; b=QlFkgtWQ8TulI+HF1rimjT3uZh9Cd7tKnUZzESmeKxI6uYyTRK8xnaSRfJs2PJOVbL 94dHZ+CEMvVQnlFeDVz+Y8UZdgjTpgbvBKOz6bcFb/SWct6W/wMnO6Qlcg7fqRY1YCF2 tQalEY4dBDnDpEqwab4R8SCr40oPvPjN5D5gLtDCmN5T0uY13LQM2KDZDHuC0CyM2IFm AKu8iCdaIQd/dBFjjKxL5M8oYK400XD5Yz7DQW5NdI5u7gvp09jXp8MpKO/duR+S5SFE SchivIeR688jMMbDYDUTKt+753Bd32NYPeDX+k9hQjfzjxT7zqh5J91V9xTdBtKP2gtQ wMVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140489; x=1761745289; 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=SfExIwUemKJ5MA3EQ5p1dELGI8YLjDgxSK0E7YT4mrQ=; b=u76/H0e+fA40JRdG6cv6ag8u/CcGF1LAZR3bQ3KlEEofzLFUYyJeDF0nVuHzhT20/+ AKDszFEXqWlvqvWdbqniq2chQ89isJ51+Q6idsyebWTKT7GuobOb2GdyVYafxMkmxcIu SNk5Lj7TarR6LmYqdoW2rWHwNr3VlfwWw7tLdHzkxJpmeqcYXzn1SfJvvQDpCLa2H0YA Zs2aBjbD3MTB2zNoMQ8nKS7AUtpOEeAVJ0PxhHLc7bbf4jUROjnrosxD15ZmCaYlh6qd XGmoMdo4gYyZ86n1YKwGWEVSAxwXt6t/P8nxXgyIZudHWyrZhJ8L70ZI1xnW2bPBb+m8 3o6w== X-Forwarded-Encrypted: i=1; AJvYcCVz21f9lPWibPxFF6J0yZXsQA6AxUw4hnFfYw9qgCjbL2D38BTbLj0N0j0X42Xh8uVK/RaF9Ng2EC5/bFY=@vger.kernel.org X-Gm-Message-State: AOJu0YyNTZsWrlwebEBHUjQJlpbWnhVlelWGTzXWkvOFyzunhuErif8s Bn92L3avd1eqYtYjTTk7TuBQHghm2DZcJZmkhOpUJyj1lSts5JGM45UA9sNeYkYkjLE= X-Gm-Gg: ASbGnctSUG5iQLhzACl9SWZOJPantNc1Ljw6+QsK3DWuMohUw0E8pWv7cOs1Gidy4V3 5/VYMRgbuGx9sBI+HTsMDPPnwXHnp79RHUVuG8ts5rV/aeEmHBNpDgGDoBgVx5DHndb7amdKKXk IXhCQBkNXmePRrll3IFDIZvJLdxs9KiER5Ap/3wT74/AaZxqgTKXS98NAz6TFs73OEKHRcOuYEi S1i6GXjZwzXk8wPduum9JYPUz4JeKOjgW3uGJBYWz/Je/JOX00thu2T/ND9xpn4xzrLVEQWli5f r2s0JST4+FO/icyRcGkhuFqV+7GJX/fnrH92uEPGZKydPqmsqAwvmQGuo0OulCwtaChCSsfyZ01 Ixcx1TW9s6PzwdmXFSiyA4fmszQXC8y9EcXJuiF8ne3KV5uA9kWLDUZMR4kQUrFNz0QRLYpg= X-Google-Smtp-Source: AGHT+IEPEOA7RggYEmPoDIO0+E2RmnVfpYLMBEbq6FywxOG4KxPHzSHzjlI3TZkyFbZBEIQnBiWT3A== X-Received: by 2002:a05:6000:25c8:b0:428:3d75:b0e8 with SMTP id ffacd0b85a97d-4283d75c950mr11436344f8f.62.1761140489390; Wed, 22 Oct 2025 06:41:29 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:69df:73af:f16a:eada]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-427f00b97f8sm24863066f8f.36.2025.10.22.06.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 06:41:28 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 22 Oct 2025 15:41:08 +0200 Subject: [PATCH v2 9/9] 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: <20251022-reset-gpios-swnodes-v2-9-69088530291b@linaro.org> References: <20251022-reset-gpios-swnodes-v2-0-69088530291b@linaro.org> In-Reply-To: <20251022-reset-gpios-swnodes-v2-0-69088530291b@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=7182; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=GpqWfoRVxSyb5DxpZnAD2OmXLWj91GbiRae7HNISm60=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBo+N70O1r3YA0TWjKCf0+bm/mCXjIsUNvLh8W+3 J5Ki2AlLESJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaPje9AAKCRARpy6gFHHX cjkjEACIIOMqMkMMhSh7gXtXg69x48pRB8KTsR3Yxzk4wWwJ3Q9RkxfvTniioGQKgiFgNnTxYaB 0ZJX3otVkm1XsxqWQboShGoMAbOTRg5Ztpo966I88p8oS7Y3gTbo5FUROnMQm6KH0t3O6M3Lwzu QOx2STBaRZwM9E/ev7srtjthqMAjZsksjLnUexE66XIhUkxGtmTAgrADh/1vj/8zQ0SrbDQigOQ 2HDAl+zgcSx5bs9kZRY7e3F7Bc4B3uLv+aSf1t7Mwsbav2tMF1AcB2iS2+A69+4l7NnMJqlOcfs oSXOSLKwt6G/B8jdZ3kMFvqehFofq/gUTDBqpYLHfNPfht2Wo0zL8agaEYJeDyN0ToGwtN88wdN t+FgLKShzNp/dKxzv3U6SNg9MRLM0+gaxNy5rmms64kmFo1Iippo1UKm6wsb9QNPNwr585CDbkw qhdDuGav/eGtT4jl8W9SXtln9d5qOtk7vO3+IX4urill/whCP6nhfecIVOGZJB6zY7HhkcYpOiM kPZcf/24w89KuqXfclgdcVCrQE2D+fzGBivmvFJdTvvIifn0aekF0KWNA8enpTV2nwcQeQg8B+M vyQWOw5mwbBDvlRUSutJAy2cLDSpgnHggPSUBeL5qXi1StdrCS4w4FTi3F3Z5ujl8RB0fdTBNEW qv4RIgsyrgYbm1A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski GPIO machine lookup is a nice mechanism for associating GPIOs with consumers if we don't know what kind of device the GPIO provider is or when it will become available. However in the case of the reset-gpio, we are already holding a reference to the device and so can reference its firmware node. Let's setup a software node that references the relevant GPIO and attach it to the auxiliary device we're creating. Signed-off-by: Bartosz Golaszewski Acked-by: Linus Walleij Reviewed-by: Philipp Zabel --- drivers/reset/core.c | 131 ++++++++++++++++++++++++++++++-----------------= ---- 1 file changed, 77 insertions(+), 54 deletions(-) diff --git a/drivers/reset/core.c b/drivers/reset/core.c index c9f13020ca3a7b9273488497a7d4240d0af762b0..20378de4b813ab79a103ea81cf2= cbcd2b76c0ccf 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: @@ -915,11 +913,30 @@ static int __reset_add_reset_gpio_device(const struct= of_phandle_args *args) if (args->args_count !=3D 2) return -ENOENT; =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) return -EPROBE_DEFER; =20 + parent =3D gpio_device_to_device(gdev); + /* * Registering reset-gpio device might cause immediate * bind, resulting in its probe() registering new reset controller thus @@ -936,6 +953,12 @@ static int __reset_add_reset_gpio_device(const struct = of_phandle_args *args) } } =20 + lflags =3D GPIO_PERSISTENT | (of_flags & GPIO_ACTIVE_LOW); + + 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 +970,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 +977,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