10b966c5eSopenharmony_ciroot { 20b966c5eSopenharmony_ci module = "usbfn"; 30b966c5eSopenharmony_ci acm_device_config { 40b966c5eSopenharmony_ci match_attr = "usbfn_cdcacm_driver"; 50b966c5eSopenharmony_ci udc_name = "fcc00000.dwc3"; 60b966c5eSopenharmony_ci } 70b966c5eSopenharmony_ci ecm_device_config { 80b966c5eSopenharmony_ci match_attr = "usbfn_cdcecm_driver"; 90b966c5eSopenharmony_ci udc_name = "fcc00000.dwc3"; 100b966c5eSopenharmony_ci } 110b966c5eSopenharmony_ci mtp_device_config { 120b966c5eSopenharmony_ci match_attr = "usbfn_mtp_interface_driver"; 130b966c5eSopenharmony_ci udc_name = "fcc00000.dwc3"; 140b966c5eSopenharmony_ci } 150b966c5eSopenharmony_ci usb_device_config { 160b966c5eSopenharmony_ci match_attr = "usb_device_interface_driver"; 170b966c5eSopenharmony_ci port_file_path = "/data/service/el1/public/usb/mode"; 180b966c5eSopenharmony_ci } 190b966c5eSopenharmony_ci usbfn_config { 200b966c5eSopenharmony_ci match_attr = "usbfn_driver"; 210b966c5eSopenharmony_ci use_hcs = 1; 220b966c5eSopenharmony_ci udc_name = "fcc00000.dwc3"; 230b966c5eSopenharmony_ci usb_dev_desc = "UsbDeviceDescriptor"; 240b966c5eSopenharmony_ci usb_dev_string = "UsbDeviceStrings"; 250b966c5eSopenharmony_ci usb_configuration = "UsbConfigs"; 260b966c5eSopenharmony_ci UsbDeviceDescriptor { 270b966c5eSopenharmony_ci bLength = 18; 280b966c5eSopenharmony_ci bDescriptorType = 0x01; 290b966c5eSopenharmony_ci bcdUSB = 0x0200; 300b966c5eSopenharmony_ci bDeviceClass = 0; 310b966c5eSopenharmony_ci bDeviceSubClass = 0; 320b966c5eSopenharmony_ci bDeviceProtocol = 0; 330b966c5eSopenharmony_ci bMaxPacketSize0 = 0x40; 340b966c5eSopenharmony_ci idVendor = 0x2207; 350b966c5eSopenharmony_ci idProduct = 0x0018; 360b966c5eSopenharmony_ci bcdDevice = 0x0223; 370b966c5eSopenharmony_ci manufacturer = 0; 380b966c5eSopenharmony_ci product = 1; 390b966c5eSopenharmony_ci serialnumber = 2; 400b966c5eSopenharmony_ci numConfigurations = 1; 410b966c5eSopenharmony_ci } 420b966c5eSopenharmony_ci UsbDeviceStrings { 430b966c5eSopenharmony_ci stringTabList = ["string_1"]; 440b966c5eSopenharmony_ci string_1 { 450b966c5eSopenharmony_ci language = 0x0409; 460b966c5eSopenharmony_ci stringList = ["str_1", "str_2","str_3", "str_4"]; 470b966c5eSopenharmony_ci str_1 { 480b966c5eSopenharmony_ci id = 0; 490b966c5eSopenharmony_ci str = "HISILICON"; 500b966c5eSopenharmony_ci } 510b966c5eSopenharmony_ci str_2 { 520b966c5eSopenharmony_ci id = 1; 530b966c5eSopenharmony_ci str = "HDC Device"; 540b966c5eSopenharmony_ci } 550b966c5eSopenharmony_ci str_3 { 560b966c5eSopenharmony_ci id = 2; 570b966c5eSopenharmony_ci str = "0123456789POPLAR"; 580b966c5eSopenharmony_ci } 590b966c5eSopenharmony_ci str_4 { 600b966c5eSopenharmony_ci id = 3; 610b966c5eSopenharmony_ci str = "hdc"; 620b966c5eSopenharmony_ci } 630b966c5eSopenharmony_ci } 640b966c5eSopenharmony_ci } 650b966c5eSopenharmony_ci UsbConfigs { 660b966c5eSopenharmony_ci configList = ["config_1"]; 670b966c5eSopenharmony_ci config_1 { 680b966c5eSopenharmony_ci configurationValue = 1; 690b966c5eSopenharmony_ci iConfiguration = 3; 700b966c5eSopenharmony_ci attributes = 0xC0; 710b966c5eSopenharmony_ci maxPower = 500; 720b966c5eSopenharmony_ci functionList = ["func_ecm", "func_acm", "func_mtp", "func_ptp"]; 730b966c5eSopenharmony_ci func_ecm { 740b966c5eSopenharmony_ci funcName = "f_generic.e"; 750b966c5eSopenharmony_ci stringTabList = ["fnString_1"]; 760b966c5eSopenharmony_ci fnString_1 { 770b966c5eSopenharmony_ci language = 0x0409; 780b966c5eSopenharmony_ci stringList = ["str_1", "str_2", "str_3", "str_4"]; 790b966c5eSopenharmony_ci str_1 { 800b966c5eSopenharmony_ci id = 0; 810b966c5eSopenharmony_ci str = "CDC Ethernet Control Model (ECM)"; 820b966c5eSopenharmony_ci } 830b966c5eSopenharmony_ci str_2 { 840b966c5eSopenharmony_ci id = 1; 850b966c5eSopenharmony_ci str = "0ac75ae91c79"; 860b966c5eSopenharmony_ci } 870b966c5eSopenharmony_ci str_3 { 880b966c5eSopenharmony_ci id = 2; 890b966c5eSopenharmony_ci str = "CDC Ethernet Data"; 900b966c5eSopenharmony_ci } 910b966c5eSopenharmony_ci str_4 { 920b966c5eSopenharmony_ci id = 3; 930b966c5eSopenharmony_ci str = "CDC ECM"; 940b966c5eSopenharmony_ci } 950b966c5eSopenharmony_ci } 960b966c5eSopenharmony_ci fsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 970b966c5eSopenharmony_ci "cdc_union", "cdc_ether", "FsNotify_endpoint", "DataNopInterface", 980b966c5eSopenharmony_ci "DataInterface", "FsIn_endpoint", "FsOut_endpoint"]; 990b966c5eSopenharmony_ci assoc_interface { 1000b966c5eSopenharmony_ci bLength = 0x08; 1010b966c5eSopenharmony_ci bDescriptorType = 0x0B; 1020b966c5eSopenharmony_ci bFirstInterface = 0x00; 1030b966c5eSopenharmony_ci bInterfaceCount = 0x02; 1040b966c5eSopenharmony_ci bFunctionClass = 0x02; 1050b966c5eSopenharmony_ci bFunctionSubClass = 0x06; 1060b966c5eSopenharmony_ci bFunctionProtocol = 0x00; 1070b966c5eSopenharmony_ci iFunction = 0x04; 1080b966c5eSopenharmony_ci } 1090b966c5eSopenharmony_ci ControlInterface { 1100b966c5eSopenharmony_ci bLength = 0x09; 1110b966c5eSopenharmony_ci bDescriptorType = 0x04; 1120b966c5eSopenharmony_ci bInterfaceNumber = 0x00; 1130b966c5eSopenharmony_ci bAlternateSetting = 0x00; 1140b966c5eSopenharmony_ci bNumEndpoints = 0x01; 1150b966c5eSopenharmony_ci bInterfaceClass = 0x02; 1160b966c5eSopenharmony_ci bInterfaceSubClass = 0x06; 1170b966c5eSopenharmony_ci bInterfaceProtocol = 0x00; 1180b966c5eSopenharmony_ci iInterface = 0x1; 1190b966c5eSopenharmony_ci } 1200b966c5eSopenharmony_ci cdc_header { 1210b966c5eSopenharmony_ci bLength = 0x05; 1220b966c5eSopenharmony_ci bDescriptorType = 0x24; 1230b966c5eSopenharmony_ci desc_data = [0x05, 0x24, 0x00, 0x10, 0x01]; 1240b966c5eSopenharmony_ci } 1250b966c5eSopenharmony_ci cdc_union { 1260b966c5eSopenharmony_ci bLength = 0x05; 1270b966c5eSopenharmony_ci bDescriptorType = 0x24; 1280b966c5eSopenharmony_ci desc_data = [0x05, 0x24, 0x06, 0x00, 0x01]; 1290b966c5eSopenharmony_ci } 1300b966c5eSopenharmony_ci cdc_ether { 1310b966c5eSopenharmony_ci bLength = 0x0D; 1320b966c5eSopenharmony_ci bDescriptorType = 0x24; 1330b966c5eSopenharmony_ci desc_data = [0x0D, 0x24, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00, 1340b966c5eSopenharmony_ci 0xEA, 0x05, 0x00, 0x00, 0x00]; 1350b966c5eSopenharmony_ci } 1360b966c5eSopenharmony_ci DataNopInterface { 1370b966c5eSopenharmony_ci bLength = 0x09; 1380b966c5eSopenharmony_ci bDescriptorType = 0x04; 1390b966c5eSopenharmony_ci bInterfaceNumber = 0x01; 1400b966c5eSopenharmony_ci bAlternateSetting = 0x00; 1410b966c5eSopenharmony_ci bNumEndpoints = 0x00; 1420b966c5eSopenharmony_ci bInterfaceClass = 0x0A; 1430b966c5eSopenharmony_ci bInterfaceSubClass = 0x00; 1440b966c5eSopenharmony_ci bInterfaceProtocol = 0x06; 1450b966c5eSopenharmony_ci iInterface = 0x00; 1460b966c5eSopenharmony_ci } 1470b966c5eSopenharmony_ci DataInterface { 1480b966c5eSopenharmony_ci bLength = 0x09; 1490b966c5eSopenharmony_ci bDescriptorType = 0x04; 1500b966c5eSopenharmony_ci bInterfaceNumber = 0x01; 1510b966c5eSopenharmony_ci bAlternateSetting = 0x01; 1520b966c5eSopenharmony_ci bNumEndpoints = 0x02; 1530b966c5eSopenharmony_ci bInterfaceClass = 0x0A; 1540b966c5eSopenharmony_ci bInterfaceSubClass = 0x00; 1550b966c5eSopenharmony_ci bInterfaceProtocol = 0x06; 1560b966c5eSopenharmony_ci iInterface = 0x03; 1570b966c5eSopenharmony_ci } 1580b966c5eSopenharmony_ci FsNotify_endpoint { 1590b966c5eSopenharmony_ci bLength = 0x07; 1600b966c5eSopenharmony_ci bDescriptorType = 0x05; 1610b966c5eSopenharmony_ci bEndpointAddress = 0x81; 1620b966c5eSopenharmony_ci bmAttributes = 0x03; 1630b966c5eSopenharmony_ci wMaxPacketSize = 16; 1640b966c5eSopenharmony_ci bInterval = 32; 1650b966c5eSopenharmony_ci } 1660b966c5eSopenharmony_ci FsIn_endpoint { 1670b966c5eSopenharmony_ci bLength = 0x07; 1680b966c5eSopenharmony_ci bDescriptorType = 0x05; 1690b966c5eSopenharmony_ci bEndpointAddress = 0x82; 1700b966c5eSopenharmony_ci bmAttributes = 0x02; 1710b966c5eSopenharmony_ci wMaxPacketSize = 0; 1720b966c5eSopenharmony_ci bInterval = 0; 1730b966c5eSopenharmony_ci } 1740b966c5eSopenharmony_ci FsOut_endpoint { 1750b966c5eSopenharmony_ci bLength = 0x07; 1760b966c5eSopenharmony_ci bDescriptorType = 0x05; 1770b966c5eSopenharmony_ci bEndpointAddress = 0x3; 1780b966c5eSopenharmony_ci bmAttributes = 0x02; 1790b966c5eSopenharmony_ci wMaxPacketSize = 0; 1800b966c5eSopenharmony_ci bInterval = 0; 1810b966c5eSopenharmony_ci } 1820b966c5eSopenharmony_ci hsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 1830b966c5eSopenharmony_ci "cdc_union", "cdc_ether", "HsNotify_endpoint", "DataNopInterface", 1840b966c5eSopenharmony_ci "DataInterface", "HsIn_endpoint", "HsOut_endpoint"]; 1850b966c5eSopenharmony_ci HsNotify_endpoint { 1860b966c5eSopenharmony_ci bLength = 0x07; 1870b966c5eSopenharmony_ci bDescriptorType = 0x05; 1880b966c5eSopenharmony_ci bEndpointAddress = 0x81; 1890b966c5eSopenharmony_ci bmAttributes = 0x03; 1900b966c5eSopenharmony_ci wMaxPacketSize = 16; 1910b966c5eSopenharmony_ci bInterval = 9; 1920b966c5eSopenharmony_ci } 1930b966c5eSopenharmony_ci HsIn_endpoint { 1940b966c5eSopenharmony_ci bLength = 0x07; 1950b966c5eSopenharmony_ci bDescriptorType = 0x05; 1960b966c5eSopenharmony_ci bEndpointAddress = 0x82; 1970b966c5eSopenharmony_ci bmAttributes = 0x02; 1980b966c5eSopenharmony_ci wMaxPacketSize = 512; 1990b966c5eSopenharmony_ci bInterval = 0; 2000b966c5eSopenharmony_ci } 2010b966c5eSopenharmony_ci HsOut_endpoint { 2020b966c5eSopenharmony_ci bLength = 0x07; 2030b966c5eSopenharmony_ci bDescriptorType = 0x05; 2040b966c5eSopenharmony_ci bEndpointAddress = 0x3; 2050b966c5eSopenharmony_ci bmAttributes = 0x02; 2060b966c5eSopenharmony_ci wMaxPacketSize = 512; 2070b966c5eSopenharmony_ci bInterval = 0; 2080b966c5eSopenharmony_ci } 2090b966c5eSopenharmony_ci ssDescList = ["assoc_interface", "ControlInterface", "cdc_header", 2100b966c5eSopenharmony_ci "cdc_union", "cdc_ether", "SsNotify_endpoint", "ss_ep_comp_0", 2110b966c5eSopenharmony_ci "DataNopInterface", "DataInterface", "SsIn_endpoint", 2120b966c5eSopenharmony_ci "ss_ep_comp", "SsOut_endpoint", "ss_ep_comp"]; 2130b966c5eSopenharmony_ci SsNotify_endpoint { 2140b966c5eSopenharmony_ci bLength = 0x07; 2150b966c5eSopenharmony_ci bDescriptorType = 0x05; 2160b966c5eSopenharmony_ci bEndpointAddress = 0x81; 2170b966c5eSopenharmony_ci bmAttributes = 0x03; 2180b966c5eSopenharmony_ci wMaxPacketSize = 16; 2190b966c5eSopenharmony_ci bInterval = 9; 2200b966c5eSopenharmony_ci } 2210b966c5eSopenharmony_ci ss_ep_comp_0 { 2220b966c5eSopenharmony_ci bLength = 0x06; 2230b966c5eSopenharmony_ci bDescriptorType = 0x30; 2240b966c5eSopenharmony_ci bMaxBurst = 0x00; 2250b966c5eSopenharmony_ci bmAttributes = 0x00; 2260b966c5eSopenharmony_ci wBytesPerInterval = 16; 2270b966c5eSopenharmony_ci } 2280b966c5eSopenharmony_ci ss_ep_comp { 2290b966c5eSopenharmony_ci bLength = 0x06; 2300b966c5eSopenharmony_ci bDescriptorType = 0x30; 2310b966c5eSopenharmony_ci bMaxBurst = 0x00; 2320b966c5eSopenharmony_ci bmAttributes = 0x00; 2330b966c5eSopenharmony_ci wBytesPerInterval = 0x00; 2340b966c5eSopenharmony_ci } 2350b966c5eSopenharmony_ci SsIn_endpoint { 2360b966c5eSopenharmony_ci bLength = 0x07; 2370b966c5eSopenharmony_ci bDescriptorType = 0x05; 2380b966c5eSopenharmony_ci bEndpointAddress = 0x82; 2390b966c5eSopenharmony_ci bmAttributes = 0x02; 2400b966c5eSopenharmony_ci wMaxPacketSize = 1024; 2410b966c5eSopenharmony_ci bInterval = 0; 2420b966c5eSopenharmony_ci } 2430b966c5eSopenharmony_ci SsOut_endpoint { 2440b966c5eSopenharmony_ci bLength = 0x07; 2450b966c5eSopenharmony_ci bDescriptorType = 0x05; 2460b966c5eSopenharmony_ci bEndpointAddress = 0x3; 2470b966c5eSopenharmony_ci bmAttributes = 0x02; 2480b966c5eSopenharmony_ci wMaxPacketSize = 1024; 2490b966c5eSopenharmony_ci bInterval = 0; 2500b966c5eSopenharmony_ci } 2510b966c5eSopenharmony_ci } 2520b966c5eSopenharmony_ci func_acm { 2530b966c5eSopenharmony_ci funcName = "f_generic.a"; 2540b966c5eSopenharmony_ci stringTabList = ["fnString_1"]; 2550b966c5eSopenharmony_ci fnString_1 { 2560b966c5eSopenharmony_ci language = 0x0409; 2570b966c5eSopenharmony_ci stringList = ["str_1", "str_2", "str_3"]; 2580b966c5eSopenharmony_ci str_1 { 2590b966c5eSopenharmony_ci id = 0; 2600b966c5eSopenharmony_ci str = "CDC Abstract Control Model (ACM)"; 2610b966c5eSopenharmony_ci } 2620b966c5eSopenharmony_ci str_2 { 2630b966c5eSopenharmony_ci id = 1; 2640b966c5eSopenharmony_ci str = "CDC ACM Data"; 2650b966c5eSopenharmony_ci } 2660b966c5eSopenharmony_ci str_3 { 2670b966c5eSopenharmony_ci id = 2; 2680b966c5eSopenharmony_ci str = "CDC Serial"; 2690b966c5eSopenharmony_ci } 2700b966c5eSopenharmony_ci } 2710b966c5eSopenharmony_ci fsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 2720b966c5eSopenharmony_ci "cdc_call_mgmt", "cdc_acm", "cdc_union", "FsNotify_endpoint", 2730b966c5eSopenharmony_ci "DataInterface", "FsIn_endpoint", "FsOut_endpoint"]; 2740b966c5eSopenharmony_ci assoc_interface { 2750b966c5eSopenharmony_ci bLength = 0x08; 2760b966c5eSopenharmony_ci bDescriptorType = 0x0B; 2770b966c5eSopenharmony_ci bFirstInterface = 0x02; 2780b966c5eSopenharmony_ci bInterfaceCount = 0x02; 2790b966c5eSopenharmony_ci bFunctionClass = 0x02; 2800b966c5eSopenharmony_ci bFunctionSubClass = 0x02; 2810b966c5eSopenharmony_ci bFunctionProtocol = 0x01; 2820b966c5eSopenharmony_ci iFunction = 0x03; 2830b966c5eSopenharmony_ci } 2840b966c5eSopenharmony_ci ControlInterface { 2850b966c5eSopenharmony_ci bLength = 0x09; 2860b966c5eSopenharmony_ci bDescriptorType = 0x04; 2870b966c5eSopenharmony_ci bInterfaceNumber = 0x02; 2880b966c5eSopenharmony_ci bAlternateSetting = 0x00; 2890b966c5eSopenharmony_ci bNumEndpoints = 0x01; 2900b966c5eSopenharmony_ci bInterfaceClass = 0x02; 2910b966c5eSopenharmony_ci bInterfaceSubClass = 0x02; 2920b966c5eSopenharmony_ci bInterfaceProtocol = 0x01; 2930b966c5eSopenharmony_ci iInterface = 0x01; 2940b966c5eSopenharmony_ci } 2950b966c5eSopenharmony_ci cdc_header { 2960b966c5eSopenharmony_ci bLength = 0x05; 2970b966c5eSopenharmony_ci bDescriptorType = 0x24; 2980b966c5eSopenharmony_ci desc_data = [0x05, 0x24, 0x00, 0x10, 0x01]; 2990b966c5eSopenharmony_ci } 3000b966c5eSopenharmony_ci cdc_call_mgmt { 3010b966c5eSopenharmony_ci bLength = 0x05; 3020b966c5eSopenharmony_ci bDescriptorType = 0x24; 3030b966c5eSopenharmony_ci desc_data = [0x05, 0x24, 0x01, 0x00, 0x01]; 3040b966c5eSopenharmony_ci } 3050b966c5eSopenharmony_ci cdc_acm { 3060b966c5eSopenharmony_ci bLength = 0x04; 3070b966c5eSopenharmony_ci bDescriptorType = 0x24; 3080b966c5eSopenharmony_ci desc_data = [0x04, 0x24, 0x02, 0x02]; 3090b966c5eSopenharmony_ci } 3100b966c5eSopenharmony_ci cdc_union { 3110b966c5eSopenharmony_ci bLength = 0x05; 3120b966c5eSopenharmony_ci bDescriptorType = 0x24; 3130b966c5eSopenharmony_ci desc_data = [0x05, 0x24, 0x06, 0x02, 0x03]; 3140b966c5eSopenharmony_ci } 3150b966c5eSopenharmony_ci FsNotify_endpoint { 3160b966c5eSopenharmony_ci bLength = 0x07; 3170b966c5eSopenharmony_ci bDescriptorType = 0x05; 3180b966c5eSopenharmony_ci bEndpointAddress = 0x81; 3190b966c5eSopenharmony_ci bmAttributes = 0x03; 3200b966c5eSopenharmony_ci wMaxPacketSize = 10; 3210b966c5eSopenharmony_ci bInterval = 32; 3220b966c5eSopenharmony_ci } 3230b966c5eSopenharmony_ci DataInterface { 3240b966c5eSopenharmony_ci bLength = 0x09; 3250b966c5eSopenharmony_ci bDescriptorType = 0x04; 3260b966c5eSopenharmony_ci bInterfaceNumber = 0x03; 3270b966c5eSopenharmony_ci bAlternateSetting = 0x00; 3280b966c5eSopenharmony_ci bNumEndpoints = 0x02; 3290b966c5eSopenharmony_ci bInterfaceClass = 0x0A; 3300b966c5eSopenharmony_ci bInterfaceSubClass = 0x00; 3310b966c5eSopenharmony_ci bInterfaceProtocol = 0x02; 3320b966c5eSopenharmony_ci iInterface = 0x02; 3330b966c5eSopenharmony_ci } 3340b966c5eSopenharmony_ci FsIn_endpoint { 3350b966c5eSopenharmony_ci bLength = 0x07; 3360b966c5eSopenharmony_ci bDescriptorType = 0x05; 3370b966c5eSopenharmony_ci bEndpointAddress = 0x82; 3380b966c5eSopenharmony_ci bmAttributes = 0x02; 3390b966c5eSopenharmony_ci wMaxPacketSize = 0; 3400b966c5eSopenharmony_ci bInterval = 0; 3410b966c5eSopenharmony_ci } 3420b966c5eSopenharmony_ci FsOut_endpoint { 3430b966c5eSopenharmony_ci bLength = 0x07; 3440b966c5eSopenharmony_ci bDescriptorType = 0x05; 3450b966c5eSopenharmony_ci bEndpointAddress = 0x3; 3460b966c5eSopenharmony_ci bmAttributes = 0x02; 3470b966c5eSopenharmony_ci wMaxPacketSize = 0; 3480b966c5eSopenharmony_ci bInterval = 0; 3490b966c5eSopenharmony_ci } 3500b966c5eSopenharmony_ci hsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 3510b966c5eSopenharmony_ci "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint", 3520b966c5eSopenharmony_ci "DataInterface", "HsIn_endpoint", "HsOut_endpoint"]; 3530b966c5eSopenharmony_ci HsNotify_endpoint { 3540b966c5eSopenharmony_ci bLength = 0x07; 3550b966c5eSopenharmony_ci bDescriptorType = 0x05; 3560b966c5eSopenharmony_ci bEndpointAddress = 0x81; 3570b966c5eSopenharmony_ci bmAttributes = 0x03; 3580b966c5eSopenharmony_ci wMaxPacketSize = 10; 3590b966c5eSopenharmony_ci bInterval = 9; 3600b966c5eSopenharmony_ci } 3610b966c5eSopenharmony_ci HsIn_endpoint { 3620b966c5eSopenharmony_ci bLength = 0x07; 3630b966c5eSopenharmony_ci bDescriptorType = 0x05; 3640b966c5eSopenharmony_ci bEndpointAddress = 0x82; 3650b966c5eSopenharmony_ci bmAttributes = 0x02; 3660b966c5eSopenharmony_ci wMaxPacketSize = 512; 3670b966c5eSopenharmony_ci bInterval = 0; 3680b966c5eSopenharmony_ci } 3690b966c5eSopenharmony_ci HsOut_endpoint { 3700b966c5eSopenharmony_ci bLength = 0x07; 3710b966c5eSopenharmony_ci bDescriptorType = 0x05; 3720b966c5eSopenharmony_ci bEndpointAddress = 0x3; 3730b966c5eSopenharmony_ci bmAttributes = 0x02; 3740b966c5eSopenharmony_ci wMaxPacketSize = 512; 3750b966c5eSopenharmony_ci bInterval = 0; 3760b966c5eSopenharmony_ci } 3770b966c5eSopenharmony_ci ssDescList = ["assoc_interface", "ControlInterface", "cdc_header", 3780b966c5eSopenharmony_ci "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint", 3790b966c5eSopenharmony_ci "ss_ep_comp", "DataInterface", "SsIn_endpoint", 3800b966c5eSopenharmony_ci "ss_ep_comp","SsOut_endpoint","ss_ep_comp"]; 3810b966c5eSopenharmony_ci ss_ep_comp { 3820b966c5eSopenharmony_ci bLength = 0x06; 3830b966c5eSopenharmony_ci bDescriptorType = 0x30; 3840b966c5eSopenharmony_ci bMaxBurst = 0x00; 3850b966c5eSopenharmony_ci bmAttributes = 0x00; 3860b966c5eSopenharmony_ci wBytesPerInterval = 0x00; 3870b966c5eSopenharmony_ci } 3880b966c5eSopenharmony_ci SsIn_endpoint { 3890b966c5eSopenharmony_ci bLength = 0x07; 3900b966c5eSopenharmony_ci bDescriptorType = 0x05; 3910b966c5eSopenharmony_ci bEndpointAddress = 0x82; 3920b966c5eSopenharmony_ci bmAttributes = 0x02; 3930b966c5eSopenharmony_ci wMaxPacketSize = 1024; 3940b966c5eSopenharmony_ci bInterval = 0; 3950b966c5eSopenharmony_ci } 3960b966c5eSopenharmony_ci SsOut_endpoint { 3970b966c5eSopenharmony_ci bLength = 0x07; 3980b966c5eSopenharmony_ci bDescriptorType = 0x05; 3990b966c5eSopenharmony_ci bEndpointAddress = 0x3; 4000b966c5eSopenharmony_ci bmAttributes = 0x02; 4010b966c5eSopenharmony_ci wMaxPacketSize = 1024; 4020b966c5eSopenharmony_ci bInterval = 0; 4030b966c5eSopenharmony_ci } 4040b966c5eSopenharmony_ci } 4050b966c5eSopenharmony_ci func_mtp { 4060b966c5eSopenharmony_ci funcName = "f_generic.mtp"; 4070b966c5eSopenharmony_ci stringTabList = ["fnString_1"]; 4080b966c5eSopenharmony_ci fnString_1 { 4090b966c5eSopenharmony_ci language = 0x0409; 4100b966c5eSopenharmony_ci stringList = ["str_1", "str_2", "str_3"]; 4110b966c5eSopenharmony_ci str_1 { 4120b966c5eSopenharmony_ci id = 0; 4130b966c5eSopenharmony_ci str = "Media Transfer Protocol(MTP)"; 4140b966c5eSopenharmony_ci } 4150b966c5eSopenharmony_ci str_2 { 4160b966c5eSopenharmony_ci id = 1; 4170b966c5eSopenharmony_ci str = "USB MTP Device"; 4180b966c5eSopenharmony_ci } 4190b966c5eSopenharmony_ci str_3 { 4200b966c5eSopenharmony_ci id = 2; 4210b966c5eSopenharmony_ci str = "MTP"; 4220b966c5eSopenharmony_ci } 4230b966c5eSopenharmony_ci } 4240b966c5eSopenharmony_ci fsDescList = ["DataInterface", 4250b966c5eSopenharmony_ci "FsNotify_endpoint", 4260b966c5eSopenharmony_ci "FsIn_endpoint", 4270b966c5eSopenharmony_ci "FsOut_endpoint"]; 4280b966c5eSopenharmony_ci DataInterface { 4290b966c5eSopenharmony_ci bLength = 0x09; 4300b966c5eSopenharmony_ci bDescriptorType = 0x04; 4310b966c5eSopenharmony_ci bInterfaceNumber = 0x00; 4320b966c5eSopenharmony_ci bAlternateSetting = 0x00; 4330b966c5eSopenharmony_ci bNumEndpoints = 0x03; 4340b966c5eSopenharmony_ci bInterfaceClass = 0xFF; 4350b966c5eSopenharmony_ci bInterfaceSubClass = 0xFF; 4360b966c5eSopenharmony_ci bInterfaceProtocol = 0x00; 4370b966c5eSopenharmony_ci iInterface = 0x03; 4380b966c5eSopenharmony_ci } 4390b966c5eSopenharmony_ci FsNotify_endpoint { 4400b966c5eSopenharmony_ci bLength = 0x07; 4410b966c5eSopenharmony_ci bDescriptorType = 0x05; 4420b966c5eSopenharmony_ci bEndpointAddress = 0x81; 4430b966c5eSopenharmony_ci bmAttributes = 0x03; 4440b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 4450b966c5eSopenharmony_ci bInterval = 6; 4460b966c5eSopenharmony_ci } 4470b966c5eSopenharmony_ci FsIn_endpoint { 4480b966c5eSopenharmony_ci bLength = 0x07; 4490b966c5eSopenharmony_ci bDescriptorType = 0x05; 4500b966c5eSopenharmony_ci bEndpointAddress = 0x82; 4510b966c5eSopenharmony_ci bmAttributes = 0x02; 4520b966c5eSopenharmony_ci wMaxPacketSize = 0; 4530b966c5eSopenharmony_ci bInterval = 0; 4540b966c5eSopenharmony_ci } 4550b966c5eSopenharmony_ci FsOut_endpoint { 4560b966c5eSopenharmony_ci bLength = 0x07; 4570b966c5eSopenharmony_ci bDescriptorType = 0x05; 4580b966c5eSopenharmony_ci bEndpointAddress = 0x03; 4590b966c5eSopenharmony_ci bmAttributes = 0x02; 4600b966c5eSopenharmony_ci wMaxPacketSize = 0; 4610b966c5eSopenharmony_ci bInterval = 0; 4620b966c5eSopenharmony_ci } 4630b966c5eSopenharmony_ci hsDescList = ["DataInterface", 4640b966c5eSopenharmony_ci "HsNotify_endpoint", 4650b966c5eSopenharmony_ci "HsIn_endpoint", 4660b966c5eSopenharmony_ci "HsOut_endpoint"]; 4670b966c5eSopenharmony_ci HsNotify_endpoint { 4680b966c5eSopenharmony_ci bLength = 0x07; 4690b966c5eSopenharmony_ci bDescriptorType = 0x05; 4700b966c5eSopenharmony_ci bEndpointAddress = 0x81; 4710b966c5eSopenharmony_ci bmAttributes = 0x03; 4720b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 4730b966c5eSopenharmony_ci bInterval = 6; 4740b966c5eSopenharmony_ci } 4750b966c5eSopenharmony_ci HsIn_endpoint { 4760b966c5eSopenharmony_ci bLength = 0x07; 4770b966c5eSopenharmony_ci bDescriptorType = 0x05; 4780b966c5eSopenharmony_ci bEndpointAddress = 0x82; 4790b966c5eSopenharmony_ci bmAttributes = 0x02; 4800b966c5eSopenharmony_ci wMaxPacketSize = 512; 4810b966c5eSopenharmony_ci bInterval = 0; 4820b966c5eSopenharmony_ci } 4830b966c5eSopenharmony_ci HsOut_endpoint { 4840b966c5eSopenharmony_ci bLength = 0x07; 4850b966c5eSopenharmony_ci bDescriptorType = 0x05; 4860b966c5eSopenharmony_ci bEndpointAddress = 0x03; 4870b966c5eSopenharmony_ci bmAttributes = 0x02; 4880b966c5eSopenharmony_ci wMaxPacketSize = 512; 4890b966c5eSopenharmony_ci bInterval = 0; 4900b966c5eSopenharmony_ci } 4910b966c5eSopenharmony_ci ssDescList = ["DataInterface", 4920b966c5eSopenharmony_ci "SsNotify_endpoint", "ss_ep_comp_notify", 4930b966c5eSopenharmony_ci "SsIn_endpoint", "ss_ep_comp", 4940b966c5eSopenharmony_ci "SsOut_endpoint", "ss_ep_comp"]; 4950b966c5eSopenharmony_ci SsNotify_endpoint { 4960b966c5eSopenharmony_ci bLength = 0x07; 4970b966c5eSopenharmony_ci bDescriptorType = 0x05; 4980b966c5eSopenharmony_ci bEndpointAddress = 0x81; 4990b966c5eSopenharmony_ci bmAttributes = 0x03; 5000b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 5010b966c5eSopenharmony_ci bInterval = 0; 5020b966c5eSopenharmony_ci } 5030b966c5eSopenharmony_ci ss_ep_comp_notify { 5040b966c5eSopenharmony_ci bLength = 0x06; 5050b966c5eSopenharmony_ci bDescriptorType = 0x30; 5060b966c5eSopenharmony_ci bMaxBurst = 0x00; 5070b966c5eSopenharmony_ci bmAttributes = 0x00; 5080b966c5eSopenharmony_ci wBytesPerInterval = 0; 5090b966c5eSopenharmony_ci } 5100b966c5eSopenharmony_ci ss_ep_comp { 5110b966c5eSopenharmony_ci bLength = 0x06; 5120b966c5eSopenharmony_ci bDescriptorType = 0x30; 5130b966c5eSopenharmony_ci bMaxBurst = 0x00; 5140b966c5eSopenharmony_ci bmAttributes = 0x00; 5150b966c5eSopenharmony_ci wBytesPerInterval = 0x00; 5160b966c5eSopenharmony_ci } 5170b966c5eSopenharmony_ci SsIn_endpoint { 5180b966c5eSopenharmony_ci bLength = 0x07; 5190b966c5eSopenharmony_ci bDescriptorType = 0x05; 5200b966c5eSopenharmony_ci bEndpointAddress = 0x82; 5210b966c5eSopenharmony_ci bmAttributes = 0x02; 5220b966c5eSopenharmony_ci wMaxPacketSize = 1024; 5230b966c5eSopenharmony_ci bInterval = 0; 5240b966c5eSopenharmony_ci } 5250b966c5eSopenharmony_ci SsOut_endpoint { 5260b966c5eSopenharmony_ci bLength = 0x07; 5270b966c5eSopenharmony_ci bDescriptorType = 0x05; 5280b966c5eSopenharmony_ci bEndpointAddress = 0x3; 5290b966c5eSopenharmony_ci bmAttributes = 0x02; 5300b966c5eSopenharmony_ci wMaxPacketSize = 1024; 5310b966c5eSopenharmony_ci bInterval = 0; 5320b966c5eSopenharmony_ci } 5330b966c5eSopenharmony_ci } 5340b966c5eSopenharmony_ci func_ptp { 5350b966c5eSopenharmony_ci funcName = "f_generic.ptp"; 5360b966c5eSopenharmony_ci stringTabList = ["fnString_1"]; 5370b966c5eSopenharmony_ci fnString_1 { 5380b966c5eSopenharmony_ci language = 0x0409; 5390b966c5eSopenharmony_ci stringList = ["str_1", "str_2", "str_3", "str_4"]; 5400b966c5eSopenharmony_ci str_1 { 5410b966c5eSopenharmony_ci id = 0; 5420b966c5eSopenharmony_ci str = "Picture Transfer Protocol(PTP)"; 5430b966c5eSopenharmony_ci } 5440b966c5eSopenharmony_ci str_2 { 5450b966c5eSopenharmony_ci id = 1; 5460b966c5eSopenharmony_ci str = "USB PTP Device"; 5470b966c5eSopenharmony_ci } 5480b966c5eSopenharmony_ci str_3 { 5490b966c5eSopenharmony_ci id = 2; 5500b966c5eSopenharmony_ci str = "PTP"; 5510b966c5eSopenharmony_ci } 5520b966c5eSopenharmony_ci str_4 { 5530b966c5eSopenharmony_ci id = 2; 5540b966c5eSopenharmony_ci str = ""; 5550b966c5eSopenharmony_ci } 5560b966c5eSopenharmony_ci } 5570b966c5eSopenharmony_ci fsDescList = ["DataInterface", 5580b966c5eSopenharmony_ci "FsNotify_endpoint", 5590b966c5eSopenharmony_ci "FsIn_endpoint", 5600b966c5eSopenharmony_ci "FsOut_endpoint"]; 5610b966c5eSopenharmony_ci DataInterface { 5620b966c5eSopenharmony_ci bLength = 0x09; 5630b966c5eSopenharmony_ci bDescriptorType = 0x04; 5640b966c5eSopenharmony_ci bInterfaceNumber = 0x00; 5650b966c5eSopenharmony_ci bAlternateSetting = 0x00; 5660b966c5eSopenharmony_ci bNumEndpoints = 0x03; 5670b966c5eSopenharmony_ci bInterfaceClass = 0x06; 5680b966c5eSopenharmony_ci bInterfaceSubClass = 0x01; 5690b966c5eSopenharmony_ci bInterfaceProtocol = 0x01; 5700b966c5eSopenharmony_ci iInterface = 0x04; 5710b966c5eSopenharmony_ci } 5720b966c5eSopenharmony_ci FsNotify_endpoint { 5730b966c5eSopenharmony_ci bLength = 0x07; 5740b966c5eSopenharmony_ci bDescriptorType = 0x05; 5750b966c5eSopenharmony_ci bEndpointAddress = 0x81; 5760b966c5eSopenharmony_ci bmAttributes = 0x03; 5770b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 5780b966c5eSopenharmony_ci bInterval = 6; 5790b966c5eSopenharmony_ci } 5800b966c5eSopenharmony_ci FsIn_endpoint { 5810b966c5eSopenharmony_ci bLength = 0x07; 5820b966c5eSopenharmony_ci bDescriptorType = 0x05; 5830b966c5eSopenharmony_ci bEndpointAddress = 0x82; 5840b966c5eSopenharmony_ci bmAttributes = 0x02; 5850b966c5eSopenharmony_ci wMaxPacketSize = 0; 5860b966c5eSopenharmony_ci bInterval = 0; 5870b966c5eSopenharmony_ci } 5880b966c5eSopenharmony_ci FsOut_endpoint { 5890b966c5eSopenharmony_ci bLength = 0x07; 5900b966c5eSopenharmony_ci bDescriptorType = 0x05; 5910b966c5eSopenharmony_ci bEndpointAddress = 0x03; 5920b966c5eSopenharmony_ci bmAttributes = 0x02; 5930b966c5eSopenharmony_ci wMaxPacketSize = 0; 5940b966c5eSopenharmony_ci bInterval = 0; 5950b966c5eSopenharmony_ci } 5960b966c5eSopenharmony_ci hsDescList = ["DataInterface", 5970b966c5eSopenharmony_ci "HsNotify_endpoint", 5980b966c5eSopenharmony_ci "HsIn_endpoint", 5990b966c5eSopenharmony_ci "HsOut_endpoint"]; 6000b966c5eSopenharmony_ci HsNotify_endpoint { 6010b966c5eSopenharmony_ci bLength = 0x07; 6020b966c5eSopenharmony_ci bDescriptorType = 0x05; 6030b966c5eSopenharmony_ci bEndpointAddress = 0x81; 6040b966c5eSopenharmony_ci bmAttributes = 0x03; 6050b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 6060b966c5eSopenharmony_ci bInterval = 6; 6070b966c5eSopenharmony_ci } 6080b966c5eSopenharmony_ci HsIn_endpoint { 6090b966c5eSopenharmony_ci bLength = 0x07; 6100b966c5eSopenharmony_ci bDescriptorType = 0x05; 6110b966c5eSopenharmony_ci bEndpointAddress = 0x82; 6120b966c5eSopenharmony_ci bmAttributes = 0x02; 6130b966c5eSopenharmony_ci wMaxPacketSize = 512; 6140b966c5eSopenharmony_ci bInterval = 0; 6150b966c5eSopenharmony_ci } 6160b966c5eSopenharmony_ci HsOut_endpoint { 6170b966c5eSopenharmony_ci bLength = 0x07; 6180b966c5eSopenharmony_ci bDescriptorType = 0x05; 6190b966c5eSopenharmony_ci bEndpointAddress = 0x03; 6200b966c5eSopenharmony_ci bmAttributes = 0x02; 6210b966c5eSopenharmony_ci wMaxPacketSize = 512; 6220b966c5eSopenharmony_ci bInterval = 0; 6230b966c5eSopenharmony_ci } 6240b966c5eSopenharmony_ci ssDescList = ["DataInterface", 6250b966c5eSopenharmony_ci "SsNotify_endpoint", "ss_ep_comp_notify", 6260b966c5eSopenharmony_ci "SsIn_endpoint", "ss_ep_comp", 6270b966c5eSopenharmony_ci "SsOut_endpoint", "ss_ep_comp"]; 6280b966c5eSopenharmony_ci SsNotify_endpoint { 6290b966c5eSopenharmony_ci bLength = 0x07; 6300b966c5eSopenharmony_ci bDescriptorType = 0x05; 6310b966c5eSopenharmony_ci bEndpointAddress = 0x81; 6320b966c5eSopenharmony_ci bmAttributes = 0x03; 6330b966c5eSopenharmony_ci wMaxPacketSize = 0x1C; 6340b966c5eSopenharmony_ci bInterval = 0; 6350b966c5eSopenharmony_ci } 6360b966c5eSopenharmony_ci ss_ep_comp_notify { 6370b966c5eSopenharmony_ci bLength = 0x06; 6380b966c5eSopenharmony_ci bDescriptorType = 0x30; 6390b966c5eSopenharmony_ci bMaxBurst = 0x00; 6400b966c5eSopenharmony_ci bmAttributes = 0x00; 6410b966c5eSopenharmony_ci wBytesPerInterval = 0; 6420b966c5eSopenharmony_ci } 6430b966c5eSopenharmony_ci ss_ep_comp { 6440b966c5eSopenharmony_ci bLength = 0x06; 6450b966c5eSopenharmony_ci bDescriptorType = 0x30; 6460b966c5eSopenharmony_ci bMaxBurst = 0x00; 6470b966c5eSopenharmony_ci bmAttributes = 0x00; 6480b966c5eSopenharmony_ci wBytesPerInterval = 0x00; 6490b966c5eSopenharmony_ci } 6500b966c5eSopenharmony_ci SsIn_endpoint { 6510b966c5eSopenharmony_ci bLength = 0x07; 6520b966c5eSopenharmony_ci bDescriptorType = 0x05; 6530b966c5eSopenharmony_ci bEndpointAddress = 0x82; 6540b966c5eSopenharmony_ci bmAttributes = 0x02; 6550b966c5eSopenharmony_ci wMaxPacketSize = 1024; 6560b966c5eSopenharmony_ci bInterval = 0; 6570b966c5eSopenharmony_ci } 6580b966c5eSopenharmony_ci SsOut_endpoint { 6590b966c5eSopenharmony_ci bLength = 0x07; 6600b966c5eSopenharmony_ci bDescriptorType = 0x05; 6610b966c5eSopenharmony_ci bEndpointAddress = 0x3; 6620b966c5eSopenharmony_ci bmAttributes = 0x02; 6630b966c5eSopenharmony_ci wMaxPacketSize = 1024; 6640b966c5eSopenharmony_ci bInterval = 0; 6650b966c5eSopenharmony_ci } 6660b966c5eSopenharmony_ci } 6670b966c5eSopenharmony_ci } 6680b966c5eSopenharmony_ci } 6690b966c5eSopenharmony_ci custom_prop { 6700b966c5eSopenharmony_ci propTable = ["propList_1", "propList_2"]; 6710b966c5eSopenharmony_ci propList_1 { 6720b966c5eSopenharmony_ci configNum = 1; 6730b966c5eSopenharmony_ci interfaceNum = 2; 6740b966c5eSopenharmony_ci propList = ["prop_1", "prop_2"]; 6750b966c5eSopenharmony_ci prop_1 { 6760b966c5eSopenharmony_ci name = "testx"; 6770b966c5eSopenharmony_ci value = "xxxxxx"; 6780b966c5eSopenharmony_ci } 6790b966c5eSopenharmony_ci prop_2 { 6800b966c5eSopenharmony_ci name = "testy"; 6810b966c5eSopenharmony_ci value = "yyyyyy"; 6820b966c5eSopenharmony_ci } 6830b966c5eSopenharmony_ci } 6840b966c5eSopenharmony_ci propList_2 { 6850b966c5eSopenharmony_ci configNum = 1; 6860b966c5eSopenharmony_ci interfaceNum = 3; 6870b966c5eSopenharmony_ci propList = ["prop_1", "prop_2"]; 6880b966c5eSopenharmony_ci prop_1 { 6890b966c5eSopenharmony_ci name = "testm"; 6900b966c5eSopenharmony_ci value = "mmmmm"; 6910b966c5eSopenharmony_ci } 6920b966c5eSopenharmony_ci prop_2 { 6930b966c5eSopenharmony_ci name = "testn"; 6940b966c5eSopenharmony_ci value = "nnnnn"; 6950b966c5eSopenharmony_ci } 6960b966c5eSopenharmony_ci } 6970b966c5eSopenharmony_ci } 6980b966c5eSopenharmony_ci } 6990b966c5eSopenharmony_ci} 700