Linux Audio

Check our new training course

Linux debugging, profiling, tracing and performance analysis training

Mar 24-27, 2025, special US time zones
Register
Loading...
Note: File does not exist in v3.15.
 1/*
 2 * Copyright (C) 2014-2017 Broadcom
 3 *
 4 * This software is licensed under the terms of the GNU General Public
 5 * License version 2, as published by the Free Software Foundation, and
 6 * may be copied, distributed, and modified under those terms.
 7 *
 8 * This program is distributed in the hope that it will be useful,
 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef _USB_BRCM_COMMON_INIT_H
15#define _USB_BRCM_COMMON_INIT_H
16
17#define USB_CTLR_MODE_HOST 0
18#define USB_CTLR_MODE_DEVICE 1
19#define USB_CTLR_MODE_DRD 2
20#define USB_CTLR_MODE_TYPEC_PD 3
21
22struct  brcm_usb_init_params;
23
24struct  brcm_usb_init_params {
25	void __iomem *ctrl_regs;
26	void __iomem *xhci_ec_regs;
27	int ioc;
28	int ipp;
29	int mode;
30	u32 family_id;
31	u32 product_id;
32	int selected_family;
33	const char *family_name;
34	const u32 *usb_reg_bits_map;
35};
36
37void brcm_usb_set_family_map(struct brcm_usb_init_params *params);
38int brcm_usb_init_get_dual_select(struct brcm_usb_init_params *params);
39void brcm_usb_init_set_dual_select(struct brcm_usb_init_params *params,
40				   int mode);
41
42void brcm_usb_init_ipp(struct brcm_usb_init_params *ini);
43void brcm_usb_init_common(struct brcm_usb_init_params *ini);
44void brcm_usb_init_eohci(struct brcm_usb_init_params *ini);
45void brcm_usb_init_xhci(struct brcm_usb_init_params *ini);
46void brcm_usb_uninit_common(struct brcm_usb_init_params *ini);
47void brcm_usb_uninit_eohci(struct brcm_usb_init_params *ini);
48void brcm_usb_uninit_xhci(struct brcm_usb_init_params *ini);
49
50#endif /* _USB_BRCM_COMMON_INIT_H */