mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-03 23:38:12 -04:00
spi: Propagate default fwnode to the SPI controller device
Most of the SPI controller drivers share the parent's fwnode by explicit assignment. Propagate the default by SPI core, so they may drop that in the code. Only corner cases may require a special treatment and we simply (re)assign the controller's fwnode explicitly (as it's done right now, no changes required for that). Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260112203534.4186261-2-andriy.shevchenko@linux.intel.com Reviewed-by: Linus Walleij <linusw@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
0f93dddb03
commit
f2d1a3318e
@@ -371,6 +371,14 @@ static int cs42l43_spi_probe(struct platform_device *pdev)
|
||||
|
||||
fwnode_property_read_u32(xu_fwnode, "01fa-sidecar-instances", &nsidecars);
|
||||
|
||||
/*
|
||||
* Depending on the value of nsidecars we either create a software node
|
||||
* or assign an fwnode. We don't want software node to be attached to
|
||||
* the default one. That's why we need to clear the SPI controller fwnode
|
||||
* first.
|
||||
*/
|
||||
device_set_node(&priv->ctlr->dev, NULL);
|
||||
|
||||
if (nsidecars) {
|
||||
struct software_node_ref_args args[] = {
|
||||
SOFTWARE_NODE_REFERENCE(fwnode, 0, GPIO_ACTIVE_LOW),
|
||||
|
||||
@@ -3072,6 +3072,9 @@ struct spi_controller *__spi_alloc_controller(struct device *dev,
|
||||
else
|
||||
ctlr->dev.class = &spi_controller_class;
|
||||
ctlr->dev.parent = dev;
|
||||
|
||||
device_set_node(&ctlr->dev, dev_fwnode(dev));
|
||||
|
||||
pm_suspend_ignore_children(&ctlr->dev, true);
|
||||
spi_controller_set_devdata(ctlr, (void *)ctlr + ctlr_size);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user