[PATCH v22 09/13] mfd: psci-mfd: Add psci-reboot-mode child cell
Shivendra Pratap
shivendra.pratap at oss.qualcomm.com
Thu May 14 07:25:50 PDT 2026
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;
+}
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