linux/drivers/bluetooth/btmtk.h

/* SPDX-License-Identifier: ISC */
/* Copyright (C) 2021 MediaTek Inc. */

#define FIRMWARE_MT7622
#define FIRMWARE_MT7663
#define FIRMWARE_MT7668
#define FIRMWARE_MT7922
#define FIRMWARE_MT7961
#define FIRMWARE_MT7925

#define HCI_EV_WMT
#define HCI_WMT_MAX_EVENT_SIZE

#define BTMTK_WMT_REG_WRITE
#define BTMTK_WMT_REG_READ

#define MT7921_BTSYS_RST
#define MT7921_BTSYS_RST_WITH_GPIO

#define MT7921_PINMUX_0
#define MT7921_PINMUX_1

#define MT7921_DLSTATUS
#define BT_DL_STATE

#define MTK_COREDUMP_SIZE
#define MTK_COREDUMP_END
#define MTK_COREDUMP_END_LEN
#define MTK_COREDUMP_NUM

/* UHW CR mapping */
#define MTK_BT_MISC
#define MTK_BT_SUBSYS_RST
#define MTK_UDMA_INT_STA_BT
#define MTK_UDMA_INT_STA_BT1
#define MTK_BT_WDT_STATUS
#define MTK_EP_RST_OPT
#define MTK_EP_RST_IN_OUT_OPT
#define MTK_BT_RST_DONE
#define MTK_BT_RESET_REG_CONNV3
#define MTK_BT_READ_DEV_ID

/* MediaTek ISO Interface */
#define MTK_ISO_IFNUM

enum {};

enum {};

struct btmtk_wmt_hdr {} __packed;

struct btmtk_hci_wmt_cmd {} __packed;

struct btmtk_hci_wmt_evt {} __packed;

struct btmtk_hci_wmt_evt_funcc {} __packed;

struct btmtk_hci_wmt_evt_reg {} __packed;

struct btmtk_tci_sleep {} __packed;

struct btmtk_wakeon {} __packed;

struct btmtk_sco {} __packed;

struct reg_read_cmd {} __packed;

struct reg_write_cmd {} __packed;

struct btmtk_hci_wmt_params {};

enum {};

btmtk_reset_sync_func_t;

struct btmtk_coredump_info {};

struct btmtk_data {};

wmt_cmd_sync_func_t;

#if IS_ENABLED(CONFIG_BT_MTK)

int btmtk_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);

int btmtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwname,
			      wmt_cmd_sync_func_t wmt_cmd_sync);

int btmtk_setup_firmware(struct hci_dev *hdev, const char *fwname,
			 wmt_cmd_sync_func_t wmt_cmd_sync);

void btmtk_reset_sync(struct hci_dev *hdev);

int btmtk_register_coredump(struct hci_dev *hdev, const char *name,
			    u32 fw_version);

int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb);

void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id, u32 fw_ver,
			   u32 fw_flavor);

int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id);

int btmtk_usb_recv_acl(struct hci_dev *hdev, struct sk_buff *skb);

struct urb *alloc_mtk_intr_urb(struct hci_dev *hdev, struct sk_buff *skb,
			       usb_complete_t tx_complete);

int btmtk_usb_resume(struct hci_dev *hdev);

int btmtk_usb_suspend(struct hci_dev *hdev);

int btmtk_usb_setup(struct hci_dev *hdev);

int btmtk_usb_shutdown(struct hci_dev *hdev);
#else

static inline int btmtk_set_bdaddr(struct hci_dev *hdev,
				   const bdaddr_t *bdaddr)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_setup_firmware_79xx(struct hci_dev *hdev,
					    const char *fwname,
					    wmt_cmd_sync_func_t wmt_cmd_sync)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_setup_firmware(struct hci_dev *hdev, const char *fwname,
				       wmt_cmd_sync_func_t wmt_cmd_sync)
{
	return -EOPNOTSUPP;
}

static inline void btmtk_reset_sync(struct hci_dev *hdev)
{
}

static inline int btmtk_register_coredump(struct hci_dev *hdev,
					  const char *name, u32 fw_version)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_process_coredump(struct hci_dev *hdev,
					 struct sk_buff *skb)
{
	return -EOPNOTSUPP;
}

static inline void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id,
					 u32 fw_ver, u32 fw_flavor)
{
}

static inline int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_usb_recv_acl(struct hci_dev *hdev, struct sk_buff *skb)
{
	return -EOPNOTSUPP;
}

static inline struct urb *alloc_mtk_intr_urb(struct hci_dev *hdev,
					     struct sk_buff *skb,
					     usb_complete_t tx_complete)
{
	return ERR_PTR(-EOPNOTSUPP);
}

static inline int btmtk_usb_resume(struct hci_dev *hdev)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_usb_suspend(struct hci_dev *hdev)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_usb_setup(struct hci_dev *hdev)
{
	return -EOPNOTSUPP;
}

static inline int btmtk_usb_shutdown(struct hci_dev *hdev)
{
	return -EOPNOTSUPP;
}
#endif