Merge tag 'header_cleanup-2024-01-10' of https://evilpiepirate.org/git/bcachefs
[linux-block.git] / drivers / char / ipmi / kcs_bmc.h
CommitLineData
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 */
23struct kcs_ioreg {
24 u32 idr;
25 u32 odr;
26 u32 str;
27};
28
faae6e39 29struct kcs_bmc_device_ops;
d4e7ac68 30struct kcs_bmc_client;
faae6e39 31
d4e7ac68
AJ
32struct 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__ */