Thanks again for your time to reply . I think my coin has dropped :-) 1 .So basically, we have GTB in the device descriptor and the FB information is an UMP call to the device by the ALSA driver. "The device should provide both info, in somehow compatible ways." . The process would be [a]. driver gets USB device descriptors, [b]. driver issues USB call to retrieve USB GTB descriptors and then [c] driver issues UMP stream call to retrieve the function block information. (if N/A, driver falls back on the GTB information). This information should be consistent with the groups defined in the GTB. 2. When creating the device descriptors and GTB descriptors based on the 2020 USB 2.0 spec, it should work ? Would those port show up in ALSA or can only be access via /dev/umpC*D* 3. w/o duplicates with 2 GTB's and for 32 groups, for example, it would be 1st GTB has group 1~16 and 2nd GTB 17~23 ?. A FB could use the groups from both GTB's for example Group1 and 17. 4. If two functions uses all 16 groups, that would use up all 32 FB's , correct ?