162306a36Sopenharmony_ci// SPDX-License-Identifier: ISC
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2011 Broadcom Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#ifndef BRCMFMAC_USB_H
662306a36Sopenharmony_ci#define BRCMFMAC_USB_H
762306a36Sopenharmony_ci
862306a36Sopenharmony_cienum brcmf_usb_state {
962306a36Sopenharmony_ci	BRCMFMAC_USB_STATE_DOWN,
1062306a36Sopenharmony_ci	BRCMFMAC_USB_STATE_DL_FAIL,
1162306a36Sopenharmony_ci	BRCMFMAC_USB_STATE_DL_DONE,
1262306a36Sopenharmony_ci	BRCMFMAC_USB_STATE_UP,
1362306a36Sopenharmony_ci	BRCMFMAC_USB_STATE_SLEEP
1462306a36Sopenharmony_ci};
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cistruct brcmf_stats {
1762306a36Sopenharmony_ci	u32 tx_ctlpkts;
1862306a36Sopenharmony_ci	u32 tx_ctlerrs;
1962306a36Sopenharmony_ci	u32 rx_ctlpkts;
2062306a36Sopenharmony_ci	u32 rx_ctlerrs;
2162306a36Sopenharmony_ci};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct brcmf_usbdev {
2462306a36Sopenharmony_ci	struct brcmf_bus *bus;
2562306a36Sopenharmony_ci	struct brcmf_usbdev_info *devinfo;
2662306a36Sopenharmony_ci	enum brcmf_usb_state state;
2762306a36Sopenharmony_ci	struct brcmf_stats stats;
2862306a36Sopenharmony_ci	int ntxq, nrxq, rxsize;
2962306a36Sopenharmony_ci	u32 bus_mtu;
3062306a36Sopenharmony_ci	int devid;
3162306a36Sopenharmony_ci	int chiprev; /* chip revision number */
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci/* IO Request Block (IRB) */
3562306a36Sopenharmony_cistruct brcmf_usbreq {
3662306a36Sopenharmony_ci	struct list_head list;
3762306a36Sopenharmony_ci	struct brcmf_usbdev_info *devinfo;
3862306a36Sopenharmony_ci	struct urb *urb;
3962306a36Sopenharmony_ci	struct sk_buff  *skb;
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci#endif /* BRCMFMAC_USB_H */
43