47 lines
809 B
C
47 lines
809 B
C
/* 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__ */
|