1 .. SPDX-License-Identifier: GPL-2.0 2 3 ===================== 4 Intel North Mux-Agent 5 ===================== 6 7 Introduction 8 ============ 9 10 North Mux-Agent is a function of the Intel PMC 11 most Intel based platforms that have the PMC m 12 configuring the various USB Multiplexer/DeMult 13 platforms that allow the mux-agent to be confi 14 have an ACPI device object (node) with HID "IN 15 16 The North Mux-Agent (aka. Intel PMC Mux Contro 17 communicates with the PMC microcontroller by u 18 (drivers/platform/x86/intel_scu_ipc.c). The dr 19 Mux Class which allows the USB Type-C Controll 20 configure the cable plug orientation and mode 21 also registers with the USB Role Class in orde 22 Device modes. The driver is located here: driv 23 24 Port nodes 25 ========== 26 27 General 28 ------- 29 30 For every USB Type-C connector under the mux-a 31 is a separate child node under the PMC mux-age 32 represent the actual connectors, but instead t 33 that are associated with the connectors:: 34 35 Scope (_SB.PCI0.PMC.MUX) 36 { 37 Device (CH0) 38 { 39 Name (_ADR, 0) 40 } 41 42 Device (CH1) 43 { 44 Name (_ADR, 1) 45 } 46 } 47 48 _PLD (Physical Location of Device) 49 ---------------------------------- 50 51 The optional _PLD object can be used with the 52 is supplied, it should match the connector nod 53 54 Scope (_SB.PCI0.PMC.MUX) 55 { 56 Device (CH0) 57 { 58 Name (_ADR, 0) 59 Method (_PLD, 0, NotSerialized 60 { 61 /* Consider this as pseudo 62 Return (\_SB.USBC.CON0._PL 63 } 64 } 65 } 66 67 Mux-agent specific _DSD Device Properties 68 ----------------------------------------- 69 70 Port Numbers 71 ~~~~~~~~~~~~ 72 73 In order to configure the muxes behind a USB T 74 needs to know the USB2 port and the USB3 port 75 connector. The driver extracts the correct por 76 device properties named "usb2-port-number" and 77 properties have integer value that means the p 78 is 1's based, and value 0 is illegal. The driv 79 these device properties as-is when sending the 80 the PMC:: 81 82 Name (_DSD, Package () { 83 ToUUID("daffd814-6eba-4d8c-8a91-bc 84 Package() { 85 Package () {"usb2-port-number" 86 Package () {"usb3-port-number" 87 }, 88 }) 89 90 Orientation 91 ~~~~~~~~~~~ 92 93 Depending on the platform, the data and SBU li 94 be "fixed" from the mux-agent's point of view, 95 should not configure them according to the cab 96 happen for example if a retimer on the platfor 97 orientation. The driver uses a specific device 98 (SBU) and "hsl-orientation" (data) to know if 99 which orientation. The value that these proper 100 it can be one that is defined for the USB Type 101 or "reversed":: 102 103 Name (_DSD, Package () { 104 ToUUID("daffd814-6eba-4d8c-8a91-bc 105 Package() { 106 Package () {"sbu-orientation", 107 Package () {"hsl-orientation", 108 }, 109 }) 110 111 Example ASL 112 =========== 113 114 The following ASL is an example that shows the 115 connectors under its control:: 116 117 Scope (_SB.PCI0.PMC) 118 { 119 Device (MUX) 120 { 121 Name (_HID, "INTC105C") 122 123 Device (CH0) 124 { 125 Name (_ADR, 0) 126 127 Name (_DSD, Package () { 128 ToUUID("daffd814-6eba- 129 Package() { 130 Package () {"usb2- 131 Package () {"usb3- 132 Package () {"sbu-o 133 Package () {"hsl-o 134 }, 135 }) 136 } 137 138 Device (CH1) 139 { 140 Name (_ADR, 1) 141 142 Name (_DSD, Package () { 143 ToUUID("daffd814-6eba- 144 Package() { 145 Package () {"usb2- 146 Package () {"usb3- 147 Package () {"sbu-o 148 Package () {"hsl-o 149 }, 150 }) 151 } 152 } 153 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.