#include <linux/bitfield.h>
#include <linux/i3c/master.h>
#include "hci.h"
#include "cmd.h"
#include "xfer_mode_rate.h"
#define CMD_0_ATTR_U …
#define CMD_U3_HDR_TSP_ML_CTRL(v) …
#define CMD_U3_IDB4(v) …
#define CMD_U3_HDR_CMD(v) …
#define CMD_U2_IDB3(v) …
#define CMD_U2_HDR_BT(v) …
#define CMD_U2_IDB2(v) …
#define CMD_U2_BT_CMD2(v) …
#define CMD_U2_IDB1(v) …
#define CMD_U2_BT_CMD1(v) …
#define CMD_U2_IDB0(v) …
#define CMD_U2_BT_CMD0(v) …
#define CMD_U1_ERR_HANDLING(v) …
#define CMD_U1_ADD_FUNC(v) …
#define CMD_U1_COMBO_XFER …
#define CMD_U1_DATA_LENGTH(v) …
#define CMD_U0_TOC …
#define CMD_U0_ROC …
#define CMD_U0_MAY_YIELD …
#define CMD_U0_NACK_RCNT(v) …
#define CMD_U0_IDB_COUNT(v) …
#define CMD_U0_MODE_INDEX(v) …
#define CMD_U0_XFER_RATE(v) …
#define CMD_U0_DEV_ADDRESS(v) …
#define CMD_U0_RnW …
#define CMD_U0_TID(v) …
#define CMD_0_ATTR_A …
#define CMD_A1_DATA_LENGTH(v) …
#define CMD_A0_TOC …
#define CMD_A0_ROC …
#define CMD_A0_XFER_RATE(v) …
#define CMD_A0_ASSIGN_ADDRESS(v) …
#define CMD_A0_TID(v) …
static unsigned int get_i3c_rate_idx(struct i3c_hci *hci)
{ … }
static unsigned int get_i2c_rate_idx(struct i3c_hci *hci)
{ … }
static void hci_cmd_v2_prep_private_xfer(struct i3c_hci *hci,
struct hci_xfer *xfer,
u8 addr, unsigned int mode,
unsigned int rate)
{ … }
static int hci_cmd_v2_prep_ccc(struct i3c_hci *hci, struct hci_xfer *xfer,
u8 ccc_addr, u8 ccc_cmd, bool raw)
{ … }
static void hci_cmd_v2_prep_i3c_xfer(struct i3c_hci *hci,
struct i3c_dev_desc *dev,
struct hci_xfer *xfer)
{ … }
static void hci_cmd_v2_prep_i2c_xfer(struct i3c_hci *hci,
struct i2c_dev_desc *dev,
struct hci_xfer *xfer)
{ … }
static int hci_cmd_v2_daa(struct i3c_hci *hci)
{ … }
const struct hci_cmd_ops mipi_i3c_hci_cmd_v2 = …;