aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2018-08-06 19:43:44 +1000
committerDean Camera <dean@fourwalledcubicle.com>2018-08-06 19:51:48 +1000
commit2a057a7209a1a4457306a2bb42894f42a05fffcd (patch)
treea995d607afbb7fa749d016decc261f781d3c14d2 /LUFA
parentf1b06c5b9df96f079be99e1a88a9d4ab1daf6544 (diff)
downloadlufa-2a057a7209a1a4457306a2bb42894f42a05fffcd.tar.gz
lufa-2a057a7209a1a4457306a2bb42894f42a05fffcd.tar.bz2
lufa-2a057a7209a1a4457306a2bb42894f42a05fffcd.zip
Clean up CCID class driver and associated demos.
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h50
-rw-r--r--LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c31
-rw-r--r--LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h92
3 files changed, 89 insertions, 84 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h b/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h
index da92381f6..ce7d0b370 100644
--- a/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h
@@ -65,39 +65,39 @@
#endif
/* Macros: */
- #define CCID_CURRENT_SPEC_RELEASE_NUMBER 0x0110
- #define CCID_VOLTAGESUPPORT_5V 0
- #define CCID_VOLTAGESUPPORT_3V (1 << 0)
- #define CCID_VOLTAGESUPPORT_1V8 (1 << 1)
+ #define CCID_CURRENT_SPEC_RELEASE_NUMBER 0x0110
+ #define CCID_VOLTAGESUPPORT_5V 0
+ #define CCID_VOLTAGESUPPORT_3V (1 << 0)
+ #define CCID_VOLTAGESUPPORT_1V8 (1 << 1)
- #define CCID_PROTOCOLS_T0 (1 << 0)
- #define CCID_PROTOCOLS_T1 (1 << 1)
+ #define CCID_PROTOCOLS_T0 (1 << 0)
+ #define CCID_PROTOCOLS_T1 (1 << 1)
- #define CCID_PROTOCOLNUM_T0 0
- #define CCID_PROTOCOLNUM_T1 (1 << 0)
+ #define CCID_PROTOCOLNUM_T0 0
+ #define CCID_PROTOCOLNUM_T1 (1 << 0)
- #define CCID_ICCSTATUS_PRESENTANDACTIVE 0
- #define CCID_ICCSTATUS_PRESENTANDINACTIVE (1 << 0)
- #define CCID_ICCSTATUS_NOICCPRESENT (1 << 1)
+ #define CCID_ICCSTATUS_PRESENTANDACTIVE 0
+ #define CCID_ICCSTATUS_PRESENTANDINACTIVE (1 << 0)
+ #define CCID_ICCSTATUS_NOICCPRESENT (1 << 1)
- #define CCID_COMMANDSTATUS_PROCESSEDWITHOUTERROR 0
- #define CCID_COMMANDSTATUS_ERROR 1
- #define CCID_COMMANDSTATUS_FAILED (1 << 6)
- #define CCID_COMMANDSTATUS_TIMEEXTENSIONREQUESTED (2 << 6)
- #define CCID_COMMANDSTATUS_RFU (3 << 6)
+ #define CCID_COMMANDSTATUS_PROCESSEDWITHOUTERROR 0
+ #define CCID_COMMANDSTATUS_ERROR 1
+ #define CCID_COMMANDSTATUS_FAILED (1 << 6)
+ #define CCID_COMMANDSTATUS_TIMEEXTENSIONREQUESTED (2 << 6)
+ #define CCID_COMMANDSTATUS_RFU (3 << 6)
- #define CCID_ERROR_RFU_START 0x80
- #define CCID_ERROR_NO_ERROR 0x80
- #define CCID_ERROR_NOT_SUPPORTED 0
- #define CCID_ERROR_CMD_ABORTED 0xFF
- #define CCID_ERROR_CMD_NOT_ABORTED 0xFF
+ #define CCID_ERROR_RFU_START 0x80
+ #define CCID_ERROR_NO_ERROR 0x80
+ #define CCID_ERROR_NOT_SUPPORTED 0
+ #define CCID_ERROR_CMD_ABORTED 0xFF
+ #define CCID_ERROR_CMD_NOT_ABORTED 0xFF
- #define CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED 0x7
+ #define CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED 0x7
- #define CCID_ERROR_SLOT_NOT_FOUND 5
+ #define CCID_ERROR_SLOT_NOT_FOUND 5
- #define CCID_DESCRIPTOR_CLOCK_KHZ(khz) (khz)
- #define CCID_DESCRIPTOR_CLOCK_MHZ(mhz) ((mhz) * 1000)
+ #define CCID_DESCRIPTOR_CLOCK_KHZ(khz) (khz)
+ #define CCID_DESCRIPTOR_CLOCK_MHZ(mhz) ((mhz) * 1000)
/* Enums: */
diff --git a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c
index 34f03c2c1..5bc4c934b 100644
--- a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c
@@ -39,9 +39,9 @@
#include "CCIDClassDevice.h"
-bool CCID_CheckStatusNoError(uint8_t status)
+bool CCID_CheckStatusNoError(uint8_t Status)
{
- return (status & 0xC0) == 0x0;
+ return (Status & 0xC0) == 0x0;
}
void CCID_Device_ProcessControlRequest(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
@@ -113,7 +113,7 @@ void CCID_Device_ProcessControlRequest(USB_ClassInfo_CCID_Device_t* const CCIDIn
bool CCID_Device_ConfigureEndpoints(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
{
- CCIDInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
+ CCIDInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
CCIDInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK;
if (!(Endpoint_ConfigureEndpointTable(&CCIDInterfaceInfo->Config.DataINEndpoint, 1)))
@@ -231,10 +231,11 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
Endpoint_ClearIN();
break;
}
+
case CCID_PC_to_RDR_SetParameters:
{
uint8_t ProtocolNum = Endpoint_Read_8();
- uint8_t RFU = Endpoint_Read_16_LE();
+ uint8_t RFU = Endpoint_Read_16_LE();
(void)RFU;
@@ -244,14 +245,14 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
ResponseParametersStatus->CCIDHeader.Slot = CCIDHeader.Slot;
ResponseParametersStatus->CCIDHeader.Seq = CCIDHeader.Seq;
- if(ProtocolNum == CCID_PROTOCOLNUM_T0)
+ if (ProtocolNum == CCID_PROTOCOLNUM_T0)
{
- if(CCIDHeader.Length * sizeof(uint8_t) == sizeof(USB_CCID_ProtocolData_T0_t))
+ if (CCIDHeader.Length * sizeof(uint8_t) == sizeof(USB_CCID_ProtocolData_T0_t))
{
-
+
Endpoint_Read_Stream_LE(RequestBuffer, CCIDHeader.Length * sizeof(uint8_t), NULL);
Status = CALLBACK_CCID_SetParameters_T0(CCIDInterfaceInfo, CCIDHeader.Slot, &Error, (USB_CCID_ProtocolData_T0_t*) RequestBuffer);
- if(CCID_CheckStatusNoError(Status))
+ if (CCID_CheckStatusNoError(Status))
{
ResponseParametersStatus->CCIDHeader.Length = CCIDHeader.Length;
Status = CALLBACK_CCID_GetParameters_T0(CCIDInterfaceInfo, CCIDHeader.Slot, &Error, &ResponseParametersStatus->ProtocolNum, (USB_CCID_ProtocolData_T0_t*) &ResponseParametersStatus->ProtocolData);
@@ -259,15 +260,16 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
}
else
{
- //unexpected length
+ // Unexpected length
Status = CCID_COMMANDSTATUS_FAILED | CCID_ICCSTATUS_PRESENTANDACTIVE;
}
}
else
{
ResponseParametersStatus->ProtocolNum = CCID_PROTOCOLNUM_T0;
- //for now, we don't support T=1 protocol
- Error = CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED;
+
+ // For now, we don't support T=1 protocol
+ Error = CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED;
Status = CCID_COMMANDSTATUS_ERROR | CCID_ICCSTATUS_PRESENTANDACTIVE;
}
@@ -281,6 +283,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
Endpoint_ClearIN();
break;
}
+
case CCID_PC_to_RDR_GetParameters:
{
USB_CCID_RDR_to_PC_Parameters_t* ResponseParametersStatus = (USB_CCID_RDR_to_PC_Parameters_t*)&ResponseBuffer;
@@ -301,6 +304,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
Endpoint_ClearIN();
break;
}
+
case CCID_PC_to_RDR_XfrBlock:
{
uint8_t Bwi = Endpoint_Read_8();
@@ -312,7 +316,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
Endpoint_Read_Stream_LE(ReceivedBuffer, sizeof(ReceivedBuffer), NULL);
- uint8_t ResponseDataLength = 0;
+ uint8_t ResponseDataLength = 0;
USB_CCID_RDR_to_PC_DataBlock_t* ResponseBlock = (USB_CCID_RDR_to_PC_DataBlock_t*)&ResponseBuffer;
ResponseBlock->CCIDHeader.MessageType = CCID_RDR_to_PC_DataBlock;
@@ -327,7 +331,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
{
ResponseBlock->CCIDHeader.Length = ResponseDataLength;
}
- else if(CCIDInterfaceInfo->State.Aborted)
+ else if (CCIDInterfaceInfo->State.Aborted)
{
Status = CCID_COMMANDSTATUS_FAILED | CCID_ICCSTATUS_PRESENTANDACTIVE;
Error = CCID_ERROR_CMD_ABORTED;
@@ -379,6 +383,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo)
Endpoint_SelectEndpoint(CCIDInterfaceInfo->Config.DataINEndpoint.Address);
Endpoint_Write_Stream_LE(ResponseBuffer, sizeof(ResponseBuffer), NULL);
Endpoint_ClearIN();
+ break;
}
}
}
diff --git a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h
index e6b774fda..05f487fa2 100644
--- a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h
@@ -117,31 +117,31 @@
* (answer to reset)
*
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
- * \param[in] slot The slot ID currently being powered on.
- * \param[in,out] atr Pointer to an array containing the Power On ATR being sent to the device.
- * \param[out] atrSize The size of the ATR being sent (up to 15 bytes maximum).
- * \param[out] error The result of the operation, or error.
+ * \param[in] Slot The slot ID currently being powered on.
+ * \param[in,out] Atr Pointer to an array containing the Power On ATR being sent to the device.
+ * \param[out] AtrSize The size of the ATR being sent (up to 15 bytes maximum).
+ * \param[out] Error The result of the operation, or error.
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_IccPowerOn(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const atr,
- uint8_t* const atrSize,
- uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+ uint8_t Slot,
+ uint8_t* const Atr,
+ uint8_t* const AtrSize,
+ uint8_t* const Error) ATTR_NON_NULL_PTR_ARG(1);
/** CCID class driver callback for PC_TO_RDR_IccPowerOff CCID message
* Turns off the ICC
*
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
- * \param[in] slot The slot ID currently being powered off.
- * \param[out] error The result of the operation, or error.
+ * \param[in] Slot The slot ID currently being powered off.
+ * \param[out] Error The result of the operation, or error.
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_IccPowerOff(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+ uint8_t Slot,
+ uint8_t* const Error) ATTR_NON_NULL_PTR_ARG(1);
/** CCID class driver callback for PC_TO_RDR_GetSlotStatus CCID message
* Retrieves the current status of a given slot
@@ -153,78 +153,78 @@
* \return The command result code.
*/
uint8_t CALLBACK_CCID_GetSlotStatus(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+ uint8_t Slot,
+ uint8_t* const Error) ATTR_NON_NULL_PTR_ARG(1);
/** CCID class driver callback for PC_TO_RDR_SetParameters CCID message for T=0
* Sets the current parameters of a given slot
*
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration, state and protocol data.
- * \param[in] slot The slot ID from which we want to retrieve the status.
- * \param[out] error The result of the operation, or error.
- * \param[out] t0 Pointer to a buffer containing the new parameters
+ * \param[in] Slot The slot ID from which we want to retrieve the status.
+ * \param[out] Error The result of the operation, or error.
+ * \param[out] T0 Pointer to a buffer containing the new parameters
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_SetParameters_T0(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const error,
- USB_CCID_ProtocolData_T0_t* const t0);
+ uint8_t Slot,
+ uint8_t* const Error,
+ USB_CCID_ProtocolData_T0_t* const T0);
/** CCID class driver callback for PC_TO_RDR_SetParameters CCID message for T=0
* Retrieves the current parameters of a given slot
*
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration, state and protocol data.
- * \param[in] slot The slot ID from which we want to retrieve the status.
- * \param[out] error The result of the operation, or error.
- * \param[out] t0 Pointer to a buffer where the parameters will be returned
+ * \param[in] Slot The slot ID from which we want to retrieve the status.
+ * \param[out] Error The result of the operation, or error.
+ * \param[out] T0 Pointer to a buffer where the parameters will be returned
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_GetParameters_T0(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const error,
+ uint8_t Slot,
+ uint8_t* const Error,
uint8_t* const ProtocolNum,
- USB_CCID_ProtocolData_T0_t* const t0);
+ USB_CCID_ProtocolData_T0_t* const T0);
/** CCID class driver callback for PC_TO_RDR_XfrBlock CCID message
- * Send a block of bytes from the host to a slot in the device
+ * Send a block of bytes from the host to a slot in the device
* and also received a block of bytes as a response
- *
+ *
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
- * \param[in] slot The slot ID from which we want to retrieve the status.
- * \param[in] receivedBuffer Pointer to an array holding the received block of bytes
- * \param[in] receivedBufferSize The size of the received block of bytes
- * \param[out] sendBuffer Pointer to a buffer which will hold the bytes being sent back to the host
- * \param[out] sentBufferSize The size of the block of bytes being sent back to the host
- * \param[out] error The result of the operation, or error.
+ * \param[in] Slot The slot ID from which we want to retrieve the status.
+ * \param[in] ReceivedBuffer Pointer to an array holding the received block of bytes
+ * \param[in] ReceivedBufferSize The size of the received block of bytes
+ * \param[out] SendBuffer Pointer to a buffer which will hold the bytes being sent back to the host
+ * \param[out] SentBufferSize The size of the block of bytes being sent back to the host
+ * \param[out] Error The result of the operation, or error.
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_XfrBlock(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t* const receivedBuffer,
- uint8_t receivedBufferSize,
- uint8_t* const sendBuffer,
- uint8_t* const sentBufferSize,
- uint8_t* const error);
+ uint8_t Slot,
+ uint8_t* const ReceivedBuffer,
+ uint8_t ReceivedBufferSize,
+ uint8_t* const SendBuffer,
+ uint8_t* const SentBufferSize,
+ uint8_t* const Error);
/** CCID class driver callback for CCID_PC_to_RDR_Abort CCID message
* Aborts a BULK out message previously sent to a slot
*
* \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
- * \param[in] slot The slot ID to where the message being aborted was sent to.
- * \param[in] seq The current sequence number for this message. Must be checked against
+ * \param[in] Slot The slot ID to where the message being aborted was sent to.
+ * \param[in] Seq The current sequence number for this message. Must be checked against
* the current abort message being sent at the control pipe.
- * \param[out] error The result of the operation, or error.
+ * \param[out] Error The result of the operation, or error.
*
* \return The command result code.
*/
uint8_t CALLBACK_CCID_Abort(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
- uint8_t slot,
- uint8_t seq,
- uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+ uint8_t Slot,
+ uint8_t Seq,
+ uint8_t* const Error) ATTR_NON_NULL_PTR_ARG(1);
#endif