/* SPDX-License-Identifier: GPL-2.0 */ | |
/* | |
* Copyright (c) 2015-2018, Intel Corporation. | |
*/ | |
#ifndef __KCS_BMC_H__ | |
#define __KCS_BMC_H__ | |
#include <linux/list.h> | |
#define KCS_BMC_EVENT_TYPE_OBE BIT(0) | |
#define KCS_BMC_EVENT_TYPE_IBF BIT(1) | |
#define KCS_BMC_STR_OBF BIT(0) | |
#define KCS_BMC_STR_IBF BIT(1) | |
#define KCS_BMC_STR_CMD_DAT BIT(3) | |
/* IPMI 2.0 - 9.5, KCS Interface Registers | |
* @idr: Input Data Register | |
* @odr: Output Data Register | |
* @str: Status Register | |
*/ | |
struct kcs_ioreg { | |
u32 idr; | |
u32 odr; | |
u32 str; | |
}; | |
struct kcs_bmc_device_ops; | |
struct kcs_bmc_client; | |
struct kcs_bmc_device { | |
struct list_head entry; | |
struct device *dev; | |
u32 channel; | |
struct kcs_ioreg ioreg; | |
const struct kcs_bmc_device_ops *ops; | |
spinlock_t lock; | |
struct kcs_bmc_client *client; | |
}; | |
#endif /* __KCS_BMC_H__ */ |