forked from Minki/linux
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:
parent
ccdfc4ae4d
commit
242b0b398c
@ -13,6 +13,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/acpi.h>
|
||||
|
||||
#define RCPM_WAKEUP_CELL_MAX_SIZE 7
|
||||
|
||||
@ -78,10 +79,20 @@ static int rcpm_pm_prepare(struct device *dev)
|
||||
"fsl,rcpm-wakeup", value,
|
||||
rcpm->wakeup_cells + 1);
|
||||
|
||||
/* Wakeup source should refer to current rcpm device */
|
||||
if (ret || (np->phandle != value[0]))
|
||||
if (ret)
|
||||
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
|
||||
* number of IPPDEXPCR register cells, and "fsl,rcpm-wakeup"
|
||||
* 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);
|
||||
|
||||
#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 = {
|
||||
.driver = {
|
||||
.name = "rcpm",
|
||||
.of_match_table = rcpm_of_match,
|
||||
.acpi_match_table = ACPI_PTR(rcpm_acpi_ids),
|
||||
.pm = &rcpm_pm_ops,
|
||||
},
|
||||
.probe = rcpm_probe,
|
||||
|
Loading…
Reference in New Issue
Block a user