47 lines
809 B
C
Raw Normal View History

2026-01-21 18:59:54 +08:00
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2015-2018, Intel Corporation.
*/
#ifndef __KCS_BMC_H__
#define __KCS_BMC_H__
2026-01-29 22:25:33 +08:00
#include <linux/list.h>
2026-01-21 18:59:54 +08:00
2026-01-29 22:25:33 +08:00
#define KCS_BMC_EVENT_TYPE_OBE BIT(0)
#define KCS_BMC_EVENT_TYPE_IBF BIT(1)
2026-01-21 18:59:54 +08:00
2026-01-29 22:25:33 +08:00
#define KCS_BMC_STR_OBF BIT(0)
#define KCS_BMC_STR_IBF BIT(1)
#define KCS_BMC_STR_CMD_DAT BIT(3)
2026-01-21 18:59:54 +08:00
/* 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;
};
2026-01-29 22:25:33 +08:00
struct kcs_bmc_device_ops;
struct kcs_bmc_client;
2026-01-21 18:59:54 +08:00
2026-01-29 22:25:33 +08:00
struct kcs_bmc_device {
struct list_head entry;
struct device *dev;
2026-01-21 18:59:54 +08:00
u32 channel;
struct kcs_ioreg ioreg;
2026-01-29 22:25:33 +08:00
const struct kcs_bmc_device_ops *ops;
2026-01-21 18:59:54 +08:00
2026-01-29 22:25:33 +08:00
spinlock_t lock;
struct kcs_bmc_client *client;
2026-01-21 18:59:54 +08:00
};
#endif /* __KCS_BMC_H__ */