#include <linux/platform_device.h>
#include <linux/platform_data/intel-mid_wdt.h>
+#include <asm/cpu_device_id.h>
+#include <asm/intel-family.h>
#include <asm/intel-mid.h>
#include <asm/io_apic.h>
#include <asm/hw_irq.h>
.probe = tangier_probe,
};
+static const struct x86_cpu_id intel_mid_cpu_ids[] = {
+ X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &tangier_pdata),
+ {}
+};
+
static int __init register_mid_wdt(void)
{
- if (intel_mid_identify_cpu() != INTEL_MID_CPU_CHIP_TANGIER)
+ const struct x86_cpu_id *id;
+
+ id = x86_match_cpu(intel_mid_cpu_ids);
+ if (!id)
return -ENODEV;
- wdt_dev.dev.platform_data = &tangier_pdata;
+ wdt_dev.dev.platform_data = (const struct intel_mid_wdt_pdata *)id->driver_data;
return platform_device_register(&wdt_dev);
}
arch_initcall(register_mid_wdt);