soc: fsl: enable acpi support in RCPM driver

This patch enables ACPI support in RCPM driver.

Signed-off-by: Peng Ma <peng.ma@nxp.com>
Signed-off-by: Ran Wang <ran.wang_1@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
This commit is contained in:
Peng Ma 2021-04-08 11:03:53 +08:00 коммит произвёл Li Yang
Родитель ccdfc4ae4d
Коммит 242b0b398c
1 изменённых файлов: 22 добавлений и 2 удалений

Просмотреть файл

@ -13,6 +13,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/acpi.h>
#define RCPM_WAKEUP_CELL_MAX_SIZE 7 #define RCPM_WAKEUP_CELL_MAX_SIZE 7
@ -78,10 +79,20 @@ static int rcpm_pm_prepare(struct device *dev)
"fsl,rcpm-wakeup", value, "fsl,rcpm-wakeup", value,
rcpm->wakeup_cells + 1); rcpm->wakeup_cells + 1);
/* Wakeup source should refer to current rcpm device */ if (ret)
if (ret || (np->phandle != value[0]))
continue; continue;
/*
* For DT mode, would handle devices with "fsl,rcpm-wakeup"
* pointing to the current RCPM node.
*
* For ACPI mode, currently we assume there is only one
* RCPM controller existing.
*/
if (is_of_node(dev->fwnode))
if (np->phandle != value[0])
continue;
/* Property "#fsl,rcpm-wakeup-cells" of rcpm node defines the /* Property "#fsl,rcpm-wakeup-cells" of rcpm node defines the
* number of IPPDEXPCR register cells, and "fsl,rcpm-wakeup" * number of IPPDEXPCR register cells, and "fsl,rcpm-wakeup"
* of wakeup source IP contains an integer array: <phandle to * of wakeup source IP contains an integer array: <phandle to
@ -172,10 +183,19 @@ static const struct of_device_id rcpm_of_match[] = {
}; };
MODULE_DEVICE_TABLE(of, rcpm_of_match); MODULE_DEVICE_TABLE(of, rcpm_of_match);
#ifdef CONFIG_ACPI
static const struct acpi_device_id rcpm_acpi_ids[] = {
{"NXP0015",},
{ }
};
MODULE_DEVICE_TABLE(acpi, rcpm_acpi_ids);
#endif
static struct platform_driver rcpm_driver = { static struct platform_driver rcpm_driver = {
.driver = { .driver = {
.name = "rcpm", .name = "rcpm",
.of_match_table = rcpm_of_match, .of_match_table = rcpm_of_match,
.acpi_match_table = ACPI_PTR(rcpm_acpi_ids),
.pm = &rcpm_pm_ops, .pm = &rcpm_pm_ops,
}, },
.probe = rcpm_probe, .probe = rcpm_probe,