diff options
Diffstat (limited to 'arch/x86/include/asm/intel_scu_ipc.h')
| -rw-r--r-- | arch/x86/include/asm/intel_scu_ipc.h | 34 | 
1 files changed, 30 insertions, 4 deletions
diff --git a/arch/x86/include/asm/intel_scu_ipc.h b/arch/x86/include/asm/intel_scu_ipc.h index 29f66793cc5..925b605eb5c 100644 --- a/arch/x86/include/asm/intel_scu_ipc.h +++ b/arch/x86/include/asm/intel_scu_ipc.h @@ -1,11 +1,17 @@  #ifndef _ASM_X86_INTEL_SCU_IPC_H_  #define  _ASM_X86_INTEL_SCU_IPC_H_ -#define IPCMSG_VRTC	0xFA	 /* Set vRTC device */ +#include <linux/notifier.h> -/* Command id associated with message IPCMSG_VRTC */ -#define IPC_CMD_VRTC_SETTIME      1 /* Set time */ -#define IPC_CMD_VRTC_SETALARM     2 /* Set alarm */ +#define IPCMSG_WARM_RESET	0xF0 +#define IPCMSG_COLD_RESET	0xF1 +#define IPCMSG_SOFT_RESET	0xF2 +#define IPCMSG_COLD_BOOT	0xF3 + +#define IPCMSG_VRTC		0xFA	 /* Set vRTC device */ +	/* Command id associated with message IPCMSG_VRTC */ +	#define IPC_CMD_VRTC_SETTIME      1 /* Set time */ +	#define IPC_CMD_VRTC_SETALARM     2 /* Set alarm */  /* Read single register */  int intel_scu_ipc_ioread8(u16 addr, u8 *data); @@ -44,4 +50,24 @@ int intel_scu_ipc_i2c_cntrl(u32 addr, u32 *data);  /* Update FW version */  int intel_scu_ipc_fw_update(u8 *buffer, u32 length); +extern struct blocking_notifier_head intel_scu_notifier; + +static inline void intel_scu_notifier_add(struct notifier_block *nb) +{ +	blocking_notifier_chain_register(&intel_scu_notifier, nb); +} + +static inline void intel_scu_notifier_remove(struct notifier_block *nb) +{ +	blocking_notifier_chain_unregister(&intel_scu_notifier, nb); +} + +static inline int intel_scu_notifier_post(unsigned long v, void *p) +{ +	return blocking_notifier_call_chain(&intel_scu_notifier, v, p); +} + +#define		SCU_AVAILABLE		1 +#define		SCU_DOWN		2 +  #endif  | 
