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:
Родитель
ccdfc4ae4d
Коммит
242b0b398c
|
@ -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,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче