HID PICS for the PTS tool.

PTS version: 6.0

* - different than PTS defaults
# - not yet implemented/supported

M - mandatory
O - optional

		Roles
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_1_1	True (*)	Role: Host, Report protocol (O.1)
TSPC_HID_1_2	False		Role: HID Role (O.1)
TSPC_HID_1_3	False		Role: Host, Boot protocol (O.1)
-------------------------------------------------------------------------------
O.1: It is Mandatory to support One of these roles.
-------------------------------------------------------------------------------


		Application Procedures
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_2_1	True (*)	Host: Establish HID connection (M.1)
TSPC_HID_2_2	True (*)	Host: Accept HID connection (M.1)
TSPC_HID_2_3	True (*)	Host: Terminate HID connection (M.1)
TSPC_HID_2_4	True (*)	Host: Accept termination of HID connection (M.1)
TSPC_HID_2_5	True (*)	Host: Support for virtual cables (M.1)
TSPC_HID_2_6	True (*)	Host: HID initiated connection (M.1)
TSPC_HID_2_7	True (*)	Host: Host initiated connection (M.1)
TSPC_HID_2_8	True (*)	Host: Host data transfer to HID (C.1)
TSPC_HID_2_9	True (*)	Host: HID data transfer to Host (C.1)
TSPC_HID_2_10	False		Host: Boot mode data transfer to Host (C.2)
TSPC_HID_2_11	False		Host : Boot mode data transfer to HID (C.2)
TSPC_HID_2_12	False		Host : Support for Application to send
					GET_Report (O)
TSPC_HID_2_13	False		Host : Support for Application to send
					SET_REPORT (O)
TSPC_HID_2_14	False		Host : Support for sending HCI_CONTROL with
					VIRTUAL_CABLE_UNPLUG (C.3)
TSPC_HID_2_15	False		Host : Support for receiving HCI_CONTROL with
					VIRTUAL_CABLE_UNPLUG (C.3)
-------------------------------------------------------------------------------
M.1: Mandatory to support IF (TSPC_HID_1_1) supported.
C.1: Optional for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Mandatory
	for Host Role (TSPC_HID_1_1).
C.2: Mandatory for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Optional.
C.3: Optional IF (TSPC_HID_2_5) supported, otherwise excluded.
-------------------------------------------------------------------------------


		Device to Host Transfers
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_3_1	False		Host : Data reports larger than host MTU on
					Control channel (C.1)
TSPC_HID_3_2	True (*)	Host : Data reports larger than host MTU on
					Interrupt channel (C.1)
TSPC_HID_3_3	True (*)	Host : Data reports to host (C.2)
TSPC_HID_3_4	False		Host : Boot mode reports to host (O)
-------------------------------------------------------------------------------
C.1: Excluded for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Optional
C.2: Excluded for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Mandatory for
	Host Role (TSPC_HID_1_1)
-------------------------------------------------------------------------------


		Host to Device Transfers
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_4_1	False		Host : Data reports larger than device MTU on
					Control channel (C.1)
TSPC_HID_4_2	False		Host : Data reports larger than device MTU on
					Interrupt channel (C.1)
TSPC_HID_4_3	True (*)	Host : Data reports to device (C.2)
TSPC_HID_4_4	False		Host : Boot mode reports to device (O)
-------------------------------------------------------------------------------
C.1: Excluded for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Optional
C.2: Excluded for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Mandatory for
	Host Role (TSPC_HID_1_1).
-------------------------------------------------------------------------------


		HID Control Commands
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_5_1	False		Host : Set_Protocol command (C.1, C.4)
TSPC_HID_5_2	False		Host : Get_Protocol command (C.1, C.4)
TSPC_HID_5_3	False		Host : Set_Idle command (O)
TSPC_HID_5_4	False		Host : Get_Idle command (O)
TSPC_HID_5_5	False		Host : Set_Report command (C.2)
TSPC_HID_5_6	False		Host : Get_Report command (C.3)
-------------------------------------------------------------------------------
C.2: Mandatory IF (TSPC_HID_1_1) supported AND (TSPC_HID_2_13) supported.
C.1: Mandatory for Boot Mode Only Hosts (TSPC_HID_1_3); otherwise Optional.
	If either Set_Protocol or Get_Protocol supported, both are Mandatory.
C.3: Mandatory IF (TSPC_HID_1_1) Supported AND (TSPC_HID_2_12) Supported
C.4: Mandatory to support TSPC_HID_5_1 (Set_Protocol command) AND TSPC_HID_5_2
	(Get_Protocol command) IF one of TSPC_HID_5_1 (Set_Protocol command)
	OR TSPC_HID_5_2 (Get_Protocol command) is supported, otherwise
	Excluded.
-------------------------------------------------------------------------------


		Host Link Manager Procedures
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_6_1	False		Host : Initiate Authentication before
					connection completed (C.1)
TSPC_HID_6_2	False		Host : Initiate Authentication after connection
					completed (C.1)
TSPC_HID_6_3	False		Host : Initiate pairing before connection
					completed (C.2)
TSPC_HID_6_4	False		Host : Initiate pairing after connection
					completed (C.2)
TSPC_HID_6_5	False		Host : Encryption (O)
TSPC_HID_6_6	False		Host : Initiate encryption (C.3)
TSPC_HID_6_7	False		Host : Accept encryption requests (C.3)
TSPC_HID_6_8	True (*)	Host : Role switch (Master/Slave) (M.1)
TSPC_HID_6_9	True (*)	Host : Request Master Slave switch (M.1)
TSPC_HID_6_10	True (*)	Host : Accept Master Slave switch requests (M.1)
TSPC_HID_6_11	False		Host : Hold mode (O)
TSPC_HID_6_12	True (*)	Host : Sniff mode (M.1)
TSPC_HID_6_13	False		Host : Park mode (O)
-------------------------------------------------------------------------------
C.1: If Host Authentication supported, both (TSPC_HID_6_1) AND (TSPC_HID_6_2)
	must be supported.
C.2: If Pairing supported both (TSPC_HID_6_3) AND (TSPC_HID_6_4) must
	be supported.
M.1: Mandatory IF (TSPC_HID_1_1) supported.
C.3: Mandatory IF (TSPC_HID_6_5) encryption supported.
-------------------------------------------------------------------------------


		Host Link Control Requirements
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_7_1	True (*)	Host : Supports inquiry, 79 channel (M.1)
TSPC_HID_7_2	False		Host : Supports inquiry scan, 79 channel (C.2)
-------------------------------------------------------------------------------
M.1: Mandatory to support IF (TSPC_HID_1_1) supported.
C.2: Feature should not be used by a Host, but can be supported in LM.
-------------------------------------------------------------------------------


		HID Device Roles
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_8_1	False		Hid : Pointing HID (O.1)
TSPC_HID_8_2	False		Hid : Keyboard HID (O.1)
TSPC_HID_8_3	False		Hid : Identification HID (O.1)
TSPC_HID_8_4	False		Hid : Other HID (O.1)
-------------------------------------------------------------------------------
O.1: It is Mandatory to support One of these roles IF (TSPC_HID_1_2)
	is selected
-------------------------------------------------------------------------------


		HID Application Procedures
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_9_1	False		Hid : Establish HID connection (O)
TSPC_HID_9_2	False (*)	Hid : Accept HID connection (M.1)
TSPC_HID_9_3	False		Hid : Terminate HID connection (O)
TSPC_HID_9_4	False (*)	Hid : Accept Termination of HID connection (M.1)
TSPC_HID_9_5	False		Hid : Support for virtual cables (O)
TSPC_HID_9_6	False		Hid : HID initiated reconnection (C.1)
TSPC_HID_9_7	False		Hid : Host initiated reconnection (C.1)
TSPC_HID_9_8	False		Hid : Host data transfer to HID (C.2)
TSPC_HID_9_9	False		Hid : HID data transfer to Host (C.2)
TSPC_HID_9_10	False		Hid : HID Boot mode data transfer to Host (C.3)
TSPC_HID_9_11	False		Hid : Host Boot mode data transfer to HID (C.4)
TSPC_HID_9_12	False		Hid : Output reports declared (C.4)
TSPC_HID_9_13	False		Hid : Input reports declared (C.3)
TSPC_HID_9_14	False		Hid : Feature reports declared (O)
TSPC_HID_9_15	False		Hid : Support for sending HCI_CONTROL with
					VIRTUAL_CABLE_UNPLUG (C.5)
TSPC_HID_9_16	False		Hid : Support for receiving HCI_CONTROL with
					VIRTUAL_CABLE_UNPLUG (C.5)
-------------------------------------------------------------------------------
M.1: Mandatory IF (TSPC_HID_1_2) supported.
C.1: One of these is Mandatory IF (TSPC_HID_9_5) is supported
	(SDP attribute 0x204=True)
C.2: One of these is Mandatory.
C.3: Mandatory IF (TSPC_HID_8_1) OR (TSPC_HID_8_2) is selected
C.4: Mandatory IF (TSPC_HID_8_2) is supported (for status indicators)
C.5: Optional IF (TSPC_HID_9_5) supported, otherwise excluded.
-------------------------------------------------------------------------------


		Device to Host Transfers
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_10_1	False		Hid : Data reports larger than host MTU on
					Control channel (O)
TSPC_HID_10_2	False		Hid : Data reports larger than host MTU on
					Interrupt channel (O)
TSPC_HID_10_3	False		Hid : Data reports to host (O)
TSPC_HID_10_4	False		Hid : Boot mode reports to host (C.1)
-------------------------------------------------------------------------------
C.1: Mandatory IF (TSPC_HID_8_1) OR (TSPC_HID_8_2) is supported.
	Optional for other HIDs.
-------------------------------------------------------------------------------


		Host to Device Transfers
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_11_1	False		Hid : Data reports larger than device MTU on
					Control channel (O)
TSPC_HID_11_2	False		Hid : Data reports larger than device MTU on
					Interrupt channel (O)
TSPC_HID_11_3	False		Hid : Data reports to device (O)
TSPC_HID_11_4	False		Hid : Boot mode reports to device (C.1)
-------------------------------------------------------------------------------
C.1: Mandatory IF (TSPC_HID_8_2) is supported. Optional for other HIDs.
-------------------------------------------------------------------------------


		HID Control Commands
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_12_1	False		Hid : Set_Protocol command (C.1, C.5)
TSPC_HID_12_2	False		Hid : Get_Protocol command (C.1, C.5)
TSPC_HID_12_3	False		Hid : Set_Idle command (C.2)
TSPC_HID_12_4	False		Hid : Get_Idle command (C.2)
TSPC_HID_12_5	False		Hid : Set_Report command (C.3)
TSPC_HID_12_6	False		Hid : Get_Report command (C.4)
-------------------------------------------------------------------------------
C.1: Mandatory IF (TSPC_HID_8_1) OR (TSPC_HID_8_2) is supported.
	Optional for other HIDs. If either Set_Protocol or Get_Protocol
	supported, both are Mandatory.
C.2: Mandatory IF (TSPC_HID_8_2) Keyboard is selected. Optional for other HIDs.
C.3: Mandatory IF (TSPC_HID_9_12) or (TSPC_HID_9_14) supported.
C.4: Mandatory IF (TSPC_HID_9_13) or (TSPC_HID_9_14) supported
C.5: If either TSPC_HID_12_1 (Set_Protocol command) OR TSPC_HID_12_2
	(Get_Protocol command) is supported, both TSPC_HID_12_1
	(Set_Protocol command) AND TSPC_HID_12_2 (Get_Protocol command) are
	Mandatory to support
-------------------------------------------------------------------------------


		HID Link Manager Procedures
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_13_1	False		Hid : Host initiated Authentication before
					connection completed (C.1)
TSPC_HID_13_2	False		Hid : Host initiated Authentication after
					connection completed (C.1)
TSPC_HID_13_3	False		Hid : Item no longer used (N/A)
TSPC_HID_13_4	False		Hid : Item no longer used (N/A)
TSPC_HID_13_5	False		Hid : Encryption (C.1)
TSPC_HID_13_6	False		Hid : Initiate encryption (O)
TSPC_HID_13_7	False		Hid : Accept encryption requests (C.2)
TSPC_HID_13_8	False		Hid : Role switch (Master/Slave) (C.3)
TSPC_HID_13_9	False		Hid : Request Master Slave switch (O)
TSPC_HID_13_10	False		Hid : Accept Master Slave switch requests (C.3)
TSPC_HID_13_11	False		Hid : Hold mode (O)
TSPC_HID_13_12	False		Hid : Sniff mode (O)
TSPC_HID_13_13	False		Hid : Park mode (O)
-------------------------------------------------------------------------------
C.1: Mandatory IF (TSPC_HID_8_2) OR (TSPC_HID_8_3) is selected. Optional
	for other HIDs.
C.2: Mandatory IF (TSPC_HID_13_5) supported.
C.3: Mandatory IF (TSPC_HID_9_6) is supported.
-------------------------------------------------------------------------------


		HID Link Control Requirements
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_HID_14_1	False		Hid : Supports inquiry, 79 channel (O)
TSPC_HID_14_2	False		Hid : Supports inquiry scan, 79 channel (M.1)
TSPC_ALL	False		Enables all test cases when set to true.
-------------------------------------------------------------------------------
M.1: Mandatory IF (TSPC_HID_1_2) is supported.
-------------------------------------------------------------------------------
