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