10a7ce71fSopenharmony_ciroot {
20a7ce71fSopenharmony_ci    module = "usbfn";
30a7ce71fSopenharmony_ci    acm_device_config {
40a7ce71fSopenharmony_ci        match_attr = "usbfn_cdcacm_driver";
50a7ce71fSopenharmony_ci        udc_name = "100e0000.hidwc3_0";
60a7ce71fSopenharmony_ci    }
70a7ce71fSopenharmony_ci    ecm_device_config {
80a7ce71fSopenharmony_ci        match_attr = "usbfn_cdcecm_driver";
90a7ce71fSopenharmony_ci        udc_name = "100e0000.hidwc3_0";
100a7ce71fSopenharmony_ci    }
110a7ce71fSopenharmony_ci    mtp_device_config {
120a7ce71fSopenharmony_ci        match_attr = "usbfn_mtp_interface_driver";
130a7ce71fSopenharmony_ci        udc_name = "100e0000.hidwc3_0";
140a7ce71fSopenharmony_ci    }
150a7ce71fSopenharmony_ci    usb_device_config {
160a7ce71fSopenharmony_ci        match_attr = "usb_device_interface_driver";
170a7ce71fSopenharmony_ci        port_file_path = "/sys/kernel/debug/usb/100e0000.hidwc3_0/mode";
180a7ce71fSopenharmony_ci    }
190a7ce71fSopenharmony_ci    usbfn_config {
200a7ce71fSopenharmony_ci        match_attr = "usbfn_driver";
210a7ce71fSopenharmony_ci        use_hcs = 1;
220a7ce71fSopenharmony_ci        udc_name = "100e0000.hidwc3_0";
230a7ce71fSopenharmony_ci        usb_dev_desc = "UsbDeviceDescriptor";
240a7ce71fSopenharmony_ci        usb_dev_string = "UsbDeviceStrings";
250a7ce71fSopenharmony_ci        usb_configuration = "UsbConfigs";
260a7ce71fSopenharmony_ci        UsbDeviceDescriptor {
270a7ce71fSopenharmony_ci            bLength = 18;
280a7ce71fSopenharmony_ci            bDescriptorType = 0x01;
290a7ce71fSopenharmony_ci            bcdUSB = 0x0200;
300a7ce71fSopenharmony_ci            bDeviceClass = 0;
310a7ce71fSopenharmony_ci            bDeviceSubClass = 0;
320a7ce71fSopenharmony_ci            bDeviceProtocol = 0;
330a7ce71fSopenharmony_ci            bMaxPacketSize0 = 0x40;
340a7ce71fSopenharmony_ci            idVendor = 0x12D1;
350a7ce71fSopenharmony_ci            idProduct = 0x5000;
360a7ce71fSopenharmony_ci            bcdDevice = 0x0223;
370a7ce71fSopenharmony_ci            manufacturer = 0;
380a7ce71fSopenharmony_ci            product = 1;
390a7ce71fSopenharmony_ci            serialnumber = 2;
400a7ce71fSopenharmony_ci            numConfigurations = 1; 
410a7ce71fSopenharmony_ci        }
420a7ce71fSopenharmony_ci        UsbDeviceStrings {
430a7ce71fSopenharmony_ci            stringTabList = ["string_1"];
440a7ce71fSopenharmony_ci            string_1 {
450a7ce71fSopenharmony_ci                language = 0x0409;
460a7ce71fSopenharmony_ci                stringList = ["str_1", "str_2","str_3", "str_4"];
470a7ce71fSopenharmony_ci                str_1 {
480a7ce71fSopenharmony_ci                    id = 0;
490a7ce71fSopenharmony_ci                    str =  "HISILICON";
500a7ce71fSopenharmony_ci                }
510a7ce71fSopenharmony_ci                str_2 {
520a7ce71fSopenharmony_ci                    id = 1;
530a7ce71fSopenharmony_ci                    str = "HDC Device";
540a7ce71fSopenharmony_ci                }
550a7ce71fSopenharmony_ci                str_3 {
560a7ce71fSopenharmony_ci                    id = 2;
570a7ce71fSopenharmony_ci                    str =  "0123456789POPLAR";
580a7ce71fSopenharmony_ci                }
590a7ce71fSopenharmony_ci                str_4 {
600a7ce71fSopenharmony_ci                    id = 3;
610a7ce71fSopenharmony_ci                    str = "hdc";
620a7ce71fSopenharmony_ci                }
630a7ce71fSopenharmony_ci            }
640a7ce71fSopenharmony_ci        }
650a7ce71fSopenharmony_ci        UsbConfigs {
660a7ce71fSopenharmony_ci            configList = ["config_1"];
670a7ce71fSopenharmony_ci            config_1  {
680a7ce71fSopenharmony_ci                configurationValue = 1;
690a7ce71fSopenharmony_ci                iConfiguration = 3;
700a7ce71fSopenharmony_ci                attributes = 0xC0;
710a7ce71fSopenharmony_ci                maxPower = 500;
720a7ce71fSopenharmony_ci                functionList = ["func_ecm", "func_acm"];
730a7ce71fSopenharmony_ci                func_ecm {
740a7ce71fSopenharmony_ci                    funcName = "f_generic.e";
750a7ce71fSopenharmony_ci                    stringTabList = ["fnString_1"];
760a7ce71fSopenharmony_ci                    fnString_1 {
770a7ce71fSopenharmony_ci                        language  = 0x0409;
780a7ce71fSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3", "str_4"];
790a7ce71fSopenharmony_ci                        str_1 {
800a7ce71fSopenharmony_ci                            id = 0;
810a7ce71fSopenharmony_ci                            str = "CDC Ethernet Control Model (ECM)";
820a7ce71fSopenharmony_ci                        }
830a7ce71fSopenharmony_ci                        str_2 {
840a7ce71fSopenharmony_ci                            id = 1;
850a7ce71fSopenharmony_ci                            str = "0ac75ae91c79";
860a7ce71fSopenharmony_ci                        }
870a7ce71fSopenharmony_ci                        str_3 {
880a7ce71fSopenharmony_ci                            id = 2;
890a7ce71fSopenharmony_ci                            str = "CDC Ethernet Data";
900a7ce71fSopenharmony_ci                        }
910a7ce71fSopenharmony_ci                        str_4 {
920a7ce71fSopenharmony_ci                            id = 3;
930a7ce71fSopenharmony_ci                            str = "CDC ECM";
940a7ce71fSopenharmony_ci                        }
950a7ce71fSopenharmony_ci                    }
960a7ce71fSopenharmony_ci                    fsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
970a7ce71fSopenharmony_ci                        "cdc_union", "cdc_ether", "FsNotify_endpoint", "DataNopInterface", 
980a7ce71fSopenharmony_ci                        "DataInterface", "FsIn_endpoint", "FsOut_endpoint"];
990a7ce71fSopenharmony_ci                    assoc_interface {
1000a7ce71fSopenharmony_ci                        bLength = 0x08;
1010a7ce71fSopenharmony_ci                        bDescriptorType = 0x0B;
1020a7ce71fSopenharmony_ci                        bFirstInterface = 0x00;
1030a7ce71fSopenharmony_ci                        bInterfaceCount = 0x02;
1040a7ce71fSopenharmony_ci                        bFunctionClass = 0x02;
1050a7ce71fSopenharmony_ci                        bFunctionSubClass = 0x06;
1060a7ce71fSopenharmony_ci                        bFunctionProtocol = 0x00;
1070a7ce71fSopenharmony_ci                        iFunction = 0x04;
1080a7ce71fSopenharmony_ci                    }
1090a7ce71fSopenharmony_ci                    ControlInterface {
1100a7ce71fSopenharmony_ci                        bLength = 0x09;
1110a7ce71fSopenharmony_ci                        bDescriptorType = 0x04;
1120a7ce71fSopenharmony_ci                        bInterfaceNumber = 0x00;
1130a7ce71fSopenharmony_ci                        bAlternateSetting = 0x00;
1140a7ce71fSopenharmony_ci                        bNumEndpoints = 0x01;
1150a7ce71fSopenharmony_ci                        bInterfaceClass = 0x02;
1160a7ce71fSopenharmony_ci                        bInterfaceSubClass = 0x06;
1170a7ce71fSopenharmony_ci                        bInterfaceProtocol = 0x00;
1180a7ce71fSopenharmony_ci                        iInterface = 0x1;
1190a7ce71fSopenharmony_ci                    }
1200a7ce71fSopenharmony_ci                    cdc_header {
1210a7ce71fSopenharmony_ci                        bLength = 0x05;
1220a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
1230a7ce71fSopenharmony_ci                        desc_data = [0x05, 0x24, 0x00, 0x10, 0x01];
1240a7ce71fSopenharmony_ci                    }
1250a7ce71fSopenharmony_ci                    cdc_union {
1260a7ce71fSopenharmony_ci                        bLength = 0x05;
1270a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
1280a7ce71fSopenharmony_ci                        desc_data = [0x05, 0x24, 0x06, 0x00, 0x01];
1290a7ce71fSopenharmony_ci                    }
1300a7ce71fSopenharmony_ci                    cdc_ether {
1310a7ce71fSopenharmony_ci                        bLength = 0x0D;
1320a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
1330a7ce71fSopenharmony_ci                        desc_data = [0x0D, 0x24, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00,
1340a7ce71fSopenharmony_ci                                     0xEA, 0x05, 0x00, 0x00, 0x00];
1350a7ce71fSopenharmony_ci                    }
1360a7ce71fSopenharmony_ci                    DataNopInterface {
1370a7ce71fSopenharmony_ci                        bLength = 0x09;
1380a7ce71fSopenharmony_ci                        bDescriptorType = 0x04;
1390a7ce71fSopenharmony_ci                        bInterfaceNumber = 0x01;
1400a7ce71fSopenharmony_ci                        bAlternateSetting = 0x00;
1410a7ce71fSopenharmony_ci                        bNumEndpoints = 0x00;
1420a7ce71fSopenharmony_ci                        bInterfaceClass = 0x0A;
1430a7ce71fSopenharmony_ci                        bInterfaceSubClass = 0x00;
1440a7ce71fSopenharmony_ci                        bInterfaceProtocol = 0x06;
1450a7ce71fSopenharmony_ci                        iInterface = 0x00;
1460a7ce71fSopenharmony_ci                    }
1470a7ce71fSopenharmony_ci                    DataInterface {
1480a7ce71fSopenharmony_ci                        bLength = 0x09;
1490a7ce71fSopenharmony_ci                        bDescriptorType = 0x04;
1500a7ce71fSopenharmony_ci                        bInterfaceNumber = 0x01;
1510a7ce71fSopenharmony_ci                        bAlternateSetting = 0x01;
1520a7ce71fSopenharmony_ci                        bNumEndpoints = 0x02;
1530a7ce71fSopenharmony_ci                        bInterfaceClass = 0x0A;
1540a7ce71fSopenharmony_ci                        bInterfaceSubClass = 0x00;
1550a7ce71fSopenharmony_ci                        bInterfaceProtocol = 0x06;
1560a7ce71fSopenharmony_ci                        iInterface = 0x03;
1570a7ce71fSopenharmony_ci                    }
1580a7ce71fSopenharmony_ci                    FsNotify_endpoint {
1590a7ce71fSopenharmony_ci                        bLength = 0x07;
1600a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
1610a7ce71fSopenharmony_ci                        bEndpointAddress = 0x81;
1620a7ce71fSopenharmony_ci                        bmAttributes = 0x03;
1630a7ce71fSopenharmony_ci                        wMaxPacketSize = 16;
1640a7ce71fSopenharmony_ci                        bInterval = 32;
1650a7ce71fSopenharmony_ci                    } 
1660a7ce71fSopenharmony_ci                    FsIn_endpoint {
1670a7ce71fSopenharmony_ci                        bLength = 0x07;
1680a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
1690a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
1700a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
1710a7ce71fSopenharmony_ci                        wMaxPacketSize = 0;
1720a7ce71fSopenharmony_ci                        bInterval = 0;
1730a7ce71fSopenharmony_ci                    } 
1740a7ce71fSopenharmony_ci                    FsOut_endpoint {
1750a7ce71fSopenharmony_ci                        bLength = 0x07;
1760a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
1770a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
1780a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
1790a7ce71fSopenharmony_ci                        wMaxPacketSize = 0;
1800a7ce71fSopenharmony_ci                        bInterval = 0;
1810a7ce71fSopenharmony_ci                    }
1820a7ce71fSopenharmony_ci                    hsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
1830a7ce71fSopenharmony_ci                        "cdc_union", "cdc_ether", "HsNotify_endpoint", "DataNopInterface", 
1840a7ce71fSopenharmony_ci                        "DataInterface", "HsIn_endpoint", "HsOut_endpoint"];
1850a7ce71fSopenharmony_ci                    HsNotify_endpoint {
1860a7ce71fSopenharmony_ci                        bLength = 0x07;
1870a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
1880a7ce71fSopenharmony_ci                        bEndpointAddress = 0x81;
1890a7ce71fSopenharmony_ci                        bmAttributes = 0x03;
1900a7ce71fSopenharmony_ci                        wMaxPacketSize = 16;
1910a7ce71fSopenharmony_ci                        bInterval = 9;
1920a7ce71fSopenharmony_ci                    } 
1930a7ce71fSopenharmony_ci                    HsIn_endpoint {
1940a7ce71fSopenharmony_ci                        bLength = 0x07;
1950a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
1960a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
1970a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
1980a7ce71fSopenharmony_ci                        wMaxPacketSize = 512;
1990a7ce71fSopenharmony_ci                        bInterval = 0;
2000a7ce71fSopenharmony_ci                    } 
2010a7ce71fSopenharmony_ci                    HsOut_endpoint {
2020a7ce71fSopenharmony_ci                        bLength = 0x07;
2030a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
2040a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
2050a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
2060a7ce71fSopenharmony_ci                        wMaxPacketSize = 512;
2070a7ce71fSopenharmony_ci                        bInterval = 0;
2080a7ce71fSopenharmony_ci                    }
2090a7ce71fSopenharmony_ci                    ssDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
2100a7ce71fSopenharmony_ci                        "cdc_union", "cdc_ether", "SsNotify_endpoint", "ss_ep_comp_0",
2110a7ce71fSopenharmony_ci                        "DataNopInterface", "DataInterface", "SsIn_endpoint",
2120a7ce71fSopenharmony_ci                        "ss_ep_comp", "SsOut_endpoint", "ss_ep_comp"];
2130a7ce71fSopenharmony_ci                    SsNotify_endpoint {
2140a7ce71fSopenharmony_ci                        bLength = 0x07;
2150a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
2160a7ce71fSopenharmony_ci                        bEndpointAddress = 0x81;
2170a7ce71fSopenharmony_ci                        bmAttributes = 0x03;
2180a7ce71fSopenharmony_ci                        wMaxPacketSize = 16;
2190a7ce71fSopenharmony_ci                        bInterval = 9;
2200a7ce71fSopenharmony_ci                    } 
2210a7ce71fSopenharmony_ci                    ss_ep_comp_0 {
2220a7ce71fSopenharmony_ci                        bLength = 0x06;
2230a7ce71fSopenharmony_ci                        bDescriptorType = 0x30;
2240a7ce71fSopenharmony_ci                        bMaxBurst = 0x00;
2250a7ce71fSopenharmony_ci                        bmAttributes = 0x00;
2260a7ce71fSopenharmony_ci                        wBytesPerInterval = 16;
2270a7ce71fSopenharmony_ci                    }
2280a7ce71fSopenharmony_ci                    ss_ep_comp {
2290a7ce71fSopenharmony_ci                        bLength = 0x06;
2300a7ce71fSopenharmony_ci                        bDescriptorType = 0x30;
2310a7ce71fSopenharmony_ci                        bMaxBurst = 0x00;
2320a7ce71fSopenharmony_ci                        bmAttributes = 0x00;
2330a7ce71fSopenharmony_ci                        wBytesPerInterval = 0x00;
2340a7ce71fSopenharmony_ci                    }
2350a7ce71fSopenharmony_ci                    SsIn_endpoint {
2360a7ce71fSopenharmony_ci                        bLength = 0x07;
2370a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
2380a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
2390a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
2400a7ce71fSopenharmony_ci                        wMaxPacketSize = 1024;
2410a7ce71fSopenharmony_ci                        bInterval = 0;
2420a7ce71fSopenharmony_ci                    } 
2430a7ce71fSopenharmony_ci                    SsOut_endpoint {
2440a7ce71fSopenharmony_ci                        bLength = 0x07;
2450a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
2460a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
2470a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
2480a7ce71fSopenharmony_ci                        wMaxPacketSize = 1024;
2490a7ce71fSopenharmony_ci                        bInterval = 0;
2500a7ce71fSopenharmony_ci                    }
2510a7ce71fSopenharmony_ci                }
2520a7ce71fSopenharmony_ci                func_acm {
2530a7ce71fSopenharmony_ci                    funcName = "f_generic.a";
2540a7ce71fSopenharmony_ci                    stringTabList = ["fnString_1"];
2550a7ce71fSopenharmony_ci                    fnString_1 {
2560a7ce71fSopenharmony_ci                        language  = 0x0409;
2570a7ce71fSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3"];
2580a7ce71fSopenharmony_ci                        str_1 {
2590a7ce71fSopenharmony_ci                            id = 0;
2600a7ce71fSopenharmony_ci                            str =  "CDC Abstract Control Model (ACM)";
2610a7ce71fSopenharmony_ci                        }
2620a7ce71fSopenharmony_ci                        str_2 {
2630a7ce71fSopenharmony_ci                            id = 1;
2640a7ce71fSopenharmony_ci                            str = "CDC ACM Data";
2650a7ce71fSopenharmony_ci                        }
2660a7ce71fSopenharmony_ci                        str_3 {
2670a7ce71fSopenharmony_ci                            id = 2;
2680a7ce71fSopenharmony_ci                            str = "CDC Serial";
2690a7ce71fSopenharmony_ci                        }
2700a7ce71fSopenharmony_ci                    }
2710a7ce71fSopenharmony_ci                    fsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
2720a7ce71fSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "FsNotify_endpoint", 
2730a7ce71fSopenharmony_ci                        "DataInterface", "FsIn_endpoint", "FsOut_endpoint"];
2740a7ce71fSopenharmony_ci                    assoc_interface {
2750a7ce71fSopenharmony_ci                        bLength = 0x08;
2760a7ce71fSopenharmony_ci                        bDescriptorType = 0x0B;
2770a7ce71fSopenharmony_ci                        bFirstInterface = 0x02;
2780a7ce71fSopenharmony_ci                        bInterfaceCount = 0x02;
2790a7ce71fSopenharmony_ci                        bFunctionClass = 0x02;
2800a7ce71fSopenharmony_ci                        bFunctionSubClass = 0x02;
2810a7ce71fSopenharmony_ci                        bFunctionProtocol = 0x01;
2820a7ce71fSopenharmony_ci                        iFunction = 0x03;
2830a7ce71fSopenharmony_ci                    }
2840a7ce71fSopenharmony_ci                    ControlInterface {
2850a7ce71fSopenharmony_ci                        bLength = 0x09;
2860a7ce71fSopenharmony_ci                        bDescriptorType = 0x04;
2870a7ce71fSopenharmony_ci                        bInterfaceNumber = 0x02;
2880a7ce71fSopenharmony_ci                        bAlternateSetting = 0x00;
2890a7ce71fSopenharmony_ci                        bNumEndpoints = 0x01;
2900a7ce71fSopenharmony_ci                        bInterfaceClass = 0x02;
2910a7ce71fSopenharmony_ci                        bInterfaceSubClass = 0x02;
2920a7ce71fSopenharmony_ci                        bInterfaceProtocol = 0x01;
2930a7ce71fSopenharmony_ci                        iInterface = 0x01;
2940a7ce71fSopenharmony_ci                    }
2950a7ce71fSopenharmony_ci                    cdc_header {
2960a7ce71fSopenharmony_ci                        bLength = 0x05;
2970a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
2980a7ce71fSopenharmony_ci                        desc_data = [0x05, 0x24, 0x00, 0x10, 0x01];
2990a7ce71fSopenharmony_ci                    }
3000a7ce71fSopenharmony_ci                    cdc_call_mgmt {
3010a7ce71fSopenharmony_ci                        bLength = 0x05;
3020a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
3030a7ce71fSopenharmony_ci                        desc_data = [0x05, 0x24, 0x01, 0x00, 0x01];
3040a7ce71fSopenharmony_ci                    }
3050a7ce71fSopenharmony_ci                    cdc_acm {
3060a7ce71fSopenharmony_ci                        bLength = 0x04;
3070a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
3080a7ce71fSopenharmony_ci                        desc_data = [0x04, 0x24, 0x02, 0x02];
3090a7ce71fSopenharmony_ci                    }
3100a7ce71fSopenharmony_ci                    cdc_union {
3110a7ce71fSopenharmony_ci                        bLength = 0x05;
3120a7ce71fSopenharmony_ci                        bDescriptorType = 0x24;
3130a7ce71fSopenharmony_ci                        desc_data = [0x05, 0x24, 0x06, 0x02, 0x03];
3140a7ce71fSopenharmony_ci                    }
3150a7ce71fSopenharmony_ci                    FsNotify_endpoint {
3160a7ce71fSopenharmony_ci                        bLength = 0x07;
3170a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3180a7ce71fSopenharmony_ci                        bEndpointAddress = 0x81;
3190a7ce71fSopenharmony_ci                        bmAttributes = 0x03;
3200a7ce71fSopenharmony_ci                        wMaxPacketSize = 10;
3210a7ce71fSopenharmony_ci                        bInterval = 32;
3220a7ce71fSopenharmony_ci                    } 
3230a7ce71fSopenharmony_ci                    DataInterface {
3240a7ce71fSopenharmony_ci                        bLength = 0x09;
3250a7ce71fSopenharmony_ci                        bDescriptorType = 0x04;
3260a7ce71fSopenharmony_ci                        bInterfaceNumber = 0x03;
3270a7ce71fSopenharmony_ci                        bAlternateSetting = 0x00;
3280a7ce71fSopenharmony_ci                        bNumEndpoints = 0x02;
3290a7ce71fSopenharmony_ci                        bInterfaceClass = 0x0A;
3300a7ce71fSopenharmony_ci                        bInterfaceSubClass = 0x00;
3310a7ce71fSopenharmony_ci                        bInterfaceProtocol = 0x02;
3320a7ce71fSopenharmony_ci                        iInterface = 0x02;
3330a7ce71fSopenharmony_ci                    }
3340a7ce71fSopenharmony_ci                    FsIn_endpoint {
3350a7ce71fSopenharmony_ci                        bLength = 0x07;
3360a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3370a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
3380a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
3390a7ce71fSopenharmony_ci                        wMaxPacketSize = 0;
3400a7ce71fSopenharmony_ci                        bInterval = 0;
3410a7ce71fSopenharmony_ci                    } 
3420a7ce71fSopenharmony_ci                    FsOut_endpoint {
3430a7ce71fSopenharmony_ci                        bLength = 0x07;
3440a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3450a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
3460a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
3470a7ce71fSopenharmony_ci                        wMaxPacketSize = 0;
3480a7ce71fSopenharmony_ci                        bInterval = 0;
3490a7ce71fSopenharmony_ci                    }
3500a7ce71fSopenharmony_ci                    hsDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
3510a7ce71fSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint", 
3520a7ce71fSopenharmony_ci                        "DataInterface", "HsIn_endpoint", "HsOut_endpoint"];
3530a7ce71fSopenharmony_ci                    HsNotify_endpoint {
3540a7ce71fSopenharmony_ci                        bLength = 0x07;
3550a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3560a7ce71fSopenharmony_ci                        bEndpointAddress = 0x81;
3570a7ce71fSopenharmony_ci                        bmAttributes = 0x03;
3580a7ce71fSopenharmony_ci                        wMaxPacketSize = 10;
3590a7ce71fSopenharmony_ci                        bInterval = 9;
3600a7ce71fSopenharmony_ci                    } 
3610a7ce71fSopenharmony_ci                    HsIn_endpoint {
3620a7ce71fSopenharmony_ci                        bLength = 0x07;
3630a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3640a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
3650a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
3660a7ce71fSopenharmony_ci                        wMaxPacketSize = 512;
3670a7ce71fSopenharmony_ci                        bInterval = 0;
3680a7ce71fSopenharmony_ci                    } 
3690a7ce71fSopenharmony_ci                    HsOut_endpoint {
3700a7ce71fSopenharmony_ci                        bLength = 0x07;
3710a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3720a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
3730a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
3740a7ce71fSopenharmony_ci                        wMaxPacketSize = 512;
3750a7ce71fSopenharmony_ci                        bInterval = 0;
3760a7ce71fSopenharmony_ci                    }
3770a7ce71fSopenharmony_ci                    ssDescList = ["assoc_interface", "ControlInterface", "cdc_header", 
3780a7ce71fSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint", 
3790a7ce71fSopenharmony_ci                        "ss_ep_comp", "DataInterface", "SsIn_endpoint", 
3800a7ce71fSopenharmony_ci                        "ss_ep_comp","SsOut_endpoint","ss_ep_comp"];
3810a7ce71fSopenharmony_ci                    ss_ep_comp {
3820a7ce71fSopenharmony_ci                        bLength = 0x06;
3830a7ce71fSopenharmony_ci                        bDescriptorType = 0x30;
3840a7ce71fSopenharmony_ci                        bMaxBurst = 0x00;
3850a7ce71fSopenharmony_ci                        bmAttributes = 0x00;
3860a7ce71fSopenharmony_ci                        wBytesPerInterval = 0x00;
3870a7ce71fSopenharmony_ci                    }
3880a7ce71fSopenharmony_ci                    SsIn_endpoint {
3890a7ce71fSopenharmony_ci                        bLength = 0x07;
3900a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3910a7ce71fSopenharmony_ci                        bEndpointAddress = 0x82;
3920a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
3930a7ce71fSopenharmony_ci                        wMaxPacketSize = 1024;
3940a7ce71fSopenharmony_ci                        bInterval = 0;
3950a7ce71fSopenharmony_ci                    } 
3960a7ce71fSopenharmony_ci                    SsOut_endpoint {
3970a7ce71fSopenharmony_ci                        bLength = 0x07;
3980a7ce71fSopenharmony_ci                        bDescriptorType = 0x05;
3990a7ce71fSopenharmony_ci                        bEndpointAddress = 0x3;
4000a7ce71fSopenharmony_ci                        bmAttributes = 0x02;
4010a7ce71fSopenharmony_ci                        wMaxPacketSize = 1024;
4020a7ce71fSopenharmony_ci                        bInterval = 0;
4030a7ce71fSopenharmony_ci                    }
4040a7ce71fSopenharmony_ci                }
4050a7ce71fSopenharmony_ci            } 
4060a7ce71fSopenharmony_ci        }
4070a7ce71fSopenharmony_ci        custom_prop {
4080a7ce71fSopenharmony_ci            propTable = ["propList_1", "propList_2"];
4090a7ce71fSopenharmony_ci            propList_1 {
4100a7ce71fSopenharmony_ci                configNum = 1;
4110a7ce71fSopenharmony_ci                interfaceNum = 2;
4120a7ce71fSopenharmony_ci                propList = ["prop_1", "prop_2"];
4130a7ce71fSopenharmony_ci                prop_1 {
4140a7ce71fSopenharmony_ci                    name = "testx";
4150a7ce71fSopenharmony_ci                    value = "xxxxxx";
4160a7ce71fSopenharmony_ci                }
4170a7ce71fSopenharmony_ci                prop_2 {
4180a7ce71fSopenharmony_ci                    name = "testy";
4190a7ce71fSopenharmony_ci                    value = "yyyyyy";
4200a7ce71fSopenharmony_ci                }
4210a7ce71fSopenharmony_ci            }
4220a7ce71fSopenharmony_ci            propList_2 {
4230a7ce71fSopenharmony_ci                configNum = 1;
4240a7ce71fSopenharmony_ci                interfaceNum = 3;
4250a7ce71fSopenharmony_ci                propList = ["prop_1", "prop_2"];
4260a7ce71fSopenharmony_ci                prop_1 {
4270a7ce71fSopenharmony_ci                    name = "testm";
4280a7ce71fSopenharmony_ci                    value = "mmmmm";
4290a7ce71fSopenharmony_ci                }
4300a7ce71fSopenharmony_ci                prop_2 {
4310a7ce71fSopenharmony_ci                    name = "testn";
4320a7ce71fSopenharmony_ci                    value = "nnnnn";
4330a7ce71fSopenharmony_ci                }
4340a7ce71fSopenharmony_ci            }
4350a7ce71fSopenharmony_ci        }
4360a7ce71fSopenharmony_ci    }
4370a7ce71fSopenharmony_ci}
438