There are lots of controllers in the wild which we don't have a name for an attach as "xhci generic".
These were posted on https://reviews.freebsd.org/D51255, Linux doesn't have strings for them so I've taken the values from pciconf:
xhci0@pci0:10:0:0: class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x1022 device=0x43f7 subvendor=0x1b21 subdevice=0x1142 vendor = 'Advanced Micro Devices, Inc. [AMD]' device = '600 Series Chipset USB 3.2 Controller' class = serial bus subclass = USB class = encrypt/decrypt xhci1@pci0:13:0:3: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1022 device=0x15b6 subvendor=0x1043 subdevice=0x8877 vendor = 'Advanced Micro Devices, Inc. [AMD]' device = 'Raphael/Granite Ridge USB 3.1 xHCI' class = serial bus subclass = USB xhci2@pci0:13:0:4: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1022 device=0x15b7 subvendor=0x1043 subdevice=0x8877 vendor = 'Advanced Micro Devices, Inc. [AMD]' device = 'Raphael/Granite Ridge USB 3.1 xHCI' class = serial bus subclass = USB xhci3@pci0:14:0:0: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1022 device=0x15b8 subvendor=0x1043 subdevice=0x8877 vendor = 'Advanced Micro Devices, Inc. [AMD]' device = 'Raphael/Granite Ridge USB 2.0 xHCI' class = serial bus subclass = USB
I don't quite understand the "USB2.0 xHCI" in the final controller, I suspect that means it is a USB 2 bus with an xHCI interface. It does carry xecp and supports debug so I guess it makes sense. It's the only one in the file right now.
I'm not 100% on this, usually I mirror the linux id string in someway, I'm happy to hear the right way to do this.