1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * drivers/usb/gadget/dwc2_udc.h 4 * Designware DWC2 on-chip full/high speed USB device controllers 5 * Copyright (C) 2005 for Samsung Electronics 6 */ 7 8 #ifndef __DWC2_USB_GADGET 9 #define __DWC2_USB_GADGET 10 11 #include <dm/ofnode.h> 12 13 #define PHY0_SLEEP (1 << 5) 14 #define DWC2_MAX_HW_ENDPOINTS 16 15 16 struct dwc2_plat_otg_data { 17 void *priv; 18 ofnode phy_of_node; 19 int (*phy_control)(int on); 20 uintptr_t regs_phy; 21 uintptr_t regs_otg; 22 unsigned int usb_phy_ctrl; 23 unsigned int usb_flags; 24 unsigned int usb_gusbcfg; 25 unsigned int rx_fifo_sz; 26 unsigned int np_tx_fifo_sz; 27 unsigned int tx_fifo_sz; 28 unsigned int tx_fifo_sz_array[DWC2_MAX_HW_ENDPOINTS]; 29 unsigned char tx_fifo_sz_nb; 30 bool force_b_session_valid; 31 bool force_vbus_detection; 32 bool activate_stm_id_vb_detection; 33 }; 34 35 int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata); 36 37 int dwc2_udc_B_session_valid(struct udevice *dev); 38 39 #endif /* __DWC2_USB_GADGET */ 40