projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename PDIProtocol.c/.h to XPROGProtocol.c/.h as it will now handle both TPI and...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
LowLevel
/
DevChapter9.c
diff --git
a/LUFA/Drivers/USB/LowLevel/DevChapter9.c
b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
index
89c4e29
..
39b7a62
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/DevChapter9.c
+++ b/
LUFA/Drivers/USB/LowLevel/DevChapter9.c
@@
-36,8
+36,14
@@
#include "DevChapter9.h"
\r
\r
uint8_t USB_ConfigurationNumber;
\r
#include "DevChapter9.h"
\r
\r
uint8_t USB_ConfigurationNumber;
\r
-bool USB_RemoteWakeupEnabled;
\r
+
\r
+#if !defined(NO_DEVICE_SELF_POWER)
\r
bool USB_CurrentlySelfPowered;
\r
bool USB_CurrentlySelfPowered;
\r
+#endif
\r
+
\r
+#if !defined(NO_DEVICE_REMOTE_WAKEUP)
\r
+bool USB_RemoteWakeupEnabled;
\r
+#endif
\r
\r
void USB_Device_ProcessControlRequest(void)
\r
{
\r
\r
void USB_Device_ProcessControlRequest(void)
\r
{
\r
@@
-129,11
+135,11
@@
static void USB_Device_SetAddress(void)
return;
\r
}
\r
\r
return;
\r
}
\r
\r
- UDADDR = ((1 << ADDEN) | DeviceAddress);
\r
-
\r
if (DeviceAddress)
\r
USB_DeviceState = DEVICE_STATE_Addressed;
\r
\r
if (DeviceAddress)
\r
USB_DeviceState = DEVICE_STATE_Addressed;
\r
\r
+ UDADDR = ((1 << ADDEN) | DeviceAddress);
\r
+
\r
return;
\r
}
\r
\r
return;
\r
}
\r
\r
@@
-192,10
+198,7
@@
static void USB_Device_SetConfiguration(void)
\r
Endpoint_ClearStatusStage();
\r
\r
\r
Endpoint_ClearStatusStage();
\r
\r
- if (USB_ConfigurationNumber)
\r
- USB_DeviceState = DEVICE_STATE_Configured;
\r
- else
\r
- USB_DeviceState = DEVICE_STATE_Addressed;
\r
+ USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Addressed;
\r
\r
EVENT_USB_Device_ConfigurationChanged();
\r
}
\r
\r
EVENT_USB_Device_ConfigurationChanged();
\r
}
\r
@@
-225,10
+228,10
@@
static void USB_Device_GetInternalSerialDescriptor(void)
int16_t UnicodeString[20];
\r
} SignatureDescriptor;
\r
\r
int16_t UnicodeString[20];
\r
} SignatureDescriptor;
\r
\r
- SignatureDescriptor.Header.
Size = sizeof(SignatureDescriptor)
;
\r
- SignatureDescriptor.Header.
Type = DTYPE_String
;
\r
+ SignatureDescriptor.Header.
Type = DTYPE_String
;
\r
+ SignatureDescriptor.Header.
Size = sizeof(SignatureDescriptor)
;
\r
\r
\r
- uint8_t
SigReadAddress
= 0x0E;
\r
+ uint8_t
SigReadAddress
= 0x0E;
\r
\r
for (uint8_t SerialCharNum = 0; SerialCharNum < 20; SerialCharNum++)
\r
{
\r
\r
for (uint8_t SerialCharNum = 0; SerialCharNum < 20; SerialCharNum++)
\r
{
\r
@@
-304,17
+307,22
@@
static void USB_Device_GetStatus(void)
\r
switch (USB_ControlRequest.bmRequestType)
\r
{
\r
\r
switch (USB_ControlRequest.bmRequestType)
\r
{
\r
+#if !defined(NO_DEVICE_SELF_POWER) || !defined(NO_DEVICE_REMOTE_WAKEUP)
\r
case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE):
\r
case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE):
\r
+ #if !defined(NO_DEVICE_SELF_POWER)
\r
if (USB_CurrentlySelfPowered)
\r
CurrentStatus |= FEATURE_SELFPOWERED_ENABLED;
\r
if (USB_CurrentlySelfPowered)
\r
CurrentStatus |= FEATURE_SELFPOWERED_ENABLED;
\r
-
\r
+ #endif
\r
+
\r
+ #if !defined(NO_DEVICE_REMOTE_WAKEUP)
\r
if (USB_RemoteWakeupEnabled)
\r
CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
\r
if (USB_RemoteWakeupEnabled)
\r
CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
\r
-
\r
+ #endif
\r
break;
\r
break;
\r
+#endif
\r
#if !defined(CONTROL_ONLY_DEVICE)
\r
case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT):
\r
#if !defined(CONTROL_ONLY_DEVICE)
\r
case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT):
\r
- Endpoint_SelectEndpoint(
(uint8_t)USB_ControlRequest.wIndex
);
\r
+ Endpoint_SelectEndpoint(
USB_ControlRequest.wIndex & 0xFF
);
\r
\r
CurrentStatus = Endpoint_IsStalled();
\r
\r
\r
CurrentStatus = Endpoint_IsStalled();
\r
\r
@@
-338,6
+346,7
@@
static void USB_Device_ClearSetFeature(void)
{
\r
switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
\r
{
\r
{
\r
switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
\r
{
\r
+#if !defined(NO_DEVICE_REMOTE_WAKEUP)
\r
case REQREC_DEVICE:
\r
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_REMOTE_WAKEUP)
\r
USB_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature);
\r
case REQREC_DEVICE:
\r
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_REMOTE_WAKEUP)
\r
USB_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature);
\r
@@
-345,6
+354,7
@@
static void USB_Device_ClearSetFeature(void)
return;
\r
\r
break;
\r
return;
\r
\r
break;
\r
+#endif
\r
#if !defined(CONTROL_ONLY_DEVICE)
\r
case REQREC_ENDPOINT:
\r
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_ENDPOINT_HALT)
\r
#if !defined(CONTROL_ONLY_DEVICE)
\r
case REQREC_ENDPOINT:
\r
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_ENDPOINT_HALT)
\r
@@
-358,21
+368,23
@@
static void USB_Device_ClearSetFeature(void)
\r
if (Endpoint_IsEnabled())
\r
{
\r
\r
if (Endpoint_IsEnabled())
\r
{
\r
- if (USB_ControlRequest.bRequest == REQ_
Clear
Feature)
\r
+ if (USB_ControlRequest.bRequest == REQ_
Set
Feature)
\r
{
\r
{
\r
- Endpoint_ClearStall();
\r
- Endpoint_ResetFIFO(EndpointIndex);
\r
- Endpoint_ResetDataToggle();
\r
+ Endpoint_StallTransaction();
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- Endpoint_StallTransaction();
\r
- }
\r
+ Endpoint_ClearStall();
\r
+ Endpoint_ResetFIFO(EndpointIndex);
\r
+ Endpoint_ResetDataToggle();
\r
+ }
\r
}
\r
}
\r
\r
break;
\r
#endif
\r
}
\r
}
\r
\r
break;
\r
#endif
\r
+ default:
\r
+ return;
\r
}
\r
\r
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
\r
}
\r
\r
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
\r