]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/chrome: cros_ec_typec: Set Pin Assignment E in DP PORT VDO
authorBenson Leung <bleung@chromium.org>
Mon, 28 Apr 2025 17:48:28 +0000 (17:48 +0000)
committerTzung-Bi Shih <tzungbi@kernel.org>
Tue, 29 Apr 2025 02:49:50 +0000 (02:49 +0000)
Pin C and D are used on C-to-C cable applications including docks,
and for USB-C adapters that convert from DP over USB-C to other
video standards.

Pin Assignment E is intended to be used with adapter from USB-C to DP
plugs or receptacles.

All Chromebook USB-C DFPs support DisplayPort Alternate Mode as the DP
Source with support for all 3 pin assignments. Pin Assignment E is required
in order to support if the user attaches a Pin E C-to-DP cable.

Without this, the displayport.c alt mode driver will error out of
dp_altmode_probe with an -ENODEV, as it cannot find a compatible matching
pin assignment between the DFP_D and UFP_D.

Fixes: dbb3fc0ffa95 ("platform/chrome: cros_ec_typec: Displayport support")
Signed-off-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Jameson Thies <jthies@google.com>
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Link: https://lore.kernel.org/r/20250428174828.13939-1-bleung@chromium.org
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/platform/chrome/cros_ec_typec.c

index d2228720991ffef320497ac0abbac518b7752a96..7678e3d05fd36fb0548640063a6a4d73ae35594f 100644 (file)
 
 #define DRV_NAME "cros-ec-typec"
 
-#define DP_PORT_VDO    (DP_CONF_SET_PIN_ASSIGN(BIT(DP_PIN_ASSIGN_C) | BIT(DP_PIN_ASSIGN_D)) | \
-                               DP_CAP_DFP_D | DP_CAP_RECEPTACLE)
+#define DP_PORT_VDO    (DP_CAP_DFP_D | DP_CAP_RECEPTACLE | \
+                        DP_CONF_SET_PIN_ASSIGN(BIT(DP_PIN_ASSIGN_C) | \
+                                               BIT(DP_PIN_ASSIGN_D) | \
+                                               BIT(DP_PIN_ASSIGN_E)))
 
 static void cros_typec_role_switch_quirk(struct fwnode_handle *fwnode)
 {