2018.07.26

Dependencies:   FATFileSystem3 mbed-rtos

Fork of USBHost by mbed official

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,