#define AMD_PMF_RESULT_FAILED                0xFF
 
 /* List of supported CPU ids */
+#define AMD_CPU_ID_RMB                 0x14b5
 #define AMD_CPU_ID_PS                  0x14e8
 
 #define PMF_MSG_DELAY_MIN_US           50
 module_param(metrics_table_loop_ms, int, 0644);
 MODULE_PARM_DESC(metrics_table_loop_ms, "Metrics Table sample size time (default = 1000ms)");
 
+/* Force load on supported older platforms */
+static bool force_load;
+module_param(force_load, bool, 0444);
+MODULE_PARM_DESC(force_load, "Force load this driver on supported older platforms (experimental)");
+
 static int current_power_limits_show(struct seq_file *seq, void *unused)
 {
        struct amd_pmf_dev *dev = seq->private;
 }
 
 static const struct pci_device_id pmf_pci_ids[] = {
+       { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RMB) },
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_PS) },
        { }
 };
 }
 
 static const struct acpi_device_id amd_pmf_acpi_ids[] = {
+       {"AMDI0100", 0x100},
        {"AMDI0102", 0},
        { }
 };
 
 static int amd_pmf_probe(struct platform_device *pdev)
 {
+       const struct acpi_device_id *id;
        struct amd_pmf_dev *dev;
        struct pci_dev *rdev;
        u32 base_addr_lo;
        u32 val;
        int err;
 
+       id = acpi_match_device(amd_pmf_acpi_ids, &pdev->dev);
+       if (!id)
+               return -ENODEV;
+
+       if (id->driver_data == 0x100 && !force_load)
+               return -ENODEV;
+
        dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
        if (!dev)
                return -ENOMEM;