Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Platform data for OMAP1 USB
0003  *
0004  * This file is subject to the terms and conditions of the GNU General Public
0005  * License. See the file "COPYING" in the main directory of this archive for
0006  * more details.
0007  */
0008 #ifndef __LINUX_USB_OMAP1_H
0009 #define __LINUX_USB_OMAP1_H
0010 
0011 #include <linux/platform_device.h>
0012 
0013 struct omap_usb_config {
0014     /* Configure drivers according to the connectors on your board:
0015      *  - "A" connector (rectagular)
0016      *  ... for host/OHCI use, set "register_host".
0017      *  - "B" connector (squarish) or "Mini-B"
0018      *  ... for device/gadget use, set "register_dev".
0019      *  - "Mini-AB" connector (very similar to Mini-B)
0020      *  ... for OTG use as device OR host, initialize "otg"
0021      */
0022     unsigned    register_host:1;
0023     unsigned    register_dev:1;
0024     u8      otg;    /* port number, 1-based:  usb1 == 2 */
0025 
0026     const char  *extcon;    /* extcon device for OTG */
0027 
0028     u8      hmc_mode;
0029 
0030     /* implicitly true if otg:  host supports remote wakeup? */
0031     u8      rwc;
0032 
0033     /* signaling pins used to talk to transceiver on usbN:
0034      *  0 == usbN unused
0035      *  2 == usb0-only, using internal transceiver
0036      *  3 == 3 wire bidirectional
0037      *  4 == 4 wire bidirectional
0038      *  6 == 6 wire unidirectional (or TLL)
0039      */
0040     u8      pins[3];
0041 
0042     struct platform_device *udc_device;
0043     struct platform_device *ohci_device;
0044     struct platform_device *otg_device;
0045 
0046     u32 (*usb0_init)(unsigned nwires, unsigned is_device);
0047     u32 (*usb1_init)(unsigned nwires);
0048     u32 (*usb2_init)(unsigned nwires, unsigned alt_pingroup);
0049 
0050     int (*ocpi_enable)(void);
0051 
0052     void (*lb_reset)(void);
0053 
0054     int (*transceiver_power)(int on);
0055 };
0056 
0057 #endif /* __LINUX_USB_OMAP1_H */