Commit | Line | Data |
---|---|---|
3b6d082f HW |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* | |
3 | * Copyright (c) 2015-2018, Intel Corporation. | |
4 | */ | |
20d60f61 HW |
5 | |
6 | #ifndef __KCS_BMC_H__ | |
7 | #define __KCS_BMC_H__ | |
8 | ||
d4e7ac68 | 9 | #include <linux/list.h> |
faae6e39 | 10 | |
28651e6c AJ |
11 | #define KCS_BMC_EVENT_TYPE_OBE BIT(0) |
12 | #define KCS_BMC_EVENT_TYPE_IBF BIT(1) | |
13 | ||
faae6e39 AJ |
14 | #define KCS_BMC_STR_OBF BIT(0) |
15 | #define KCS_BMC_STR_IBF BIT(1) | |
16 | #define KCS_BMC_STR_CMD_DAT BIT(3) | |
17 | ||
20d60f61 | 18 | /* IPMI 2.0 - 9.5, KCS Interface Registers |
3b6d082f HW |
19 | * @idr: Input Data Register |
20 | * @odr: Output Data Register | |
21 | * @str: Status Register | |
20d60f61 HW |
22 | */ |
23 | struct kcs_ioreg { | |
24 | u32 idr; | |
25 | u32 odr; | |
26 | u32 str; | |
27 | }; | |
28 | ||
faae6e39 | 29 | struct kcs_bmc_device_ops; |
d4e7ac68 | 30 | struct kcs_bmc_client; |
faae6e39 | 31 | |
d4e7ac68 AJ |
32 | struct kcs_bmc_device { |
33 | struct list_head entry; | |
20d60f61 | 34 | |
d4e7ac68 | 35 | struct device *dev; |
20d60f61 | 36 | u32 channel; |
20d60f61 | 37 | |
20d60f61 | 38 | struct kcs_ioreg ioreg; |
20d60f61 | 39 | |
d4e7ac68 | 40 | const struct kcs_bmc_device_ops *ops; |
20d60f61 | 41 | |
d4e7ac68 AJ |
42 | spinlock_t lock; |
43 | struct kcs_bmc_client *client; | |
20d60f61 | 44 | }; |
d4e7ac68 | 45 | |
3b6d082f | 46 | #endif /* __KCS_BMC_H__ */ |