From nobody Fri Jun 12 17:36:48 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 5A2353F410B for ; Wed, 13 May 2026 13:43:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778679804; cv=none; b=nIMx6bH9E++fegW3+QL6lkDiEjbyW2kK4iIx9/tt7V6uC1f4C1oesqDAhUYg1W4h24Ub3uqobAA8FK2WKUvFDfcbN2ps5i2zt3SUSKtTxRESwSTmFAEVL+0f7Yhvs41kJqFF8bGH4NE7ymRw6qv4sz6lyMSoeUyPOP+eeJpAR38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778679804; c=relaxed/simple; bh=tr2ESAIzJ6yhJ/0fE6tII3PLo1xmjUXum+LDUQzpEws=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=QuKILt7FWluQ+pl/5yuypWzmqMOz8cNaCs9XZmQPbuGHisXYVcFEF8UM/tFdysjxP32XHSb52LdrogiHSLKB4tRpnQtnrF39BrUWfgGZ51Nz0sLCDylgn397uksVobwAfz61Ysa1Q2uCXe36ow7FWQAJA/3ByJbsJQmXYtpnyDk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=Ih1ArHji; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="Ih1ArHji" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-488ff90d6c7so60841045e9.2 for ; Wed, 13 May 2026 06:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1778679802; x=1779284602; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=eW4+ZGhAwVH3SDz4zpFmqSn6d/etYAQ93M+0Gp+S2WE=; b=Ih1ArHjidedUPAqVslcV5PFokuwdWTzrnmGdSHPj/TyDCYephab/a0ErSv7aqlzhgS 1nFwmd0/e5bq3xpnHQpYPYxm1TuybITY1h3hngQStlFr5enavafmJpfeqTupEC9NyA2q kTTDSL5oz/EoWhYYeznahdIX6z4Yixv9/s/z7pl3nD4EAECE84hFZBBlkKdIBlutSQ5I vrN0TGM2NW3963zdL/upgNU2JUj9kUmSVdDN9xW0Gxcy4+FAkTU1tJVDW3gKNssr7ct1 V+c9NDMjnoEDzpEmhQV1DNxrNg9OoHPgZJPUOr7LIKHaSn5A0r52oso0OqJ1EKVt8h0Z R4wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778679802; x=1779284602; h=cc:to: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=eW4+ZGhAwVH3SDz4zpFmqSn6d/etYAQ93M+0Gp+S2WE=; b=qNYo9erNhKaiBvVmLLSwgn1t6uGHOO8tt61wElyKQUw4nnHg5tRSjfVIubmd9h6YDS kwDN9bT37w1R7IrpRdWtp0rx7dcykt/n2kZbVeWxnYjo4SYENetziGvgnPsz8W39m4dx vLNMmNZXV5Qgib40+3oSR9SpXZPVMiTbgjLlmqGoTD/PTeoDKMFVRQIiwwcXVTRmKapO YZsqGiaRz6yVFemMzowaOh1O6mgAuDUrW1mfuVagFXKfKfgmLdi3o8xNTvpOBtfNAbZU eXTUxz3+/5JJF/m7cziDTAhSufsx369fz/1mo2CpU5YUb2TBUbDPeDnj0ierK4X7w73f nuIA== X-Forwarded-Encrypted: i=1; AFNElJ8xQjOQr/dZ83lgTCietCHNprRm2arraKTWjLPjlcARC27M6pc71sj4kiHVBdI/oKvIf/b2CQmWRjLoQIs=@vger.kernel.org X-Gm-Message-State: AOJu0YxId72ieJq2l7LHJ6pg3wl9S4D0P3N7Rv2ld2LPIJIGcioWDIlI FRPomIkKYMEjeL8dV8eSrZgZ68RbfmmAcpwWBCdp0ZDsJK7QAxjhCefmBwwOxIHy6GY= X-Gm-Gg: Acq92OEzYMM5Q0e4pMFTb6A9nHehAilwCqejPLRqsLLXD3hoPRDzGmmkMRo8RLvUKy9 /ImBceNkmg7BMR1a5Kfx6cs1+d+BKhjpRk5u4+xzMB/EmLDMsrTV1iatWw1CYY2jXWAQ9gOUD8g HF79h+dDep2nY5xSWdG5fVxTGYePJvO+z9wywrGO5sQUioT9OTN0KFvhqE9rnk/P81vQKYbnlrE fbfTWDLgsSHgw9eqj2hDBVpWbpDC8lrrO6nvdaoWqPiiXltp83MW5mY9o0/ckpNnJ4qm/1k0UQ/ iNSoFFDkBfLjo6eo+RJAVjbknJ9JL5hhQV40EjEwmjk5CC81io1IcI1rDqg7dKC0EjVNgjgCSJ3 6SWVi3R9dFO3sb9apVKVL03bpVAxv59MB+LSncJ5xSxZd0/kDL0mzI27RX0WnSzzx7bmg1+M2Ip JgPy+oKGzUpBFC9+shmAN/26EGrtwVHfMoGEM9ZJcZv/QXi292ipmcPws37w3v/6BB2UMy/pcl6 Y46C6VR X-Received: by 2002:a05:600c:350f:b0:48e:8741:fd4c with SMTP id 5b1f17b1804b1-48fce9ead8fmr42055595e9.18.1778679801732; Wed, 13 May 2026 06:43:21 -0700 (PDT) Received: from alchark-surface.localdomain (bba-83-110-135-253.alshamil.net.ae. [83.110.135.253]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48fcdf6408bsm55887265e9.3.2026.05.13.06.43.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 06:43:21 -0700 (PDT) From: Alexey Charkov Date: Wed, 13 May 2026 17:43:16 +0400 Subject: [PATCH] usb: typec: tcpci: add DRM DP HPD bridge support 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: <20260513-tcpci-drm-bridge-v1-1-1467e770727d@flipper.net> X-B4-Tracking: v=1; b=H4sIAPN/BGoC/x2MywqAIBAAfyX2nKDZQ/qV6FDuVnvIYo0IpH9PO g7DTIJIwhShLxII3Rz5CBlMWYDfprCSYswMla5a3RirLn96Vii7moUxe3TorauxM0SQs1No4ed fDuP7fk97k6ViAAAA X-Change-ID: 20260513-tcpci-drm-bridge-d8dc384d71ee To: Heikki Krogerus , Greg Kroah-Hartman , Badhri Jagan Sridharan Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2339; i=alchark@flipper.net; h=from:subject:message-id; bh=tr2ESAIzJ6yhJ/0fE6tII3PLo1xmjUXum+LDUQzpEws=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWSx1H+PO/9mql+f3NmEfxvvhmU0rrC6kL1mC8u3Mv20R YpqJ44u6JjIwiDGxWAppsgy99sS26lGfLN2eXh8hZnDygQyRFqkgQEIWBj4chPzSo10jPRMtQ31 DI10jHWMGLg4BWCq93kx/M9OyIq48vv/opVthm98GK/s3MLl0emdrbPTJXz1B19tk4uMDLc32pn ztDCpPPvZH+uhrr3y9puiwmcl837bK2/dd0XzIh8A X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 Add support to use TCPCI based USB-C connectors with the DP AltMode helper code on devicetree based platforms. Signed-off-by: Alexey Charkov --- drivers/usb/typec/tcpm/Kconfig | 2 ++ drivers/usb/typec/tcpm/tcpci.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/usb/typec/tcpm/Kconfig b/drivers/usb/typec/tcpm/Kconfig index 00baa7503d45..53abde8ebef9 100644 --- a/drivers/usb/typec/tcpm/Kconfig +++ b/drivers/usb/typec/tcpm/Kconfig @@ -13,7 +13,9 @@ if TYPEC_TCPM =20 config TYPEC_TCPCI tristate "Type-C Port Controller Interface driver" + depends on DRM || DRM=3Dn depends on I2C + select DRM_AUX_HPD_BRIDGE if DRM_BRIDGE && OF select REGMAP_I2C help Type-C Port Controller driver for TCPCI-compliant controller. diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c index 0148b8f50412..e6cccbd377f7 100644 --- a/drivers/usb/typec/tcpm/tcpci.c +++ b/drivers/usb/typec/tcpm/tcpci.c @@ -5,6 +5,7 @@ * USB Type-C Port Controller Interface. */ =20 +#include #include #include #include @@ -837,6 +838,7 @@ static int tcpci_parse_config(struct tcpci *tcpci) =20 struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *d= ata) { + struct auxiliary_device *bridge_dev; struct tcpci *tcpci; int err; =20 @@ -889,12 +891,23 @@ struct tcpci *tcpci_register_port(struct device *dev,= struct tcpci_data *data) if (err < 0) return ERR_PTR(err); =20 + bridge_dev =3D devm_drm_dp_hpd_bridge_alloc(tcpci->dev, to_of_node(tcpci-= >tcpc.fwnode)); + if (IS_ERR(bridge_dev)) + return ERR_CAST(bridge_dev); + tcpci->port =3D tcpm_register_port(tcpci->dev, &tcpci->tcpc); if (IS_ERR(tcpci->port)) { fwnode_handle_put(tcpci->tcpc.fwnode); return ERR_CAST(tcpci->port); } =20 + err =3D devm_drm_dp_hpd_bridge_add(tcpci->dev, bridge_dev); + if (err < 0) { + tcpm_unregister_port(tcpci->port); + fwnode_handle_put(tcpci->tcpc.fwnode); + return ERR_PTR(err); + } + return tcpci; } EXPORT_SYMBOL_GPL(tcpci_register_port); --- base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83 change-id: 20260513-tcpci-drm-bridge-d8dc384d71ee Best regards, --=20 Alexey Charkov