From nobody Tue Dec 2 02:30:07 2025 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 ED08135C1B3 for ; Wed, 19 Nov 2025 15:21:53 +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=1763565715; cv=none; b=PO9VTbTu2Y0HmLy4+eQTpDqZa6+9KlUs+FHUqx1EQxwxrTjHWTJrWOG0cLjiZESKkFh2V8v1iKpB7zNXS1NldojHQLDruSOw7WZnyHIzsZUu2nU5JgClit26wNta2i1Din/FWfpDJmlaoZh1fbjzZWYZusrx8fBCCR+uQIoxgMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763565715; c=relaxed/simple; bh=N3l59kOsQt7nYIQ5xrgl5IaNVvlsHEsLL3tCZhtIQ2Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OcdYw8f21Aghdo45gmHu3Q6P6rRaOcVxIFEN0ydxU2ua2uHsRb0eUQ8Ak/aKbOcZcMpZFy1ExN0mPUTXY2Bn+ng8Bm5/txl1TFXd109Z74uDrHPO7SJPMvHSx9g0Xc7/X4i6qbEFthtJD+plalfVac9vzbyuwIRSlWwLqAyUrQo= 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=WLCJhtcz; 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="WLCJhtcz" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4779cc419b2so48026465e9.3 for ; Wed, 19 Nov 2025 07:21:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1763565712; x=1764170512; 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=WWzVKv5ouKkFGvVUTZu4Vj8DMC+GR4MyL5I2JNNHBKI=; b=WLCJhtczJTtnY+sG28TP/mFnhGcneqK8wZ0Ga1JWWgygHwrXBzuMj2/MjEeykGSdaJ UtGhBiWVOF9XYBnWrm6zO2pdelRYUDocy3KAF43/lqgYi9MhT3yTj8Q9uIprVWQMT91R ZwvBq74iR3l5aOeis6sn4kmwlQRnc7gKSxj1n7qM/uDghRhegaC8pm9meTEukE9E/Zed 3uhNlWzWWcSxs7nN5RhoQXxY3PKq8qpTVs6FmXu9UguKPGSJpHh83QPJC/Q+9BDDyGQh yYQBn7E0gIVUBAnoCEUUPW/YdNE1oNf8aN7i4AgeLzic7jNdz5w36WG5gG9SxyJYBnjj 3EJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763565712; x=1764170512; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=WWzVKv5ouKkFGvVUTZu4Vj8DMC+GR4MyL5I2JNNHBKI=; b=D+Eirdt4cHvtzVHxhnFXeLzlhYGU5ijbkJbVwrc3YOVsitWAQIv6kNPkRzpgBAkEbJ tZHetMJqPJvbLMwbXY0gCJndZ+MpA1NJbuvW5aE7ENIJnsKwdNaRrstrxyAMkvAF9Flj iuxF8gG7fWdXWwcxtR6/mzqtaa/RNs7COy2cZ+Ob9HwZ9aGax2vRh0kQzkF2erNvGWXR JXsybK15Hypw1GuPnriYZU8kIvmdXmmAUlqEvqzlAF6IL4Sa8rxmF8UDegIXt5a+LA5s ILDeNi4U1emHE6X0Ok+YL8W+vuHm+3xWz2w7SyTWa+1raES21BPaJZhR2VSQ+/Kr5V1C N2vQ== X-Forwarded-Encrypted: i=1; AJvYcCV+mrVRLYzoVvo29URANbjfZObi+rPcc909RIjgoglgTm5gKMMYL5GiH3JQZnhI0z/y5hpsEmTZEfsPbjQ=@vger.kernel.org X-Gm-Message-State: AOJu0YygXWYaWmr+XASA3vHhlO76WdR2ssCMHZTDSbwGsehgdodFWPql dVg4kOVQ8Ngj5G4I1tmz0HmJVpGaT5cR34EGHn5Ay2eTsTmdEdnBVA4sSuoN0Q4OZbI= X-Gm-Gg: ASbGnctorpZLQftVAL41lcIjOo5++Q0SnkipQWkNxqVZWkbonUBnsHh8WR220KpFyQS BSKEuX1qQsW5njaRz+IYhpZ6OFyRKwYz3KLa4PO+9N35ikjv79AJhg+Uc+u36vqHHy5VD810fdb uDz59nt4ficm9nhmoms9Qray13ImYAb20Hsedsr2QROBGYx/LvZNzl1lk1PQE7ru6uwjOWDIOvH e1VzyTXjH+9nZyKB/ylzV4pGGBTQ610+7H2VgvurxlX8Jm1yJA7Lw4NRQbWmzUuyIdrU2qRO3vf dRYXtKQcOYR0N0e1Rg5NrIeH9pXV1Pm8hN8DWP0q02+kdGwrCs7GMkFkSU0zaLl2Pryqrztm3nl fWDf/Eku7fCRmKzIBVFsccpTWqNBALtLv6kRkqqBnVofjJEKhSlwU5uKVlXpetNuJzYpnpGD7az ADm1ZBJOWSt7WB/Ro= X-Google-Smtp-Source: AGHT+IEDKWc8zQoL0/HIGMblStUKKbwxr87JALzkXWBHan3UsjV1tyVowkbbkfozNa5172g/CAvNQA== X-Received: by 2002:a05:600c:4f0d:b0:477:a978:3a7b with SMTP id 5b1f17b1804b1-477a9783aaemr62118455e9.22.1763565712234; Wed, 19 Nov 2025 07:21:52 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:c10a:203f:120a:d2f9]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-477b1076865sm54429375e9.13.2025.11.19.07.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 07:21:50 -0800 (PST) From: Bartosz Golaszewski Date: Wed, 19 Nov 2025 16:21:28 +0100 Subject: [PATCH RFT/RFC 1/2] gpiolib: support "undefined" GPIO machine 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: <20251119-cs42l43-gpio-lookup-v1-1-029b1d9e1843@linaro.org> References: <20251119-cs42l43-gpio-lookup-v1-0-029b1d9e1843@linaro.org> In-Reply-To: <20251119-cs42l43-gpio-lookup-v1-0-029b1d9e1843@linaro.org> To: Linus Walleij , Bartosz Golaszewski , David Rhodes , Richard Fitzgerald , Lee Jones , Mark Brown , Maciej Strozek , Charles Keepax , Andy Shevchenko , Philipp Zabel Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-spi@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1153; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=p2qr9cuaBFmf29Kwl9Pu2TEsEALyFX5fRqqffYfbc4s=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpHeCMHDIjZ7lYX4IJcx54rCtuMc/TP+vjyd1t+ x9jaKqfgHyJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaR3gjAAKCRAFnS7L/zaE w8n6D/9dGM5Y42PSNAC2Z+vDDvJVLHGQ0abvZavHWl1YP985hGUMZ+mRBoFTavPXN3sgkZgdnrK 68tslGfpvZ+RmJRNuLS7tDgiQiZH6to0q6TBvyDO3kKx78UsLzRlhz1vybs4N9jmyE7UwLeCeAv wojpzJFV5MeQq1dfyW1gxbtC3vsiOXoMXg+zqzMG//8ypGxOX2n7gkik5KLkzzWsq26rBelCmyn BjQbQF9/POwftv8mVYmYfy0xHHLYO0o71hzgPO8F43lBnLeVIhtScwWA15nPyoIxpzTYSZPvSvg La7nT5/IQHsqNXh6QBEz7ikuFnizP4sKkPOtPIT7EL1F1nmu2qc7fnX7MDj+FIZHzc6Z+evxPzm rzVB9W03A1FBTP2BjDocuDvVtCbrQaEBIkOLkLDEZbTuhUFYkvx4WUPqbEElhbgTxeagLK/pT/t UmEKyzt34ncPQLKn6CYO87qmpvagvuKrHX9qe6rBT6VPYLhIehFa8obD3OC8fPYlZblRkEkuk6r /FTofah8y+FbiYpuslDuQbPE443VeZlx3E+URPSW6sguUj9Bq6UUV1ZW4njbz2op3/NASiPpbXR l0tqHMrmF2A4/1FuE/XcYoo550oL86NKt/j2YD/I/q3F3ejck/ol2Iovwox5vZsvfZeGPKpoBUY Y5Mx6ub9nnbhmDg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski SPI devices can specify a cs-gpios property to enumerate their chip selects. In device tree, a zero entry in this property can be used to specify that a particular chip select is using the SPI controllers native chip select, for example: cs-gpios =3D <&gpio1 0 0>, <0>; Here, the second chip select is native. Allow users to pass ERR_PTR(-ENOENT) as the key field in struct gpiod_lookup, indicating a native chip select. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 91e0c384f34ae5c0ed61ccd3a978685d4f72e867..dbb5f7fe7b661979f559fcd32ad= 6e1c463431a18 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -4557,6 +4557,9 @@ static struct gpio_desc *gpiod_find(struct device *de= v, const char *con_id, if (p->con_id && (!con_id || strcmp(p->con_id, con_id))) continue; =20 + if (p->key =3D=3D PTR_ERR(-ENOENT)) + return ERR_PTR(-ENOENT); + if (p->chip_hwnum =3D=3D U16_MAX) { desc =3D gpio_name_to_desc(p->key); if (desc) { --=20 2.51.0