Listed below, you find the USB ports defined in the SSDT-PORTS.aml table. Before using this SSDT, you have to disable any USBPort.kext and drop the OEM USB port map!
| Port | Type | On/Off |
|---|---|---|
| HS 01 | USB 2.0 | Off |
| HS 02 | USB 2.0 | Off |
| HS 03 | USB 2.0 right port |
On |
| HS 04 | USB 2.0 left port |
On |
| HS 05 | USB 2.0 | Off |
| HS 06 | USB 2.0 | Off |
| HS 07 | USB 2.0 | On |
| HS 08 | Webcam USB 2.0, internal |
On |
| HS 09 | USB 2.0 | Off |
| HS 10 | Bluetooth USB 2.0, internal |
On |
| SS 01 | USB TypeC+Sw | On |
| SS 02 | USB 3.0 | On |
| SS 03 | USB 3.0 right port |
On |
| SS 04 | USB 3.0 left port |
On |
| SS 05 | USB 3.0 | On |
| SS 06 | USB 3.0 | On |
To enable/disable a port and/or change the port type, you need to adjust the return values for GUPC within each port entry's UPC Method:
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (0xFF, 0xFF)) // 1st packet = port on/off, 2nd packet = port type
}In this example, the port is enabled (0xFF) and the port type is USB 2.0, internal (0xFF). To disable a port, set the first packet to 0x00.
The following values for USB port types are possible:
| Value | Connector |
|---|---|
0X00 |
Type ‘A’ |
0x01 |
Mini-AB |
0x02 |
ExpressCard |
0x03 |
USB 3 Standard-A |
0x04 |
USB 3 Standard-B |
0x05 |
USB 3 Micro-B |
0x06 |
Micro-AB |
0x07 |
Power-B |
0x08 |
USB-C - USB2-only |
0x09 |
USB-C - USB2 and SS with Switch |
0x0A |
USB-C - USB2 and SS without Switch |
0x0B-0xFE |
Reserved |
0xFF |
Proprietary/Internal USB 2 port |
The most commonly used connector types nowadays are:
| Value | Connector |
|---|---|
0X00 |
USB 2, Type A |
0x03 |
USB 3, Type A |
0x09 |
USB Type C (with Switch) |
0x0A |
USB Type C (w/o Switch) |
0xFF |
Internal USB 2 port (for Bluetooth and Webcams) |
Note
Refer to ACPI Specs, chapter 9.12 "_UPC (USB Port Capabilities)" for more details