From b875409da7370a9dc4e1abbaf40fa33c6717e854 Mon Sep 17 00:00:00 2001 From: Dinesh Maniyam Date: Wed, 6 Aug 2025 12:32:32 +0800 Subject: cmd: Add i3c command support. Add i3c command file to support select, get i3c device target list, read and write operation. Signed-off-by: Dinesh Maniyam --- include/dw-i3c.h | 2 ++ include/i3c.h | 28 +++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/dw-i3c.h b/include/dw-i3c.h index 42c37d6dfa2..c652de77404 100644 --- a/include/dw-i3c.h +++ b/include/dw-i3c.h @@ -241,6 +241,8 @@ struct dw_i3c_master { char type[5]; u8 addrs[MAX_DEVS]; bool first_broadcast; + struct i3c_dev_desc *i3cdev[I3C_BUS_MAX_DEVS]; + u16 num_i3cdevs; }; struct dw_i3c_i2c_dev_data { diff --git a/include/i3c.h b/include/i3c.h index 59c787c21db..e19c22a8852 100644 --- a/include/i3c.h +++ b/include/i3c.h @@ -25,6 +25,32 @@ struct dm_i3c_ops { int (*i3c_xfers)(struct i3c_dev_desc *dev, struct i3c_priv_xfer *xfers, u32 nxfers); + +/** + * @read: Perform I3C read transaction. + * + * @dev: Chip to read from + * @dev_number: The target device number from the driver model. + * @buf: Place to put data + * @num_bytes: Number of bytes to read. + * + * Return: 0 on success, negative error code on failure. + */ + int (*read)(struct udevice *dev, u32 dev_number, + u8 *buf, u32 num_bytes); + +/** + * @write: Perform I3C write transaction. + * + * @dev: Chip to write to + * @dev_number: The target device number from the driver model. + * @buf: Buffer containing data to write + * @num_bytes: Number of bytes to write. + * + * Return: 0 on success, negative error code on failure. + */ + int (*write)(struct udevice *dev, u32 dev_number, + u8 *buf, u32 num_bytes); }; /** @@ -64,4 +90,4 @@ int dm_i3c_write(struct udevice *dev, u32 dev_number, * Return: 0 on success, negative error code on failure. */ int dm_i3c_read(struct udevice *dev, u32 dev_number, - u8 *buf, u32 num_bytes); \ No newline at end of file + u8 *buf, u32 num_bytes); -- cgit v1.2.3