1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Copyright (C) 2011 Marvell International Ltd. All rights reserved. 4 */ 5 6 #ifndef __MV_PLATFORM_USB_H 7 #define __MV_PLATFORM_USB_H 8 9 enum { 10 MV_USB_MODE_OTG, 11 MV_USB_MODE_HOST, 12 }; 13 14 enum { 15 VBUS_LOW = 0, 16 VBUS_HIGH = 1 << 0, 17 }; 18 19 struct mv_usb_addon_irq { 20 unsigned int irq; 21 int (*poll)(void); 22 }; 23 24 struct mv_usb_platform_data { 25 struct mv_usb_addon_irq *id; /* Only valid for OTG. ID pin change*/ 26 struct mv_usb_addon_irq *vbus; /* valid for OTG/UDC. VBUS change*/ 27 28 /* only valid for HCD. OTG or Host only*/ 29 unsigned int mode; 30 31 /* This flag is used for that needs id pin checked by otg */ 32 unsigned int disable_otg_clock_gating:1; 33 /* Force a_bus_req to be asserted */ 34 unsigned int otg_force_a_bus_req:1; 35 36 int (*phy_init)(void __iomem *regbase); 37 void (*phy_deinit)(void __iomem *regbase); 38 int (*set_vbus)(unsigned int vbus); 39 }; 40 #endif 41