16c92544dSBjoern A. Zeeb /* SPDX-License-Identifier: ISC */ 26c92544dSBjoern A. Zeeb /* 36c92544dSBjoern A. Zeeb * Copyright (C) 2018 Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> 46c92544dSBjoern A. Zeeb */ 56c92544dSBjoern A. Zeeb 66c92544dSBjoern A. Zeeb #ifndef __MT76x2U_H 76c92544dSBjoern A. Zeeb #define __MT76x2U_H 86c92544dSBjoern A. Zeeb 96c92544dSBjoern A. Zeeb #include <linux/device.h> 106c92544dSBjoern A. Zeeb 116c92544dSBjoern A. Zeeb #include "mt76x2.h" 126c92544dSBjoern A. Zeeb #include "mcu.h" 136c92544dSBjoern A. Zeeb 146c92544dSBjoern A. Zeeb #define MT7612U_EEPROM_SIZE 512 156c92544dSBjoern A. Zeeb 166c92544dSBjoern A. Zeeb #define MT_USB_AGGR_SIZE_LIMIT 21 /* 1024B unit */ 176c92544dSBjoern A. Zeeb #define MT_USB_AGGR_TIMEOUT 0x80 /* 33ns unit */ 186c92544dSBjoern A. Zeeb 196c92544dSBjoern A. Zeeb extern const struct ieee80211_ops mt76x2u_ops; 206c92544dSBjoern A. Zeeb 216c92544dSBjoern A. Zeeb int mt76x2u_register_device(struct mt76x02_dev *dev); 226c92544dSBjoern A. Zeeb int mt76x2u_init_hardware(struct mt76x02_dev *dev); 236c92544dSBjoern A. Zeeb void mt76x2u_cleanup(struct mt76x02_dev *dev); 246c92544dSBjoern A. Zeeb void mt76x2u_stop_hw(struct mt76x02_dev *dev); 256c92544dSBjoern A. Zeeb 266c92544dSBjoern A. Zeeb int mt76x2u_mac_reset(struct mt76x02_dev *dev); 276c92544dSBjoern A. Zeeb int mt76x2u_mac_stop(struct mt76x02_dev *dev); 286c92544dSBjoern A. Zeeb 296c92544dSBjoern A. Zeeb int mt76x2u_phy_set_channel(struct mt76x02_dev *dev, 306c92544dSBjoern A. Zeeb struct cfg80211_chan_def *chandef); 316c92544dSBjoern A. Zeeb void mt76x2u_phy_calibrate(struct work_struct *work); 326c92544dSBjoern A. Zeeb 336c92544dSBjoern A. Zeeb void mt76x2u_mcu_complete_urb(struct urb *urb); 346c92544dSBjoern A. Zeeb int mt76x2u_mcu_init(struct mt76x02_dev *dev); 356c92544dSBjoern A. Zeeb int mt76x2u_mcu_fw_init(struct mt76x02_dev *dev); 366c92544dSBjoern A. Zeeb 376c92544dSBjoern A. Zeeb int mt76x2u_alloc_queues(struct mt76x02_dev *dev); 386c92544dSBjoern A. Zeeb void mt76x2u_queues_deinit(struct mt76x02_dev *dev); 396c92544dSBjoern A. Zeeb void mt76x2u_stop_queues(struct mt76x02_dev *dev); 406c92544dSBjoern A. Zeeb int mt76x2u_skb_dma_info(struct sk_buff *skb, enum dma_msg_port port, 416c92544dSBjoern A. Zeeb u32 flags); 426c92544dSBjoern A. Zeeb 436c92544dSBjoern A. Zeeb #endif /* __MT76x2U_H */ 44