From nobody Tue Dec 2 02:33:26 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86AA62FE583 for ; Wed, 19 Nov 2025 08:45:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541950; cv=none; b=hDkRVY6oHDPPs6LVw4J+UODQZw0HY+qK6YyRVHaVYLel6ulVHAY6SbXo+Q9geXk3uBFU0V/EXf3uQ8z3SRxgTy3CVy1qwfYhxFi2jhHwKrdkm7xhyCZm0rtUAv5LQ+i8vY3V1V7i2vXGEDLr+xHK2D/JK+8lwdb0BYuC5+V/8sI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541950; c=relaxed/simple; bh=Wwhv46WDe0N83GsQcFn0TZLW8DtrCuNOWijlSA0+FNo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eIiHFwntdc2K+YrEi/xiv0V++Ip00olHyoxDyJPozjdwGKHr0OuoAzzmRi5WJX4lnrIg4czuLw3qjCkfoRdi7EoQzoXOO+HVXFjBllV/xn7jcDezx4DTWd95NcNaOX9u9+YBaDfLA2+8uNikHyns4ZusoATRKFxwyxlo3WD6IPg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=W41HWWO1; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="W41HWWO1" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-42b3c965cc4so321769f8f.0 for ; Wed, 19 Nov 2025 00:45:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763541945; x=1764146745; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KRZnHA1TGMwuASpPE7D+kKGJIb0IcO74PDiT85kyX1U=; b=W41HWWO1u31JzaOnENzEXWfS7EsE68G1lK7Xm41D4ZgIGgaM55VlLI5cp/S5yFM0Hp uANQs6iDH0gE5Sim8tcTikPYPOCMCP682ce9wYj3WYvgvTcFN9nkklX1TUAt99FVPZIV GdjSNXgwUMPKSYRT2Z9YttjVRo7puFteGUj4/c5ephDcNgFf45K6fl+b/DXqT1I3LcPl aA1P31EpjQ8/NoAdKhnKO473BYsmOE4sIM8+u2NBI5rpDxC9+D0do1GCH5FFaBxaTV/f frucBvWXmGG9KxPkE8z+yNld0OoL7J3Sk2k4NINYi8hmy7rJP4fnzMHqeLnyFsIDAxJx itTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763541945; x=1764146745; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KRZnHA1TGMwuASpPE7D+kKGJIb0IcO74PDiT85kyX1U=; b=MDzEC3tBTFMrkluOZYXG3uiCCv9oNj30lVyfaVaNj4gozGpKukYziQYyg0scIQztmf KQP0dzSnWXOBOqXonmIUbghfz5YbyjVakQR7LYEWBD6OYFxiNOerJ0UXhVhGE7YpdwB8 x/S9pp2/qxZxjLXkWdj92UlAy/1rZv9yrl++sn1njm1WLWEhl2NE2M4Q98uLXx04x2EX 3c/e92I0olQofFo1qDkRq0hAcQfYVfn6krpjAOpZkpRIqE7Q09NVrXHwwH3dnNA9ia1G crvrgj66ED9A32PmFEXY8tuJbdUS2x0cdPSa4benivxDHzQa6lOGBNCDJsvK4GoX5jK9 6bUA== X-Forwarded-Encrypted: i=1; AJvYcCUmX7+U2xT1E2yRpe5vL+7Yqu+1V6MLdaxrd7Knau6xjgl6alIcHWR16NDbNrSTXcW/LJ/b5fZ092IwzNw=@vger.kernel.org X-Gm-Message-State: AOJu0YzCvXUydLNK5sXK0fEt1KPTsUADU7LQBudkqjmjEwPGfZD2Lz4i 4iLwOd5Wv/6zuyfEoUhNWAC5t0LGixuorU4hj/Dg36RRIu7fhRRfnciK/N9L4xK3Tk4= X-Gm-Gg: ASbGncug/aGlcdEzSyYlR8pJmzvSDtJRmdhWLs8tP22H7FdD1YjjiwHG0+o+XphPeuy BtrFi/8oHfKZtubaCtGlAHr4YlVKadFx15qCCnjp4fVHeCq46x4DNddN9gwbO3kBaASGGwNPljD +GoLndAqWLtSNYj0MgWXSDfgMdd382tp2cayj9gdGTUCM0L17uwmIzE0Uk3+2Ey9hUBEz+XL55z TyuzQBuBfbhwTTObc67to8PbCkMw9/YJnM9FPWcurPt1qlU6tiffduMKULHHrTT6O8pU66bsR/M gj8SSFy7PXN3fy2yWv8xQkXtJODmbOH5yJhasmnSiCsf04BAIF52yzm68nEhrMlk4ick3uLX4ih FaD9EUqVCg8BS5FYmi15mARtU1usGwF84HFwfnFTYpBSgmddDY738RK6U4FIAnrRwo3Y0sm6OH7 7kiUftdijUm8tCHEfKHNCv6TUj6SCMy/LRtcZRRKGCvg== X-Google-Smtp-Source: AGHT+IEw4Q1mHxyV0GK0EF0R4D5Pe/ENQZYPBdBr/G/MCcXd/j+D5Ah/WQX+wudmSP9Pop/xn4L6Dg== X-Received: by 2002:a5d:4482:0:b0:429:b21e:49c3 with SMTP id ffacd0b85a97d-42cb2221330mr1506316f8f.26.1763541945401; Wed, 19 Nov 2025 00:45:45 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f0b894sm38132306f8f.26.2025.11.19.00.45.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 00:45:44 -0800 (PST) From: Neil Armstrong Date: Wed, 19 Nov 2025 09:45:40 +0100 Subject: [PATCH v7 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251119-topic-x1e80100-hdmi-v7-1-2bee0e66cc1b@linaro.org> References: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> In-Reply-To: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Xilin Wu , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4548; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=Wwhv46WDe0N83GsQcFn0TZLW8DtrCuNOWijlSA0+FNo=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBpHYO2n8E2xlNYMqA/vWrlycejY8XU+ct7sH6PtbHN /QFQdl+JAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCaR2DtgAKCRB33NvayMhJ0clkEA CJJ1xBSkwbhKBqobEnJeg2Ffxcs8KjAGRW6ahppQTQkOnVDD5ju3l/aJdhj3RFJT5OQQ4xSTKVrGr3 5NstALKqjtkMw4CQIuZHBJZIB9uYQShPCY5koRh4dNTLzCZWm02VvGAYwiwB2Y8nYODf9iZYc48fUw 0txVzBsPT66ICYsF5CdY67molSRvFPUO25LTyAeYBndWLc0LIipqTKY+Ktxe2lETgWrCdv2Qc3Am2F FlDeDDZ+q9gzdfvuDd0vb2UuCBlW+fs41+TZmTxEgUd7jWvlwZXtOV90isO158jCOm1bd+G++6MXmO GRLBMnTB85QzwobTo7WwdB2T/mPudYiF2CvPoV0fdQKkRiSuCoxOdpHpTRIqDVgXcvj2yhUCRY+x2h HWQXIlHLYoburfnA3anl2vtG+H9Q55qYr6+30HBPENQJJoR3+YFV7YIojyqyOk+TBvznUoW7hh5kjn 9YcceGUb1F0Yu37ztPn65+Q4/Gob1pMdlcBGXM0R7ED6ohMjL5Bz5vVVM8qzkq8gKjsqGOfXEWMfrz 0mS7tnEEWkn7E+CP9ouBZUKcQOcdGpNkVkEd200qB9FcLk/0rJugj+ps/74tWDVxoZp63ts7xR+RG8 B7Scz44SzpLCCorqQpqNzdk/2Igjd1RpPBtWnxw2vKOUcwpkdqG+AxunFTnw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top of a combo glue to route either lanes to the 4 shared physical lanes. The routing of the lanes can be: - 2 DP + 2 USB3 - 4 DP - 2 USB3 The layout of the lanes was designed to be mapped and swapped related to the USB-C Power Delivery negociation, so it supports a finite set of mappings inherited by the USB-C Altmode layouts. Nevertheless those QMP Comby PHY can be used to drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector, etc... without an USB-C connector and no PD events. Document the data-lanes on numbered port@0 out endpoints, allowing us to document the lanes mapping to DisplayPort and/or USB3 connectors/peripherals. Reviewed-by: Rob Herring (Arm) Signed-off-by: Neil Armstrong --- .../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 69 ++++++++++++++++++= +++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43d= p-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43d= p-phy.yaml index c8bc512df08b..e0ec45b96bf5 100644 --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.y= aml +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.y= aml @@ -78,10 +78,77 @@ properties: =20 ports: $ref: /schemas/graph.yaml#/properties/ports + properties: port@0: - $ref: /schemas/graph.yaml#/properties/port + $ref: /schemas/graph.yaml#/$defs/port-base description: Output endpoint of the PHY + unevaluatedProperties: false + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + endpoint@0: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + description: Display Port Output lanes of the PHY when used wi= th static mapping, + The entry index is the DP lanes index, and the nu= mber is the PHY + signal in the order RX0, TX0, TX1, RX1. + unevaluatedProperties: false + + properties: + # Static lane mappings are mutually exclusive with typec-mux= /orientation-mux + data-lanes: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + maxItems: 4 + oneOf: + - items: # DisplayPort 1 lane, normal orientation + - const: 3 + - items: # DisplayPort 1 lane, flipped orientation + - const: 0 + - items: # DisplayPort 2 lanes, normal orientation + - const: 3 + - const: 2 + - items: # DisplayPort 2 lanes, flipped orientation + - const: 0 + - const: 1 + - items: # DisplayPort 4 lanes, normal orientation + - const: 3 + - const: 2 + - const: 1 + - const: 0 + - items: # DisplayPort 4 lanes, flipped orientation + - const: 0 + - const: 1 + - const: 2 + - const: 3 + required: + - data-lanes + + endpoint@1: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + description: USB Output lanes of the PHY when used with static= mapping. + The entry index is the USB3 lane in the order TX = then RX, and the + number is the PHY signal in the order RX0, TX0, T= X1, RX1. + unevaluatedProperties: false + + properties: + # Static lane mappings are mutually exclusive with typec-mux= /orientation-mux + data-lanes: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + oneOf: + - items: # USB3, normal orientation + - const: 1 + - const: 0 + - items: # USB3, flipped orientation + - const: 2 + - const: 3 + + required: + - data-lanes =20 port@1: $ref: /schemas/graph.yaml#/properties/port --=20 2.34.1 From nobody Tue Dec 2 02:33:26 2025 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C0B22FD1B9 for ; Wed, 19 Nov 2025 08:45:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541950; cv=none; b=j6Ie6I7fBaHyeQNW+ZK7TV7WSZwR3fvHN27PFI1DKtGR595DLwobArgTJtOjnJzIBQWTPVK/R7MDDxY4sTODnKPu8qCo0R4YwzEIN8YichC5TSbiQDgqNTXeMevP82jDChtsId+VJGGItqtLZ7wcfP69Eczkd/Y0ncjXZKNvvBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541950; c=relaxed/simple; bh=LGyRbs3nEpd8TPaRuDnl3oNEOOnmR63dD5K+Fo1T0B8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XYv/0UdnFmwkICINK1Yb7nh1GlAmPOZx9Oc5AtIsPg9ckDpN9aTsyny//4B1IarJYraTZV775gsxKasR8W9twZ/E7H9O9lRkF97Hb0dYTJM0JPQecMU1wboVF42DvLlVvxDM6A3iyCFHgDREipMMsSkljs/Jm8RMMZHG7FiI+lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=LN0+rZhY; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="LN0+rZhY" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-42bb288c219so3167969f8f.1 for ; Wed, 19 Nov 2025 00:45:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763541946; x=1764146746; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dCxZuR4nvCuHh/n6CAwD2wdIj5XPsLnOXttvnGgl2Hk=; b=LN0+rZhYh9I8Ovk5plBwDaqEwy359FK3M92lyuBIuNj5tKXfxTlLc21RKxD7Sl5x3b rh5g+t678EzMghFE6Ecf72peBWwWDXUOeUCE96Q0xbFk8aq1YRy0a3MtJQDfW6Dt3HFT fcTmyjJTh2DGHF+SEbV0ASksYmYYUtlxYKrHBt6AiBAPMVgLouCafkhHBPcbAQy6IzDx jlNVFyVjv4K7cS/Xics0cVbsrd74iM7prfc3SYozT96L1mr8Ajr4brV80OH3XPe/stn5 uSB0rn2bLPO11hP19SHpDAZb9YqY0tUSDq5ogdtRxHp+MYXO4jzxHxoZ44162JieSUk0 NlYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763541946; x=1764146746; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dCxZuR4nvCuHh/n6CAwD2wdIj5XPsLnOXttvnGgl2Hk=; b=uiHyymrVTBH98nG+dSCCq45Qm6OFKaEnM3/GzTLdKOjtBJ4rlaGdWWqAK7tAvXn2q/ VLbdUyl6/unJZqKxhriM4aRa45Kwszr0HzTwR5YI1WfEG+guTTKIGuAV2sXYDWgXJYBa /Lb2NkI6x8o3jBMNQtTZA9BaDLyuq/e+wS4MYZAYNXcIdvTJ3lQm47wVexcMXBKiSSy5 EhUB6FXUiOoRMVOpEHiRXf+T4yYlykVK92ItOdN+obllhrT+pAnDlHTJECyNvwMOHHoI LDn4ky3MKsAYJmXCvhrOb+jhRQwYQ74lJKKnKE6RGUDSO3SVB7N0+Z6siO04o53KjFfW 4M7g== X-Forwarded-Encrypted: i=1; AJvYcCXd26XT4tGllG0iaBpNgRAQfDauomezI7mZrezqqsqmAEvE8wsOYvkTuDyXxsQF0L7oRRSxj1UDnfB/c5k=@vger.kernel.org X-Gm-Message-State: AOJu0YxqCyagcqpcYzLA7AauRDk9nxigcl3/7Zc4XhKI/mF+3Ln+jPC0 5FRJB0Ox3jUZF/Yyde5EKkoCBT4MvZe7f5fVJMq/iN0FHXp+GYudJmEg+d1Si/NT2+w= X-Gm-Gg: ASbGncs95xG+F/2z58V7gqpM/THulZgGODKBN+ojghoQa5DA0DWCOtto4zQQC3q8pwR rONDvYB3+nz7i+Ye6YwwAaiZhWE/VS2y7hWQwNxm82cxH+QTNvugQtqhowd/9iN31Cjod8Vbb4C 5LD1HrWVmFDkevXmndiKwesq4cwBYwJZ0xzq+UnMCCxMLNo7lyqGvRXv60eqWb+HlATIHEJoGLE JqEaTFsIHFYtQWkiyzU/z9Cb7blm1tLHViCQ+4AGF2UJxnU6T95Y7WUnqJKk3FCNUkjUyclAuBt BI+cwWVPxGq4MCIDjO2hZEdfICSp/lm3BALONcKynm9YToWWaWcHXoFobnWSaVBR4v4ZP7DpQGC /FH82PUXcot7GhvQhz/+tUS9+9ALJjx5cOYFgisnqssrk239Q0euKD6B8hGY86KCL7Bxko2oDOj JLXLF2AyR2nqFbDEyYqijNQoeRs6YHYb+t2L0UDWasyw== X-Google-Smtp-Source: AGHT+IFh+5jaYZ8H9QYyCVf2+FyHofQ3p91R6Qj+AJh8dPTzh1+rjurln6VPtOL0H/XejsiFY3o/ew== X-Received: by 2002:a05:6000:2601:b0:42b:3d9d:c605 with SMTP id ffacd0b85a97d-42b5938f92fmr16878886f8f.49.1763541946355; Wed, 19 Nov 2025 00:45:46 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f0b894sm38132306f8f.26.2025.11.19.00.45.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 00:45:45 -0800 (PST) From: Neil Armstrong Date: Wed, 19 Nov 2025 09:45:41 +0100 Subject: [PATCH v7 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251119-topic-x1e80100-hdmi-v7-2-2bee0e66cc1b@linaro.org> References: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> In-Reply-To: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Xilin Wu , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Dmitry Baryshkov , Abel Vesa , Konrad Dybcio X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6719; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=LGyRbs3nEpd8TPaRuDnl3oNEOOnmR63dD5K+Fo1T0B8=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBpHYO2taghZb3+XQkAM4Jj92JhEwExoKfZzh355Qc8 4y/zf8KJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCaR2DtgAKCRB33NvayMhJ0RKvD/ 0Y63pvt6Ypito3i6X5PDB2pJtRv37J47mUFyaJkuodl0ACF9VzsqFBPgWBrkMjQUJQqU9vajIWpzF4 kT9SiourQmYWgewVivWXen+Xim6jT6kNE/O55OhYS2k160ur13cyjAmP522nQheVQIeaSzn3N3Sp9b 7FV0oGptS0aMFSULC8Ek6jPIhh65v3QcSx+wIAsA7A+vBNnEu3XGYBrBAtL24fIceMHmBYgyktCWjH RYtNH9PvHdrKXbdvC4zd3VH5euTnUWx2N9bbwtaC+xmLGt0hpy9K+PNdNRI2ur8J1GCW3E251qphIy J8nPEUz1gPPBp1AUwDpMspKDeI1e/+lZAROrWw6OzHCOuL7b2iKHauRbWqAM8NtGWA9nFyygP4PvGa 7K8LD0W2OyZyPuf2mwuBLQlWP7xaZJzbOQQxOPRchPxZcrM3u/ITkHQ+LKmbBjobewKD1TtgXVlu/R Y7jWMGtgCFlN9ApkfgpGDxCGxnSArs/Fdh/xcHKcRl+796X1ylB5ng9eI2/PZj/K7xNSRHD1oJaCda Qi/lSMPn0mY07bcPhYHznNOdB5uyKgDx/tPu32zQhdopxSYfSnXTQxhcgFnSxWMGUbQ9yuEqltf7Cu JArmqZEJMJ9pblsKgRFF/8f/EhOfjxSYWQktUCb0TQAfjcGX2Tn6N+wVpDRw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top of a combo glue to route either lanes to the 4 shared physical lanes. The routing of the lanes can be: - 2 DP + 2 USB3 - 4 DP - 2 USB3 Get the lanes mapping from DT and stop registering the USB-C muxes in favor of a static mode and orientation detemined by the lanes mapping. This allows supporting boards with direct connection of USB3 and DisplayPort lanes to the QMP Combo PHY lanes, not using the USB-C Altmode feature. Reviewed-by: Dmitry Baryshkov Tested-by: Xilin Wu # qcs6490-radxa-dragon-q6a Reviewed-by: Abel Vesa Reviewed-by: Konrad Dybcio Signed-off-by: Neil Armstrong --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 142 ++++++++++++++++++++++++++= ++-- 1 file changed, 134 insertions(+), 8 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index 7b5af30f1d02..18321f441baf 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1744,6 +1745,26 @@ static const u8 qmp_dp_v6_pre_emphasis_hbr_rbr[4][4]= =3D { { 0x22, 0xff, 0xff, 0xff } }; =20 +struct qmp_combo_lane_mapping { + unsigned int lanes_count; + enum typec_orientation orientation; + u32 lanes[4]; +}; + +static const struct qmp_combo_lane_mapping usb3_data_lanes[] =3D { + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }}, + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }}, +}; + +static const struct qmp_combo_lane_mapping dp_data_lanes[] =3D { + { 1, TYPEC_ORIENTATION_NORMAL, { 3 }}, + { 1, TYPEC_ORIENTATION_REVERSE, { 0 }}, + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }}, + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }}, + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }}, + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }}, +}; + struct qmp_combo; =20 struct qmp_combo_offsets { @@ -4117,6 +4138,84 @@ static struct phy *qmp_combo_phy_xlate(struct device= *dev, const struct of_phand return ERR_PTR(-EINVAL); } =20 +static void qmp_combo_find_lanes_orientation(const struct qmp_combo_lane_m= apping *mapping, + unsigned int mapping_count, + u32 *lanes, unsigned int lanes_count, + enum typec_orientation *orientation) +{ + int i; + + for (i =3D 0; i < mapping_count; i++) { + if (mapping[i].lanes_count !=3D lanes_count) + continue; + if (!memcmp(mapping[i].lanes, lanes, sizeof(u32) * lanes_count)) { + *orientation =3D mapping[i].orientation; + return; + } + } +} + +static int qmp_combo_get_dt_lanes_mapping(struct device *dev, unsigned int= endpoint, + u32 *data_lanes, unsigned int max, + unsigned int *count) +{ + struct device_node *ep __free(device_node) =3D NULL; + int ret; + + ep =3D of_graph_get_endpoint_by_regs(dev->of_node, 0, endpoint); + if (!ep) + return -EINVAL; + + ret =3D of_property_count_u32_elems(ep, "data-lanes"); + if (ret < 0) + return ret; + + *count =3D ret; + if (*count > max) + return -EINVAL; + + return of_property_read_u32_array(ep, "data-lanes", data_lanes, + min_t(unsigned int, *count, max)); +} + +static int qmp_combo_get_dt_dp_orientation(struct device *dev, + enum typec_orientation *orientation) +{ + unsigned int count; + u32 data_lanes[4]; + int ret; + + /* DP is described on the first endpoint of the first port */ + ret =3D qmp_combo_get_dt_lanes_mapping(dev, 0, data_lanes, 4, &count); + if (ret < 0) + return ret =3D=3D -EINVAL ? 0 : ret; + + /* Search for a match and only update orientation if found */ + qmp_combo_find_lanes_orientation(dp_data_lanes, ARRAY_SIZE(dp_data_lanes), + data_lanes, count, orientation); + + return 0; +} + +static int qmp_combo_get_dt_usb3_orientation(struct device *dev, + enum typec_orientation *orientation) +{ + unsigned int count; + u32 data_lanes[2]; + int ret; + + /* USB3 is described on the second endpoint of the first port */ + ret =3D qmp_combo_get_dt_lanes_mapping(dev, 1, data_lanes, 2, &count); + if (ret < 0) + return ret =3D=3D -EINVAL ? 0 : ret; + + /* Search for a match and only update orientation if found */ + qmp_combo_find_lanes_orientation(usb3_data_lanes, ARRAY_SIZE(usb3_data_la= nes), + data_lanes, count, orientation); + + return 0; +} + static int qmp_combo_probe(struct platform_device *pdev) { struct qmp_combo *qmp; @@ -4167,9 +4266,41 @@ static int qmp_combo_probe(struct platform_device *p= dev) if (ret) goto err_node_put; =20 - ret =3D qmp_combo_typec_register(qmp); - if (ret) - goto err_node_put; + qmp->qmpphy_mode =3D QMPPHY_MODE_USB3DP; + + if (of_property_present(dev->of_node, "mode-switch") || + of_property_present(dev->of_node, "orientation-switch")) { + ret =3D qmp_combo_typec_register(qmp); + if (ret) + goto err_node_put; + } else { + enum typec_orientation dp_orientation =3D TYPEC_ORIENTATION_NONE; + enum typec_orientation usb3_orientation =3D TYPEC_ORIENTATION_NONE; + + ret =3D qmp_combo_get_dt_dp_orientation(dev, &dp_orientation); + if (ret) + goto err_node_put; + + ret =3D qmp_combo_get_dt_usb3_orientation(dev, &usb3_orientation); + if (ret) + goto err_node_put; + + if (dp_orientation =3D=3D TYPEC_ORIENTATION_NONE && + usb3_orientation !=3D TYPEC_ORIENTATION_NONE) { + qmp->qmpphy_mode =3D QMPPHY_MODE_USB3_ONLY; + qmp->orientation =3D usb3_orientation; + } else if (usb3_orientation =3D=3D TYPEC_ORIENTATION_NONE && + dp_orientation !=3D TYPEC_ORIENTATION_NONE) { + qmp->qmpphy_mode =3D QMPPHY_MODE_DP_ONLY; + qmp->orientation =3D dp_orientation; + } else if (dp_orientation !=3D TYPEC_ORIENTATION_NONE && + dp_orientation =3D=3D usb3_orientation) { + qmp->qmpphy_mode =3D QMPPHY_MODE_USB3DP; + qmp->orientation =3D dp_orientation; + } else { + dev_warn(dev, "unable to determine orientation & mode from data-lanes"); + } + } =20 ret =3D drm_aux_bridge_register(dev); if (ret) @@ -4189,11 +4320,6 @@ static int qmp_combo_probe(struct platform_device *p= dev) if (ret) goto err_node_put; =20 - /* - * The hw default is USB3_ONLY, but USB3+DP mode lets us more easily - * check both sub-blocks' init tables for blunders at probe time. - */ - qmp->qmpphy_mode =3D QMPPHY_MODE_USB3DP; =20 qmp->usb_phy =3D devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops); if (IS_ERR(qmp->usb_phy)) { --=20 2.34.1 From nobody Tue Dec 2 02:33:26 2025 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32C592FC899 for ; Wed, 19 Nov 2025 08:45:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541951; cv=none; b=WK/AaPS7p8uQcRuelAV+z1xRaeGf3tiOcLlNBNCzaP1KzyiecoDgiqUXkeYV64Q5e3zKSbOniSxoD4MefYPETQI1J3SpT7e/iaU3T9x5d8CK7KdFCsEmTkPHJCxoVIqYhEvxvPL+mo5ZFNN2FmybKMQNcRypSKfyyZDb1bAsZwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541951; c=relaxed/simple; bh=EQkZbUbehBlz9QkQWwXWXJ+x8l8K74TOqrJoFoU/WoQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DrXMxMlBoPKvfft1KRrZOhZPdVAgOICg2W3p2+nwQqeYtarqWpKiZH9VOCUO4JzWEkO9yE6pbMvN3Ta951AgTVjihQiOtNX/fampFp1T+WqHqqAaX93hFHSnkzvF5ZM8zQxxo8X1pqCSy1ihnEg60KQZ/t2RItCQNEFFfjbrch8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=zGNQvaom; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="zGNQvaom" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-42b427cda88so4572559f8f.0 for ; Wed, 19 Nov 2025 00:45:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763541947; x=1764146747; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LE55M4P8STPGyma8aBzr9wec9I7bZaxdp9L/oczEJdM=; b=zGNQvaomSju7ZxcIHFS+3xqSxGXF3GG5/fCtveI35HdUrNyS16RV047c1buw1K9ynm aDLQW2vH61vop3h1TEO99xzOWwAFOquSJHffTxC+wkRE04kVLDnSnowzoxYg+d0X8LRJ 6za/SCHwM0RrUMK58KmI5+1eNSvn9FUiTDwZBvtmYFFrRMWrkAFEW2i6d5PWaAdcmria m1hwH24mXKERZYpaOgRF8vERsR+RuSP6vtL5X2wOm6Xi8c8UGhsuGEv4cjGWXChbRzx/ G8wPdVqLv+qL8tzNdlTdLoFOMW1ZhrhiAV1hnXwIuFc9Blw4Y0HSD8H7Z/femsLd22PN vNtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763541947; x=1764146747; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LE55M4P8STPGyma8aBzr9wec9I7bZaxdp9L/oczEJdM=; b=HoLE3S2nALIXYXR+Q93cmhr4F5w+d/NSZ94SL6if7Axm15m4XZnGRgtRXNBaErgNLt /Wz2lVdhjdsyzggDLaIkFLc5/6ruLXG3GYTurVRKS4EWssQo7TxYdocL/q9jvODtp8RI ElkMQtouVHQWGu91fyRhUsEo6aUAkgiE9V6zrUaKqt2ujSOQ9HCYbR5CSise4HFJ319w /u1YWvqIixiDEy9IAOoCC58OVU7IQOpEFHOw385NUgx+CdQ6aYEN2ZQShapBvMG47brk KpYP5znmS1KeaeoRzF0VPkvu/tSw56QGUJsQKOD0NG0K6iv99G+/puNqXY6GXNkbixmR 1/lg== X-Forwarded-Encrypted: i=1; AJvYcCXwIMLG8QRf+hY+IO7RAKk/oVEpGZaeWsh3lngGSGXXEy2FHynfgX7mkuO0FOm3d1vAxAC/JSGPyon5DQA=@vger.kernel.org X-Gm-Message-State: AOJu0YxZEVksTeXaPaDNUXYAiwcYHH+bMltKU/krQXcb8uSCjT7+xnFn MYBe3xDZlUWh6uo4QY7Fv5AA5BN2neV9z8FbTTzAbEW2TAIO3HCKDIPzGQ/yujT0HQU= X-Gm-Gg: ASbGncsQu0YZxt60Vnh9sJrfdm2KIFnCQmXUKp6QJu6JsfXjhYSrPh7QJGzWi9fwksQ 40QPe8KmWoaR8wg10gANsFQ2YAEk2V/mLAQIdexIx8Po5W7ktLHXQx4IL5jfRQbiYHbyPYf7fB3 brGvcHQZPfbm0muSHlJ8DN3md7zaGeXYZLX8lNLs7nFg2Hmmd3pg3/qA1eBN6hkf7rY0P6OMK3Q Njyr1i1hn4/hB8SH+eJANyqoNOxqN75tcKnXQ2E1DWBdZt2tnATjZxJzoAMz4zXcfGi/NFPWQRw DByDeF3OTHJKNYbytMr3w6YnPUe8d4rhiPNqoSN4rsMcMM1efCnWoGDs3mBMdEatzUgNoVcRHFj 4e5thr5vQj5i9X2SBY0Cyv7zStzAiBM2oEiW8O0PlvsrTppkCig6T0Y2zNmfndqywpMJtvGsiVE oxwrFbodv108IL4w9lb3xqzxumL4RMgRUMNhHcw1wjfQ== X-Google-Smtp-Source: AGHT+IHdNEtj9hjFbh81MqD+UqMxElphyOJVIxhh/nDOITHKKZy1D2pR8mgAzPWR6P3S/EYsB4vaRQ== X-Received: by 2002:a05:6000:4008:b0:429:c54d:8bd3 with SMTP id ffacd0b85a97d-42b59384951mr20115882f8f.53.1763541947302; Wed, 19 Nov 2025 00:45:47 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f0b894sm38132306f8f.26.2025.11.19.00.45.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 00:45:46 -0800 (PST) From: Neil Armstrong Date: Wed, 19 Nov 2025 09:45:42 +0100 Subject: [PATCH v7 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251119-topic-x1e80100-hdmi-v7-3-2bee0e66cc1b@linaro.org> References: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> In-Reply-To: <20251119-topic-x1e80100-hdmi-v7-0-2bee0e66cc1b@linaro.org> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Xilin Wu , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2991; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=EQkZbUbehBlz9QkQWwXWXJ+x8l8K74TOqrJoFoU/WoQ=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBpHYO3mRlyFCY2y0BUwQ9IwLf0oNuk+8Tqj1ybUEh0 qyU4SqSJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCaR2DtwAKCRB33NvayMhJ0anJD/ 4p0T2A2uDd0U4as/4N4EIjglgXQq+XBwwKEa7Ru3Yvjum9pzQjEzKozeTiO9PJWQLKYtvEGQm6x5VN FzG1fdYUJf5jpErnRnhSi6VPnu+wiayQ8QBM7bzhYCINTjTXLajqXZBoG75EfC+CdRoan/Obexvpgt fA/5gH+Y5jN77sM2zL48BT25RhGZ8E/lkUHNk1JWoAFB0KoJ1tYuzzg4lzgpAAfHlxECsbiX+Y0ndc vq4iW4EIVE0CUZydCJWLf3mroRJSKnYhhtOTb628q5C55wgCiUrXMFre1CsyVmpqoABk4LPCGZ8vQP KRDuxnGyoGZUnfvCDtP7si3KHRKDwGYT0hSfZNFuaUQBgQOaqBFEHrGSiRisrrhHl0oC2Izh3yWjxh +xdKplM5PNl9F0zbCdrR4+tWXeF3l9dYVq3s9Zgh4sxANz1yy3ukQJQ9I4ptZKmmHULKL7wEZzm7GZ Tgq4YiStBPduK7W9MrpB4DF0+wlwgVaDJi1pHRsQsfoXTYm3E+Bj3ieqoq4GjfH4R81hWhGHGQUrVL RCbAMgWjJILDHWEBwiUS+vT0m6s5NnUivfCJKEzzouVI5FZOtJTUV4Hoo4tEerFAcczFm0OZA8qXQZ GMEM52qg8QOvdi3/YFHwIvPhleV2M0FQrXLuB+HwA/UPEeFfZYfQLn/PbMhg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver connected to the third QMP Combo PHY 4 lanes. Add all the data routing, disable mode switching and specify the QMP Combo PHY should be in DP-Only mode to route the 4 lanes to the underlying DP phy. Reviewed-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov Signed-off-by: Neil Armstrong --- .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 81 ++++++++++++++++++= ++++ 1 file changed, 81 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/= arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi index 80ece9db875a..5009898313f4 100644 --- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi @@ -62,6 +62,45 @@ switch-lid { }; }; =20 + hdmi-bridge { + compatible =3D "realtek,rtd2171"; + + pinctrl-0 =3D <&hdmi_hpd_default>; + pinctrl-names =3D "default"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + hdmi_bridge_dp_in: endpoint { + remote-endpoint =3D <&usb_1_ss2_qmpphy_out_dp>; + }; + }; + + port@1 { + reg =3D <1>; + + hdmi_bridge_tmds_out: endpoint { + remote-endpoint =3D <&hdmi_con>; + }; + }; + }; + }; + + hdmi-connector { + compatible =3D "hdmi-connector"; + type =3D "a"; + + port { + hdmi_con: endpoint { + remote-endpoint =3D <&hdmi_bridge_tmds_out>; + }; + }; + }; + pmic-glink { compatible =3D "qcom,x1e80100-pmic-glink", "qcom,sm8550-pmic-glink", @@ -1028,6 +1067,14 @@ &mdss_dp1_out { link-frequencies =3D /bits/ 64 <1620000000 2700000000 5400000000 81000000= 00>; }; =20 +&mdss_dp2 { + status =3D "okay"; +}; + +&mdss_dp2_out { + link-frequencies =3D /bits/ 64 <1620000000 2700000000 5400000000 81000000= 00>; +}; + &mdss_dp3 { /delete-property/ #sound-dai-cells; =20 @@ -1317,6 +1364,12 @@ eusb6_reset_n: eusb6-reset-n-state { output-low; }; =20 + hdmi_hpd_default: hdmi-hpd-default-state { + pins =3D "gpio126"; + function =3D "usb2_dp"; + bias-disable; + }; + tpad_default: tpad-default-state { pins =3D "gpio3"; function =3D "gpio"; @@ -1548,6 +1601,34 @@ &usb_1_ss1_qmpphy_out { remote-endpoint =3D <&retimer_ss1_ss_in>; }; =20 +&usb_1_ss2_qmpphy { + vdda-phy-supply =3D <&vreg_l2j_1p2>; + vdda-pll-supply =3D <&vreg_l2d_0p9>; + + /delete-property/ mode-switch; + /delete-property/ orientation-switch; + + status =3D "okay"; + + ports { + port@0 { + #address-cells =3D <1>; + #size-cells =3D <0>; + + /delete-node/ endpoint; + + usb_1_ss2_qmpphy_out_dp: endpoint@0 { + reg =3D <0>; + + data-lanes =3D <3 2 1 0>; + remote-endpoint =3D <&hdmi_bridge_dp_in>; + }; + + /* No USB3 lanes connected */ + }; + }; +}; + &usb_2 { status =3D "okay"; }; --=20 2.34.1