[PATCH v22 09/13] mfd: psci-mfd: Add psci-reboot-mode child cell

Bartosz Golaszewski brgl at kernel.org
Mon May 18 01:53:22 PDT 2026


On Thu, 14 May 2026 16:25:50 +0200, Shivendra Pratap
<shivendra.pratap at oss.qualcomm.com> said:
> The PSCI "reboot-mode" node does not define a compatible because it is a
> configuration of boot-states provided by the underlying firmware. With
> the new firmware-node based cells in mfd-core, this node can now be
> exposed as a proper child cell.
>
> Add the psci-reboot-mode child cell to the psci-mfd driver and associate
> the reboot-mode node as its firmware-node.
>
> Suggested-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>
> Signed-off-by: Shivendra Pratap <shivendra.pratap at oss.qualcomm.com>
> ---
>  drivers/mfd/psci-mfd.c      | 18 ++++++++++++++++++
>  drivers/power/reset/Kconfig |  2 +-
>  2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mfd/psci-mfd.c b/drivers/mfd/psci-mfd.c
> index 7affd6bb09dd83452664edeccb09290fe4f43186..852d8e294a438d4ee6789c556d16a83739af2013 100644
> --- a/drivers/mfd/psci-mfd.c
> +++ b/drivers/mfd/psci-mfd.c
> @@ -7,11 +7,29 @@
>  #include <linux/module.h>
>  #include <linux/of.h>
>  #include <linux/platform_device.h>
> +#include <linux/property.h>
> +
> +static struct fwnode_handle *psci_reboot_mode_get_child_fwnode(struct device *parent)
> +{
> +	struct fwnode_handle *fwnode;
> +
> +	fwnode = fwnode_get_named_child_node(dev_fwnode(parent), "reboot-mode");
> +	if (!fwnode_device_is_available(fwnode)) {
> +		fwnode_handle_put(fwnode);
> +		fwnode = NULL;
> +	}
> +
> +	return fwnode;

Is this reference put anywhere once the cell is torn down?

Bart

> +}
>
>  static const struct mfd_cell psci_cells[] = {
>  	{
>  		.name = "psci-cpuidle-domain",
>  	},
> +	{
> +		.name = "psci-reboot-mode",
> +		.get_child_fwnode = psci_reboot_mode_get_child_fwnode,
> +	},
>  };
>
>  static int psci_mfd_probe(struct platform_device *pdev)
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index d9d1f768b8691abc3b32f2675519f2ddbaf19b84..79559206d5852ae5eae4c8eb2c390901cea7531c 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -350,7 +350,7 @@ config NVMEM_REBOOT_MODE
>
>  config PSCI_REBOOT_MODE
>  	bool "PSCI reboot mode driver"
> -	depends on OF && ARM_PSCI_FW
> +	depends on OF && ARM_PSCI_FW && MFD_PSCI
>  	select REBOOT_MODE
>  	help
>  	  Say y here will enable PSCI reboot mode driver. This gets
>
> --
> 2.34.1
>
>



More information about the linux-arm-kernel mailing list