Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * USB device controllers have lots of quirks. Use these macros in | |
3 | * gadget drivers or other code that needs to deal with them, and which | |
4 | * autoconfigures instead of using early binding to the hardware. | |
5 | * | |
1c05ad44 | 6 | * This SHOULD eventually work like the ARM mach_is_*() stuff, driven by |
1da177e4 | 7 | * some config file that gets updated as new hardware is supported. |
1c05ad44 | 8 | * (And avoiding all runtime comparisons in typical one-choice configs!) |
1da177e4 LT |
9 | * |
10 | * NOTE: some of these controller drivers may not be available yet. | |
7f9985c2 DB |
11 | * Some are available on 2.4 kernels; several are available, but not |
12 | * yet pushed in the 2.6 mainline tree. | |
1da177e4 | 13 | */ |
e67d70f2 FB |
14 | |
15 | #ifndef __GADGET_CHIPS_H | |
16 | #define __GADGET_CHIPS_H | |
17 | ||
dc995fc2 SAS |
18 | #include <linux/usb/gadget.h> |
19 | ||
199e7edb FB |
20 | /* |
21 | * NOTICE: the entries below are alphabetical and should be kept | |
22 | * that way. | |
23 | * | |
24 | * Always be sure to add new entries to the correct position or | |
25 | * accept the bashing later. | |
26 | * | |
27 | * If you have forgotten the alphabetical order let VIM/EMACS | |
28 | * do that for you. | |
29 | */ | |
199e7edb | 30 | #define gadget_is_at91(g) (!strcmp("at91_udc", (g)->name)) |
199e7edb | 31 | #define gadget_is_goku(g) (!strcmp("goku_udc", (g)->name)) |
199e7edb | 32 | #define gadget_is_musbhdrc(g) (!strcmp("musb-hdrc", (g)->name)) |
199e7edb | 33 | #define gadget_is_net2280(g) (!strcmp("net2280", (g)->name)) |
199e7edb FB |
34 | #define gadget_is_pxa(g) (!strcmp("pxa25x_udc", (g)->name)) |
35 | #define gadget_is_pxa27x(g) (!strcmp("pxa27x_udc", (g)->name)) | |
da741b8c DB |
36 | |
37 | /** | |
38 | * gadget_supports_altsettings - return true if altsettings work | |
39 | * @gadget: the gadget in question | |
40 | */ | |
41 | static inline bool gadget_supports_altsettings(struct usb_gadget *gadget) | |
42 | { | |
43 | /* PXA 21x/25x/26x has no altsettings at all */ | |
44 | if (gadget_is_pxa(gadget)) | |
45 | return false; | |
46 | ||
47 | /* PXA 27x and 3xx have *broken* altsetting support */ | |
48 | if (gadget_is_pxa27x(gadget)) | |
49 | return false; | |
50 | ||
da741b8c DB |
51 | /* Everything else is *presumably* fine ... */ |
52 | return true; | |
53 | } | |
e67d70f2 FB |
54 | |
55 | #endif /* __GADGET_CHIPS_H */ |