;**************************************************************************** ; ; file: kbm desc.inc ; Description: This file contains USB descriptor tables for A keyboard/ ; mouse combo device. ; Target: Cypress CY7C63723/CY7C63743 Encore Chips ; $Header: ; Version: 1.3.0000 ; ;**************************************************************************** ; Copyright (2003), Cypress Semiconductor Corporation ; This software is owned by Cypress Semiconductor Corporation (Cypress) and is ; protected by United States copyright laws and international treaty provisions. ; Cypress hereby grants to Licensee a personal, non-exclusive, non-transferable ; license to copy, use, modify, create derivative works of, and compile the ; Cypress Source Code and derivative works for the sole purpose of creating ; custom software in support of Licensee product ("Licensee Product") to be used ; only in conjunction with a Cypress integrated circuit. Any reproduction, ; modification, translation, compilation, or representation of this software ; except as specified above is prohibited without the express written permission ; of Cypress. ; Disclaimer: Cypress makes no warranty of any kind, express or implied, with ; regard to this material, including, but not limited to, the implied warranties ; of merchantability and fitness for a particular purpose. Cypress reserves the ; right to make changes without further notice to the materials described herein. ; Cypress does not assume any liability arising out of the application or use of ; any product or circuit described herein. Cypress’ products described herein are ; not authorized for use as components in life-support devices. ; This software is protected by and subject to worldwide patent coverage, ; including U.S. and foreign patents. Use may be limited by and subject to the ; Cypress Software License Agreement. ; ;**************************************************************************** control_read_table: device_desc_table: db 12h ; bLength (18 bytes) db 01h ; bDescriptorType (device descriptor) db 10h, 01h ; bcdUSB (ver 1.1) db 00h ; bDeviceClass (each interface specifies class info) db 00h ; bDeviceSubClass (not specified) db 00h ; bDeviceProtocol (not specified) db 08h ; bMaxPacketSize0 (8 bytes) db B4h, 04h ; idVendor (Cypress vendor ID) db b0h, 06h ; idProduct () db 00h, 01h ; bcdDevice (1.00) db 01h ; iManufacturer (Cypress Semiconductor) db 02h ; iProduct (Cypress Ultra Mouse) db 00h ; iSerialNumber (000-000-0001) db 01h ; bNumConfigurations (1) config_desc_table: db 09h ; bLength (9 bytes) db 02h ; bDescriptorType (CONFIGURATION) db (end_config_desc_table - config_desc_table) , 00h ; Total length of config, i/f, HID, AND EP descriptors db 02h ; bNumInterfaces (2) db 01h ; bConfigurationValue (1) db 04h ; iConfiguration (USB HID Compliant Mouse) IFDEF REMOTE_WAKEUP_SUPPORT db A0h ; bmAttributes (bus powered, support remote wakeup) ELSE db 80h ; bmAttributes (bus powered, NOT_SUPPORT_REMOTE_WAKEUP) ENDIF ; REMOTE_WAKEUP_SUPPORT db 31h ; Max power consumption (98mA) MUST be < 100mA if bus powered interface_desc1_table: db 09h ; bLength (9 bytes) db 04h ; bDescriptorType (INTERFACE) db 00h ; bInterfaceNumber (0) db 00h ; bAlternateSetting (0) db 01h ; bNumEndpoints (1) db 03h ; bInterfaceClass (3..defined by USB spec) db 01h ; bInterfaceSubClass (1..defined by USB spec) db 01h ; bInterfaceProtocol (1=kb..defined by USB spec) db 00h ; iInterface (not supported) hid_desc1_table: db 09h ; bLength (9 bytes) db 21h ; bDescriptorType (HID) db 10h, 01h ; bcdHID (1.00) db 00h ; bCountryCode (US) db 01h ; bNumDescriptors (1) db 22h ; bDescriptorType (HID) dwl (end_hid_report_desc1_table - hid_report_desc1_table) ; Total len of rpt desc (2 bytes) endpoint_desc1_table: db 07h ; bLength (7 bytes) db 05h ; bDescriptorType (ENDPOINT) db 81h ; bEndpointAddress (IN endpoint, endpoint 1) db 03h ; bmAttributes (interrupt) db NUM_EP1_BYTES, 00h ; wMaxPacketSize db 0Ah ; bInterval (10ms) interface_desc2_table: db 09h ; bLength (9 bytes) db 04h ; bDescriptorType (INTERFACE) db 01h ; bInterfaceNumber (0) db 00h ; bAlternateSetting (0) db 01h ; bNumEndpoints (1) db 03h ; bInterfaceClass (3..defined by USB spec) db 01h ; bInterfaceSubClass (1..defined by USB spec) db 02h ; bInterfaceProtocol (2=m..defined by USB spec) db 00h ; iInterface (not supported) hid_desc2_table: db 09h ; bLength (9 bytes) db 21h ; bDescriptorType (HID) db 10h, 01h ; bcdHID (1.00) db 00h ; bCountryCode (US) db 01h ; bNumDescriptors (1) db 22h ; bDescriptorType (HID) dwl (end_hid_report_desc2_table - hid_report_desc2_table) ; Total length of report descriptor (2 bytes) endpoint_desc2_table: db 07h ; bLength (7 bytes) db 05h ; bDescriptorType (ENDPOINT) db 82h ; bEndpointAddress (IN endpoint, endpoint 2) db 03h ; bmAttributes (interrupt) db NUM_EP2_BYTES, 00h ; wMaxPacketSize db 0Ah ; bInterval (10ms) end_config_desc_table: device_status_wakeup_enabled: db 02h, 00h ; remote wakeup enabled, bus powered device_status_wakeup_disabled: db 00h, 00h ; remote wakeup disabled, bus powered device_configured_table: db 01h ; device in configured state device_unconfigured_table: db 00h ; device in unconfigured state endpoint_nostall_table: db 00h, 00h ; endpoint not stalled endpoint_stall_table: db 01h, 00h ; endpoint stalled interface_status_table: db 00h, 00h ; default response interface_alternate_table: db 00h ; only valid alternate setting interface_boot_protocol: db 00h interface_report_protocol: db 01h ilanguage_string: db 04h ; Length db 03h ; Type (3=string) db 09h ; Language: English db 04h ; Sub-language: US imanufacturer_string: db (iproduct_string - imanufacturer_string) ; Length db 03h ; Type (3=string) dsu "Cypress" iproduct_string: db (iserialnumber_string - iproduct_string) ; Length db 03h ; Type (3=string) dsu "WirelessUSB" iserialnumber_string: ; serial number db 10h ; Length db 03h ; Type (3=string) dsu "0000001" iconfiguration_string: db (end_strings - iconfiguration_string) ; Length db 03h ; Type (3=string) dsu "WirelessUSB" end_strings: ORG 1700h ctrl_read_hid_rpt_desc_table: hid_report_desc1_table: KeyboardDesc: KeyboardStandardKeysDesc: db 05h, 01h ;USAGE_PAGE (Generic Desktop) db 09h, 06h ;USAGE (Keyboard) db A1h, 01h ;COLLECTION (Application) db 85h, 01h ; REPORT_ID (1) db 05h, 07h ; USAGE_PAGE (Keyboard) db 19h, E0h ; USAGE_MINIMUM (Keyboard LeftControl) db 29h, E7h ; USAGE_MAXIMUM (Keyboard Right GUI) db 15h, 00h ; LOGICAL_MINIMUM (0) db 25h, 01h ; LOGICAL_MAXIMUM (1) db 75h, 01h ; REPORT_SIZE (1) db 95h, 08h ; REPORT_COUNT (8) db 81h, 02h ; INPUT (Data,Var,Abs) ;Key Modifier Byte db 75h, 08h ; REPORT_SIZE (8) db 95h, 01h ; REPORT_COUNT (1) db 81h, 01h ; INPUT (Cnst,Ary,Abs) ;Reserved Byte db 05h, 07h ; USAGE_PAGE (Keyboard) db 19h, 00h ; USAGE_MINIMUM (Reserved (no event)) db 29h, 65h ; USAGE_MAXIMUM (Keyboard Application) db 15h, 00h ; LOGICAL_MINIMUM (0) db 25h, 65h ; LOGICAL_MAXIMUM (101) db 75h, 08h ; REPORT_SIZE (8) db 95h, 05h ; REPORT_COUNT (5) db 81h, 00h ; INPUT (Data,Ary,Abs) ;Standard Keys (5) db C0h ;END_COLLECTION EndKeyboardStandardKeysDesc: KeyboardConsumerKeysDesc: db 05h, 0Ch ;USAGE_PAGE (Consumer Devices) db 09h, 01h ;USAGE (Consumer Control) db A1h, 01h ;COLLECTION (Application) db 85h, 02h ; REPORT_ID (2) db 19h, 00h ; USAGE_MINIMUM (Unassigned) db 2Ah, 3Ch, 02h ; USAGE_MAXIMUM (572) db 15h, 00h ; LOGICAL_MINIMUM (0) db 26h, 3Ch, 02h ; LOGICAL_MAXIMUM (572) db 95h, 01h ; REPORT_COUNT (1) db 75h, 10h ; REPORT_SIZE (16) db 81h, 00h ; INPUT (Data,Ary,Abs) ;16 bit Consumer Code db C0h ;END_COLLECTION EndKeyboardConsumerKeysDesc: KeyboardPowerKeysDesc: db 05h, 01h ;USAGE_PAGE (Generic Desktop) db 09h, 80h ;USAGE (System Control) db A1h, 01h ;COLLECTION (Application) db 85h, 03h ; REPORT_ID (3) db 19h, 81h ; USAGE_MINIMUM (System Power Down) db 29h, 83h ; USAGE_MAXIMUM (System Wake Up) db 15h, 00h ; LOGICAL_MINIMUM (0) db 25h, 01h ; LOGICAL_MAXIMUM (1) db 75h, 01h ; REPORT_SIZE (1) db 95h, 03h ; REPORT_COUNT (3) db 81h, 02h ; INPUT (Data,Var,Abs) db 95h, 05h ; REPORT_COUNT (5) db 81h, 01h ; INPUT (Cnst,Ary,Abs) ;filler db C0h ;END_COLLECTION EndKeyboardPowerKeysDesc: EndKeyboardDesc: RadioKbdParamsDesc: db 06h, 01h, FFh ;USAGE_PAGE (Vendor defined FF01 - WirelessUSB) db 09h, 01h ;USAGE (KbdRadio Parameters Collection) db A1h, 01h ;COLLECTION (Application) db 85h, 04h ; REPORT_ID (4) db 95h, 01h ; REPORT_COUNT (1) - Each field is 1 REPORT_SIZE of bits db 75h, 08h ; REPORT_SIZE (8) - Each field is 8 bits long db 15h, 01h ; LOGICAL_MINIMUM (0) db 25h, 0Ah ; LOGICAL_MAXIMUM (10) db 09h, 20h ; USAGE (Battery Level) db B1h, 03h ; INPUT (const,var,abs) ;db 09h, 23h ; USAGE (Signal Strength) // 0=Not connected ;db B1h, 03h ; INPUT (const,var,abs) db 25h, 4Fh ; LOGICAL_MAXIMUM (79) db 09h, 21h ; USAGE (Wireless Channel) db B1h, 03h ; INPUT (const,var,abs) db 25h, 30h ; LOGICAL_MAXIMUM (48) db 09h, 22h ; USAGE (Wireless PN Code) db B1h, 03h ; INPUT (const,var,abs) db 95h, 02h ;REPORT_COUNT (2) - Field is 2 bytes db 75h, 10h ; REPORT_SIZE (16) - Each field is 16 bits long db 09h, 24h 23h ; USAGE (Corrupt Packets Xferred) db B1h, 03h ; INPUT (const,var,abs) db 09h, 24h ; USAGE (Total Packets Xferred) db B1h, 03h ; INPUT (const,var,abs) db C0h ;END_COLLECTION EndRadioKbdParamsDesc: end_hid_report_desc1_table: hid_report_desc2_table: MouseDesc: db 05h, 01h ;USAGE_PAGE (Generic Desktop) db 09h, 02h ;USAGE (Mouse) db A1h, 01h ;COLLECTION (Application) db 09h, 01h ; USAGE (Pointer) db A1h, 00h ; COLLECTION (Physical) db 85h, 01h ; REPORT_ID (1) db 95h, 03h ; REPORT_COUNT (3) ; 3 buttons on LS mouse db 75h, 01h ; REPORT_SIZE (1) db 05h, 09h ; USAGE_PAGE (Button) db 19h, 01h ; USAGE_MINIMUM (Button 1) db 29h, 03h ; USAGE_MAXIMUM (Button 3) db 15h, 00h ; LOGICAL_MINIMUM (0) db 25h, 01h ; LOGICAL_MAXIMUM (1) db 81h, 02h ; INPUT (Data,Var,Abs) db 95h, 01h ; REPORT_COUNT (1) db 75h, 05h ; REPORT_SIZE (5) ; filler for unused button bits db 81h, 01h ; INPUT (Cnst,Ary,Abs) db 75h, 08h ; REPORT_SIZE (8) db 95h, 02h ; REPORT_COUNT (2) db 05h, 01h ; USAGE_PAGE (Generic Desktop) db 09h, 30h ; USAGE (X) ; X data byte db 09h, 31h ; USAGE (Y) ; Y data byte db 15h, 81h 80h ; LOGICAL_MINIMUM (-127128) db 25h, 7Fh ; LOGICAL_MAXIMUM (127) db 81h, 06h ; INPUT (Data,Var,Rel) db C0h ; END_COLLECTION ; Mouse Boot Format above this line db A1h, 00h ; COLLECTION (Physical) ; Extension for Wheel data below db 95h, 01h ; REPORT_COUNT (1) db 75h, 08h ; REPORT_SIZE (8) ; Wheel data db 05h, 01h ; USAGE_PAGE (Generic Desktop) db 09h, 38h ; USAGE (Wheel) db 15h, 81h ; LOGICAL_MINIMUM (-127) db 25h, 7Fh ; LOGICAL_MAXIMUM (127) db 81h, 06h ; INPUT (Data,Var,Rel) db C0h ; END_COLLECTION db C0h ;END_COLLECTION EndMouseDesc: RadioMouseParamsDesc: db 06h, 01h, FFh ;USAGE_PAGE (Vendor defined FF01 - WirelessUSB) db 09h, 02h ;USAGE (MouseRadio Parameters Collection) db A1h, 01h ;COLLECTION (Application) db 85h, 04h ; REPORT_ID (4) db 95h, 01h ; REPORT_COUNT (1) - Each field is 1 REPORT_SIZE of bits db 75h, 08h ; REPORT_SIZE (8) - Each field is 8 bits long db 15h, 01h ; LOGICAL_MINIMUM (0) db 25h, 0Ah ; LOGICAL_MAXIMUM (10) db 09h, 20h ; USAGE (Battery Level) db B1h, 03h ; INPUT (const,var,abs) ;db 09h, 23h ; USAGE (Signal Strength) // 0=Not connected ;db B1h, 03h ; INPUT (const,var,abs) db 25h, 4Fh ; LOGICAL_MAXIMUM (79) db 09h, 21h ; USAGE (Wireless Channel) db B1h, 03h ; INPUT (const,var,abs) db 25h, 30h ; LOGICAL_MAXIMUM (48) db 09h, 22h ; USAGE (Wireless PN Code) db B1h, 03h ; INPUT (const,var,abs) db 75h, 10h ; REPORT_SIZE (16) - Each field is 16 bits long ;db 95h, 02h ;REPORT_COUNT (2) - Field is 2 bytes db 09h, 24h 23h ; USAGE (Corrupt Packets Xferred) db B1h, 03h ; INPUT (const,var,abs) db 09h, 24h ; USAGE (Total Packets Xferred) db B1h, 03h ; INPUT (const,var,abs) db C0h ;END_COLLECTION EndRadioMouseParamsDesc: end_hid_report_desc2_table: ctrl_read_hid_rpt_desc_table_end: