@@ -975,6 +975,108 @@ const __u8 uclogic_rdesc_xppen_deco01_frame_arr[] = {
975
975
const size_t uclogic_rdesc_xppen_deco01_frame_size =
976
976
sizeof (uclogic_rdesc_xppen_deco01_frame_arr );
977
977
978
+ /* Report descriptor template for XP-Pen Artist 15.6 Pro pen */
979
+ const __u8 uclogic_rdesc_xppen_a156p_pen_arr [] = {
980
+ 0x05 , 0x0D , /* Usage Page (Digitizer), */
981
+ 0x09 , 0x02 , /* Usage (Pen), */
982
+ 0xA1 , 0x01 , /* Collection (Application), */
983
+ 0x85 , 0x02 , /* Report ID (2), */
984
+ 0x09 , 0x20 , /* Usage (Stylus), */
985
+ 0xA0 , /* Collection (Physical), */
986
+ 0x14 , /* Logical Minimum (0), */
987
+ 0x25 , 0x01 , /* Logical Maximum (1), */
988
+ 0x09 , 0x42 , /* Usage (Tip Switch), */
989
+ 0x09 , 0x44 , /* Usage (Barrel Switch), */
990
+ 0x09 , 0x46 , /* Usage (Tablet Pick), */
991
+ 0x75 , 0x01 , /* Report Size (1), */
992
+ 0x95 , 0x03 , /* Report Count (3), */
993
+ 0x81 , 0x02 , /* Input (Variable), */
994
+ 0x95 , 0x02 , /* Report Count (2), */
995
+ 0x81 , 0x01 , /* Input (Constant), */
996
+ 0x09 , 0x32 , /* Usage (In Range), */
997
+ 0x95 , 0x01 , /* Report Count (1), */
998
+ 0x81 , 0x02 , /* Input (Variable), */
999
+ 0x95 , 0x02 , /* Report Count (2), */
1000
+ 0x81 , 0x01 , /* Input (Constant), */
1001
+ 0x75 , 0x10 , /* Report Size (16), */
1002
+ 0x95 , 0x01 , /* Report Count (1), */
1003
+ 0xA4 , /* Push, */
1004
+ 0x05 , 0x01 , /* Usage Page (Desktop), */
1005
+ 0x55 , 0xFD , /* Unit Exponent (-3), */
1006
+ 0x65 , 0x13 , /* Unit (Inch), */
1007
+ 0x34 , /* Physical Minimum (0), */
1008
+ 0x09 , 0x30 , /* Usage (X), */
1009
+ 0x27 , UCLOGIC_RDESC_PEN_PH (X_LM ),
1010
+ /* Logical Maximum (PLACEHOLDER), */
1011
+ 0x47 , UCLOGIC_RDESC_PEN_PH (X_PM ),
1012
+ /* Physical Maximum (PLACEHOLDER), */
1013
+ 0x81 , 0x02 , /* Input (Variable), */
1014
+ 0x09 , 0x31 , /* Usage (Y), */
1015
+ 0x27 , UCLOGIC_RDESC_PEN_PH (Y_LM ),
1016
+ /* Logical Maximum (PLACEHOLDER), */
1017
+ 0x47 , UCLOGIC_RDESC_PEN_PH (Y_PM ),
1018
+ /* Physical Maximum (PLACEHOLDER), */
1019
+ 0x81 , 0x02 , /* Input (Variable), */
1020
+ 0xB4 , /* Pop, */
1021
+ 0x09 , 0x30 , /* Usage (Tip Pressure), */
1022
+ 0x27 , UCLOGIC_RDESC_PEN_PH (PRESSURE_LM ),
1023
+ /* Logical Maximum (PLACEHOLDER), */
1024
+ 0x81 , 0x02 , /* Input (Variable), */
1025
+ 0xA4 , /* Push, */
1026
+ 0x54 , /* Unit Exponent (0), */
1027
+ 0x65 , 0x14 , /* Unit (Degrees), */
1028
+ 0x35 , 0xC3 , /* Physical Minimum (-61), */
1029
+ 0x45 , 0x3C , /* Physical Maximum (60), */
1030
+ 0x15 , 0xC3 , /* Logical Minimum (-61), */
1031
+ 0x25 , 0x3C , /* Logical Maximum (60), */
1032
+ 0x75 , 0x08 , /* Report Size (8), */
1033
+ 0x95 , 0x02 , /* Report Count (2), */
1034
+ 0x09 , 0x3D , /* Usage (X Tilt), */
1035
+ 0x09 , 0x3E , /* Usage (Y Tilt), */
1036
+ 0x81 , 0x02 , /* Input (Variable), */
1037
+ 0xB4 , /* Pop, */
1038
+ 0xC0 , /* End Collection, */
1039
+ 0xC0 /* End Collection */
1040
+ };
1041
+
1042
+ const size_t uclogic_rdesc_xppen_a156p_pen_size =
1043
+ sizeof (uclogic_rdesc_xppen_a156p_pen_arr );
1044
+
1045
+ /* Report descriptor template for XP-Pen Artist 15.6 Pro frame */
1046
+ const __u8 uclogic_rdesc_xppen_a156p_frame_arr [] = {
1047
+ 0x05 , 0x01 , /* Usage Page (Desktop), */
1048
+ 0x09 , 0x07 , /* Usage (Keypad), */
1049
+ 0xA1 , 0x01 , /* Collection (Application), */
1050
+ 0x85 , UCLOGIC_RDESC_V1_FRAME_ID ,
1051
+ /* Report ID (Virtual report), */
1052
+ 0x05 , 0x0D , /* Usage Page (Digitizer), */
1053
+ 0x09 , 0x39 , /* Usage (Tablet Function Keys), */
1054
+ 0xA0 , /* Collection (Physical), */
1055
+ 0x14 , /* Logical Minimum (0), */
1056
+ 0x25 , 0x01 , /* Logical Maximum (1), */
1057
+ 0x75 , 0x01 , /* Report Size (1), */
1058
+ 0x95 , 0x08 , /* Report Count (8), */
1059
+ 0x81 , 0x01 , /* Input (Constant), */
1060
+ 0x05 , 0x09 , /* Usage Page (Button), */
1061
+ 0x19 , 0x01 , /* Usage Minimum (01h), */
1062
+ 0x29 , 0x08 , /* Usage Maximum (08h), */
1063
+ 0x95 , 0x08 , /* Report Count (8), */
1064
+ 0x81 , 0x02 , /* Input (Variable), */
1065
+ 0x95 , 0x20 , /* Report Count (32), */
1066
+ 0x81 , 0x01 , /* Input (Constant), */
1067
+ 0x19 , 0x09 , /* Usage Minimum (09h), */
1068
+ 0x29 , 0x0A , /* Usage Maximum (0Ah), */
1069
+ 0x95 , 0x02 , /* Report Count (2), */
1070
+ 0x81 , 0x02 , /* Input (Variable), */
1071
+ 0x95 , 0x16 , /* Report Count (22), */
1072
+ 0x81 , 0x01 , /* Input (Constant), */
1073
+ 0xC0 , /* End Collection, */
1074
+ 0xC0 /* End Collection */
1075
+ };
1076
+
1077
+ const size_t uclogic_rdesc_xppen_a156p_frame_size =
1078
+ sizeof (uclogic_rdesc_xppen_a156p_frame_arr );
1079
+
978
1080
/**
979
1081
* uclogic_rdesc_template_apply() - apply report descriptor parameters to a
980
1082
* report descriptor template, creating a report descriptor. Copies the
0 commit comments