2005-04-17 02:20:36 +04:00
/*
* USB device controllers have lots of quirks . Use these macros in
* gadget drivers or other code that needs to deal with them , and which
* autoconfigures instead of using early binding to the hardware .
*
2006-01-25 19:45:59 +03:00
* This SHOULD eventually work like the ARM mach_is_ * ( ) stuff , driven by
2005-04-17 02:20:36 +04:00
* some config file that gets updated as new hardware is supported .
2006-01-25 19:45:59 +03:00
* ( And avoiding all runtime comparisons in typical one - choice configs ! )
2005-04-17 02:20:36 +04:00
*
* NOTE : some of these controller drivers may not be available yet .
2007-05-09 08:01:30 +04:00
* Some are available on 2.4 kernels ; several are available , but not
* yet pushed in the 2.6 mainline tree .
2005-04-17 02:20:36 +04:00
*/
2008-07-17 18:26:49 +04:00
# ifndef __GADGET_CHIPS_H
# define __GADGET_CHIPS_H
2012-09-06 22:11:12 +04:00
# include <linux/usb/gadget.h>
2011-06-13 19:43:59 +04:00
/*
* NOTICE : the entries below are alphabetical and should be kept
* that way .
*
* Always be sure to add new entries to the correct position or
* accept the bashing later .
*
* If you have forgotten the alphabetical order let VIM / EMACS
* do that for you .
*/
# define gadget_is_at91(g) (!strcmp("at91_udc", (g)->name))
# define gadget_is_goku(g) (!strcmp("goku_udc", (g)->name))
# define gadget_is_musbhdrc(g) (!strcmp("musb-hdrc", (g)->name))
# define gadget_is_net2280(g) (!strcmp("net2280", (g)->name))
# define gadget_is_pxa(g) (!strcmp("pxa25x_udc", (g)->name))
# define gadget_is_pxa27x(g) (!strcmp("pxa27x_udc", (g)->name))
2008-06-20 05:19:46 +04:00
/**
* gadget_supports_altsettings - return true if altsettings work
* @ gadget : the gadget in question
*/
static inline bool gadget_supports_altsettings ( struct usb_gadget * gadget )
{
/* PXA 21x/25x/26x has no altsettings at all */
if ( gadget_is_pxa ( gadget ) )
return false ;
/* PXA 27x and 3xx have *broken* altsetting support */
if ( gadget_is_pxa27x ( gadget ) )
return false ;
/* Everything else is *presumably* fine ... */
return true ;
}
2008-07-17 18:26:49 +04:00
# endif /* __GADGET_CHIPS_H */