1 /* 2 * Copyright (C) 2011 Marvell International Ltd. All rights reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU General Public License as published by the 6 * Free Software Foundation; either version 2 of the License, or (at your 7 * option) any later version. 8 */ 9 10 #ifndef __MV_PLATFORM_USB_H 11 #define __MV_PLATFORM_USB_H 12 13 enum pxa_ehci_type { 14 EHCI_UNDEFINED = 0, 15 PXA_U2OEHCI, /* pxa 168, 9xx */ 16 PXA_SPH, /* pxa 168, 9xx SPH */ 17 MMP3_HSIC, /* mmp3 hsic */ 18 MMP3_FSIC, /* mmp3 fsic */ 19 }; 20 21 enum { 22 MV_USB_MODE_OTG, 23 MV_USB_MODE_HOST, 24 }; 25 26 enum { 27 VBUS_LOW = 0, 28 VBUS_HIGH = 1 << 0, 29 }; 30 31 struct mv_usb_addon_irq { 32 unsigned int irq; 33 int (*poll)(void); 34 }; 35 36 struct mv_usb_platform_data { 37 struct mv_usb_addon_irq *id; /* Only valid for OTG. ID pin change*/ 38 struct mv_usb_addon_irq *vbus; /* valid for OTG/UDC. VBUS change*/ 39 40 /* only valid for HCD. OTG or Host only*/ 41 unsigned int mode; 42 43 /* This flag is used for that needs id pin checked by otg */ 44 unsigned int disable_otg_clock_gating:1; 45 /* Force a_bus_req to be asserted */ 46 unsigned int otg_force_a_bus_req:1; 47 48 int (*phy_init)(void __iomem *regbase); 49 void (*phy_deinit)(void __iomem *regbase); 50 int (*set_vbus)(unsigned int vbus); 51 int (*private_init)(void __iomem *opregs, void __iomem *phyregs); 52 }; 53 #endif 54