1# USB4 Retimers 2 3## Introduction 4As USB speeds continue to increase (up to 5G, 10G, and even 20G or higher in 5newer revisions of the spec), it becomes more difficult to maintain signal 6integrity for longer traces. Devices such as retimers and redrivers can be used 7to help signals maintain their integrity over long distances. 8 9A redriver is a device that boosts the high-frequency content of a signal in 10order to compensate for the attenuation typically caused by travelling through 11various circuit components (PCB, connectors, CPU, etc.). Redrivers are not 12protocol-aware, which makes them relatively simple. However, their effectiveness 13is limited, and may not work at all in some scenarios. 14 15A retimer is a device that retransmits a fresh copy of the signal it receives, 16by doing CDR and retransmitting the data (i.e., it is protocol-aware). Since 17this is a digital component, it may have firmware. 18 19 20## Driver Usage 21 22Some operating systems may have the ability to update firmware on USB4 retimers, 23and ultimately will need some way to power the device on and off so that its new 24firmware can be loaded. This is achieved by providing a GPIO signal that can be 25used for this purpose; its active state must be the one in which power is 26applied to the retimer. This driver will generate the required ACPI AML code 27which will toggle the GPIO in response to the kernel's request (through the 28`_DSM` ACPI method). Simply put something like the following in your devicetree: 29 30``` 31device pci 0.0 on 32 chip drivers/intel/usb4/retimer 33 register "power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A0)" 34 device generic 0 on end 35 end 36end 37``` 38 39replacing the GPIO with the appropriate pin and polarity. 40 41