While some new Android phones are being produced without a 3.5 mm jack, users may still own 3.5 mm headsets that they want to use with those devices. To facilitate that, this article specifies a USB-C-to-analog audio adapter spec to plug 3.5 mm headsets into devices that only have a USB-C port.
This documentation specifies the minimum requirements: accessory manufacturers are encouraged to add features while keeping these requirements in mind.
Adapter type
Only digital-to-analog adapters are allowed. Analog-only adapters following USB.org's "USB Type-C Cable and Connector Specification, Release 1.2, Appendix A" are not supported.
Functional overview
The adapter allows users to plug their existing 3.5mm accessories into devices with USB-C ports. To do this, the adapter supports:
- Stereo analog devices with and without microphones
- Digital to analog conversion of 2 output channels
- Analog to digital conversion of 1 input channel
- Detection of analog device insertion
- Detection of headset microphone
- Detection of output impedance
- Translation of headset button events to HID events
Analog interface
The adapter shall not present any UAC interface, playback, or capture endpoints to the USB host until a device is inserted and properly identified. Depending on the type of device detected, the following UAC terminal types must be reported:
- Headphones. Low impedance transducers, < 1 kiloohm, no microphone: 0x0302
- Headset. Low impedance transducers with microphone: 0x0402
- Line in. High impedance input: 0x603
- Line out. High impedance output: 0x604
- Line in and Line out or Line in and Mic: 0x400
Button functions
The adapter shall convert button events received from the analog interface and conforming to the Android analog headset specification to the following HID events:
Function | Mappings |
---|---|
A | HID usage page: 0x0C HID usage: 0x0CD |
B | HID usage page: 0x0C HID usage: 0x0E9 |
C | HID usage page: 0x0C HID usage: 0x0EA |
D | HID usage page: 0x0C HID usage: 0x0CF |