| <html devsite> |
| <head> |
| <title>USB-C-to-Analog Audio Adapter</title> |
| <meta name="project_path" value="/_project.yaml" /> |
| <meta name="book_path" value="/_book.yaml" /> |
| </head> |
| <body> |
| <!-- |
| Copyright 2018 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| |
| <p> |
| 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 |
| <a href="/devices/accessories/headset/plug-headset-spec.html">3.5 mm headsets</a> |
| into devices that only have a |
| <a href="/devices/accessories/headset/usb-device">USB-C port</a>.</p> |
| <p> |
| This documentation specifies the minimum requirements: accessory manufacturers |
| are encouraged to add features while keeping these requirements in mind. |
| </p> |
| |
| <h2 id="adapter-type">Adapter type</h2> |
| <p> |
| Only digital-to-analog adapters are allowed. Analog-only adapters following |
| <a href="http://www.usb.org/">USB.org's</a> "USB Type-C Cable and Connector |
| Specification, Release 1.2, Appendix A" are not supported. |
| </p> |
| <h2 id="functional-overview">Functional overview</h2> |
| <p> |
| The adapter allows users to plug their existing 3.5mm accessories into devices |
| with USB-C ports. To do this, the adapter supports: |
| </p> |
| <ul> |
| <li>Stereo analog devices with and without microphones</li> |
| <li>Digital to analog conversion of 2 output channels</li> |
| <li>Analog to digital conversion of 1 input channel</li> |
| <li>Detection of analog device insertion</li> |
| <li>Detection of headset microphone</li> |
| <li>Detection of output impedance</li> |
| <li>Translation of headset button events to HID events</li> |
| </ul> |
| |
| <h2 id="analog-interface">Analog interface</h2> |
| <p> |
| 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: |
| </p> |
| |
| <ul> |
| <li><strong>Headphones</strong>. Low impedance transducers, < 1 kiloohm, no |
| microphone: 0x0302</li> |
| <li><strong>Headset</strong>. Low impedance transducers with microphone: 0x0402</li> |
| <li><strong>Line in</strong>. High impedance input: 0x603</li> |
| <li><strong>Line out</strong>. High impedance output: 0x604</li> |
| <li><strong>Line in and Line out</strong> or <strong>Line in and Mic</strong>: |
| 0x400</li> |
| </ul> |
| |
| <h2 id="button-functions">Button functions</h2> |
| <p> |
| The adapter shall convert button events received from the analog interface and |
| conforming to the Android |
| <a href="/devices/accessories/headset/plug-headset-spec">analog headset |
| specification</a> to the following HID events: </p> |
| <table> |
| <tr> |
| <th>Function</th> |
| <th>Mappings</th> |
| </tr> |
| <tr> |
| <td>A</td> |
| <td>HID usage page: 0x0C<br> |
| HID usage: 0x0CD </td> |
| </tr> |
| <tr> |
| <td>B </td> |
| <td>HID usage page: 0x0C<br> |
| HID usage: 0x0E9</td> |
| </tr> |
| <tr> |
| <td>C</td> |
| <td>HID usage page: 0x0C<br> |
| HID usage: 0x0EA</td> |
| </tr> |
| <tr> |
| <td>D </td> |
| <td>HID usage page: 0x0C<br> |
| HID usage: 0x0CF</td> |
| </tr> |
| </table> |
| |
| </body></html> |
| |
| |