Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright (C) 2011 Marvell International Ltd. All rights reserved.
0004  */
0005 
0006 #ifndef __MV_PLATFORM_USB_H
0007 #define __MV_PLATFORM_USB_H
0008 
0009 enum {
0010     MV_USB_MODE_OTG,
0011     MV_USB_MODE_HOST,
0012 };
0013 
0014 enum {
0015     VBUS_LOW    = 0,
0016     VBUS_HIGH   = 1 << 0,
0017 };
0018 
0019 struct mv_usb_addon_irq {
0020     unsigned int    irq;
0021     int     (*poll)(void);
0022 };
0023 
0024 struct mv_usb_platform_data {
0025     struct mv_usb_addon_irq *id;    /* Only valid for OTG. ID pin change*/
0026     struct mv_usb_addon_irq *vbus;  /* valid for OTG/UDC. VBUS change*/
0027 
0028     /* only valid for HCD. OTG or Host only*/
0029     unsigned int        mode;
0030 
0031     /* This flag is used for that needs id pin checked by otg */
0032     unsigned int    disable_otg_clock_gating:1;
0033     /* Force a_bus_req to be asserted */
0034      unsigned int    otg_force_a_bus_req:1;
0035 
0036     int (*phy_init)(void __iomem *regbase);
0037     void    (*phy_deinit)(void __iomem *regbase);
0038     int (*set_vbus)(unsigned int vbus);
0039 };
0040 #endif