xref: /freebsd/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.h (revision b4c3e9b5b09c829b4135aff738bd2893ed052377)
1*b4c3e9b5SBjoern A. Zeeb // SPDX-License-Identifier: ISC
2*b4c3e9b5SBjoern A. Zeeb /*
3*b4c3e9b5SBjoern A. Zeeb  * Copyright (c) 2011 Broadcom Corporation
4*b4c3e9b5SBjoern A. Zeeb  */
5*b4c3e9b5SBjoern A. Zeeb #ifndef BRCMFMAC_USB_H
6*b4c3e9b5SBjoern A. Zeeb #define BRCMFMAC_USB_H
7*b4c3e9b5SBjoern A. Zeeb 
8*b4c3e9b5SBjoern A. Zeeb enum brcmf_usb_state {
9*b4c3e9b5SBjoern A. Zeeb 	BRCMFMAC_USB_STATE_DOWN,
10*b4c3e9b5SBjoern A. Zeeb 	BRCMFMAC_USB_STATE_DL_FAIL,
11*b4c3e9b5SBjoern A. Zeeb 	BRCMFMAC_USB_STATE_DL_DONE,
12*b4c3e9b5SBjoern A. Zeeb 	BRCMFMAC_USB_STATE_UP,
13*b4c3e9b5SBjoern A. Zeeb 	BRCMFMAC_USB_STATE_SLEEP
14*b4c3e9b5SBjoern A. Zeeb };
15*b4c3e9b5SBjoern A. Zeeb 
16*b4c3e9b5SBjoern A. Zeeb struct brcmf_stats {
17*b4c3e9b5SBjoern A. Zeeb 	u32 tx_ctlpkts;
18*b4c3e9b5SBjoern A. Zeeb 	u32 tx_ctlerrs;
19*b4c3e9b5SBjoern A. Zeeb 	u32 rx_ctlpkts;
20*b4c3e9b5SBjoern A. Zeeb 	u32 rx_ctlerrs;
21*b4c3e9b5SBjoern A. Zeeb };
22*b4c3e9b5SBjoern A. Zeeb 
23*b4c3e9b5SBjoern A. Zeeb struct brcmf_usbdev {
24*b4c3e9b5SBjoern A. Zeeb 	struct brcmf_bus *bus;
25*b4c3e9b5SBjoern A. Zeeb 	struct brcmf_usbdev_info *devinfo;
26*b4c3e9b5SBjoern A. Zeeb 	enum brcmf_usb_state state;
27*b4c3e9b5SBjoern A. Zeeb 	struct brcmf_stats stats;
28*b4c3e9b5SBjoern A. Zeeb 	int ntxq, nrxq, rxsize;
29*b4c3e9b5SBjoern A. Zeeb 	u32 bus_mtu;
30*b4c3e9b5SBjoern A. Zeeb 	int devid;
31*b4c3e9b5SBjoern A. Zeeb 	int chiprev; /* chip revision number */
32*b4c3e9b5SBjoern A. Zeeb };
33*b4c3e9b5SBjoern A. Zeeb 
34*b4c3e9b5SBjoern A. Zeeb /* IO Request Block (IRB) */
35*b4c3e9b5SBjoern A. Zeeb struct brcmf_usbreq {
36*b4c3e9b5SBjoern A. Zeeb 	struct list_head list;
37*b4c3e9b5SBjoern A. Zeeb 	struct brcmf_usbdev_info *devinfo;
38*b4c3e9b5SBjoern A. Zeeb 	struct urb *urb;
39*b4c3e9b5SBjoern A. Zeeb 	struct sk_buff  *skb;
40*b4c3e9b5SBjoern A. Zeeb };
41*b4c3e9b5SBjoern A. Zeeb 
42*b4c3e9b5SBjoern A. Zeeb #endif /* BRCMFMAC_USB_H */
43