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