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