Fork to support Mouse boot protocol and steam controllers.

Fork of USBHOST by ST

Committer:
geekylou
Date:
Sat Aug 19 19:47:53 2017 +0000
Revision:
8:e57ccb876952
Parent:
5:fc157e6bd5a5
Add steam controller support.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 1 /* mbed USBHost Library
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 2 * Copyright (c) 2006-2013 ARM Limited
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 3 *
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 4 * Licensed under the Apache License, Version 2.0 (the "License");
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 5 * you may not use this file except in compliance with the License.
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 6 * You may obtain a copy of the License at
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 7 *
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 8 * http://www.apache.org/licenses/LICENSE-2.0
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 9 *
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 10 * Unless required by applicable law or agreed to in writing, software
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 11 * distributed under the License is distributed on an "AS IS" BASIS,
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 13 * See the License for the specific language governing permissions and
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 14 * limitations under the License.
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 15 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 16
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 17 #ifndef USBHOST_CONF_H
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 18 #define USBHOST_CONF_H
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 19 #if defined(TARGET_STM)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 20 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 21 * Maximum number of devices that can be connected
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 22 * to the usb host
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 23 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 24 /* hub + 2 devices */
frq08711@LMECWL0871.LME.ST.COM 5:fc157e6bd5a5 25 #define MAX_DEVICE_CONNECTED 5
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 26
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 27 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 28 * Maximum of Hub connected to the usb host
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 29 */
frq08711@LMECWL0871.LME.ST.COM 5:fc157e6bd5a5 30 #define MAX_HUB_NB 3
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 31
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 32 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 33 * Maximum number of ports on a USB hub
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 34 */
frq08711@LMECWL0871.LME.ST.COM 5:fc157e6bd5a5 35 #define MAX_HUB_PORT 4
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 36
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 37 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 38 * Enable USBHostMSD
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 39 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 40 #define USBHOST_MSD 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 41
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 42 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 43 * Enable USBHostKeyboard
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 44 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 45 #define USBHOST_KEYBOARD 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 46
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 47 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 48 * Enable USBHostMouse
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 49 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 50 #define USBHOST_MOUSE 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 51
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 52 /*
geekylou 8:e57ccb876952 53 * Enable USBHostMouse
geekylou 8:e57ccb876952 54 */
geekylou 8:e57ccb876952 55 #define USBHOST_STEAM 1
geekylou 8:e57ccb876952 56
geekylou 8:e57ccb876952 57
geekylou 8:e57ccb876952 58 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 59 * Enable USBHostSerial or USBHostMultiSerial (if set > 1)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 60 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 61 #define USBHOST_SERIAL 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 62
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 63 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 64 * Enable USB3Gmodule
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 65 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 66 #define USBHOST_3GMODULE 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 67
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 68 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 69 * Enable USB MIDI
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 70 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 71 #define USBHOST_MIDI 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 72
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 73 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 74 * Maximum number of interfaces of a usb device
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 75 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 76 #define MAX_INTF 2
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 77
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 78 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 79 * Maximum number of endpoints on each interface
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 80 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 81 #define MAX_ENDPOINT_PER_INTERFACE 2
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 82
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 83 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 84 * Maximum number of endpoint descriptors that can be allocated
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 85 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 86 #define MAX_ENDPOINT 11 /* USB FS 11 channel */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 87
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 88 #else
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 89 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 90 * Maximum number of devices that can be connected
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 91 * to the usb host
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 92 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 93 #define MAX_DEVICE_CONNECTED 5
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 94
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 95 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 96 * Maximum of Hub connected to the usb host
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 97 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 98 #define MAX_HUB_NB 2
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 99
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 100 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 101 * Maximum number of ports on a USB hub
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 102 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 103 #define MAX_HUB_PORT 4
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 104
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 105 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 106 * Enable USBHostMSD
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 107 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 108 #define USBHOST_MSD 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 109
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 110 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 111 * Enable USBHostKeyboard
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 112 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 113 #define USBHOST_KEYBOARD 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 114
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 115 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 116 * Enable USBHostMouse
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 117 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 118 #define USBHOST_MOUSE 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 119
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 120 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 121 * Enable USBHostSerial or USBHostMultiSerial (if set > 1)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 122 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 123 #define USBHOST_SERIAL 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 124
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 125 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 126 * Enable USB3Gmodule
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 127 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 128 #define USBHOST_3GMODULE 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 129
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 130 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 131 * Enable USB MIDI
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 132 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 133 #define USBHOST_MIDI 1
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 134
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 135 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 136 * Maximum number of interfaces of a usb device
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 137 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 138 #define MAX_INTF 4
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 139
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 140 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 141 * Maximum number of endpoints on each interface
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 142 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 143 #define MAX_ENDPOINT_PER_INTERFACE 3
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 144
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 145 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 146 * Maximum number of endpoint descriptors that can be allocated
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 147 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 148 #define MAX_ENDPOINT (MAX_DEVICE_CONNECTED * MAX_INTF * MAX_ENDPOINT_PER_INTERFACE)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 149 #endif
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 150 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 151 * Maximum number of transfer descriptors that can be allocated
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 152 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 153 #define MAX_TD (MAX_ENDPOINT*2)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 154
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 155 /*
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 156 * usb_thread stack size
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 157 */
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 158 #define USB_THREAD_STACK (256*4 + 2*256*4)
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 159
frq08711@LMECWL0871.LME.ST.COM 1:ab240722d7ef 160 #endif