usbdrv/peripheral/public/usb.h
author hgs
Wed, 20 Oct 2010 12:04:53 +0800
changeset 59 bbdce6bffaad
parent 55 3b97f0de7605
permissions -rw-r--r--
201041_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
59
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     1
/*
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     3
* All rights reserved.
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     4
* This component and the accompanying materials are made available
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     6
* which accompanies this distribution, and is available
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     8
*
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
     9
* Initial Contributors:
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    10
* Nokia Corporation - initial contribution.
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    11
*
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    12
* Contributors:
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    13
*
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    14
* Description:
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    15
* e32\include\usb.h
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    16
* Definitions of USB-specific constants and macros.
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    17
*
bbdce6bffaad 201041_02
hgs
parents: 55
diff changeset
    18
*/
33
089413cdde3c 201028_02
hgs
parents:
diff changeset
    19
089413cdde3c 201028_02
hgs
parents:
diff changeset
    20
/**
089413cdde3c 201028_02
hgs
parents:
diff changeset
    21
 @file usb.h
089413cdde3c 201028_02
hgs
parents:
diff changeset
    22
 @publishedPartner
089413cdde3c 201028_02
hgs
parents:
diff changeset
    23
 @released
089413cdde3c 201028_02
hgs
parents:
diff changeset
    24
*/
089413cdde3c 201028_02
hgs
parents:
diff changeset
    25
089413cdde3c 201028_02
hgs
parents:
diff changeset
    26
#ifndef __USB_H__
089413cdde3c 201028_02
hgs
parents:
diff changeset
    27
#define __USB_H__
089413cdde3c 201028_02
hgs
parents:
diff changeset
    28
089413cdde3c 201028_02
hgs
parents:
diff changeset
    29
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    30
// 'Chapter 9' Request Types (bmRequestType)
089413cdde3c 201028_02
hgs
parents:
diff changeset
    31
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    32
const TUint8 KUsbRequestType_DirShift   = 7;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    33
const TUint8 KUsbRequestType_DirMask    = (1 << KUsbRequestType_DirShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    34
089413cdde3c 201028_02
hgs
parents:
diff changeset
    35
const TUint8 KUsbRequestType_DirToDev   = (0 << KUsbRequestType_DirShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    36
const TUint8 KUsbRequestType_DirToHost  = (1 << KUsbRequestType_DirShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    37
089413cdde3c 201028_02
hgs
parents:
diff changeset
    38
const TUint8 KUsbRequestType_TypeShift  = 5;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    39
const TUint8 KUsbRequestType_TypeMask   = (3 << KUsbRequestType_TypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    40
const TUint8 KUsbRequestType_TypeStd    = (0 << KUsbRequestType_TypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    41
const TUint8 KUsbRequestType_TypeClass  = (1 << KUsbRequestType_TypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    42
const TUint8 KUsbRequestType_TypeVendor = (2 << KUsbRequestType_TypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    43
089413cdde3c 201028_02
hgs
parents:
diff changeset
    44
const TUint8 KUsbRequestType_DestShift  = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    45
const TUint8 KUsbRequestType_DestMask   = (0x1f << KUsbRequestType_DestShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    46
const TUint8 KUsbRequestType_DestDevice = (0x00 << KUsbRequestType_DestShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    47
const TUint8 KUsbRequestType_DestIfc    = (0x01 << KUsbRequestType_DestShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    48
const TUint8 KUsbRequestType_DestEp     = (0x02 << KUsbRequestType_DestShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    49
const TUint8 KUsbRequestType_DestOther  = (0x03 << KUsbRequestType_DestShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    50
089413cdde3c 201028_02
hgs
parents:
diff changeset
    51
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    52
// 'Chapter 9' Endpoint Zero Requests (bRequest)
089413cdde3c 201028_02
hgs
parents:
diff changeset
    53
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    54
const TUint8 KUsbRequest_GetStatus     = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    55
const TUint8 KUsbRequest_ClearFeature  = 1;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    56
const TUint8 KUsbRequest_SetFeature    = 3;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    57
const TUint8 KUsbRequest_SetAddress    = 5;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    58
const TUint8 KUsbRequest_GetDescriptor = 6;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    59
const TUint8 KUsbRequest_SetDescriptor = 7;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    60
const TUint8 KUsbRequest_GetConfig     = 8;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    61
const TUint8 KUsbRequest_SetConfig     = 9;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    62
const TUint8 KUsbRequest_GetInterface  = 10;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    63
const TUint8 KUsbRequest_SetInterface  = 11;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    64
const TUint8 KUsbRequest_SynchFrame    = 12;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    65
089413cdde3c 201028_02
hgs
parents:
diff changeset
    66
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    67
// Descriptor Types
089413cdde3c 201028_02
hgs
parents:
diff changeset
    68
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    69
const TUint8 KUsbDescType_Device               = 1;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    70
const TUint8 KUsbDescType_Config               = 2;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    71
const TUint8 KUsbDescType_String               = 3;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    72
const TUint8 KUsbDescType_Interface            = 4;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    73
const TUint8 KUsbDescType_Endpoint             = 5;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    74
const TUint8 KUsbDescType_DeviceQualifier      = 6;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    75
const TUint8 KUsbDescType_OtherSpeedConfig     = 7;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    76
const TUint8 KUsbDescType_InterfacePower       = 8;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    77
const TUint8 KUsbDescType_Otg                  = 9;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    78
const TUint8 KUsbDescType_Debug                = 10;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    79
const TUint8 KUsbDescType_InterfaceAssociation = 11;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    80
089413cdde3c 201028_02
hgs
parents:
diff changeset
    81
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    82
// Descriptor Sizes
089413cdde3c 201028_02
hgs
parents:
diff changeset
    83
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    84
const TUint KUsbDescSize_Device               = 18;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    85
const TUint KUsbDescSize_Config               = 9;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    86
const TUint KUsbDescSize_Interface            = 9;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    87
const TUint KUsbDescSize_Endpoint             = 7;
55
3b97f0de7605 201038_01
hgs
parents: 33
diff changeset
    88
const TUint KUsbDescSize_Otg                  = 5;
33
089413cdde3c 201028_02
hgs
parents:
diff changeset
    89
const TUint KUsbDescSize_DeviceQualifier      = 10;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    90
const TUint KUsbDescSize_OtherSpeedConfig     = 9;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    91
const TUint KUsbDescSize_InterfaceAssociation = 8;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    92
const TUint KUsbDescMaxSize_String            = 255;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    93
const TUint KUsbStringDescStringMaxSize       = 252;		// it's actually 253, but that's awkward
089413cdde3c 201028_02
hgs
parents:
diff changeset
    94
089413cdde3c 201028_02
hgs
parents:
diff changeset
    95
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    96
// Configuration Characteristics (Configuration Descriptor)
089413cdde3c 201028_02
hgs
parents:
diff changeset
    97
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
    98
const TUint8 KUsbDevAttr_SelfPowered  = (0x01 << 6);
089413cdde3c 201028_02
hgs
parents:
diff changeset
    99
const TUint8 KUsbDevAttr_RemoteWakeup = (0x01 << 5);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   100
089413cdde3c 201028_02
hgs
parents:
diff changeset
   101
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   102
// Descriptor Indices for String Descriptors
089413cdde3c 201028_02
hgs
parents:
diff changeset
   103
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   104
const TUint KUsbDescStringIndex_Manufact = 14;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   105
const TUint KUsbDescStringIndex_Product  = 15;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   106
const TUint KUsbDescStringIndex_Serial   = 16;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   107
const TUint KUsbDescStringIndex_Config   = 6;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   108
089413cdde3c 201028_02
hgs
parents:
diff changeset
   109
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   110
// Endpoint Attributes
089413cdde3c 201028_02
hgs
parents:
diff changeset
   111
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   112
const TUint8 KUsbEpAttr_TransferTypeShift       = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   113
const TUint8 KUsbEpAttr_TransferTypeMask        = (0x03 << KUsbEpAttr_TransferTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   114
const TUint8 KUsbEpAttr_TransferTypeControl     = (0x00 << KUsbEpAttr_TransferTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   115
const TUint8 KUsbEpAttr_TransferTypeIsochronous = (0x01 << KUsbEpAttr_TransferTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   116
const TUint8 KUsbEpAttr_TransferTypeBulk        = (0x02 << KUsbEpAttr_TransferTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   117
const TUint8 KUsbEpAttr_TransferTypeInterrupt   = (0x03 << KUsbEpAttr_TransferTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   118
089413cdde3c 201028_02
hgs
parents:
diff changeset
   119
const TUint8 KUsbEpAttr_SyncTypeShift           = 2;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   120
const TUint8 KUsbEpAttr_SyncTypeMask            = (0x03 << KUsbEpAttr_SyncTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   121
const TUint8 KUsbEpAttr_SyncTypeNoSync          = (0x00 << KUsbEpAttr_SyncTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   122
const TUint8 KUsbEpAttr_SyncTypeAsync           = (0x01 << KUsbEpAttr_SyncTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   123
const TUint8 KUsbEpAttr_SyncTypeAdaptive        = (0x02 << KUsbEpAttr_SyncTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   124
const TUint8 KUsbEpAttr_SyncTypeSync            = (0x03 << KUsbEpAttr_SyncTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   125
089413cdde3c 201028_02
hgs
parents:
diff changeset
   126
const TUint8 KUsbEpAttr_UsageTypeShift          = 4;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   127
const TUint8 KUsbEpAttr_UsageTypeMask           = (0x03 << KUsbEpAttr_UsageTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   128
const TUint8 KUsbEpAttr_UsageTypeDataEp         = (0x00 << KUsbEpAttr_UsageTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   129
const TUint8 KUsbEpAttr_UsageTypeFeedbackEp     = (0x01 << KUsbEpAttr_UsageTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   130
const TUint8 KUsbEpAttr_UsageTypeImplFbDataEp   = (0x02 << KUsbEpAttr_UsageTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   131
const TUint8 KUsbEpAttr_UsageTypeReserved       = (0x03 << KUsbEpAttr_UsageTypeShift);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   132
089413cdde3c 201028_02
hgs
parents:
diff changeset
   133
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   134
// OTG Feature Indicators
089413cdde3c 201028_02
hgs
parents:
diff changeset
   135
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   136
const TUint8 KUsbOtgAttr_SrpSupp         = 0x01;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   137
const TUint8 KUsbOtgAttr_HnpSupp         = 0x02;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   138
const TUint8 KUsbOtgAttr_B_HnpEnable     = 0x04;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   139
const TUint8 KUsbOtgAttr_A_HnpSupport    = 0x08;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   140
const TUint8 KUsbOtgAttr_A_AltHnpSupport = 0x10;
55
3b97f0de7605 201038_01
hgs
parents: 33
diff changeset
   141
const TUint16 KUsbOtgDesc_bcdOTG         = 0x0200;
33
089413cdde3c 201028_02
hgs
parents:
diff changeset
   142
089413cdde3c 201028_02
hgs
parents:
diff changeset
   143
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   144
// Feature Settings
089413cdde3c 201028_02
hgs
parents:
diff changeset
   145
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   146
const TUint KUsbFeature_EndpointHalt    = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   147
const TUint KUsbFeature_RemoteWakeup    = 1;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   148
const TUint KUsbFeature_TestMode        = 2;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   149
const TUint KUsbFeature_B_HnpEnable     = 3;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   150
const TUint KUsbFeature_A_HnpSupport    = 4;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   151
const TUint KUsbFeature_A_AltHnpSupport = 5;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   152
089413cdde3c 201028_02
hgs
parents:
diff changeset
   153
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   154
// Test Mode Selectors (Set/ClearFeature)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   155
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   156
const TUint KUsbTestSelector_Test_J            = 0x01;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   157
const TUint KUsbTestSelector_Test_K            = 0x02;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   158
const TUint KUsbTestSelector_Test_SE0_NAK      = 0x03;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   159
const TUint KUsbTestSelector_Test_Packet       = 0x04;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   160
const TUint KUsbTestSelector_Test_Force_Enable = 0x05;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   161
089413cdde3c 201028_02
hgs
parents:
diff changeset
   162
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   163
// Address Masks
089413cdde3c 201028_02
hgs
parents:
diff changeset
   164
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   165
const TUint8 KUsbEpAddress_In       = 0x80;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   166
const TUint8 KUsbEpAddress_Portmask = 0x0f;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   167
089413cdde3c 201028_02
hgs
parents:
diff changeset
   168
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   169
// Device Status Values (GET_STATUS)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   170
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   171
const TUint16 KUsbDevStat_SelfPowered  = (1 << 0);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   172
const TUint16 KUsbDevStat_RemoteWakeup = (1 << 1);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   173
089413cdde3c 201028_02
hgs
parents:
diff changeset
   174
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   175
// Endpoint Status Values (GET_STATUS)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   176
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   177
const TUint16 KUsbEpStat_Halt = (1 << 0);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   178
089413cdde3c 201028_02
hgs
parents:
diff changeset
   179
089413cdde3c 201028_02
hgs
parents:
diff changeset
   180
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   181
// USB Descriptor Handling
089413cdde3c 201028_02
hgs
parents:
diff changeset
   182
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   183
/*------------------------------------------------
089413cdde3c 201028_02
hgs
parents:
diff changeset
   184
  USB transfers data in little-endian fashion.
089413cdde3c 201028_02
hgs
parents:
diff changeset
   185
  The following macros swap the byte order in
089413cdde3c 201028_02
hgs
parents:
diff changeset
   186
  words (16 bit) and longwords (32 bit), such that
089413cdde3c 201028_02
hgs
parents:
diff changeset
   187
  they are in little-endian order afterwards.
089413cdde3c 201028_02
hgs
parents:
diff changeset
   188
  ------------------------------------------------*/
089413cdde3c 201028_02
hgs
parents:
diff changeset
   189
#if defined(__BIG_ENDIAN__)		  // Hitachi SuperH, Motorola 68k
089413cdde3c 201028_02
hgs
parents:
diff changeset
   190
#define SWAP_BYTES_16(x) \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   191
  ((((x) >> 8) & 0x00ff) | \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   192
   (((x) << 8) & 0xff00))
089413cdde3c 201028_02
hgs
parents:
diff changeset
   193
#define SWAP_BYTES_32(x) \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   194
  ((((x) >> 24) & 0x000000ff) | \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   195
   (((x) >> 8)  & 0x0000ff00) | \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   196
   (((x) << 24) & 0xff000000) | \
089413cdde3c 201028_02
hgs
parents:
diff changeset
   197
   (((x) << 8)  & 0x00ff0000))
089413cdde3c 201028_02
hgs
parents:
diff changeset
   198
#else							  // ARM, Intel
089413cdde3c 201028_02
hgs
parents:
diff changeset
   199
#define SWAP_BYTES_16(x)  (x)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   200
#define SWAP_BYTES_32(x)  (x)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   201
#endif // defined(__BIG_ENDIAN__)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   202
089413cdde3c 201028_02
hgs
parents:
diff changeset
   203
089413cdde3c 201028_02
hgs
parents:
diff changeset
   204
static inline TUint8 LowByte(TUint16 aWord)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   205
	{
089413cdde3c 201028_02
hgs
parents:
diff changeset
   206
	return static_cast<TUint8>(aWord & 0x00ff);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   207
	}
089413cdde3c 201028_02
hgs
parents:
diff changeset
   208
089413cdde3c 201028_02
hgs
parents:
diff changeset
   209
static inline TUint8 HighByte(TUint16 aWord)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   210
	{
089413cdde3c 201028_02
hgs
parents:
diff changeset
   211
	return static_cast<TUint8>((aWord >> 8) & 0x00ff);
089413cdde3c 201028_02
hgs
parents:
diff changeset
   212
	}
089413cdde3c 201028_02
hgs
parents:
diff changeset
   213
089413cdde3c 201028_02
hgs
parents:
diff changeset
   214
089413cdde3c 201028_02
hgs
parents:
diff changeset
   215
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   216
// Class-specific Values
089413cdde3c 201028_02
hgs
parents:
diff changeset
   217
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   218
089413cdde3c 201028_02
hgs
parents:
diff changeset
   219
// These are from the CDC (valid also for Audio Class)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   220
const TUint8 KUsbDescType_CS_Interface = 0x24;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   221
const TUint8 KUsbDescType_CS_Endpoint  = 0x25;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   222
089413cdde3c 201028_02
hgs
parents:
diff changeset
   223
// Audio Device Class
089413cdde3c 201028_02
hgs
parents:
diff changeset
   224
const TUint KUsbDescSize_AudioEndpoint = KUsbDescSize_Endpoint + 2;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   225
const TUint KUsbAudioInterfaceClassCode                          = 0x01;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   226
const TUint KUsbAudioInterfaceSubclassCode_Subclass_Undefined    = 0x00;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   227
const TUint KUsbAudioInterfaceSubclassCode_Audiocontrol          = 0x01;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   228
const TUint KUsbAudioInterfaceSubclassCode_Audiostreaming        = 0x02;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   229
const TUint KUsbAudioInterfaceSubclassCode_Midistreaming         = 0x03;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   230
const TUint KUsbAudioInterfaceProtocolCode_Pr_Protocol_Undefined = 0x00;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   231
089413cdde3c 201028_02
hgs
parents:
diff changeset
   232
089413cdde3c 201028_02
hgs
parents:
diff changeset
   233
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   234
// These are defined just for convenience:
089413cdde3c 201028_02
hgs
parents:
diff changeset
   235
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   236
const TUint8 KEp0_Out = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   237
const TUint8 KEp0_In  = 1;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   238
const TUint8 KEp0_Rx  = KEp0_Out;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   239
const TUint8 KEp0_Tx  = KEp0_In;
089413cdde3c 201028_02
hgs
parents:
diff changeset
   240
089413cdde3c 201028_02
hgs
parents:
diff changeset
   241
089413cdde3c 201028_02
hgs
parents:
diff changeset
   242
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   243
// USB Implementers Forum, Inc (USB-IF) assigned Vendor IDs:
089413cdde3c 201028_02
hgs
parents:
diff changeset
   244
//
089413cdde3c 201028_02
hgs
parents:
diff changeset
   245
const TUint16 KUsbVendorId_Symbian = 0x0E22;				// Symbian Ltd. (dec. 3618)
089413cdde3c 201028_02
hgs
parents:
diff changeset
   246
089413cdde3c 201028_02
hgs
parents:
diff changeset
   247
089413cdde3c 201028_02
hgs
parents:
diff changeset
   248
#endif // __USB_H__