xref: /openbmc/linux/drivers/fsi/fsi-slave.h (revision d5d8dfb0)
1*d5d8dfb0SEddie James /* SPDX-License-Identifier: GPL-2.0-only */
2*d5d8dfb0SEddie James /* Copyright (C) IBM Corporation 2023 */
3*d5d8dfb0SEddie James 
4*d5d8dfb0SEddie James #ifndef DRIVERS_FSI_SLAVE_H
5*d5d8dfb0SEddie James #define DRIVERS_FSI_SLAVE_H
6*d5d8dfb0SEddie James 
7*d5d8dfb0SEddie James #include <linux/cdev.h>
8*d5d8dfb0SEddie James #include <linux/device.h>
9*d5d8dfb0SEddie James 
10*d5d8dfb0SEddie James struct fsi_master;
11*d5d8dfb0SEddie James 
12*d5d8dfb0SEddie James struct fsi_slave {
13*d5d8dfb0SEddie James 	struct device		dev;
14*d5d8dfb0SEddie James 	struct fsi_master	*master;
15*d5d8dfb0SEddie James 	struct cdev		cdev;
16*d5d8dfb0SEddie James 	int			cdev_idx;
17*d5d8dfb0SEddie James 	int			id;	/* FSI address */
18*d5d8dfb0SEddie James 	int			link;	/* FSI link# */
19*d5d8dfb0SEddie James 	u32			cfam_id;
20*d5d8dfb0SEddie James 	int			chip_id;
21*d5d8dfb0SEddie James 	uint32_t		size;	/* size of slave address space */
22*d5d8dfb0SEddie James 	u8			t_send_delay;
23*d5d8dfb0SEddie James 	u8			t_echo_delay;
24*d5d8dfb0SEddie James };
25*d5d8dfb0SEddie James 
26*d5d8dfb0SEddie James #define to_fsi_slave(d) container_of(d, struct fsi_slave, dev)
27*d5d8dfb0SEddie James 
28*d5d8dfb0SEddie James #endif /* DRIVERS_FSI_SLAVE_H */
29