#include <linux/bitfield.h>
#include <linux/bitmap.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/i3c/master.h>
#include <linux/io.h>
#include "hci.h"
#include "dat.h"
#define DAT_1_AUTOCMD_HDR_CODE …
#define DAT_1_AUTOCMD_MODE …
#define DAT_1_AUTOCMD_VALUE …
#define DAT_1_AUTOCMD_MASK …
#define DAT_0_DEV_NACK_RETRY_CNT …
#define DAT_0_RING_ID …
#define DAT_0_DYNADDR_PARITY …
#define DAT_0_DYNAMIC_ADDRESS …
#define DAT_0_TS …
#define DAT_0_MR_REJECT …
#define DAT_0_STATIC_ADDRESS …
#define dat_w0_read(i) …
#define dat_w1_read(i) …
#define dat_w0_write(i, v) …
#define dat_w1_write(i, v) …
static inline bool dynaddr_parity(unsigned int addr)
{ … }
static int hci_dat_v1_init(struct i3c_hci *hci)
{ … }
static void hci_dat_v1_cleanup(struct i3c_hci *hci)
{ … }
static int hci_dat_v1_alloc_entry(struct i3c_hci *hci)
{ … }
static void hci_dat_v1_free_entry(struct i3c_hci *hci, unsigned int dat_idx)
{ … }
static void hci_dat_v1_set_dynamic_addr(struct i3c_hci *hci,
unsigned int dat_idx, u8 address)
{ … }
static void hci_dat_v1_set_static_addr(struct i3c_hci *hci,
unsigned int dat_idx, u8 address)
{ … }
static void hci_dat_v1_set_flags(struct i3c_hci *hci, unsigned int dat_idx,
u32 w0_flags, u32 w1_flags)
{ … }
static void hci_dat_v1_clear_flags(struct i3c_hci *hci, unsigned int dat_idx,
u32 w0_flags, u32 w1_flags)
{ … }
static int hci_dat_v1_get_index(struct i3c_hci *hci, u8 dev_addr)
{ … }
const struct hci_dat_ops mipi_i3c_hci_dat_v1 = …;