xref: /linux/drivers/misc/amd-sbi/tsi-core.h (revision 37bef2170d4c88fc3d708eecf3ef0f4032bc1372)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * AMD SBTSI core driver private definitions.
4  *
5  * Copyright (C) 2026 Advanced Micro Devices, Inc.
6  */
7 
8 #ifndef _LINUX_TSI_CORE_H_
9 #define _LINUX_TSI_CORE_H_
10 
11 #include <linux/cache.h>
12 #include <linux/misc/tsi.h>
13 
14 /**
15  * struct sbtsi_i3c_priv - per-device state for I3C SBTSI (includes DMA-safe buffers)
16  * @data: public device state exposed via dev_set_drvdata()
17  * @tx:   outgoing I3C bytes (DMA_TO_DEVICE); [0] register address, [1] value
18  * @rx:   incoming I3C data byte (DMA_FROM_DEVICE)
19  */
20 struct sbtsi_i3c_priv {
21 	struct sbtsi_data data;
22 	u8 tx[2];
23 	u8 rx __aligned(ARCH_DMA_MINALIGN);
24 };
25 
26 int create_misc_tsi_device(struct sbtsi_data *data, struct device *dev);
27 
28 void sbtsi_data_release(struct kref *kref);
29 #endif /* _LINUX_TSI_CORE_H_ */
30