| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * drivers/usb/gadget/dwc2_udc.h |
| * Designware DWC2 on-chip full/high speed USB device controllers |
| * Copyright (C) 2005 for Samsung Electronics |
| */ |
| |
| #ifndef __DWC2_USB_GADGET |
| #define __DWC2_USB_GADGET |
| |
| #include <dm/ofnode.h> |
| |
| #define PHY0_SLEEP (1 << 5) |
| #define DWC2_MAX_HW_ENDPOINTS 16 |
| |
| struct dwc2_plat_otg_data { |
| void *priv; |
| ofnode phy_of_node; |
| int (*phy_control)(int on); |
| uintptr_t regs_phy; |
| uintptr_t regs_otg; |
| unsigned int usb_phy_ctrl; |
| unsigned int usb_flags; |
| unsigned int usb_gusbcfg; |
| unsigned int rx_fifo_sz; |
| unsigned int np_tx_fifo_sz; |
| unsigned int tx_fifo_sz; |
| unsigned int tx_fifo_sz_array[DWC2_MAX_HW_ENDPOINTS]; |
| unsigned char tx_fifo_sz_nb; |
| bool force_b_session_valid; |
| bool force_vbus_detection; |
| bool activate_stm_id_vb_detection; |
| }; |
| |
| int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata); |
| |
| int dwc2_udc_B_session_valid(struct udevice *dev); |
| |
| #endif /* __DWC2_USB_GADGET */ |