Repository navigation
Modify interrupt handling for eUSB2 Phy targets - #1356
Kriskura176767 wants to merge 6 commits into
Conversation
XAUI (eXtended Attachment Unit Interface) is a high-speed serial interface standard for 10 Gigabit Ethernet (10GbE). It uses four lanes with each lane operating at 3.125 Gbps (totaling 10 Gbps), to extend the XGMII interface across circuit boards, commonly used in backplanes for networking switches and high-performance computing. XAUI is defined as a standardized instantiation of XGMII Extender in the IEEE 802.3 specification. Add definition for XAUI PHY type. Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com> [s-vadapalli: added detailed description of XAUI in the commit message] Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260112054636.108027-2-s-vadapalli@ti.com Signed-off-by: Vinod Koul <vkoul@kernel.org> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
eUSB2 (Embedded USB2) is a MIPI Alliance standard for chip-to-chip USB2 signaling. Unlike standard USB2, which uses 3.3V signaling, eUSB2 uses low-voltage differential signaling (~0.4V) and requires a repeater to interface with external USB2 ports. Because of these differences, eUSB2 PHY initialization sequences, voltage tuning, and register configuration are distinct from USB2. Additionally, eUSB2 targets handle wakeup interrupts differently depending on device speed when operating in host mode. According to the eUSB2 specification, remote wakeup signaling in host mode is detected via different data-line assertions based on the connected device speed: - Low-speed devices: the host repeater drives eD+ to logic '1' upon detecting a K-state on the USB lines during remote wakeup (eUSB2 spec, Section 5.5.14). - Full-speed/high-speed devices: the host repeater drives eD- to logic '1' upon detecting a K-state during remote wakeup (eUSB2 spec, Sections 5.5.15 and 5.5.18). Since the eUSB2 PHY's DP and DM lines need to be configured differently from USB2 PHYs, controllers should be able to query the PHY type and configure wakeup interrupts accordingly. Add PHY_TYPE_EUSB2 to distinguish eUSB2 PHYs from standard USB2 PHYs. Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-1-0f505b9c394b@oss.qualcomm.com/ Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
…d helpers In cases like USB High-speed phys which can be either USB2 or EUSB2, it is required to know the type of phy (rather than the operating mode) because DP and DM interrupt lines need to be configured differently for each of them. Add support to cache the PHY_TYPE and add the following helpers: - phy_set_type() for the phy drivers (like m31_eusb2 or snps-eusb2) to declare what type of PHY they are (in this case PHY_TYPE_EUSB2). - phy_get_type() for the consumers (like USB controllers) to query the type of phy connected to them. Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-2-0f505b9c394b@oss.qualcomm.com/ Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
USB controllers like DWC3 are agnostic of the kind of phy (USB2/eUSB2) connected to it. Set the phy type to EUSB2 to let the controller know the phy type when queried during its probe. Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-3-0f505b9c394b@oss.qualcomm.com/ Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
USB controllers like DWC3 are agnostic of the kind of phy (USB2/eUSB2) connected to it. Set the phy type to EUSB2 to let the controller know the phy type when queried during its probe. Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-4-0f505b9c394b@oss.qualcomm.com/ Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
…rgets eUSB2 targets handle wakeup interrupts differently depending on device speed when operating in host mode. According to the eUSB2 specification, remote wakeup signaling in host mode is detected via different data-line assertions based on the connected device speed. When a low-speed device is connected, the host repeater drives eD+ to logic '1' upon detecting a K-state on the USB lines during remote wakeup (eUSB2 specification, Section 5.5.14). When a full-speed or high-speed device is connected, the host repeater drives eD- to logic '1' upon detecting a K-state on the USB line during remote wakeup (eUSB2 specification, Sections 5.5.15 and 5.5.18). Since the eUSB2 PHY's "DP" and "DM" interrupt lines monitor the eD+ and eD- line states, query the phy type and configure the wakeup interrupts accordingly. Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-5-0f505b9c394b@oss.qualcomm.com/ Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
3 similar comments
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
eUSB2 targets handle wakeup interrupts differently depending on device
speed when operating in host mode.
According to the eUSB2 specification, remote wakeup signaling in host
mode is detected via different data-line assertions based on the
connected device speed.
When a low-speed device is connected, the host repeater drives eD+ to
logic '1' upon detecting a K-state on the USB lines during remote wakeup
(eUSB2 specification, Section 5.5.14).
When a full-speed or high-speed device is connected, the host repeater
drives eD- to logic '1' upon detecting a K-state on the USB line during
remote wakeup (eUSB2 specification, Sections 5.5.15 and 5.5.18).
Since the eUSB2 PHY's "DP" and "DM" interrupt lines monitor the eD+ and
eD- line states, configure the wakeup interrupts accordingly
Add support for a new phy "type" attribute to be set by eusb2 phy drivers
and be read by consumers (in this case usb controller) and act accordingly
Link: https://lore.kernel.org/all/20260913-eusb2-interrupt-v8-v8-0-0f505b9c394b@oss.qualcomm.com/