The CM108 and similar USB audio chips which are used in many low cost USB sound interfaces have some user controllable GPIO pins. Although these aren't usually connected it is possible to modify some of these interfaces to make this available for use as a PTT function or to build an interface from scratch using these devices. There are commercially available units and a lot of information on the web on DIY modifications. The GPIO pins are access by the operating system as a HID (Human Interface) device and I've added support for controlling these to RigControl. The device I used for testing is described here.
Configuration is similar to a normal RIGCONTROL device, with PORT set to "CM108" and the SPEED parameter set to the device address. On Windows the address is the VID (Vendor ID) and PID (Product ID) of the USB device, on Linux it is of the form /dev/hidrawN, where N depends on how many HID devices you have. The CM108 I used has a VID of 0xD8C and a PID of 0x8, so the RIGCONTROL lines I used were
RIGCONTROL CM108 0xD8C:0x8 PTTONLY for Windows or RIGCONTROL CM108 /dev/hidraw2 PTTONLY for Linux (I had two other HID devices)
As the interface can only provide PTT and not frequency control you need PTTONLY, though you can also use PTTMUX if you want to provide PTT for other applications.
You must also tell the port driver routine to use the CM108 by Setting PTT CM108 in the address line, eg for ARDOP:
ADDR 127.0.0.1 8520 PTT CM108 PATH C:\Devprogs\BPQ32\ARDOPC.exe 8520 "USB" "USB"
On Linux HID devices are owned by root and by default are not accessible from user programs. You can either chmod the device or use a UDEV rule to change the access permissions. I created a file /etc/udev/rules.d/50-usb-hid-ptt.rules containing
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0666"
This changes the permissions on all HID devices. If that bothers you you could write your own rule using the VID and PID.