home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / usb / irda.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.4 KB  |  152 lines

  1. /*
  2.  * USB IrDA Bridge Device Definition
  3.  */
  4.  
  5. #ifndef __LINUX_USB_IRDA_H
  6. #define __LINUX_USB_IRDA_H
  7.  
  8. /* This device should use Application-specific class */
  9.  
  10. #define USB_SUBCLASS_IRDA            0x02
  11.  
  12. /*-------------------------------------------------------------------------*/
  13.  
  14. /* Class-Specific requests (bRequest field) */
  15.  
  16. #define USB_REQ_CS_IRDA_RECEIVING        1
  17. #define USB_REQ_CS_IRDA_CHECK_MEDIA_BUSY    3
  18. #define USB_REQ_CS_IRDA_RATE_SNIFF        4
  19. #define USB_REQ_CS_IRDA_UNICAST_LIST        5
  20. #define USB_REQ_CS_IRDA_GET_CLASS_DESC        6
  21.  
  22. /*-------------------------------------------------------------------------*/
  23.  
  24. /* Class-Specific descriptor */
  25.  
  26. #define USB_DT_CS_IRDA                0x21
  27.  
  28. /*-------------------------------------------------------------------------*/
  29.  
  30. /* Data sizes */
  31.  
  32. #define USB_IRDA_DS_2048            (1 << 5)
  33. #define USB_IRDA_DS_1024            (1 << 4)
  34. #define USB_IRDA_DS_512                (1 << 3)
  35. #define USB_IRDA_DS_256                (1 << 2)
  36. #define USB_IRDA_DS_128                (1 << 1)
  37. #define USB_IRDA_DS_64                (1 << 0)
  38.  
  39. /* Window sizes */
  40.  
  41. #define USB_IRDA_WS_7                (1 << 6)
  42. #define USB_IRDA_WS_6                (1 << 5)
  43. #define USB_IRDA_WS_5                (1 << 4)
  44. #define USB_IRDA_WS_4                (1 << 3)
  45. #define USB_IRDA_WS_3                (1 << 2)
  46. #define USB_IRDA_WS_2                (1 << 1)
  47. #define USB_IRDA_WS_1                (1 << 0)
  48.  
  49. /* Min turnaround times in usecs */
  50.  
  51. #define USB_IRDA_MTT_0                (1 << 7)
  52. #define USB_IRDA_MTT_10                (1 << 6)
  53. #define USB_IRDA_MTT_50                (1 << 5)
  54. #define USB_IRDA_MTT_100            (1 << 4)
  55. #define USB_IRDA_MTT_500            (1 << 3)
  56. #define USB_IRDA_MTT_1000            (1 << 2)
  57. #define USB_IRDA_MTT_5000            (1 << 1)
  58. #define USB_IRDA_MTT_10000            (1 << 0)
  59.  
  60. /* Baud rates */
  61.  
  62. #define USB_IRDA_BR_4000000            (1 << 8)
  63. #define USB_IRDA_BR_1152000            (1 << 7)
  64. #define USB_IRDA_BR_576000            (1 << 6)
  65. #define USB_IRDA_BR_115200            (1 << 5)
  66. #define USB_IRDA_BR_57600            (1 << 4)
  67. #define USB_IRDA_BR_38400            (1 << 3)
  68. #define USB_IRDA_BR_19200            (1 << 2)
  69. #define USB_IRDA_BR_9600            (1 << 1)
  70. #define USB_IRDA_BR_2400            (1 << 0)
  71.  
  72. /* Additional BOFs */
  73.  
  74. #define USB_IRDA_AB_0                (1 << 7)
  75. #define USB_IRDA_AB_1                (1 << 6)
  76. #define USB_IRDA_AB_2                (1 << 5)
  77. #define USB_IRDA_AB_3                (1 << 4)
  78. #define USB_IRDA_AB_6                (1 << 3)
  79. #define USB_IRDA_AB_12                (1 << 2)
  80. #define USB_IRDA_AB_24                (1 << 1)
  81. #define USB_IRDA_AB_48                (1 << 0)
  82.  
  83. /* IRDA Rate Sniff */
  84.  
  85. #define USB_IRDA_RATE_SNIFF            1
  86.  
  87. /*-------------------------------------------------------------------------*/
  88.  
  89. struct usb_irda_cs_descriptor {
  90.     __u8    bLength;
  91.     __u8    bDescriptorType;
  92.  
  93.     __le16    bcdSpecRevision;
  94.     __u8    bmDataSize;
  95.     __u8    bmWindowSize;
  96.     __u8    bmMinTurnaroundTime;
  97.     __le16    wBaudRate;
  98.     __u8    bmAdditionalBOFs;
  99.     __u8    bIrdaRateSniff;
  100.     __u8    bMaxUnicastList;
  101. } __attribute__ ((packed));
  102.  
  103. /*-------------------------------------------------------------------------*/
  104.  
  105. /* Data Format */
  106.  
  107. #define USB_IRDA_STATUS_MEDIA_BUSY    (1 << 7)
  108.  
  109. /* The following is a 4-bit value used for both
  110.  * inbound and outbound headers:
  111.  *
  112.  * 0 - speed ignored
  113.  * 1 - 2400 bps
  114.  * 2 - 9600 bps
  115.  * 3 - 19200 bps
  116.  * 4 - 38400 bps
  117.  * 5 - 57600 bps
  118.  * 6 - 115200 bps
  119.  * 7 - 576000 bps
  120.  * 8 - 1.152 Mbps
  121.  * 9 - 5 mbps
  122.  * 10..15 - Reserved
  123.  */
  124. #define USB_IRDA_STATUS_LINK_SPEED    0x0f
  125.  
  126. /* The following is a 4-bit value used only for
  127.  * outbound header:
  128.  *
  129.  * 0 - No change (BOF ignored)
  130.  * 1 - 48 BOFs
  131.  * 2 - 24 BOFs
  132.  * 3 - 12 BOFs
  133.  * 4 - 6 BOFs
  134.  * 5 - 3 BOFs
  135.  * 6 - 2 BOFs
  136.  * 7 - 1 BOFs
  137.  * 8 - 0 BOFs
  138.  * 9..15 - Reserved
  139.  */
  140. #define USB_IRDA_EXTRA_BOFS        0xf0
  141.  
  142. struct usb_irda_inbound_header {
  143.     __u8        bmStatus;
  144. };
  145.  
  146. struct usb_irda_outbound_header {
  147.     __u8        bmChange;
  148. };
  149.  
  150. #endif /* __LINUX_USB_IRDA_H */
  151.  
  152.