linux/drivers/i3c/master/mipi-i3c-hci/cmd_v2.c

// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, MIPI Alliance, Inc.
 *
 * Author: Nicolas Pitre <[email protected]>
 *
 * I3C HCI v2.0 Command Descriptor Handling
 *
 * Note: The I3C HCI v2.0 spec is still in flux. The code here will change.
 */

#include <linux/bitfield.h>
#include <linux/i3c/master.h>

#include "hci.h"
#include "cmd.h"
#include "xfer_mode_rate.h"


/*
 * Unified Data Transfer Command
 */

#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)

/*
 * Address Assignment Command
 */

#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 =;