From nobody Mon Feb 9 20:10:28 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