Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * This supports machine-specific differences in how the PXA2xx
0004  * USB Device Controller (UDC) is wired.
0005  *
0006  * It is set in linux/arch/arm/mach-pxa/<machine>.c or in
0007  * linux/arch/mach-ixp4xx/<machine>.c and used in
0008  * the probe routine of linux/drivers/usb/gadget/pxa2xx_udc.c
0009  */
0010 #ifndef PXA2XX_UDC_H
0011 #define PXA2XX_UDC_H
0012 
0013 struct pxa2xx_udc_mach_info {
0014         int  (*udc_is_connected)(void);     /* do we see host? */
0015         void (*udc_command)(int cmd);
0016 #define PXA2XX_UDC_CMD_CONNECT      0   /* let host see us */
0017 #define PXA2XX_UDC_CMD_DISCONNECT   1   /* so host won't see us */
0018 
0019     /* Boards following the design guidelines in the developer's manual,
0020      * with on-chip GPIOs not Lubbock's weird hardware, can have a sane
0021      * VBUS IRQ and omit the methods above.  Store the GPIO number
0022      * here.  Note that sometimes the signals go through inverters...
0023      */
0024     bool    gpio_pullup_inverted;
0025     int gpio_pullup;            /* high == pullup activated */
0026 };
0027 
0028 #endif