Hi,
We need to revisited this driver, I have tried to run kernel with sysreg and got failure. Here is the reason:
[...]
static void __iomem *vexpress_sysreg_base(void)
{
if (!__vexpress_sysreg_base) {
struct device_node *node = of_find_compatible_node(NULL, NULL,
"arm,vexpress-sysreg");
__vexpress_sysreg_base = of_iomap(node, 0);
}
WARN_ON(!__vexpress_sysreg_base);
return __vexpress_sysreg_base;
}
[...]
So sysreg still tries to obtain info from FDT while now we are using pure ACPI kernel.
Regards,
Tomasz
On 23.10.2013 13:23, naresh.bhat@linaro.org wrote:
From: Naresh Bhat <naresh.bhat@linaro.org>
Add match table and pointers for ACPI probing into vexpress-sysreg driver.
Signed-off-by: Naresh Bhat <naresh.bhat@linaro.org>
---
drivers/mfd/vexpress-sysreg.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c
index 981bef4..9e39075 100644
--- a/drivers/mfd/vexpress-sysreg.c
+++ b/drivers/mfd/vexpress-sysreg.c
@@ -22,6 +22,7 @@
#include <linux/stat.h>
#include <linux/timer.h>
#include <linux/vexpress.h>
+#include <linux/acpi.h>
#define SYS_ID 0x000
#define SYS_SW 0x004
@@ -512,10 +513,18 @@ static const struct of_device_id vexpress_sysreg_match[] = {
{},
};
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id vexpress_sysreg_acpi_match[] = {
+ { "LINA0009", },
+ { }
+};
+#endif
+
static struct platform_driver vexpress_sysreg_driver = {
.driver = {
.name = "vexpress-sysreg",
.of_match_table = vexpress_sysreg_match,
+ .acpi_match_table = ACPI_PTR(vexpress_sysreg_acpi_match),
},
.probe = vexpress_sysreg_probe,
};