#include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/interrupt.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/notifier.h>
#include <linux/platform_device.h>
#include <linux/pm_qos.h>
#include <linux/spinlock.h>
#include <linux/suspend.h>
#include <asm/intel_pmc_ipc.h>
#include <linux/platform_data/itco_wdt.h>
#define IPC_CMD_MSI BIT(8)
#define IPC_CMD_SUBCMD 12
#define IPC_STATUS_IRQ BIT(2)
#define IPC_STATUS_ERR BIT(1)
#define IPC_STATUS_BUSY BIT(0)
#define IPC_WRITE_BUFFER 0x80
#define IPC_READ_BUFFER 0x90
#define S0IX_RESIDENCY_IN_USECS(d, s) \
u64 result = 10ull * ((d) + (s)); \