On Mon, Apr 15, 2024 at 5:09 PM Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx> wrote: > > SPI devices can specify a cs-gpios property to enumerate their > chip selects. Under 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 = <&gpio1 0 0>, <0>; > > Here, the second chip select is native. However, when using swnodes > there is currently no way to specify a native chip select. The > proposal here is to register a swnode_gpio_undefined software node, > that can be specified to allow the indication of a native chip > select. For example: > > static const struct software_node_ref_args device_cs_refs[] = { > { > .node = &device_gpiochip_swnode, > .nargs = 2, > .args = { 0, GPIO_ACTIVE_LOW }, > }, > { > .node = &swnode_gpio_undefined, > .nargs = 0, > }, > }; > > Register the swnode as the gpiolib is initialised and check in > swnode_get_gpio_device() if the returned node matches > swnode_gpio_undefined and return -ENOENT, which matches the > behaviour of the device tree system when it encounters a 0 phandle. FWIW, Reviewed-by: Andy Shevchenko <andy@xxxxxxxxxx> (I assume that this is _not_ going to be applied standalone as we don't want this without users, i.o.w. all or none as per this series) -- With Best Regards, Andy Shevchenko