xref: /rk3399_rockchip-uboot/drivers/usb/dwc3/dwc3-generic.h (revision c0de53344560ec25c94219a5f7d650d04b2cf3ae)
1*c0de5334SKunihiko Hayashi /* SPDX-License-Identifier: GPL-2.0 */
2*c0de5334SKunihiko Hayashi /*
3*c0de5334SKunihiko Hayashi  * dwc3-generic.h - Generic DWC3 Glue layer header
4*c0de5334SKunihiko Hayashi  *
5*c0de5334SKunihiko Hayashi  * Copyright (C) 2016 - 2018 Xilinx, Inc.
6*c0de5334SKunihiko Hayashi  * Copyright (C) 2023 Socionext Inc.
7*c0de5334SKunihiko Hayashi  */
8*c0de5334SKunihiko Hayashi 
9*c0de5334SKunihiko Hayashi #ifndef __DRIVERS_USB_DWC3_GENERIC_H
10*c0de5334SKunihiko Hayashi #define __DRIVERS_USB_DWC3_GENERIC_H
11*c0de5334SKunihiko Hayashi 
12*c0de5334SKunihiko Hayashi #include <clk.h>
13*c0de5334SKunihiko Hayashi #include <reset.h>
14*c0de5334SKunihiko Hayashi #include <dwc3-uboot.h>
15*c0de5334SKunihiko Hayashi 
16*c0de5334SKunihiko Hayashi struct dwc3_glue_data {
17*c0de5334SKunihiko Hayashi 	struct clk_bulk		clks;
18*c0de5334SKunihiko Hayashi 	struct reset_ctl_bulk	resets;
19*c0de5334SKunihiko Hayashi 	fdt_addr_t regs;
20*c0de5334SKunihiko Hayashi };
21*c0de5334SKunihiko Hayashi 
22*c0de5334SKunihiko Hayashi struct dwc3_glue_ops {
23*c0de5334SKunihiko Hayashi 	int (*glue_get_ctrl_dev)(struct udevice *parent, ofnode *node);
24*c0de5334SKunihiko Hayashi 	void (*glue_configure)(struct udevice *dev, int index,
25*c0de5334SKunihiko Hayashi 			       enum usb_dr_mode mode);
26*c0de5334SKunihiko Hayashi };
27*c0de5334SKunihiko Hayashi 
28*c0de5334SKunihiko Hayashi int dwc3_glue_bind(struct udevice *parent);
29*c0de5334SKunihiko Hayashi int dwc3_glue_probe(struct udevice *dev);
30*c0de5334SKunihiko Hayashi int dwc3_glue_remove(struct udevice *dev);
31*c0de5334SKunihiko Hayashi 
32*c0de5334SKunihiko Hayashi #endif
33