1 /* SPDX-License-Identifier: GPL-2.0+ */
4 * Core definitions for RAVE SP MFD driver.
6 * Copyright (C) 2017 Zodiac Inflight Innovations
9 #ifndef _LINUX_RAVE_SP_H_
10 #define _LINUX_RAVE_SP_H_
12 #include <linux/notifier.h>
14 enum rave_sp_command
{
15 RAVE_SP_CMD_GET_FIRMWARE_VERSION
= 0x20,
16 RAVE_SP_CMD_GET_BOOTLOADER_VERSION
= 0x21,
17 RAVE_SP_CMD_BOOT_SOURCE
= 0x26,
18 RAVE_SP_CMD_GET_BOARD_COPPER_REV
= 0x2B,
19 RAVE_SP_CMD_GET_GPIO_STATE
= 0x2F,
21 RAVE_SP_CMD_STATUS
= 0xA0,
22 RAVE_SP_CMD_SW_WDT
= 0xA1,
23 RAVE_SP_CMD_PET_WDT
= 0xA2,
24 RAVE_SP_CMD_RESET
= 0xA7,
25 RAVE_SP_CMD_RESET_REASON
= 0xA8,
27 RAVE_SP_CMD_REQ_COPPER_REV
= 0xB6,
28 RAVE_SP_CMD_GET_I2C_DEVICE_STATUS
= 0xBA,
29 RAVE_SP_CMD_GET_SP_SILICON_REV
= 0xB9,
30 RAVE_SP_CMD_CONTROL_EVENTS
= 0xBB,
32 RAVE_SP_EVNT_BASE
= 0xE0,
37 static inline unsigned long rave_sp_action_pack(u8 event
, u8 value
)
39 return ((unsigned long)value
<< 8) | event
;
42 static inline u8
rave_sp_action_unpack_event(unsigned long action
)
47 static inline u8
rave_sp_action_unpack_value(unsigned long action
)
52 int rave_sp_exec(struct rave_sp
*sp
,
53 void *__data
, size_t data_size
,
54 void *reply_data
, size_t reply_data_size
);
57 int devm_rave_sp_register_event_notifier(struct device
*dev
,
58 struct notifier_block
*nb
);
60 #endif /* _LINUX_RAVE_SP_H_ */