2018.07.26
Dependencies: FATFileSystem3 mbed-rtos
Fork of USBHost by
Diff: USBHost/USBHost.h
- Revision:
- 8:93da8ea2708b
- Parent:
- 6:1571e517a91b
- Child:
- 9:7671b6a8c363
--- a/USBHost/USBHost.h Wed Mar 13 17:30:42 2013 +0000 +++ b/USBHost/USBHost.h Thu Mar 14 11:49:53 2013 +0000 @@ -1,20 +1,18 @@ -/* Copyright (c) 2010-2012 mbed.org, MIT License -* -* Permission is hereby granted, free of charge, to any person obtaining a copy of this software -* and associated documentation files (the "Software"), to deal in the Software without -* restriction, including without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all copies or -* substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ +/* mbed USBHost Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #ifndef USBHOST_H #define USBHOST_H @@ -27,7 +25,10 @@ #include "dbg.h" #include "USBHostHub.h" -// singleton class +/** +* USBHost class +* This class is a singleton. All drivers have a reference on the static USBHost instance +*/ class USBHost : public USBHALHost { public: /** @@ -127,6 +128,13 @@ USB_TYPE enumerate(USBDeviceConnected * dev, IUSBEnumerator* pEnumerator); /** + * reset a specific device + * + * @param dev device which will be resetted + */ + USB_TYPE resetDevice(USBDeviceConnected * dev); + + /** * Get a device * * @param index index of the device which will be returned @@ -136,13 +144,6 @@ USBDeviceConnected * getDevice(uint8_t index); /* - * reset a specific device - * - * @param dev device which will be resetted - */ - USB_TYPE resetDevice(USBDeviceConnected * dev); - - /** * If there is a HID device connected, the host stores the length of the report descriptor. * This avoid to the driver to re-ask the configuration descriptor to request the report descriptor * @@ -186,6 +187,17 @@ } } + friend class USBHostHub; + +protected: + + /** + * Virtual method called when a transfer has been completed + * + * @param addr list of the TDs which have been completed + */ + virtual void transferCompleted(volatile uint32_t addr); + /** * Virtual method called when a device has been connected * @@ -204,22 +216,6 @@ * @param addr list of the TDs which have been completed to dequeue freed TDs */ virtual void deviceDisconnected(int hub, int port, USBHostHub * hub_parent, volatile uint32_t addr); - - /** - * Free a specific device - * - * @param dev device to be freed - */ - void freeDevice(USBDeviceConnected * dev); - -protected: - - /** - * Virtual method called when a transfer has been completed - * - * @param addr list of the TDs which have been completed - */ - virtual void transferCompleted(volatile uint32_t addr) ; private: @@ -347,6 +343,13 @@ */ USB_TYPE setConfiguration(USBDeviceConnected * dev, uint8_t conf); + /** + * Free a specific device + * + * @param dev device to be freed + */ + void freeDevice(USBDeviceConnected * dev); + USB_TYPE controlTransfer( USBDeviceConnected * dev, uint8_t requestType, uint8_t request,