#include <linux/cpuhotplug.h>
 #include <linux/perf_event.h>
 #include <linux/platform_device.h>
+#include <linux/acpi.h>
 
 #define TAD_PFC_OFFSET         0x800
 #define TAD_PFC(counter)       (TAD_PFC_OFFSET | (counter << 3))
 
 static int tad_pmu_probe(struct platform_device *pdev)
 {
-       struct device_node *node = pdev->dev.of_node;
+       struct device *dev = &pdev->dev;
        struct tad_region *regions;
        struct tad_pmu *tad_pmu;
        struct resource *res;
                return -ENODEV;
        }
 
-       ret = of_property_read_u32(node, "marvell,tad-page-size",
-                                  &tad_page_size);
+       ret = device_property_read_u32(dev, "marvell,tad-page-size",
+                                      &tad_page_size);
        if (ret) {
                dev_err(&pdev->dev, "Can't find tad-page-size property\n");
                return ret;
        }
 
-       ret = of_property_read_u32(node, "marvell,tad-pmu-page-size",
-                                  &tad_pmu_page_size);
+       ret = device_property_read_u32(dev, "marvell,tad-pmu-page-size",
+                                      &tad_pmu_page_size);
        if (ret) {
                dev_err(&pdev->dev, "Can't find tad-pmu-page-size property\n");
                return ret;
        }
 
-       ret = of_property_read_u32(node, "marvell,tad-cnt", &tad_cnt);
+       ret = device_property_read_u32(dev, "marvell,tad-cnt", &tad_cnt);
        if (ret) {
                dev_err(&pdev->dev, "Can't find tad-cnt property\n");
                return ret;
 };
 #endif
 
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id tad_pmu_acpi_match[] = {
+       {"MRVL000B", 0},
+       {},
+};
+MODULE_DEVICE_TABLE(acpi, tad_pmu_acpi_match);
+#endif
+
 static struct platform_driver tad_pmu_driver = {
        .driver         = {
                .name   = "cn10k_tad_pmu",
                .of_match_table = of_match_ptr(tad_pmu_of_match),
+               .acpi_match_table = ACPI_PTR(tad_pmu_acpi_match),
                .suppress_bind_attrs = true,
        },
        .probe          = tad_pmu_probe,