From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: Bartosz Golaszewski <brgl@bgdev.pl>,
Linus Walleij <linus.walleij@linaro.org>,
Daniel Scally <djrscally@gmail.com>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Krzysztof Kozlowski <krzk@kernel.org>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
patches@opensource.cirrus.com
Subject: Re: [PATCH v4 04/10] gpio: swnode: don't use the swnode's name as the key for GPIO lookup
Date: Tue, 18 Nov 2025 20:23:11 +0200 [thread overview]
Message-ID: <aRy5j12cdNy6iL2x@ashevche-desk.local> (raw)
In-Reply-To: <aRy31U8EQA1DO/R6@opensource.cirrus.com>
On Tue, Nov 18, 2025 at 06:15:49PM +0000, Charles Keepax wrote:
> On Tue, Nov 18, 2025 at 07:01:24PM +0100, Bartosz Golaszewski wrote:
> > On Tue, Nov 18, 2025 at 5:34 PM Charles Keepax
> > <ckeepax@opensource.cirrus.com> wrote:
> > > On Mon, Nov 03, 2025 at 10:35:24AM +0100, Bartosz Golaszewski wrote:
...
> > > One small problem is this does break drivers/spi/spi-cs42l43.c.
> >
> > I'd say it's a big problem. :)
> >
> > > That driver has to register some swnodes to specify some GPIO
> > > chip selects due to some squiffy ACPI from Windows land. Currently
> > > it relies on the sw node being called cs42l43-pinctrl to match
> > > the driver.
> >
> > What is the problem exactly? The "cs42l43-pinctrl" swnode is
> > associated with a GPIO device I suppose? Does it not find it? I'd need
> > some more information in order to figure out a way to fix it.
>
> Yeah doesn't find the GPIO device. Apologies the background is
> fairly lenghty here but to give a high level summary. The cs42l43
> is an audio CODEC but it has a SPI controller on it, in some
> configurations there are a couple of speaker amps connected to
> this SPI controller. For Window reasons this SPI controller isn't
> properly represented in ACPI, so we have to depend on a couple
> magic properties and then use software nodes to register the
> speaker amps. However, as part of this we need to register a
> cs-gpios property for the chip selects used by the amps.
>
> This chip select gpios property is where the problem happens, we
> need to refer to the gpio/pinctrl driver of the cs42l43, but
> software nodes only seem to allow referring to other software
> nodes.
Interestingly that Bart's series from where this patch came has more patches
targeting exactly this scenario, i.e. to allow to refer any type of fwnode from
swnode. Maybe we need those too and something on top?
> Previously this worked as we gave the node the same name
> as the real driver, which meant it found the real driver.
> However, after switching to look up by fwnode, it is looking for
> a gpio controller attached to the software node.
>
> static const struct software_node cs42l43_gpiochip_swnode = {
> /* Previously matched the driver name for the pinctrl driver */
> .name = "cs42l43-pinctrl",
> };
>
> static const struct software_node_ref_args cs42l43_cs_refs[] = {
> /* This needs to point to the genuine pinctrl driver? */
> SOFTWARE_NODE_REFERENCE(&cs42l43_gpiochip_swnode, 0, GPIO_ACTIVE_LOW),
> /* This is a mark that indicates the native chip select is used*/
> SOFTWARE_NODE_REFERENCE(&swnode_gpio_undefined),
> };
>
> The bit that is unclear to me is how we get that software node
> property to point to the real pinctrl driver rather than the
> dummy software node. I think maybe we need to add a SW node as a
> secondary node on the pinctrl driver itself and link to that?
>
> Also happy from my side to spend some time working on this as I
> am not convinced what the driver is doing now is totally legit.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2025-11-18 18:23 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-03 9:35 [PATCH v4 00/10] reset: rework reset-gpios handling Bartosz Golaszewski
2025-11-03 9:35 ` [PATCH v4 01/10] software node: read the reference args via the fwnode API Bartosz Golaszewski
2025-11-03 10:53 ` Sakari Ailus
2025-11-03 9:35 ` [PATCH v4 02/10] software node: increase the reference of the swnode by its fwnode Bartosz Golaszewski
2025-11-03 10:53 ` Sakari Ailus
2025-11-03 9:35 ` [PATCH v4 03/10] software node: allow referencing firmware nodes Bartosz Golaszewski
2025-11-03 9:49 ` Andy Shevchenko
2025-11-03 10:36 ` Bartosz Golaszewski
2025-11-03 10:52 ` Sakari Ailus
2025-11-03 10:56 ` Bartosz Golaszewski
2025-11-03 13:46 ` Andy Shevchenko
2025-11-03 9:35 ` [PATCH v4 04/10] gpio: swnode: don't use the swnode's name as the key for GPIO lookup Bartosz Golaszewski
2025-11-03 9:51 ` Andy Shevchenko
2025-11-03 10:53 ` Bartosz Golaszewski
2025-11-18 16:33 ` Charles Keepax
2025-11-18 18:01 ` Bartosz Golaszewski
2025-11-18 18:15 ` Charles Keepax
2025-11-18 18:23 ` Andy Shevchenko [this message]
2025-11-19 8:35 ` Bartosz Golaszewski
2025-11-19 8:41 ` Bartosz Golaszewski
2025-11-19 9:13 ` Bartosz Golaszewski
2026-02-09 6:44 ` Dmitry Torokhov
2026-02-09 6:52 ` Dmitry Torokhov
2026-02-09 12:38 ` Bartosz Golaszewski
2026-02-09 13:25 ` Yauhen Kharuzhy
2025-11-03 9:35 ` [PATCH v4 05/10] gpio: swnode: allow referencing GPIO chips by firmware nodes Bartosz Golaszewski
2025-11-03 9:54 ` Andy Shevchenko
2025-11-03 9:35 ` [PATCH v4 06/10] gpio: swnode: update the property definitions Bartosz Golaszewski
2025-11-03 9:57 ` Andy Shevchenko
2025-11-03 9:35 ` [PATCH v4 07/10] reset: order includes alphabetically in reset/core.c Bartosz Golaszewski
2025-11-03 9:35 ` [PATCH v4 08/10] reset: make the provider of reset-gpios the parent of the reset device Bartosz Golaszewski
2025-11-03 9:35 ` [PATCH v4 09/10] reset: gpio: convert the driver to using the auxiliary bus Bartosz Golaszewski
2025-11-03 9:35 ` [PATCH v4 10/10] reset: gpio: use software nodes to setup the GPIO lookup Bartosz Golaszewski
2025-11-03 14:14 ` (subset) [PATCH v4 00/10] reset: rework reset-gpios handling Bartosz Golaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aRy5j12cdNy6iL2x@ashevche-desk.local \
--to=andriy.shevchenko@linux.intel.com \
--cc=bartosz.golaszewski@linaro.org \
--cc=brgl@bgdev.pl \
--cc=ckeepax@opensource.cirrus.com \
--cc=dakr@kernel.org \
--cc=djrscally@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=krzk@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=patches@opensource.cirrus.com \
--cc=rafael@kernel.org \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®