Commit Graph

652 Commits

Author SHA1 Message Date
Dean Camera 2d9f98b592 Add multiple axis support to the HID joystick report in the HID_DESCRIPTOR_JOYSTICK() macro. 2011-08-23 07:07:34 +00:00
Dean Camera 40728fd20d Remove redundant calls to USB_USBTask() in the Mass Storage Device Class driver when INTERRUPT_CONTROL_ENDPOINT is not used, as this is done inside the stream callbacks.
Fix implementations of Endpoint_SetEndpointDirection() and Endpoint_GetEndpointDirection() for the AVR8 architecture.
2011-07-29 08:12:00 +00:00
Dean Camera d5e874d348 Add INTERRUPT_CONTROL_ENDPOINT compile time option support for the UC3 devices. 2011-07-25 09:56:21 +00:00
Dean Camera 5c274d106b Fixed USB_USBTask not being called internally in stream transfers between packets when Partial Stream Transfers are used.
Remove old unused function prototype in the LowLevel MassStorage device demo.
2011-07-25 01:11:24 +00:00
Dean Camera 110711598a Removed the ENDPOINT_DESCRIPTOR_DIR_* macros in favour of the shorter ENDPOINT_DIR_* macros, which can now be used with both Endpoint_ConfigureEndpoint() and in the device descriptors. 2011-07-19 07:02:19 +00:00
Dean Camera 2c404e5af5 Add support for the ORDERED_EP_CONFIG compile time token on the UC3 architecture. 2011-07-19 02:42:27 +00:00
Dean Camera 69243c5071 Move out the EP_TYPE_* macros to the base USBController.h header, as these are used in the device descriptors as well and thus must not be changed. 2011-07-19 02:15:36 +00:00
Dean Camera 69ab85cbc0 More USB XMEGA porting for Endpoint control. 2011-07-18 07:03:47 +00:00
Dean Camera 0c2ad9eb34 Add missing SVN eol-style property to files where it was missing. 2011-07-15 08:46:08 +00:00
Dean Camera a36012fc4b Add option to the USB XMEGAs to set the USB bus interrupt priority level. 2011-07-15 08:29:25 +00:00
Dean Camera f07e766755 Complete USB XMEGA interrupt control subsystem code in the core USB driver.
Automatically load in the USB calibration bytes from the User Signature Row on start-up.

Create internal SRAM variable for the endpoint control and status register table, used by the XMEGA USB controller hardware.
2011-07-15 08:10:51 +00:00
Dean Camera ffa8b430c1 Complete initial revision of the XMEGA Clock Management platform driver.
Start the USB clock source generator inside USB_ResetInterface() for XMEGA devices.
2011-07-14 11:31:12 +00:00
Dean Camera 77a9df36a7 Update UC3 platform driver support to use the bitmasks defined in the header files over raw constants.
Start implementation of XMEGA platform drivers.
2011-07-14 08:30:33 +00:00
Dean Camera b971dbbce8 More XMEGA USB AVR device port work - re-add missing Endpoint stream functions, remove unnecessary internal functions. 2011-07-14 07:28:32 +00:00
Dean Camera 8629e1918c Implementation of several key core USB driver functions for the new USB XMEGA devices. 2011-07-14 07:19:30 +00:00
Dean Camera 6490d1c443 Correct the maximum banks per endpoint information macros for the UC3A3 and UC3A4 devices. 2011-07-14 07:18:31 +00:00
Dean Camera bc41cbd26d Add support for triple endpoint/pipe bank AVR32 UC3 devices. 2011-07-14 05:38:32 +00:00
Dean Camera 7c3290607e Add missing ENDPOINT_DETAILS_EP7 macro for the UC3A3/UC3A4 devices.
MultiArchDemos: Correct usage of updated INTC_RegisterGroupHandler() in the ported demos.
2011-07-14 05:27:50 +00:00
Dean Camera 3f38ea6317 Added Device Qualifier standard descriptor structure definitions USB_StdDescriptor_DeviceQualifier_t and USB_Descriptor_DeviceQualifier_t. 2011-07-14 03:18:30 +00:00
Dean Camera f4528c4aef Add high speed USB support for the UC3 devices containing a high speed USB controller.
Add device support preprocessor checks and use symbolic bit names in the UC3 platform clock management driver.
2011-07-14 02:58:07 +00:00
Dean Camera d9643cf6ec Add start of an architecture port to the Atmel USB XMEGA devices. 2011-07-13 23:50:05 +00:00
Dean Camera f580232392 Remove unneeded #include of Device.h in StdDescriptors.h breaking compilation for some user projects. 2011-07-13 07:23:07 +00:00
Dean Camera bd8046976f Minor documentation fixes. 2011-07-12 10:11:52 +00:00
Dean Camera fdb82cd1e8 Fixed error in the pipe unordered allocation algorithm for the AVR8 devices breaking compatibility with some devices. 2011-07-12 07:22:36 +00:00
Dean Camera 04287b76c5 Add more missing function attributes to the TWI peripheral driver.
Fix incorrect standard request name in the host standard request driver.
2011-07-12 05:18:10 +00:00
Dean Camera 7207b05695 Add missing function attributes. 2011-07-12 05:13:31 +00:00
Dean Camera 065ed4da20 Added new USB_Host_GetDeviceStatus() function for USB Host mode. 2011-07-12 04:52:21 +00:00
Dean Camera c029d72b94 More endianness porting of the LUFA host mode class drivers. 2011-07-11 10:44:34 +00:00
Dean Camera 85e85befc4 More endianness porting of the LUFA device mode class drivers.
Add endianness information to the class driver and core structure definitions.

Move out the unused Ethernet_Frame_Info_t structure definition to the RNDIS device demos where it is needed.
2011-07-11 09:50:54 +00:00
Dean Camera 6c4f736793 Minor documentation and style fixes. 2011-07-11 05:51:04 +00:00
Dean Camera 137ce280c1 Updated all host mode demos and projects to use the EVENT_USB_Host_DeviceEnumerationComplete() event callback for device configuration instead of manual host state machine manipulations in the main application task.
Added new USB_Host_ConfigurationNumber global variable to indicate the selected configuration in an attached device.

Renamed global state variables that are specific to a certain USB mode to clearly indicate which mode the variable relates to, by changing the USB_* prefix to USB_Device_* or USB_Host_*.

Removed the HOST_STATE_WaitForDeviceRemoval and HOST_STATE_Suspended host state machine states, as these are no longer required.

Altered the USB_Host_SetDeviceConfiguration() function to update the new USB_Host_ConfigurationNumber global as required.

Moved out the Host mode standard request convenience/helper functions from the architecture specific Host driver files to the architecture agnostic HostStandardReq.c driver file.
2011-07-08 07:25:56 +00:00
Dean Camera 4e601207a7 Tighten up the implementations of the USB_Device_SetDeviceAddress(), USB_Controller_Reset() and USB_PLL_On() functions for the AVR8 devices.
Minor corrections to the documentation of the USB_Control_Request_t enum.
2011-07-06 02:50:08 +00:00
Dean Camera 9ea22ebf41 Fix HID_Host_SetIdlePeriod() function to send the correct request type to the device, remove reference to unavailable (and not needed) local variable. 2011-07-05 00:28:35 +00:00
Dean Camera 5b06886dab Add missing function parameter to the new HID_Host_SetIdlePeriod() function. 2011-07-04 09:22:40 +00:00
Dean Camera 258381e760 Add missing function parameter to the new HID_Host_SetIdlePeriod() function. 2011-07-04 09:22:02 +00:00
Dean Camera 61861c548e Added new HID_Host_SetIdlePeriod() function to the HID Host Class driver. 2011-07-04 09:18:50 +00:00
Dean Camera c6a7a028bd Merge over core library changes from the MultiArchDemos branch. 2011-06-29 05:57:29 +00:00
Dean Camera 5d7827a573 Minor internal macro renaming for the UC3 devices. 2011-06-20 13:08:27 +00:00
Dean Camera d784baaa3a Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time option was not enabled on the AVR8s.
Add C++ compatibility to some header files currently missing extern "C" linkage.
2011-06-20 04:32:34 +00:00
Dean Camera bb0b761c65 Make the HID Report Parser Get/Set Report Item routines fail if a NULL pointer to a report item is given.
Minor visual enhancement to the HIDReportViewer project.
2011-06-20 01:57:22 +00:00
Dean Camera a7dd984446 Code style fixes for the Device mode USB Audio Class driver to make it more in line with the style of the other library Device Class drivers. 2011-06-19 04:48:49 +00:00
Dean Camera 0ec2b55a7c Add missing SVN eol-style properties to source files to prevent mixed end-of-line characters. 2011-06-16 12:18:46 +00:00
Dean Camera d8fe01f19a Rename new Audio class driver functions, callbacks and events to ensure that they contain the USB mode (Device or Host) in the function names. 2011-06-16 06:49:08 +00:00
Dean Camera 21a012a018 Add macro guards to the templated C files to prevent compile errors if they are mistakenly compiled as regular source files in a LUFA project. 2011-06-14 12:54:46 +00:00
Dean Camera f1cfd7ea7d Rename Audio Host Class driver internal descriptor matching routines to be in line with the rest of the class driver function names. 2011-06-14 12:44:41 +00:00
Dean Camera deaab90089 Ensure that only the requested Audio class pipes are mapped to endpoints within the device for a specific Audio Host Class driver instance.
Fix const-correctness of the Audio Host Class driver.
2011-06-13 00:19:40 +00:00
Dean Camera 6e0a26083a Fix bugs in the Host mode Audio class driver. 2011-06-12 13:59:03 +00:00
Dean Camera 6e2a3174a5 Fix errors in the library Host mode Audio Class driver. 2011-06-09 08:00:19 +00:00
Dean Camera e5e34f91fa Fix compile errors when both Host and Device modes are enabled. 2011-06-09 04:32:52 +00:00
Dean Camera 1f1d0710f3 Add new Audio Class Driver Host demos.
Fix errors in the new Audio Host mode Class Driver, which would have prevented data from being sent or received properly by the device.

Add microphone/square wave generation compile time switch to the Low Level AudioOutput Host demo.
2011-06-09 04:08:03 +00:00
Dean Camera 0bf5064aec Pipe_BoundEndpointNumber() has been renamed to Pipe_GetBoundEndpointAddress(), and now returns the correct endpoint direction as part of the endpoint address.
Add Audio_GetSetEndpointProperty() function to the Host mode Audio class driver.
2011-06-08 02:45:32 +00:00
Dean Camera 34164a5550 Remove warnings in the documentation for the library class drivers about sequential pipe/endpoint allocation, as by default this is no longer as issue (unless ORDERED_EP_CONFIG is specified). 2011-06-08 01:32:44 +00:00
Dean Camera e572ee7ff2 Added new Host mode Audio Class driver.
Added new EVENT_Audio_StreamStartStopChange() event to the Audio Device Class driver to detect stream start/stop events.
2011-06-08 01:26:52 +00:00
Dean Camera 605ef921cc Fix compile errors when compiling for the AVR32 UC3 target. 2011-06-08 00:25:20 +00:00
Dean Camera 567f7ecce0 Fix errors in the Audio device demos and class driver regarding multiple sample frequency support. 2011-06-07 02:05:19 +00:00
Dean Camera 7dffa15c16 Massive corrections to the project documentation and code comments, thanks to Russian translation services provided by Andrey from Microsin.ru. 2011-06-05 13:55:56 +00:00
Dean Camera 2731c3a8ae Added new callback to the Audio Class driver to allow for endpoint control manipulations such as data sample rates.
Modified the Class Driver AudioInput and AudioOutput demos to support multiple sample rates.

Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed.

Fix broken LowLevel audio demo descriptors.

Minor documentation fixes.
2011-06-03 07:56:12 +00:00
Dean Camera f01a05415c Spell check library source code files. 2011-06-01 14:33:40 +00:00
Dean Camera 6d2a08f1b7 Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2.
Minor documentation cleanups.

Modify the incomplete AudioInputHost demo for mono audio output.
2011-06-01 14:10:35 +00:00
Dean Camera 68468e0aea Added new incomplete AudioOutputHost Host LowLevel demo. 2011-05-30 11:36:21 +00:00
Dean Camera 2a26efc691 Altered the definition of the USB_Audio_Descriptor_Format_t descriptor so that the user is now responsible for supplying the supported audio sampling rates, to allow for multiple audio interfaces with different numbers of supported rates and/or continuous sample rates. 2011-05-30 11:07:57 +00:00
Dean Camera ea922c98d1 Added new incomplete AudioInputHost Host LowLevel demo.
Added missing Audio class control request definitions.

Added support for the Audio class GET STATUS request so that it is correctly ACKed when sent by the host.
2011-05-29 12:41:14 +00:00
Dean Camera cc9b190919 Add new USB_Host_SetInterfaceAltSetting() convenience function. 2011-05-27 07:33:58 +00:00
Dean Camera 6e7fc21a94 Fix incorrect macro guard in the UC3 EndpointStream header file.
Fix incorrect project name in the Projects/ folder makefile.
2011-05-26 11:37:40 +00:00
Dean Camera 1ea5dae8a8 Copy out the EndpointStream and PipeStream functions to each architecture, so that each architecture can optimise the stream functions according to the available hardware (such as DMA, where available). 2011-05-26 11:27:21 +00:00
Dean Camera e349974aa9 Fix broken Doxygen documentation. 2011-05-19 13:32:55 +00:00
Dean Camera 9d733d44b4 Add new RNDIS_Host_IsPacketReceived(), RNDIS_Device_ReadPacket() and RNDIS_Device_WritePacket() functions to the Device RNDIS Class Driver.
Modify RNDIS demos to suit the simplified Ethernet_Frame_Info_t structure.
2011-05-18 14:33:34 +00:00
Dean Camera 049e930963 Fixed possible invalid program execution when in host mode if corrupt descriptor lengths are supplied by the attached device.
Minor code cleanups to add const and reformat where missing, as well as abstract out the internal device signature start address into a macro, so that it can be altered to suit particular devices within a single architecture if needed.

Add missing documentation to the USB_Device_States_t enum.
2011-05-14 02:17:58 +00:00
Dean Camera a85fa30bf1 Minor documentation fixes. 2011-05-08 14:30:36 +00:00
Dean Camera f670bdeff8 Add __VA_ARGS__ support to the LUFA supplied ISR macro. Add proper result typecasting to the SWAPENDIAN_* macros.
Switch to using -1 on the UC3 target to obtain a register mask with all bits set (for clearing interrupts and status flags).

Fix incorrect USB controller mode on the UC3 when a fixed mode is specified as a compile time option due to AVR32_USBB.USBCON.uide being set by default.

Make USB_Descriptor_String_t use a uint16_t for Unicode strings on all targets except the AVR8 (retained for backwards compatibility).
2011-04-25 07:28:36 +00:00
Dean Camera 2b0c9532a3 Fix reversed descriptions for the AVR8 USB pad regulator enable/disable masks (thanks to Omar). 2011-04-20 06:04:49 +00:00
Dean Camera e0852408de Replace cast-as-char* byte access of multibyte variables with proper shifts and masks to preserve endianness across different architectures. 2011-04-13 06:12:52 +00:00
Dean Camera 995195a2b0 Add missing function attributes to the pipe/endpoint functions for all architectures.
Perform endianness correction in the HID report parser for big-endian platforms.
2011-04-12 03:03:56 +00:00
Dean Camera 852b5e612d Remove redundant type information for bitfield elements, other than the signed/unsignedness of the element.
Change type of USB_SelectedPipe and USB_SelectedEndpoint for the AVR32 UC3 architecture to uint32_t to reduce the compiled code size.
2011-04-10 06:43:02 +00:00
Dean Camera c263ea837a Move global interrupt enable/disable functions out to Common.h and document them. 2011-04-08 05:40:25 +00:00
Dean Camera de9bd767dc Correct UC3 global interrupt functions.
Replace all calls and references to _delay_ms() in the code with the architecture-agnostic Delay_MS() function.

Improve code generation for the Delay_MS() function on the AVR8 architecture when called with a constant input.
2011-04-08 05:05:05 +00:00
Dean Camera 70284d390f Add in a new common Delay_MS() function, which provides a blocking delay for all architectures.
Remove use of avr-libc specific ATOMIC_BLOCK, replace with a new per-architecture set of inline functions to retrieve and manipulate the global interrupt enable bit for each architecture.

Add in documentation for the USB controller common interrupt routine which must be linked to the interrupt controller in the user application on the AVR32 UC3 architecture.
2011-04-08 04:49:20 +00:00
Dean Camera 0c5afda7e8 Oops - fix misnamed function call in Pipe_Discard_Stream(). 2011-04-04 15:41:26 +00:00
Dean Camera 96a2da1813 Oops - fix incorrect variable name in the updated Pipe_Write_8() function. 2011-04-04 15:25:30 +00:00
Dean Camera 899df7d331 Renamed all low level Endpoint_Read_*, Endpoint_Write_* and Endpoint_Discard_* functions to use the number of bits instead of a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures.
Renamed all low level Pipe_Read_*, Pipe_Write_* and Pipe_Discard_* functions to use the number of bits instead of a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures.
2011-04-04 12:52:30 +00:00
Dean Camera 2efa79d3ec Conditionally add available address spaces to the address space enum, for multiple address space architectures.
Update Doxygen configuration file for the latest Doxygen release.

Minor documentation updates.
2011-04-04 10:24:57 +00:00
Dean Camera 06d00bb99b Ensure the library builds cleanly in device mode for architectures lacking multiple address spaces. 2011-03-27 22:17:26 +00:00
Dean Camera fa5c8700bc Fix corner case in the HID report descriptor Mouse/Joystick tempates at the 8/16 bit boundary. 2011-03-23 09:25:13 +00:00
Dean Camera f595043584 Add in new architecture attribute defines to selectively remove the EEPROM and FLASH memory space functions on architectures which do not have seperate memory address spaces. 2011-03-21 11:10:02 +00:00
Dean Camera aba7932a5c F_CLOCK changed to F_USB to be more descriptive, and applicable on future architecture ports. 2011-03-21 10:20:42 +00:00
Dean Camera f6f4ac588c Fix bugs in the new VirtualSerialMassStorage demo (thanks to Martin Degelsegger). 2011-03-16 22:54:31 +00:00
Dean Camera fe62770a1e Added new VirtualSerialMassStorage Device Class Driver demo. 2011-03-16 05:58:58 +00:00
Dean Camera 5eb1862d54 Remove redundant Doxygen guards from the internal preprocessor definitions. 2011-03-15 09:22:39 +00:00
Dean Camera 134e018b21 Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the SUSPI bit is set (thanks to Holger Steinhaus).
Remove redundant setting of UIDE in the AVR8 and AVR32 USB controller drivers.
2011-03-15 08:07:29 +00:00
Dean Camera b35f93a372 Implemented on-demand PLL clock generation for the U4, U6 and U7 series USB AVRs when automatic PLL mode is specified. 2011-03-15 06:39:34 +00:00
Dean Camera 0111fb515d Oops - fix internal serial number extraction routine for the AVR8 architecture. 2011-03-14 00:24:14 +00:00
Dean Camera ea361a0d30 Correct Endpoint/Pipe maximum constants for the AVR32 UC3 models. 2011-03-14 00:03:30 +00:00
Dean Camera 02dfd7dc3d Simplify the internal serial extraction routines for each architecture. 2011-03-13 23:32:32 +00:00
Dean Camera a7eca42996 Add experimental support for the AVR32 UC3A4 microcontrollers.
Add support for the inbuilt unique serial numbers in the UC3A3 and UC3A4 models.
2011-03-13 22:42:08 +00:00
Dean Camera 81fd8d4004 Re-add accidentally deleted Host_UC3.c and Host_UC3.h files. 2011-03-13 22:02:07 +00:00
Dean Camera 944e0d2009 Rename UC3B driver files to UC3, as they are generic to all AVR32 UC3 models. 2011-03-13 21:53:19 +00:00
Dean Camera 6005a42150 Add experimental support for the UC3A0, UC3A1 and UC3A3 series AVR32 microcontrollers. 2011-03-13 21:25:05 +00:00
Dean Camera 13e2f71f15 Simplify AVR32 UC3B software FIFO, as it will only ever be accessed a byte at a time to prevent data alignment issues. 2011-03-11 07:03:34 +00:00
Dean Camera c8a438d66c Add structure padding to the appropriate descriptor structures to maintain correct alignments on larger architectures.
Fix EVK1101 swapped joystick Right/Down masks.
2011-03-11 06:47:39 +00:00
Dean Camera e4b3e3fc65 Fix UC3B architecture compile errors and ensure the architecture can be compiled with no special makefile tokens defined. 2011-03-05 16:36:57 +00:00