From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 29AF13B14DA for ; Wed, 10 Jun 2026 08:41:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080885; cv=none; b=STfQAtFH8LYa03NiGThpGWUsGVkQcYd8bN5Feq06SMOOtroVGV/fzolS+vWEzjYIJvSzdJ0bGB5Q2B/3BP+/46mMdznUXq+OxC5dDKSaXhAv9u9tifVX10D1Ot5rorAwSwhhdlwXWhIhi2a/5O8cqYJiFGTUrh3DvPnR8pmvrD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080885; c=relaxed/simple; bh=DzZj1fIJIKJKGnQbn8uPuOz0dFp4PhGSgOkWpDGy4sE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l0nzYj5Wf+LqDkkbvGDSD3Wwa+M8hnW5E0ydYhpvrjW4tlAdLTDPl/k4SCW6+rqltlyAfmdfzSp5YUoVvOopbgXa6Pwd+4M7ZDU3jxP6QEU6HakNH1DQZAF/BRvXuD2R6sDw+nTbfRt3SzUH/wLoxFbrDGgRb16wqQOKo4PGX/g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=lSS5MGF/; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="lSS5MGF/" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2bf1f074a12so66329765ad.0 for ; Wed, 10 Jun 2026 01:41:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080883; x=1781685683; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FRsKkRuXXrcRjbvRngvMO9bdz13WA7D5wKB/6fXyEG0=; b=lSS5MGF/yeef+r+Jc1KoAYuYYIrl5M7mG84EXuWybuu36dzej+lYnrc+Dn/WXSyzfM 0K/uYQbMwKFYPFQV7Zkrs6agmfzcKI0fgNT5lVOwVwiznAbXbfczUcuzRX/TM5LoneHt vl5eQoNQCDq5JWIFYbpb2fogm/9j7l394sY/M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080883; x=1781685683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=FRsKkRuXXrcRjbvRngvMO9bdz13WA7D5wKB/6fXyEG0=; b=Cq8Jz/DJspzPanZhYVvODLQJsb+gMFMf5w9O9fNstO99RNqTsU/QZF1S7Ly9O8qV/+ wNlZB+8VOFMh8eQiaEQgQUHUNedWdHRQY97IdUTqPpuZsz/43fDCbTIQqFAGJ68aKI4I gTSJpZD/ORW+KkKOaha7870sqkczBUe0DaXk+M/AJNydP4xVEt5uqKD++tk7ioZxNhl1 7Y2iRJ8TfZupQLYz3I/2k434znrkslPqMgCu1Ia5VXMvNgYHFYPNus6mwAK07U7p/DnL +1eGnDyJCaJOSjOYtU/WVDp9yxBPI7TokL7NTb+lIa3CZzvCaBu4co3b2j0LEHUp3JLd 2Fww== X-Forwarded-Encrypted: i=1; AFNElJ/tD2XsxRAcIy9hEvpKtQFTyqwsIB3nH9zbskKtg3JhjmD5yQfgGVG0NDp3ar5WaMtHvpGiPYUHGVpG1Lg=@vger.kernel.org X-Gm-Message-State: AOJu0YwLqOGAAJGZH8XhHkTBhc+poRinFUiR9JcnqCoprely+Ji7NeqW qBxVbokxdzJvcwkpfFru6QHg9eGbXDth/DUlpiEtahU5wPejp0hf7yggU1wJ0OfP9w== X-Gm-Gg: Acq92OFpxQaAfLXdT0vmU+n8Tdxc4cslR0suYjvP93ZICasUlCAICOOnLtDeMiOWLLd V7BKnj9zArv6WcrUU+HMcsE/Rq/hRDHm0MJkxv2+bkdoMEpF4HsU0G74crwp3aVMQ7W+rjGmPy2 IllU+X99RYgELwa/dNGA6jE69dGmR5dgLUSCoIGnE4Imvy9lMOlT3D6VhI4/RGyH/rDdLt64EFZ 72m3HkCscf2ehpCmmXVfFSvw7azHfTZVu6ybqdrlKwkzBBNtjRDAxFFqSdA7hgWaJ+lyRomCa9+ ocf0CgtFB0kySuUi4wpyBfTH9/U/uut4gmBnZsvJzmI2ZTrop9m9n+aEZ1vxHqGiNk5LJtD+DhS RaTl3bzBcVm5ggDrVpB+CXak7eFbLfwJiz7m2yonIEdhAAWCnzO2ucLD9oRUXtpFCAXp15a9rpO k7KvfAboyp7i76VXpHRa4P8dX1pYWaGXWnq8QZBQVF32MA9M6qHSYTtIHU7azMk+5F/yMa8eknY YXxPKC24ScpVqaRSQ== X-Received: by 2002:a17:903:3b8b:b0:2bf:114b:924 with SMTP id d9443c01a7336-2c1e85ca6b6mr285765545ad.34.1781080883374; Wed, 10 Jun 2026 01:41:23 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:23 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 01/16] device property: Add fwnode_graph_get_port_by_id() Date: Wed, 10 Jun 2026 16:40:35 +0800 Message-ID: <20260610084053.2059858-2-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In some cases the driver needs a reference to the port firmware node. Once such case is the upcoming USB power sequencing integration. The USB hub port is tied to the corresponding port firmware node if it exists. Provide a helper for this. Signed-off-by: Chen-Yu Tsai Reviewed-by: Andy Shevchenko Reviewed-by: Bartosz Golaszewski --- drivers/base/property.c | 22 ++++++++++++++++++++++ include/linux/property.h | 1 + 2 files changed, 23 insertions(+) diff --git a/drivers/base/property.c b/drivers/base/property.c index 9387bb83eb54..a2afd854a604 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1346,6 +1346,28 @@ int fwnode_graph_parse_endpoint(const struct fwnode_= handle *fwnode, } EXPORT_SYMBOL(fwnode_graph_parse_endpoint); =20 +/** + * fwnode_graph_get_port_by_id - get the port matching a given id + * @fwnode: parent fwnode_handle containing the graph + * @id: id of the port + * + * Return: A 'port' firmware node pointer with refcount incremented. + * + * The caller is responsible for calling fwnode_handle_put() on the return= ed + * fwnode pointer. + */ +struct fwnode_handle *fwnode_graph_get_port_by_id(struct fwnode_handle *fw= node, u32 id) +{ + struct fwnode_handle *ep; + + ep =3D fwnode_graph_get_endpoint_by_id(fwnode, id, 0, FWNODE_GRAPH_ENDPOI= NT_NEXT); + if (!ep) + return NULL; + + return fwnode_get_next_parent(ep); +} +EXPORT_SYMBOL_GPL(fwnode_graph_get_port_by_id); + const void *device_get_match_data(const struct device *dev) { return fwnode_call_ptr_op(dev_fwnode(dev), device_get_match_data, dev); diff --git a/include/linux/property.h b/include/linux/property.h index e30ef23a9af3..11f3b54c7de0 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -499,6 +499,7 @@ int fwnode_get_phy_mode(const struct fwnode_handle *fwn= ode); =20 void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index); =20 +struct fwnode_handle *fwnode_graph_get_port_by_id(struct fwnode_handle *fw= node, u32 id); struct fwnode_handle *fwnode_graph_get_next_endpoint( const struct fwnode_handle *fwnode, struct fwnode_handle *prev); struct fwnode_handle * --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 96C833B42F0 for ; Wed, 10 Jun 2026 08:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080890; cv=none; b=FsbWs2PRoYwG/p7eIirZm4/zmogFZsD/Pw4L3j8Ey3dPRxsiXBpDxzMywa0grtHerhh1ThNLHfafi4UT1pUgJ1+fuxtqNvHh5yMpWMHp0lCFuo9bUNJtxKmEw2kgulMHPy8iasiJkXNbU4Scka676Gs3e6acj4nwtXOqG91H7ls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080890; c=relaxed/simple; bh=kGHE6+HJMR5imhLKMaKrAxWZPafgyUmm3WFusAEShNk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mhPENNXuypjansd7zAuTMoeut/kBPrnz0S9xyV2PM1RzeWdrdbMYvPsAbSssq8wFnuj+tOCo6nR2s04KFNFnEV9DnqRkjcrXU0e2tl/W21nB2XfVHTibXzWisokvBdre1VXxtkztk2+Jr9L2Iq9eNFN9z3KLyNtlIm25+1ukcC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=UeNZamHz; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="UeNZamHz" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2bf114b0cf9so59287055ad.2 for ; Wed, 10 Jun 2026 01:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080888; x=1781685688; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e6pTgkTdjphaP4G6StNKBNkGmsxmuRCJqaledSqIiFY=; b=UeNZamHzBpxIDD55A/EpwJn4VeIt196/YcqEaOqVYM09w3muTzoBxBOKqKvPp6POCC eNVk6BBUujs6WDSOg0wl1x19Pft9XwIwjGDZYxXqQhJaGS2hZnLtnhMnmXuQvCmj0G+R 4LHFquxEOnD4063odNEqmxWl+8B3g3n3036cM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080888; x=1781685688; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=e6pTgkTdjphaP4G6StNKBNkGmsxmuRCJqaledSqIiFY=; b=blU6PJNZwIkwjmMhE7zHJh+BThAHBWAg5Ghl84RpinVfW7RUrMYofCppK2W/kHx7xg U1zlE+BrMmlfn72UhfFOQb/HANrQJB9V4t9iNzaY8KBx2ggBtqi4GVe9n4xKwl8yXC47 vWSw523DFQJ2V4uNoPXMk51hAOb8K0lgWN1d8PO51QzUoH/tMU48+4hcWK3kEjZjcIiA mtIiPX4N+Qf/HOXOptpR7Hr7KCsZa3FweahHuIfPtsLK3tIZgoZAKRhNZxHMFCPdbDJk L9b9IwTVQFYI6z4RZsgzin9eIoKOXcjiIJYAb6HAzr3HCMcQ+kJ0+EwlDI5bMjxYvsIx +TfA== X-Forwarded-Encrypted: i=1; AFNElJ+oAl1Zk5DDkXQhdYQ9lLvB/cBj+ujJGILr8p3x6w6TJcC7niphSjxrWDdc73zpbcN6Ee/F+8zxb/6erXQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzIdHvUNbfGtBEzXwS7TmwGQyfKH/nfPserZUGrzlPsExIqqH2R EsQTjGSroTYpRmqKlwUYXhwfZsmEbiF43lEKvax0Osc6oHQ42Lypb77rLJhfA3GISA== X-Gm-Gg: Acq92OGtpPXdjkHIidEttbdM/Wo3pZQDWhEGBKPWLOjaBFhD9Tjx1wWCXlrxuLmuzkx EF7zqC6Kp5VbesXIKMAjaTDR7c+ZSJdPR1x1INokW9pEgR7B2FGy/5RC5zRYjZJyssM3mBc5Y/E 7IGJXmW9pY+3y9rv1+hTtna+L7Qg1gdXe+HTrVM1g+D7ux/IQ0mrwDyp1MB06RqvbEcmxGChyQV SO9UimQeeTpzmMUwfNTWwdN6znEMDC5djA6gufZt9FMDNyhO+VQLhue5qF0x68Ti+EvTAjzMWOe JMIOgj3YCHfp+/Ve1it0dohidVmu1BHqyFhKKrdUnInmrk7JNAzIBuVGfj0eHnFVtap/126RecZ o62OplCZdn9AhDwjeql7LjMivkRlaWQFChEGJ6AJnLr/Vfh3kcpTddYM7FwoRB3jrj4uwWaH0h+ NgEItoJ6fbx75Ha5sSka3dO1LS7pSwuQtzyWhTJgDi+9p+YJ/H1x3WWASr5spyqozBbs3rwyIxW yvN3ANYw6ML4jdSYQ== X-Received: by 2002:a17:902:ce8f:b0:2c0:cb0e:ac42 with SMTP id d9443c01a7336-2c1e80f9d2bmr271193835ad.3.1781080887890; Wed, 10 Jun 2026 01:41:27 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:27 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 02/16] device property: Add fwnode_graph_get_next_port_endpoint() Date: Wed, 10 Jun 2026 16:40:36 +0800 Message-ID: <20260610084053.2059858-3-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Due to design constraints of the power sequencing API, the consumer must first be sure that the other side is actually a provider, or it will continually get -EPROBE_DEFER when requesting the power sequencing descriptor. In the upcoming USB power sequencing integration, the USB hub driver first needs to check whether a graph connection exists, and whether the other side of the connection is a supported connector type. The USB port is tied to a "port" firmware node, and this new helper will be used to get the endpoint under the known "port" firmware node. Signed-off-by: Chen-Yu Tsai --- drivers/base/property.c | 33 +++++++++++++++++++++++++++++++++ include/linux/property.h | 2 ++ 2 files changed, 35 insertions(+) diff --git a/drivers/base/property.c b/drivers/base/property.c index a2afd854a604..cf14f9b0a3e0 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1099,6 +1099,39 @@ int fwnode_irq_get_byname(const struct fwnode_handle= *fwnode, const char *name) } EXPORT_SYMBOL(fwnode_irq_get_byname); =20 +/** + * fwnode_graph_get_next_port_endpoint - Get next endpoint firmware node i= n port + * @port: Pointer to the target port firmware node + * @prev: Previous endpoint node or %NULL to get the first + * + * The caller is responsible for calling fwnode_handle_put() on the return= ed + * fwnode pointer. Note that this function also puts a reference to @prev + * unconditionally. + * + * Return: an endpoint firmware node pointer or %NULL if no more endpoints + * are available. + */ +struct fwnode_handle *fwnode_graph_get_next_port_endpoint(const struct fwn= ode_handle *port, + struct fwnode_handle *prev) +{ + struct fwnode_handle *ep; + + while (1) { + prev =3D fwnode_get_next_child_node(port, prev); + if (!prev) + break; + + if (WARN(!fwnode_name_eq(prev, "endpoint"), + "non endpoint node is used (%pfw)", prev)) + continue; + + break; + } + + return prev; +} +EXPORT_SYMBOL_GPL(fwnode_graph_get_next_port_endpoint); + /** * fwnode_graph_get_next_endpoint - Get next endpoint firmware node * @fwnode: Pointer to the parent firmware node diff --git a/include/linux/property.h b/include/linux/property.h index 11f3b54c7de0..2e744c6f251d 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -500,6 +500,8 @@ int fwnode_get_phy_mode(const struct fwnode_handle *fwn= ode); void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index); =20 struct fwnode_handle *fwnode_graph_get_port_by_id(struct fwnode_handle *fw= node, u32 id); +struct fwnode_handle *fwnode_graph_get_next_port_endpoint( + const struct fwnode_handle *port, struct fwnode_handle *prev); struct fwnode_handle *fwnode_graph_get_next_endpoint( const struct fwnode_handle *fwnode, struct fwnode_handle *prev); struct fwnode_handle * --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 03DE23B4E9F for ; Wed, 10 Jun 2026 08:41:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080894; cv=none; b=hSr8qpfJsOreQB+JAgEUVzYcduT9S3gH6r5YEghl1Zx+BzZDilJXuNhHHa6jeJAh/rFxpR8+gaCmUC/s++iuWkg4L/JABZgw8Lbl02CpexrfVCPlGZRiNsecUeXvtZuTIJReOh6QKxXppnAE3XfrW3SuYsw9UkBs+zrq0S0qZL8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080894; c=relaxed/simple; bh=sAi0MURaPjHAXe7GjHIr2vzfcZt5+QnjAoJMj8LuBqw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CpfwtCjm2xE02V2OTI6U+vns0ZgvmgIZvSSBXnZnsme5GFi4JGtkv1H09xreC8IzjNNOXpr4vaKmEOMKmeOEruExgo00vbz9f392TWkoPRspAzH7tdETM1JKLOILIrf9fK3CgHu7TcL4JuwcNXDN53rPcmUov6PZh7r0UlflvCY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=WUVjfzI8; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="WUVjfzI8" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2c0b9328c4aso45090625ad.0 for ; Wed, 10 Jun 2026 01:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080892; x=1781685692; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dDEOB4zDGGA532YGopw6vfAouEtuG7p7cdbO9K1VfZ0=; b=WUVjfzI82etRAabNHQ6HbAxofP3BN440TN41o5OswepdmNA8IVuahtLZUskHeFe+o/ axAbywQs3Mf+ku4DOxzed2TnCrSoOZY5yy8S2xiVd0LtTfG70YB5KO73ZwqsVA6qC+h+ YP/HsFEWVAeCYU/AfFm+fdP4tOJSRyX/fjSUY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080892; x=1781685692; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dDEOB4zDGGA532YGopw6vfAouEtuG7p7cdbO9K1VfZ0=; b=b9YuYLhqYNuK8jJgyCISTzGsMgkAx8dp8dyN/oGMxc/CjFUxVp5wS+WTr1auvqbnBS ufVcrIW43H+51cHn9Mhz/YPt+hvNG9y02aBmBAim+dMPQanxMrNH8JWkvRe/5c06u+iO VKgOu6PiNRsyd0TBCnhJZ9mEJIEB66q/NmEivsUgx7aqv9ut6IJk38AWqbq7jDDA+l2/ sWv/yytmQmKr3Z20opBcH0ixSe9VR3+cD6raAdrVTekMhk8ZqPjIwD7VQQyYdLPJ8tLl OpzowS0TBm3Ec2stJrfMy1j5Y3RB4beXDQvtqV7/fkMulFCasBEDM0iQgkmvUvokqVXn ndGQ== X-Forwarded-Encrypted: i=1; AFNElJ8JckCzDew87Of5gq+wAFNUHQ4okemmaKRzT1JodnEYJ8Cv5z4XeC2JbKZ168WvsgJmewt7qWrBbWyHpEA=@vger.kernel.org X-Gm-Message-State: AOJu0YzvdRCItdcBBDU8hnWMpieS6Mon157gHiOFqtc+dlyleAG98RsI tBfWgWFZWcaIQCQbeBrLkVTFknkLp1LjFUUSRs28ohnI4lI4C69b54oSrfZe/L1zmg== X-Gm-Gg: Acq92OFkkEi1wuROiZR2AXFiGgjfiPVdr32LVqvL2/ACjqXCkG65fpSwVr7bn6UKbj7 WMzMIjBrMjGvhnkhSE9GTKgsO1gPPp5EdNp9mNtdixbEuqFJgAmy/chcNdzpMBUbJjSv5JuUrIc hyQ1oqt7k5wCeC9HUJG46gO++mqZf8N4WnZpnJBsZB5dATENZRySHVsMYaWtmcGhq7EhVlP7kdX 0th988prLTcxqVO2s7sfRBA3t+gUldG50K3NcSTOpnIMJGU2VvxpBGBQOciEAuNmD3Z/Zc6yl5P tArTXrQSJg0AhqPloIt4NvIAfR4sJBzxENfgTWIwGXwHNofStdLvmFRhKckhcjeWntFhBFERiHY Shsq37A/Fnx8e/GV+om6QkonaQ9lLiiUmb+L39L1QrsDr2m3YiRrQvvt/UP1yrvul7YFUzrFTlb SSB9UFpDsgs3ZziPHueuyAq6Ot7phAbWFkID2lEIbW2ROTRF35rt37BFVHaFmWs6tsDQOBbH0pp 8nB/DN9Tin6JcG7SA== X-Received: by 2002:a17:902:e74a:b0:2c1:8fea:4dbf with SMTP id d9443c01a7336-2c2a1bafeb4mr79293415ad.8.1781080892355; Wed, 10 Jun 2026 01:41:32 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:31 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 03/16] power: sequencing: Change CONFIG_POWER_SEQUENCING to bool Date: Wed, 10 Jun 2026 16:40:37 +0800 Message-ID: <20260610084053.2059858-4-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" USB support, including the core and hub driver, is bool, no modules. To be able to use the power sequencing API in the USB core, the former must also be bool to avoid the latter being built as a module. Change CONFIG_POWER_SEQUENCING to bool. Signed-off-by: Chen-Yu Tsai --- drivers/power/sequencing/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kc= onfig index 1c5f5820f5b7..27448fba9dc5 100644 --- a/drivers/power/sequencing/Kconfig +++ b/drivers/power/sequencing/Kconfig @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only =20 menuconfig POWER_SEQUENCING - tristate "Power Sequencing support" + bool "Power Sequencing support" help Say Y here to enable the Power Sequencing subsystem. =20 --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 56BDB3B7749 for ; Wed, 10 Jun 2026 08:41:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080898; cv=none; b=u1k1ewEx3haaQhMeyeWoEiVXfJ0H8lsQzPZrRZIyRsVFmUw1ZYYawOZ9xDXIDBCEKoNPiT3efo8XuoeAKRA7mi0tjiOS1tcpan3uoIebxeu1Zh709b+4ofcw/3gxx+LyAruLu1gxkgYDvYXYT0ineGZISNpdJ8C4Fm7apw3q78E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080898; c=relaxed/simple; bh=dvbeJqgKk8hUMtZra0MzuL9+2wvRJGQPlU81QUpycmg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wya+TDpFCjIxgVVjBxmmfcyjRPrqGI0WsxRETtl0yoExo6EbQbM/Xgn0mcV6Uwyvz2fbQ5tfdTfpd/YReNwYuhI3xtJbsFnB8TMyny5/HHn55heBkCS/OGkCH8TRfPUmanx/ufTTwBKMi/yUUTLlzAhgDNCBl0yl/BtheSnh/yc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=gbCpAOZa; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="gbCpAOZa" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2c0c2d8b95bso46757285ad.1 for ; Wed, 10 Jun 2026 01:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080897; x=1781685697; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BYYX9NwLUP4rFqvakVHrp1Kb1i3tLTyqtPoxV/1lOfk=; b=gbCpAOZafVE1nUDkx9SBxpXTSKWMK82rT6v0O4aMSDK/X8AYw8G7b/nccSXabAwHQM egzySzhhb2E01MkyANJm3Qqmkk2jxMTx0Vj4kWFtmK1pCGJM6fxNaufCfyZetOo3MzB2 NgGL21H9wSden0o3JGVHmDG955Apr3VE+qQ8A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080897; x=1781685697; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BYYX9NwLUP4rFqvakVHrp1Kb1i3tLTyqtPoxV/1lOfk=; b=ZCA76SojGgEvISjFkZBaQNKglLgSJYzwOXG2AFSOvMTXYb2FEgb4G46CcQFltAU9s7 ihs4uvrB635aK37/8J5/U5hwVOnAXqgXiArVQ0VrdlIuyPLGGYwiR3pf/+8ebpI2QZj/ KTCrgw4kvUQWrl9I7Dpq3l86dpY4Pyw7l7RdmHE7furyXX9BgAaAz+Odgmz1XDyqQ+92 Rz+3UqsTzvl/wut9lfwjyHnbSUf9l69oUpuz41KoevyVc3duFDbtkOrMaxMska/rFtgx sGAm4bxy8HqSfK7pyCXIGl8ARY1H7IPFRnbr4b/eeyEDqvzHsqcEoJaYuya3mM4gaXoR T7MQ== X-Forwarded-Encrypted: i=1; AFNElJ/Ryde6GxVnl9Iz8cokyVHIXuvwBOkBFM+7BMotZVZDanoF9kVZKFQNV4e7bt//Y/xSFSjjMzl8oaGYjQw=@vger.kernel.org X-Gm-Message-State: AOJu0YwsXqyaPzudi/gf6AkNuZTVwD05imkVnAHWxHSezG+M8aT+WnBe /T8+0m3yWa+Q9203NrO0TLCfq65cU+ZqDPzuqIYMsaayKzciIw/AQjqEporIJohPVg== X-Gm-Gg: Acq92OGsT+gs0H8xNXi2FcqSgH1a0fA5mSbgRrWi4ANerboMJhidiEvYTsulm15PO/h +8K/hB55nev4788nAtdo5cinRpf3PKT6UbqGBg7NEtsNTpgonHyoSxZNyXQtWIfPzPPj5fD0BjW tBD7AJR3EvJ38/S6dEU8AHlM3WiDywRh8Dyc+RRdqB/Al8fGlEAskjALzuEewgGD97j4Eah7lxW 9P9vHGcBGXT7rmDxWmkKl2o6mUS7X5vRzJAhi17zSfJKgPWa104O5VAvn+xJzaKH0rA6bJWEcDO NYxkeVt6RgzBG5v7XT2+EOHlOJbFbGYe9GxWDbBgR4J+VQUYOjO+lqPSW80AktEvBmWm0aKxib/ zBiMDgfBFDILNtTiSBcYOOLRX8fWttVrMunQkpIOaGd+7+49QAqCRSlBOI0zVpICi/ET+lzJxPk 5qFD4chxNstpr0O0lwg9OO8MAABGTxr9Cde+6fFM4bwfBgv0icOkFx5vb5w75uFT+QbV0dmnwdX Z3S2g4iY96AT4jzHg== X-Received: by 2002:a17:903:1205:b0:2c0:e5ee:f55e with SMTP id d9443c01a7336-2c1e80f9b57mr283573295ad.7.1781080896672; Wed, 10 Jun 2026 01:41:36 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:36 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 04/16] usb: hub: Return actual error from hub_configure() in hub_probe() Date: Wed, 10 Jun 2026 16:40:38 +0800 Message-ID: <20260610084053.2059858-5-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The addition of power sequencing descriptor handling in the USB hub code requires dealing with deferred probing from pwrseq_get(). The power sequencing provider may not yet be available when the USB hub probes. Return the actual error code from hub_configure() when it fails, so that the driver core can notice the deferred probe request. Signed-off-by: Chen-Yu Tsai Reviewed-by: Andy Shevchenko Reviewed-by: Bartosz Golaszewski --- Changes since v1: - Moved "int ret" declaration in hub_configure() over here from the next patch --- drivers/usb/core/hub.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 13264e86bc6d..985551d013b2 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1874,6 +1874,7 @@ static int hub_probe(struct usb_interface *intf, cons= t struct usb_device_id *id) struct usb_host_interface *desc; struct usb_device *hdev; struct usb_hub *hub; + int ret; =20 desc =3D intf->cur_altsetting; hdev =3D interface_to_usbdev(intf); @@ -2005,14 +2006,15 @@ static int hub_probe(struct usb_interface *intf, co= nst struct usb_device_id *id) usb_set_interface(hdev, 0, 0); } =20 - if (hub_configure(hub, &desc->endpoint[0].desc) >=3D 0) { + ret =3D hub_configure(hub, &desc->endpoint[0].desc); + if (ret >=3D 0) { onboard_dev_create_pdevs(hdev, &hub->onboard_devs); =20 return 0; } =20 hub_disconnect(intf); - return -ENODEV; + return ret; } =20 static int --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 C174E3BB13F for ; Wed, 10 Jun 2026 08:41:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080904; cv=none; b=iNiqNqTg/LvQcGGxfBej6QpSko0pqZm5sPMu/IVZsJTr5l2PJrzmJvKCxTDtnSp3YYAsiwwEY+zQIcXf2L+zdcF5eNSe2vWmXyMs28OE90utljiNyyOV2NeC46jOMGlsMl/QPUiQhjYdQpdomeid/qaWwvddXddWys4nNWZPUes= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080904; c=relaxed/simple; bh=R0+Z0BHMYu5U4Yu7kD4UWXq+2W/gGTv98A8HYveuJQY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IPmsjt18X+4JShLdiIntpVt0Q+W8Bt3w93ceWnjidyzAEHP6UbFQ5Y0V1+pCOUGlk7tPE703CzKwL+/FlxP/DDdKk4MfrVmG/gDFN4+6XXK/YKxmGRFtpk9tj5HyWBDBExGrZOAx7yrJLa5v4oHD7EYbGfj2krzuyWpvhhrcwgc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=JdLVyMAl; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="JdLVyMAl" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2c0c3315c5dso67894995ad.3 for ; Wed, 10 Jun 2026 01:41:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080901; x=1781685701; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DTomCA2OQTIcAcWrVI1pDKUJSWSpTuGc9xeNsAJVzUg=; b=JdLVyMAlePWYtAxi75yrYHjcBr7CvOeRurE6HQUnMcRhS8UHz39OpP7Y1/KqNYZ0eg RtsVZhfCveetdt872SVd/CBQpeKjt3/3R8w3aH/P9iORfAKXhu1I8J7GdMk14LJBRPn6 eZL469YAH3n7fwc4egkD0faL7QMz+9tawR0eg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080901; x=1781685701; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DTomCA2OQTIcAcWrVI1pDKUJSWSpTuGc9xeNsAJVzUg=; b=Li0JXw4oVOEKlhbmCwd9W5wHA9h7rRfdN55/P2A8/pmBcimgAyHcP3tGTya+1CfZ8q /mXwSl7QIazvBWjUSsORZ2jbrBVvlQV+WK88f9ldQW2UwfPCcAiooOnz9A1DfbL9ZpMB LMyEctLef03sb7fP/eZaiR40DRgEIL4g3153Y6ux8Lg95ST71vLuadEzAoJs1JmREHfU TeDVYTTS50HeQL/Z1syOhGTpi1210O6kH48AQYZszk1sVGZvE+BwtSzoqxgYsgck+4Zg vtPJ12mX7bIrP+s2TWMjrVaSfnDYb9W8jxRUG1fRbIXfCO6g/sl574X7sWTg3rniIdyf /N/w== X-Forwarded-Encrypted: i=1; AFNElJ8Y546A077XkcUdMSC22FTXNgGCRqqIXQbH/IHGy+dqJOjbqhCO72UetovJqhoVUYmI6VqRppuYryg8Xho=@vger.kernel.org X-Gm-Message-State: AOJu0YxXgnyxfn4HfuvxU75o4H8IJZ2piN+P1nZMGH7FIV8Ih7bMXupn 78grHrrwCLJmfytQKu+oz4c2zRn39ogd3koxKEdwpnuF0F2mnoFZXWuWhHiGaNsGCA== X-Gm-Gg: Acq92OGYHE0zNI9x4I6DZa32L1JD1x0EuB7sX4pfEkyJMGgNsv2gUFHizx8VK79GOA7 8GvyuPV9mIpqIrUDIelU/kHk6XObz/dAgH6iczKNNJCQZ+5eglCxUDSl9qEpCF6St6ezngKrFRw M9dQDAZf+KtQTWADY0Fb+FK53GQR58MSp90VNxNwAQlUdfPbpdLlnRFGFZMtwQgYsl8syuuNyWv dSsY44SOQukvpEu8OqWOKljdGbwyfFX+tVry1RQXS7k54THUAQw+8hMM7AfivKwSlxeTqFQlfQR 1yUGfU2KHgGV4bBrIU8SaLJzmdOj5IVqwo8Ic9W+A/O7AvI4S7SLBEGjsxW0vzMVJOvClSs8Xto FcqC68Kc3qIfxK8spU8BH8SGS+yhr1Gh6IvPBA+ttV1YcQu1h3C7qC8jSI9/5cUdZLewtuXEIpp 2lOpVrmkDENDp3GFjcfD8cSkY2hYD6wFpI1kLhtpZJk9B8k1WO4yVgcgzJkbNNL5LiItEWMVjod 90Va6qKkCe4WDvbTA== X-Received: by 2002:a17:903:46cf:b0:2c0:d91d:c3e8 with SMTP id d9443c01a7336-2c1e80cd78emr274569985ad.4.1781080901116; Wed, 10 Jun 2026 01:41:41 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:40 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 05/16] usb: hub: Associate port@ fwnode with USB port device Date: Wed, 10 Jun 2026 16:40:39 +0800 Message-ID: <20260610084053.2059858-6-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When a USB hub port is connected to a connector in a firmware node graph, the port itself has a node in the graph. Associate the port's firmware node with the USB port's device, usb_port::dev. This is used in later changes for the M.2 slot power sequencing provider to match against the requesting port. Signed-off-by: Chen-Yu Tsai --- drivers/usb/core/port.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index b1364f0c384c..1846eb1206a4 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -780,6 +780,8 @@ int usb_hub_create_port_device(struct usb_hub *hub, int= port1) port_dev->dev.driver =3D &usb_port_driver; dev_set_name(&port_dev->dev, "%s-port%d", dev_name(&hub->hdev->dev), port1); + device_set_node(&port_dev->dev, + fwnode_graph_get_port_by_id(dev_fwnode(&hdev->dev), port1)); mutex_init(&port_dev->status_lock); retval =3D device_register(&port_dev->dev); if (retval) { --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 508733BCD00 for ; Wed, 10 Jun 2026 08:41:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080907; cv=none; b=lzCr08oanFixV08Cp1ROQcDVNgrop7TJtCcL/HVy+uzglzLSTyNDmSbZK3YSAgLD8aA+zRaax+VQTyJCAzTRXyT4GPggpDol3xkIFs1xS4Q0DW1weW52CDKqzDAe3IoIta97oUp8Cnfi5H9DXwGQrEKS/ylRzeGybpynSIaYcnU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080907; c=relaxed/simple; bh=o+U0+uxpLyICxN5cZBssxYj1c0o7a0rN3El8ggjYj7g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Feeh5T7iZ6UxHhXze13dba3rv7JdBrG0THjoqXjnBngoJzPA9eK+kKJ+WoFAaaT8Woo5t3DsTpMMYv8M0ajuMjmhkVq07XH+qTcChhxEzLG9aEbQsgyYVVekNdnH7zWcudNBxYmjuDL8QibqkVizqWQXlzMmDr+gQu7jH03YtXg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=cT8dSw3U; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="cT8dSw3U" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2bf30d530bdso65049335ad.3 for ; Wed, 10 Jun 2026 01:41:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080906; x=1781685706; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dxbS167RBZec05UVkxkxFcWU26xTYm3kEJbXHA80P7M=; b=cT8dSw3UPuQEnG91F/kDI316aw4KpjqtJK0a2/3rjkFEB7607ESy0LFl/kZyUcaFh8 UqBLxXBHGLgx+WAvhu4g8GXixLwvdBRiwFf8qqoaRYa1kz1XddRUCQB4+ynlC+LN0TT7 TOMVzfdx3SGuh88zhSF67OO485QvF6QIIwVRE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080906; x=1781685706; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dxbS167RBZec05UVkxkxFcWU26xTYm3kEJbXHA80P7M=; b=sSkPph7+uOBbgDjgVGmhWxBU7beqW4Jthia3/S404YZCdEHAQqymyUOzkns0JXBJ43 2jrh/49KAxRMHawgiK0jWAGYoKXyk6NQzUjA2tTbGY6PVePogzGhpbx664Tid/kcZxcr zMqLVHgGqxYLhCqmT5FKFyxpQp8ALfDgvKVFa1xnWPFao8z9AhJkh/8vDfNra9I2pxUK NfLPXiQcZcXhtUSp3PISbdIoPMFoDqE7CYld2g8GrOOKxt3qVIdKRtp04QtAZ5I5d0wT A8rpmsUv5Z6+GnpCdlizqXWluVcjiIcNeBMXZ6qKfTmWj9XkEV68ddNa6Cqbn1p+i+xO FvPw== X-Forwarded-Encrypted: i=1; AFNElJ9zLBxR7FfPbZ5CbtrXxAYjP00uW3/X5JBBMVYqfdetD33o8z3SatFMn/a/8Cphs7rUhZrc6Wd/Tsk/l1I=@vger.kernel.org X-Gm-Message-State: AOJu0YxSCkBy4wgxuaQzha0W534MuLqpufNFNt1esFqyetonqd8STtMO YqX7XZAhFNjRTp0scUZY7OGawMcTkx5DuBw3oRdtV/vPPWUtqLjqsGynE4o5NixRwA== X-Gm-Gg: Acq92OE6gD2xYOD9B7j1epQimq50/3wInPnGsmDCErfLaz/iffrpHY3WR09V5c9IsFm Fb29kSZgdymUUnc0fsPWNrPeoWDN2Dr+4eo8yvxJkpkb2oasFa052BFDsLG82XLOahSEcq1VKI3 Ulu3TSWmKEOO7t0JicgDswkvwWRIRKvjNqTLHBlIdUE+TbMRp49XT+5tcfRPURlQtgxs6r+5mbU D51bFMq2flKXK8I9XMSEkOPh3KBDJ3zs8hSKICHuISWZexIbAV1dI9FPiG0xsBQazHBoY9CwsLe +uUQhwsQE2I5NVuxmCuTwew2xdMIcc00YVNO9cCrPCGz8w5pYcPY4kxPI6/JCWLdye9+DURKyCI TQKfFx7OLSH165/94/K9PitkeEpcUYNe0nKLA01vFBsJCHo72jX8wzuz4CRPcPtkP+CsYxWimZL am/0bP+WxlkYAJE95v7zRUUAatHo2E6nA53JUtHi69y5W+yTpW9abGkPzgVjKssMpgHlfsY3/Br ay77Tjk8ji/PfZP7w== X-Received: by 2002:a17:903:f8b:b0:2c1:4d9:c8db with SMTP id d9443c01a7336-2c1e836dfe1mr288494565ad.37.1781080905536; Wed, 10 Jun 2026 01:41:45 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:45 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 06/16] usb: hub: Pass |struct usb_port*| to usb_port_is_power_on() Date: Wed, 10 Jun 2026 16:40:40 +0800 Message-ID: <20260610084053.2059858-7-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" usb_port_is_power_on() currently takes |struct usb_hub*|, but only needs it to tell if the hub/port is SuperSpeed or not. In a subsequent change, usb_port_is_power_on() needs access to a pwrseq state tracking field in |struct usb_port|. Either structure can be used to identify whether a port/hub is SuperSpeed or not, as the field in |struct usb_port| is inherited from the hub: port->is_superspeed =3D hub_is_superspeed(hub) Replace usb_port_is_power_on()'s |struct usb_hub*| parameter with |struct usb_port*| so a subsequent change can use it. Signed-off-by: Chen-Yu Tsai Reviewed-by: Bartosz Golaszewski --- drivers/usb/core/hub.c | 11 ++++++----- drivers/usb/core/hub.h | 2 +- drivers/usb/core/port.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 985551d013b2..362a10f7eddb 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -3240,11 +3240,11 @@ static bool hub_port_stop_enumerate(struct usb_hub = *hub, int port1, int retries) } =20 /* Check if a port is power on */ -int usb_port_is_power_on(struct usb_hub *hub, unsigned int portstatus) +int usb_port_is_power_on(struct usb_port *port, unsigned int portstatus) { int ret =3D 0; =20 - if (hub_is_superspeed(hub->hdev)) { + if (port->is_superspeed) { if (portstatus & USB_SS_PORT_STAT_POWER) ret =3D 1; } else { @@ -3306,7 +3306,7 @@ static int check_port_resume_type(struct usb_device *= udev, } /* Is the device still present? */ else if (status || port_is_suspended(hub, portstatus) || - !usb_port_is_power_on(hub, portstatus)) { + !usb_port_is_power_on(port_dev, portstatus)) { if (status >=3D 0) status =3D -ENODEV; } else if (!(portstatus & USB_PORT_STAT_CONNECTION)) { @@ -3748,12 +3748,13 @@ static int wait_for_connected(struct usb_device *ud= ev, struct usb_hub *hub, int port1, u16 *portchange, u16 *portstatus) { + struct usb_port *port_dev =3D hub->ports[port1 - 1]; int status =3D 0, delay_ms =3D 0; =20 while (delay_ms < 2000) { if (status || *portstatus & USB_PORT_STAT_CONNECTION) break; - if (!usb_port_is_power_on(hub, *portstatus)) { + if (!usb_port_is_power_on(port_dev, *portstatus)) { status =3D -ENODEV; break; } @@ -5449,7 +5450,7 @@ static void hub_port_connect(struct usb_hub *hub, int= port1, u16 portstatus, * but only if the port isn't owned by someone else. */ if (hub_is_port_power_switchable(hub) - && !usb_port_is_power_on(hub, portstatus) + && !usb_port_is_power_on(port_dev, portstatus) && !port_dev->port_owner) set_port_feature(hdev, port1, USB_PORT_FEAT_POWER); =20 diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index 9ebc5ef54a32..b65d9192379d 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -138,7 +138,7 @@ extern int usb_clear_port_feature(struct usb_device *hd= ev, int port1, int feature); extern int usb_hub_port_status(struct usb_hub *hub, int port1, u16 *status, u16 *change); -extern int usb_port_is_power_on(struct usb_hub *hub, unsigned int portstat= us); +extern int usb_port_is_power_on(struct usb_port *port, unsigned int portst= atus); =20 static inline bool hub_is_port_power_switchable(struct usb_hub *hub) { diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index 1846eb1206a4..d9d3e2bb8f25 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -97,7 +97,7 @@ static ssize_t disable_show(struct device *dev, } =20 usb_hub_port_status(hub, port1, &portstatus, &unused); - disabled =3D !usb_port_is_power_on(hub, portstatus); + disabled =3D !usb_port_is_power_on(port_dev, portstatus); =20 out_hdev_lock: usb_unlock_device(hdev); --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 C08923BFE4D for ; Wed, 10 Jun 2026 08:41:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080912; cv=none; b=GnuggA2MFBnzqbPuF63tpzByIkUxSGaFHCFMPqpVWzQHyxPvEjPF+NN0H/1GCcHP1VnSu6ddn6D8/ymomBSoZi2e5qfjbkgZ1GgaslBQcED7WV0ooRBoQJMvnIJPXHij9Br+PCUcwJc07nyYQ6edwC8wsRw8i2fKuTyRr7oQzxM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080912; c=relaxed/simple; bh=9IxWt67FJD4ge0bs+7dN0++lZmMTF0rc92xrk5vzrkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aIEj5aAqrxoiDQFr7AsjYR0kUlJH32twTaZ04/sVTpCXl3mtwCssh2nEhXmPlbx+UM8ibBbUHSlvun+ChMCbVSw7bT6pV5bhVj4TGLbGgdyIBL1QO7sWLcR7YuTLZkQFTLjvUHlpH1ylbOH1EEW2iwyfW16/9+zAWoafL17vIYU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=CeixQl7B; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="CeixQl7B" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2c132ac5ec2so64199385ad.1 for ; Wed, 10 Jun 2026 01:41:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080910; x=1781685710; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eseKVDbNwZEFjkR24/rAvFca/zD9edxu6DZlNEbgmLQ=; b=CeixQl7B9RsKBBwg/3C3t1pkx4ASNpvP4PlxGXVBWn3GKZuHmv3801wLOkDRLu5Fxl pJ+sJtjxeTedhDrXPUNj8YrWsY2mHTdL67nSuBke2aNoROtPvquIrzxCvFxQBn1Ej4VV pF10XIS5ZrrSlTT2lq/g1K5hM8Qi6mRhQ1jLo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080910; x=1781685710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eseKVDbNwZEFjkR24/rAvFca/zD9edxu6DZlNEbgmLQ=; b=jNp/WXzqfxnxP2lX6gV335akir/lmRFZBNF+dHUWAy2+/5vf6XIXmuAN5//JW/pcml NtD+nFGI/1UdyM1CnV9BcS92aMOHuyavEUsTr/mcauCwbvSvo5uBotaLPjHfoP3tfGdW YFiDLfrkEbhj7TDkAHM5nv6BrIVuckLI9oslTF52GNGn6USrhWQ++niXUysWNZ9Tt0NG 9oY1IaN6b22pORIxWVl2mAQEcUkWEvSnz0b1414ULkUTjBUz73Vv1b38MJurub7NVanH L/bnAHCMvhcxAyq4Jml1gyv9RRwk0SQmxazFyDh6dhH0f7c92k0mmpIlpJX4mOiY0lts Hy0A== X-Forwarded-Encrypted: i=1; AFNElJ/dt025zftr4aRhtSRod8X0lFUFyASjpUmPKAmYnaPmfX7nILFJesEqyp3EZ7aqvUIKLR8OCRZbTDPZ2UQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yybosktsh2G+e4bkw8xDQzQ+DuT6OBOoHzYKKm0lNZIPTSg8ngk 8cPTBGz94hNxQT/2roKFr5EeXoSlJpT/TLkUozgW4ZZlsXAOmLdcMLfZpJyJRJcOCA== X-Gm-Gg: Acq92OEd1sREqwhaXoX+Hqcpl8jhek7IUB3mV1R1+ujA8MPXWSSkSIu8lqFrxfyIAGA 5ePXnNpKMZy8yna/yaq2hRSeG0M+FzubxI61ckiocwkGkf498J9ehjx17W9nKS0+HnQAIuYFdNa 6S/M/qdFuUoZsxOhBgaRhMrQez7udHsCnLNtuy5hTW6P/F8fqnEV6olEi0oqI2Mlnw/40hGPJu8 IV0T4IcLoTAF8tU8Ajgb1sgHQUUo8mCNXJPjWZtKtqTIRureXkQgXUn9hwwRIlNyFfogqaM41EK xlLw2PLcmZeMGoaLTc9IZcBj9hMQNMn+WXfNx4QGDhJyja36zXaYwl0L96fsOYDBibn2rRTxq2T CU2SP9RKeETMS9Cmze5uYoa+vy9NbDv2/X/EaGf0PxXspSDgB1V5/5E4VDF+HtAEGQ5/5py5ztE qn7E/93FckKsfvziIHykcx3l4IEYhmuvSxnaThR/P21lu4UHC4+K9E/Tcb3z+Ir8aZGp6ncOc9E 45K74idQlfgqWUk2g== X-Received: by 2002:a17:903:28e:b0:2c0:bff4:96a7 with SMTP id d9443c01a7336-2c1e7e55653mr253761215ad.12.1781080910066; Wed, 10 Jun 2026 01:41:50 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:49 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 07/16] usb: hub: Power on connected M.2 E-key connectors Date: Wed, 10 Jun 2026 16:40:41 +0800 Message-ID: <20260610084053.2059858-8-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The new M.2 E-key connector can have a USB connection. For the USB device on this connector to work, its power must be enabled and the W_DISABLE2# signal deasserted. The connector driver handles this and provides a toggle over the power sequencing API. This feature currently only supports a directly connected (no mux in between) M.2 E-key connector. Existing USB connector types are not covered. The USB A connector was recently added to the onboard devices driver. USB B connectors have historically been managed by the USB gadget or dual-role device controller drivers. USB C connectors are handled by TCPM drivers. The power sequencing API does not know whether a power sequence provider is not needed or not available yet, so we only request it for connectors that we know need it, which at this time is just the E-key connector. On the USB side, the port firmware node (if present) is tied to the usb_port device. This device is used to acquire the power sequencing descriptor. This allows the provider to tell the different ports on one hub apart. This feature is not implemented in the onboard USB devices driver. The power sequencing API expects the consumer device to make the request, but there is no device node to instantiate a platform device to tie the driver to. The connector is not a child node of the USB host or hub, and the graph connection is from a USB port to the connector. And the connector itself already has a driver. Power sequencing is not directly enabled in the connector driver as that would completely decouple the timing of it from the USB subsystem. It would not be possible for the USB subsystem to toggle the power for a power cycle or to disable the port. This change depends on another change to make the power sequencing framework bool instead of tristate. The USB core and hub driver are bool, so if the power sequencing framework is built as a module, the kernel will fail to link. Signed-off-by: Chen-Yu Tsai --- Changes since v1: - Switch to fwnode instead of OF - Tie port@ fwnode to usb_port device - Move remote node compatible checking to separate helper - Use usb_port device to request power sequencing descriptor - Drop "index" parameter from pwrseq_get() - Do not get pwrseq descriptor for SuperSpeed port; share one for one physical port - Add pwrseq state tracking --- drivers/usb/core/hub.c | 38 ++++++++++++++++++++--- drivers/usb/core/hub.h | 4 +++ drivers/usb/core/port.c | 68 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 6 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 362a10f7eddb..9a9eb7e3e1fd 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -32,6 +32,7 @@ #include #include #include +#include #include =20 #include @@ -886,20 +887,41 @@ static void hub_tt_work(struct work_struct *work) int usb_hub_set_port_power(struct usb_device *hdev, struct usb_hub *hub, int port1, bool set) { - int ret; + struct usb_port *pwrseq_port =3D hub->ports[port1 - 1]; + int ret =3D 0; + + /* non-SuperSpeed USB port holds pwrseq descriptor reference. */ + if (hub->ports[port1 - 1]->is_superspeed && hub->ports[port1 - 1]->peer) + pwrseq_port =3D hub->ports[port1 - 1]->peer; + + if (set && !pwrseq_port->pwrseq_on) + ret =3D pwrseq_power_on(pwrseq_port->pwrseq); + else if (!set && pwrseq_port->pwrseq_on) + ret =3D pwrseq_power_off(pwrseq_port->pwrseq); + if (ret) + return ret; =20 if (set) ret =3D set_port_feature(hdev, port1, USB_PORT_FEAT_POWER); else ret =3D usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_POWER); =20 - if (ret) + if (ret) { + if (set && !pwrseq_port->pwrseq_on) + pwrseq_power_off(pwrseq_port->pwrseq); + else if (!set && pwrseq_port->pwrseq_on) + pwrseq_power_on(pwrseq_port->pwrseq); return ret; + } =20 - if (set) + if (set) { set_bit(port1, hub->power_bits); - else + pwrseq_port->pwrseq_on =3D 1; + } else { clear_bit(port1, hub->power_bits); + pwrseq_port->pwrseq_on =3D 0; + } + return 0; } =20 @@ -3252,7 +3274,13 @@ int usb_port_is_power_on(struct usb_port *port, unsi= gned int portstatus) ret =3D 1; } =20 - return ret; + if (port->is_superspeed && port->peer) + port =3D port->peer; + + if (!port->pwrseq) + return ret; + + return ret && port->pwrseq_on; } =20 static void usb_lock_port(struct usb_port *port_dev) diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index b65d9192379d..a2ac91726c61 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -85,6 +85,7 @@ struct usb_hub { * @port_owner: port's owner * @peer: related usb2 and usb3 ports (share the same connector) * @connector: USB Type-C connector + * @pwrseq: power sequencing descriptor for the port * @req: default pm qos request for hubs without port power control * @connect_type: port's connect type * @state: device state of the usb device attached to the port @@ -97,6 +98,7 @@ struct usb_hub { * @usb3_lpm_u2_permit: whether USB3 U2 LPM is permitted. * @early_stop: whether port initialization will be stopped earlier. * @ignore_event: whether events of the port are ignored. + * @pwrseq_on: whether power sequencing is turned on. */ struct usb_port { struct usb_device *child; @@ -104,6 +106,7 @@ struct usb_port { struct usb_dev_state *port_owner; struct usb_port *peer; struct typec_connector *connector; + struct pwrseq_desc *pwrseq; struct dev_pm_qos_request *req; enum usb_port_connect_type connect_type; enum usb_device_state state; @@ -118,6 +121,7 @@ struct usb_port { unsigned int is_superspeed:1; unsigned int usb3_lpm_u1_permit:1; unsigned int usb3_lpm_u2_permit:1; + unsigned int pwrseq_on:1; }; =20 #define to_usb_port(_dev) \ diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index d9d3e2bb8f25..a5e7fbf4aa6e 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -7,11 +7,14 @@ * Author: Lan Tianyu */ =20 +#include #include #include #include #include #include +#include +#include #include #include =20 @@ -28,6 +31,9 @@ static bool usb_port_allow_power_off(struct usb_device *h= dev, if (hub_is_port_power_switchable(hub)) return true; =20 + if (port_dev->pwrseq) + return true; + if (!IS_ENABLED(CONFIG_ACPI)) return false; =20 @@ -748,6 +754,43 @@ static const struct component_ops connector_ops =3D { .unbind =3D connector_unbind, }; =20 +static bool port_pwrseq_is_supported(struct usb_port *port_dev) +{ + struct device *dev =3D &port_dev->dev; + struct fwnode_handle *port =3D dev->fwnode; + struct fwnode_handle *ep __free(fwnode_handle) =3D + fwnode_graph_get_next_port_endpoint(port, NULL); + if (!ep) + return false; + + struct fwnode_handle *remote __free(fwnode_handle) =3D + fwnode_graph_get_remote_port_parent(ep); + if (!remote) + return false; + + if (!fwnode_device_is_compatible(remote, "pcie-m2-e-connector")) { + dev_dbg(dev, "remote endpoint %pfw is not a supported connector", remote= ); + return false; + } + + return true; +} + +static struct pwrseq_desc *usb_hub_port_pwrseq_get(struct usb_port *port_d= ev) +{ + if (!IS_ENABLED(CONFIG_POWER_SEQUENCING)) + return NULL; + + /* A physical port should only have one pwrseq reference. */ + if (port_dev->is_superspeed) + return NULL; + + if (!port_pwrseq_is_supported(port_dev)) + return NULL; + + return pwrseq_get(&port_dev->dev, "usb"); +} + int usb_hub_create_port_device(struct usb_hub *hub, int port1) { struct usb_port *port_dev; @@ -803,10 +846,25 @@ int usb_hub_create_port_device(struct usb_hub *hub, i= nt port1) goto err_put_kn; } =20 + port_dev->pwrseq =3D usb_hub_port_pwrseq_get(port_dev); + if (IS_ERR(port_dev->pwrseq)) { + retval =3D PTR_ERR(port_dev->pwrseq); + dev_err_probe(&port_dev->dev, retval, + "failed to get power sequencing descriptor\n"); + goto err_put_kn; + } + + retval =3D pwrseq_power_on(port_dev->pwrseq); + if (retval) { + dev_err_probe(&port_dev->dev, retval, "failed to enable power\n"); + goto err_put_pwrseq; + } + port_dev->pwrseq_on =3D 1; + retval =3D component_add(&port_dev->dev, &connector_ops); if (retval) { dev_warn(&port_dev->dev, "failed to add component\n"); - goto err_put_kn; + goto err_pwrseq_off; } =20 find_and_link_peer(hub, port1); @@ -844,6 +902,11 @@ int usb_hub_create_port_device(struct usb_hub *hub, in= t port1) } return 0; =20 +err_pwrseq_off: + if (port_dev->pwrseq_on) + pwrseq_power_off(port_dev->pwrseq); +err_put_pwrseq: + pwrseq_put(port_dev->pwrseq); err_put_kn: sysfs_put(port_dev->state_kn); err_unregister: @@ -860,6 +923,9 @@ void usb_hub_remove_port_device(struct usb_hub *hub, in= t port1) peer =3D port_dev->peer; if (peer) unlink_peers(port_dev, peer); + if (port_dev->pwrseq_on) + pwrseq_power_off(port_dev->pwrseq); + pwrseq_put(port_dev->pwrseq); component_del(&port_dev->dev, &connector_ops); sysfs_put(port_dev->state_kn); device_unregister(&port_dev->dev); --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 08E283C10A1 for ; Wed, 10 Jun 2026 08:41:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080916; cv=none; b=aZ8wVAoR72CslQ7V+qzhylqd71BitU4igHme3rVzaWSygwrC7CfV64Nb8o9a/MKqx0zHh57BaGruhIuEw/8mU79lM1tSKjKU2Yrby3e1kuiO+K5pMnkS1nn1pXhiB8rY95NLGeC+SNGsuYfCbvuSADcwJNreVlJ1BrJc75gM/UA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080916; c=relaxed/simple; bh=Pm31+hL6qrgMtRuUHHiRRIlqVHF08y0dXaprDA+L5Vk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JstpVGFqa0RmhmwZqhtSMJcH+I/JiquaH1HUm+ZhPX3KQbsyh2CNmH8KaLcIATjh6ZsEUMKzLEpbH4etB8p1OLPisZbuDphOD/F3XxyHNJ9BqkkQrbEfysIxKK80lBt0gcEddoDJVjIGPoH8/rES1gHGluJGbSK3lhIWpdShxMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=e0MJTeSt; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="e0MJTeSt" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2c0c1e0d00bso62700505ad.0 for ; Wed, 10 Jun 2026 01:41:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080914; x=1781685714; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YnO3yRdxbnlh4RjwbvilfqRxY8jsmsz+8SVoyh3JZE0=; b=e0MJTeStxs1K2v8xXr5iAdoAKYw/aTID2+7aH4ULJdHr+jUKUekXK5kky8CbD6UHi0 bMz0yD1cO2yESHa1YBfh3dgbhXbqMHo/2nXSoifuqWxOV2YF2eu/6o32l4RWcRMnMDGA eLyjaKLHw2StxBFiPS79XDLPHezB2oMVMK3Mc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080914; x=1781685714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YnO3yRdxbnlh4RjwbvilfqRxY8jsmsz+8SVoyh3JZE0=; b=rTBAmgw82PQc7t+XJofIzaIVi9in8644TxehI5WSwD58Fm2GiFKP9DpSgh+F8/al4s z64LpYrpuguANQqstQxJi4DLqDcNqUg8QWF9hlz4ukXlrSnHAkxOw+O4aQBn8t7vqSpv Zezi+3ERd8wc8tcsbHsRsiMJzeFReceSASowv9LIl011sM9ki2PVrwdz/lmZ5Dzeg86u 7MjEXX2dU4Hz+lDPzI424YFj4wSmFyPYfkgjZJ6vVJZf4/ZrMbZv7D70QJv9VpNmVb4q 38CIrV9IqbYaeqBnU1uunv90G87m2khg5Uo7f9O0DJp1zD3YuwLMDaBAp1Kky677kc5W nl/A== X-Forwarded-Encrypted: i=1; AFNElJ/NEgVhFdEY/wxALkfXHdXBsyroXqMTrRaknrgXSkzazQgAW+BSo6xMdm56hYjMdUJ380poZ+tDT6O3gsM=@vger.kernel.org X-Gm-Message-State: AOJu0YyoWwcRVfPIpEifEgG6yFqCfxPFnY4z43ttV8nvEEUHJfTkdzIO wG7W5C1k4hQslfTUh9xAEI+gpBsXsks7FbqRZrtDchU8ArIYjCGcno00lR3zb2anwQ== X-Gm-Gg: Acq92OH6Tr5JQ7dMAzr3B7KLAhW8K/KKPVS8idTg1hMg4WfprDAExLP/pNxepSmM8CQ B248fZVuJEcvjB/DqnE+ohv/JalynsiYszkZEtvXyFQ8XDmlm6ksjxAftvHxbLOLTtAJ32l6oS0 27gVhQ9Auc0/EavCQDNaUcfptqO2EmEyJpnQjDoLPTWdVngX62LUoFNb/qgDfE+t6kMU2c88Q11 f8okFatkc1tQK+1ondXPU0ekar5gnmMKEDkvuYyHFYyxsOLPUAxC8WEamMcVmidA0ZPVaraTQ3N kDftpoquwQDVAiTNyzWPyISh3MtwnixwzeBzYvGqRozGVgCLJWaNja1yUnXyIKytr0Gc7+6ILBU xjfXjg75G62pM+/O7EHcBh9bJmJbbyvtQ+VlGVHR9fWqLlxgJO7/vrtb1w4aKNdpYCBLPUR+nkh tHhzSGdlnb6WETWNZr6sAyNVneSIXaOD7f9g18pSh3VuGuQk6iPm5vAzxCiQ9fg10BcR9BTmnbB NmMUndGqvIszpLH5w== X-Received: by 2002:a17:902:da8b:b0:2bf:2e06:2ebf with SMTP id d9443c01a7336-2c1e85ac571mr292987545ad.31.1781080914415; Wed, 10 Jun 2026 01:41:54 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:54 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 08/16] Revert "dt-bindings: usb: mediatek,mtk-xhci: Add port for SuperSpeed EP" Date: Wed, 10 Jun 2026 16:40:42 +0800 Message-ID: <20260610084053.2059858-9-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This reverts commit 454a1e3cd36c113341d7b71e8e691c6e47ab4a8a. mtk-xhci handles both USB 2.0 High Speed (HS) and USB 3.x SuperSpeed (SS) host connections. And there are USB 2.0 only mtk-xhci blocks. The SSUSB controller handles the device or gadget mode. Saying that SSUSB handles the HS portion is wrong. Fixes: 454a1e3cd36c ("dt-bindings: usb: mediatek,mtk-xhci: Add port for Sup= erSpeed EP") Cc: AngeloGioacchino Del Regno Signed-off-by: Chen-Yu Tsai Reviewed-by: Bartosz Golaszewski --- Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml b= /Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml index 231e6f35a986..75ecce3bdc7a 100644 --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml @@ -107,10 +107,6 @@ properties: - description: USB3/SS(P) PHY - description: USB2/HS PHY =20 - port: - $ref: /schemas/graph.yaml#/properties/port - description: Super Speed (SS) Output endpoint to a Type-C connector - vusb33-supply: description: Regulator of USB AVDD3.3v =20 --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 46EF93AFAED for ; Wed, 10 Jun 2026 08:41:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080920; cv=none; b=XWK7hVZLasePWtCPvhjoJYBFkajXl5ohSi0A8yLQqjT67U3BlcXOS7XMg9Gp44JlDKX+pnW45UjA0PbLqTqcv7wod9wvtUUJUkdnKp2UnWZhYWW4MY1JROzrSdWYwNK09da39jbd8hQVBuuopGB73Enb5mQwRxe3VqnQ3kj8RYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080920; c=relaxed/simple; bh=K4CbRZICEvXlvZnsotKBa841gnqFgA+6O9aKcbgn718=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DrVv7VWKlaTYq3/qY6hAQ9pGKxIejsARJHaQYsbVS0nTq3tqYQo8C+ihBaz5ySq6OeyZnNoKS4ye7JhcW+lIYiRcrpGNRqO2Xr+8mfgfw2RyD5zx0gM/IChkPQEED9dUUtwN+/APtetTMCsi07cRznSSy6S9JP6yLCnB7Ni05Sk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=oU9OHa4q; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="oU9OHa4q" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2bf22d29dabso43398745ad.2 for ; Wed, 10 Jun 2026 01:41:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080919; x=1781685719; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9ie5n/VZ8V7UrahMrX/rnRRNTfb3tFqqez2pnqYi7Q4=; b=oU9OHa4qwepub7JawaNuseJsLw8+JEKpBAUataCn6hqsatICp9JYzO1zwduBlLWBoF JLG4dIiQ1ER2t0IRzTq4VoAJJCDAtHujaHIzL7U+Jxi+8mYIbWyzwBOtPDy2Zaabv5HN 3183s6JrqtLAsmqy/UQB826fjUCfbOz/DZi8M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080919; x=1781685719; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9ie5n/VZ8V7UrahMrX/rnRRNTfb3tFqqez2pnqYi7Q4=; b=rnCDgnBhuAG2l5R+i0TIuosWJiIVBbEK5ua1LWpvpYSDH44rtm0a/sTVuSxX1CsL+Y gZrhlTwsE7Ujt5MFh3zPZIJ9al6Y+OJ8vqUjlFETl5sI4DJ7bAivJsTrjtZ2pk1Rhy/d 2Rtz4aBccK9f5Y8Lwp70oZlJZSQN1kUS6qhlbyp97qMesY9bKf6s2MqO6GO6IUpHbwLe k/OFVg1zybDyI+zVfpzBltQxgnAhFK1+TLIrX7eSEMpB6RxXWvYRogDIVL6sPtIjUTS4 lDtDI22wYFtJZYuhDoV+xY9oWu9O/SJj7qZXhLj181kMEqt4oDymy4SCrC6J9UGn4Ig8 2mCw== X-Forwarded-Encrypted: i=1; AFNElJ8Fad7mUTT0/7K+Dd6R7c9XLo6JHmgaQQ7FBqMS5/Vi4nxeUBuZLMUEctiNRTAnasSnJukU95KIY06wB4g=@vger.kernel.org X-Gm-Message-State: AOJu0YzrJVaMeBa47ylnEtQ11pabz4dmGzsmzr1uAKkR/Pq753zTOmDu /XkEBreulAcRl/+RcLALl3m0sYfHGSffblGK/VcXIm9ntT6FKRalyd12WaOWcrbx9g== X-Gm-Gg: Acq92OFr1pW3p1a6ZT8W0Z1plN5y7TTI/94czRDJqdBe3n9IYL8VhNAhbetNl779nkv GC95z6k7iwh7vcPJtzKUZj9RQ+buvgW1dJ2TuD/yt1BKE7DK5D+mc0qb4MZLHsQWfkp7gM4gseL 1qmLdg8ehSZ4J68NqScAfD4W4D1SbUOktYjdnwWMFOkBovhL5tObnaAmMss0etkXC10ELiHJ6Nc F+rbPXnjqedc/zmeRxRMPi0xKdFNdKjkIw925VqHSiNOP3HbjRGl2eJnbTgo4BdZsoTJZXvQZRh l6yZPtsIACZzpMy9GP5JH5xY337trmsihlBfiFMxC9VFQQnCa1sxGntfhlCoHujzq1AwBaL6DJn pqikhQzQKZd6mny6m2vmMxRwNcBlXNRZjv010m6LpQLLw0m3sn6B/l3FDw15+8U3mhyiKTyUPog MoX3jfunNx+mGHiMJRivDa9iHMWWXF0ikYCSp5dnfc1z0lWAtIhnl31X+W5xYQTCvRt4ISqQ/YW vsgM/FiNffwRVzx/6KrlvRuE6Vz X-Received: by 2002:a17:903:3bc5:b0:2bf:2015:5b94 with SMTP id d9443c01a7336-2c2a1bafec0mr80534305ad.3.1781080918758; Wed, 10 Jun 2026 01:41:58 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:41:58 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 09/16] dt-bindings: usb: mediatek,mtk-xhci: Allow ports for USB connections Date: Wed, 10 Jun 2026 16:40:43 +0800 Message-ID: <20260610084053.2059858-10-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" MediaTek's XHCI implementation supports both USB 2.0 High Speed (HS) and USB 3.x Super Speed (SS). The block can also be synthesized with either HS-only capability or HS+SS capability. For example, on the MT8195, the first two instances support both HS and SS, while the latter two instances support only HS. Allow a ports sub-node for describing USB connections. Port 1 is Super Speed if the controller is SS-capable, otherwise it is High Speed. Port 2 is High Speed if SS-capable. This port mapping scheme directly matches what the hardware returns in its capability registers. Signed-off-by: Chen-Yu Tsai --- .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml b= /Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml index 75ecce3bdc7a..d6c75bd20b78 100644 --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml @@ -184,6 +184,19 @@ properties: "#size-cells": const: 0 =20 + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Super Speed (SS) data bus if SS-capable; + otherwise High Speed (HS) data bus. + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: High Speed (HS) data bus if controller is SS-capable. + patternProperties: "@[0-9a-f]{1}$": type: object --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 C73513B584F for ; Wed, 10 Jun 2026 08:42:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080926; cv=none; b=JYH63/l4A4dOs+3v/K1OULNfeIfYaZv3MmCkqYq+KMe2HR0XCWgWw7zdfvXlPFMEJI0+Y/QeFjQ9hY1U591ZPch4t7FINxmufvRnIyuSFMCC8FxaNFGR8INaiD9trJ1GWFaqcM3V5gYKP3hLl2rVG3rhUyvl2CI+in/9jkXtzk8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080926; c=relaxed/simple; bh=Q230lnY0gVIEr7GJLHqky4UKLxDQyNEVo5h765AhfJs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HjHwI0d7nSSexe5Fpq80BCVoJdxYCiC8kTipDFvD99RQ907BrVGBMiqrC3719bIkOR/VDR733aJT+Bh3TfyMXwNpRGM7zMWQzbZg9Slj+9XEShVOqrfzKSm0e8Xl1d2ygc++5RgQ+k6isSbaCLgAQRcKmUZU1ooASLbp5twxu04= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Q6w9RDxF; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Q6w9RDxF" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2c0c2c7e0c5so43524825ad.1 for ; Wed, 10 Jun 2026 01:42:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080923; x=1781685723; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OS442Iy4WHxSdJHdZSOdZpr7Kbl6vNC1J8JNZ1Janxs=; b=Q6w9RDxFczGEkAJjDHzISYkh32EV/GVUcvrUUaV27U+mn2Ebvskd9lzBaHss0VRlki /KGqDphVexrsdYmJidEiBNSv7jVSAAKZjrf/wpqAMz3DQ9psFtweva8cXC6Gotll0nos t9lcp8TZjW/FDQ4nWz7kzRaCA/zRKkYHxlsDk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080923; x=1781685723; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OS442Iy4WHxSdJHdZSOdZpr7Kbl6vNC1J8JNZ1Janxs=; b=nAoRUQJ1o9WVSVmyqTJ+iNA4+lEEWJvG2GCYap7dq5dz2Z+6J3UkI5w1xufHH1YBPB Sy8Dn6SzMCIvUeoQiRAGtN6qT1hoEyaZ30+PU9RFshPKATapr0NfoXbm1nhbxlAeSC0P B9yOMXNFrMANut2OabCJn+HvmFGcB5ltAxyiwuwED1Pp8sVPtB2lYk4johXyHppOIDmV QPDZmEdgS0gT/yj5AiA7UnM0uqSLPjy+6YhmU5L5lIAEtagnMZgoJth9ivs0Vei/xmih r6fbsoAWI74iENioebTxOXht9LX3QU6oUrwhSgP5xkigEpjRFV39CEdkAd5mDJrzx10p wMSw== X-Forwarded-Encrypted: i=1; AFNElJ/HQIoR2gl7yQ4g8pRLmYU/rGU3/vNQwq925Ic4WQtm22EwFnQ9CpxqaVsRaaY0DyiptjYMFx0EI5Lp4bg=@vger.kernel.org X-Gm-Message-State: AOJu0Yyu3TNCei97mrWm/6aet7bNEI2PNL4739dP7/Bdp5RTe4XXVsV5 DjIXsptaSETRnJVjhPBudinyG0Yk25zQGJoqUB7lYpTEc8AeJhK1UC5qOyM4WsXDVQ== X-Gm-Gg: Acq92OFa5GUJkfvJTh2TpydYGUwj6KNNGh/rV/DnQHN51ZAyctr4gSdoKLOrfbqt0Zr NsyeXCqaJFfTKeceNsVGj+AVH9eyUiryhb1hRANL0lFA2mh3R2MyFhEe/JvmtY0MltNuX3/invp FakDETT+lfUl9ecsGv5HjDtNqTPHvS4Os2STpdpJOwJk2yTDVzcm3mqENB3IRO4fayg6zuRxskj JGLF0a7k8RKoQNPyi4envinZ0vjyam9JPkwbK9LWjaA7l7fZhOBOdL2/AXoPzHmRlsLW80MzEFV 0VepreQhDLgMq3xO2HbiH62Iz60SWV4pn4klDioffsAm9uqQfy/dWb4EcbAs8YKAyPs113wRV0n bU79k/kYmm0qDdmSpOCepY2VIjApWYkDSzl82X8xNp34D/lZCIqrhzn1OAeyRu1NWm69Varx3U9 U2NK5FDZD+8PMcgBQTw1sXzDCrOOT5Hvwqq0fuhM1RT7euUo/qaScAjLSISxWpzoE2UGhmzaqHm +7j75FFqaE+3ahovQ== X-Received: by 2002:a17:902:cecc:b0:2c2:9254:4c22 with SMTP id d9443c01a7336-2c2a1c66cbcmr79859165ad.17.1781080923157; Wed, 10 Jun 2026 01:42:03 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.41.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:02 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 10/16] power: sequencing: pcie-m2: support matching on remote "port" node Date: Wed, 10 Jun 2026 16:40:44 +0800 Message-ID: <20260610084053.2059858-11-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" A USB hub can have multiple ports, and this driver needs to differentiate which port is being matched to. The USB hub driver now associates the "port" node with the usb_port device, so here we can use the remote "port" node to check for a match. Then fall back to the remote device node for the other connection types. Signed-off-by: Chen-Yu Tsai --- drivers/power/sequencing/pwrseq-pcie-m2.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index e82821655fc4..49293376956b 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -176,8 +176,17 @@ static int pwrseq_pcie_m2_match(struct pwrseq_device *= pwrseq, * parent matches the OF node of 'dev'. */ for_each_endpoint_of_node(ctx->of_node, endpoint) { + /* USB port devices are tied to the port nodes. */ + struct device_node *remote_port __free(device_node) =3D + of_graph_get_remote_port(endpoint); + + if (remote_port && remote_port =3D=3D dev_of_node(dev)) + return PWRSEQ_MATCH_OK; + + /* Try the remote port parent for other types. */ struct device_node *remote __free(device_node) =3D of_graph_get_remote_port_parent(endpoint); + if (remote && (remote =3D=3D dev_of_node(dev))) return PWRSEQ_MATCH_OK; } --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 3D19D3AF643 for ; Wed, 10 Jun 2026 08:42:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080930; cv=none; b=TOAcqOaEitcQRNML0LpqnZqsUoFY3BJRP6gojPsKKX6J7gcqkqGhXeOCeNJj2T6LO4XDWF7dJYI9se67YLBuYIFQSlSeaqKLFEy6mf6dx9ZaJGlm6cN6VzfjszicxXvFXMT83IpEtQZGtkrpvHiab8C6mauUBczOkEZTlqmHTf0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080930; c=relaxed/simple; bh=aM1pKeD/Vxy8p9xU2vujlhCyS6zAz75iUguBLngP3eU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qspwqVbZF9MHN0zoCHInTvffSpUpI8ICSm4E+YqTXShkFXH/Vf48jpu23FrUwZ2/3/UU8vDgtPvD7mxWARQPE8hN+zIw0OTBD9rwxaehkvXD22pEGg3JCS5O7vro+mX+L6Opv4kk7QPSAUO+rFAd42e0VnrCZWw6ht4wwViA3RE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=ZGtxGeTW; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="ZGtxGeTW" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2c0b944f6edso66411885ad.2 for ; Wed, 10 Jun 2026 01:42:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080927; x=1781685727; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oapuTl40hgb4G5/aDuwYBQkElchJu8zWsaiRUCi5VkU=; b=ZGtxGeTWVkEhm8vRhk7ZwKL5GOx9IYSy0tZ7f5lnYaPkWbzRGH+OI52sh7yr9pCvsK Luy1k9lx9C1WzeOlPW+AqxWDNesdcA0vlNv4r3VxQb2omFc30ytH9g4d4ICW3VZ4qTOD bIcq5XXczNjACDlTfTvq/BSC7YwNR4rJex11A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080927; x=1781685727; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oapuTl40hgb4G5/aDuwYBQkElchJu8zWsaiRUCi5VkU=; b=Vbh5L9/b2VYiCmoVmvAM1q6s1bNBXJY5Wl9IZZf3C66lQ7OKbjwibUN+6k1+UzCYq9 TBOYb63P7ShkxIgstkfMn24CLr16Z/EnSaZKaML7Lr4LDZy1Ye/A6J1zz4WeBP4jI9Za fIKdTBPjgpz6KO7I9J28YBJeh1zIs3T5t8k3gjJr+1fZUByp3G7ET5pGr3j+yMdEJQiv Ngo+uJcGyeStWbbEMNU94bwqLjk7KMcNaIzmXRTxmbNe4EA+JrWXmFP790Pgr6lJA+kA QvI8GU2uu7mXTh7ChNQ7D7xcE0k5iU3OxT4vqxSXY89yRmPW8QsjYX9pFr3O5SkvMX8C jQWw== X-Forwarded-Encrypted: i=1; AFNElJ/tQam0WHfWXGx19PyTmB5jPf2CmUoKNmE6ZuswMZWQcxk5DRk2AKVfAY0+LMLCjbZJ9KZl243ooVq3sZ4=@vger.kernel.org X-Gm-Message-State: AOJu0YxLfH6uhigh3HOnpDj9jtlSHopZkEav5y8/CI8Uu4JoBT87oEAD 4ww6a4yV2tX5s5QVpMk4eeThiVgA9GH1T+wyrHnUR2nBpsnlCye3Ryjw0UQzNdJ6Uw== X-Gm-Gg: Acq92OHkOmTISp7Mnli5vobYuvFmgf6BsRn9MLhMdh+DrvQ9MjajN48xot5KQfHw3Dn sdtBZqVsSi6vgepHWXx9iUttC0qGRrDr4evzQt/Q4qZ6jmOzo8CADnzVpAqrbEptO+ed5v0v3iq 3nhR3pDbzMqBSneejUhxpcIiGpigkikxmKCobyOglwOrPYnb1LrP28RUs7NB4196PzlXyb/66dY T7JJoPzFZUOl0bmfEo8ySmbrYsX2lIcbvnDYvp9nvAK+pY3aXtQSeauuURePDLb+UiKDczoH1Jp TGjFgnf59Nfvwz4FGLtlBPde+aAYh1itBC1WE2DeaI3Ui0TP/I5cDIab9XSKVnqA7ckCnuGSpvQ dXGAJhJ8XdncE8cXfXSBVclYh71wCC/rjdBXDGp3/YwsMIqCAI6z2yIcCzbpvLbcp/S4qCfeClq zQw6hcAgIe4U8OCd5YIi/yXO0uV9q/4RxkcCfcZldG6Vhhfzik8rVipV0AuXXr1oi9pQLQtDsqQ dU5Fm0ChJaSwcoNZg== X-Received: by 2002:a17:902:e5ce:b0:2bd:5ab:af95 with SMTP id d9443c01a7336-2c1e77d145fmr269724115ad.0.1781080927559; Wed, 10 Jun 2026 01:42:07 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:07 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 11/16] power: sequencing: pcie-m2: Add usb and sdio targets for E-key connector Date: Wed, 10 Jun 2026 16:40:45 +0800 Message-ID: <20260610084053.2059858-12-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The M.2 E-key connector allows either PCIe or SDIO for WiFi and USB or UART for BT. Currently the driver only supports PCIe and UART. Add power sequencing targets for SDIO and USB. To avoid adding a complicated dependency tree, rename the existing power sequencing units "pcie" and "uart" to "wifi" and "bt". The existing target names are left untouched. The new "sdio" and "usb" targets just point to the renamed "wifi" and "bt" units. Signed-off-by: Chen-Yu Tsai --- drivers/power/sequencing/pwrseq-pcie-m2.c | 41 +++++++++++++++-------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index 49293376956b..a21a3dbe8a5d 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -70,46 +70,46 @@ static const struct pwrseq_unit_data *pwrseq_pcie_m2_un= it_deps[] =3D { NULL }; =20 -static int pwrseq_pci_m2_e_uart_enable(struct pwrseq_device *pwrseq) +static int pwrseq_pci_m2_e_bt_enable(struct pwrseq_device *pwrseq) { struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); =20 return gpiod_set_value_cansleep(ctx->w_disable2_gpio, 0); } =20 -static int pwrseq_pci_m2_e_uart_disable(struct pwrseq_device *pwrseq) +static int pwrseq_pci_m2_e_bt_disable(struct pwrseq_device *pwrseq) { struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); =20 return gpiod_set_value_cansleep(ctx->w_disable2_gpio, 1); } =20 -static const struct pwrseq_unit_data pwrseq_pcie_m2_e_uart_unit_data =3D { - .name =3D "uart-enable", +static const struct pwrseq_unit_data pwrseq_pcie_m2_e_bt_unit_data =3D { + .name =3D "bt-enable", .deps =3D pwrseq_pcie_m2_unit_deps, - .enable =3D pwrseq_pci_m2_e_uart_enable, - .disable =3D pwrseq_pci_m2_e_uart_disable, + .enable =3D pwrseq_pci_m2_e_bt_enable, + .disable =3D pwrseq_pci_m2_e_bt_disable, }; =20 -static int pwrseq_pci_m2_e_pcie_enable(struct pwrseq_device *pwrseq) +static int pwrseq_pci_m2_e_wifi_enable(struct pwrseq_device *pwrseq) { struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); =20 return gpiod_set_value_cansleep(ctx->w_disable1_gpio, 0); } =20 -static int pwrseq_pci_m2_e_pcie_disable(struct pwrseq_device *pwrseq) +static int pwrseq_pci_m2_e_wifi_disable(struct pwrseq_device *pwrseq) { struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); =20 return gpiod_set_value_cansleep(ctx->w_disable1_gpio, 1); } =20 -static const struct pwrseq_unit_data pwrseq_pcie_m2_e_pcie_unit_data =3D { - .name =3D "pcie-enable", +static const struct pwrseq_unit_data pwrseq_pcie_m2_e_wifi_unit_data =3D { + .name =3D "wifi-enable", .deps =3D pwrseq_pcie_m2_unit_deps, - .enable =3D pwrseq_pci_m2_e_pcie_enable, - .disable =3D pwrseq_pci_m2_e_pcie_disable, + .enable =3D pwrseq_pci_m2_e_wifi_enable, + .disable =3D pwrseq_pci_m2_e_wifi_disable, }; =20 static const struct pwrseq_unit_data pwrseq_pcie_m2_m_pcie_unit_data =3D { @@ -131,13 +131,24 @@ static int pwrseq_pcie_m2_e_pwup_delay(struct pwrseq_= device *pwrseq) =20 static const struct pwrseq_target_data pwrseq_pcie_m2_e_uart_target_data = =3D { .name =3D "uart", - .unit =3D &pwrseq_pcie_m2_e_uart_unit_data, + .unit =3D &pwrseq_pcie_m2_e_bt_unit_data, .post_enable =3D pwrseq_pcie_m2_e_pwup_delay, }; =20 +static const struct pwrseq_target_data pwrseq_pcie_m2_e_usb_target_data = =3D { + .name =3D "usb", + .unit =3D &pwrseq_pcie_m2_e_bt_unit_data, +}; + static const struct pwrseq_target_data pwrseq_pcie_m2_e_pcie_target_data = =3D { .name =3D "pcie", - .unit =3D &pwrseq_pcie_m2_e_pcie_unit_data, + .unit =3D &pwrseq_pcie_m2_e_wifi_unit_data, + .post_enable =3D pwrseq_pcie_m2_e_pwup_delay, +}; + +static const struct pwrseq_target_data pwrseq_pcie_m2_e_sdio_target_data = =3D { + .name =3D "sdio", + .unit =3D &pwrseq_pcie_m2_e_wifi_unit_data, .post_enable =3D pwrseq_pcie_m2_e_pwup_delay, }; =20 @@ -148,7 +159,9 @@ static const struct pwrseq_target_data pwrseq_pcie_m2_m= _pcie_target_data =3D { =20 static const struct pwrseq_target_data *pwrseq_pcie_m2_e_targets[] =3D { &pwrseq_pcie_m2_e_pcie_target_data, + &pwrseq_pcie_m2_e_sdio_target_data, &pwrseq_pcie_m2_e_uart_target_data, + &pwrseq_pcie_m2_e_usb_target_data, NULL }; =20 --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (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 953303D47D9 for ; Wed, 10 Jun 2026 08:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080933; cv=none; b=lBDyctpRa6TOaGEJOyLTTivc0m7OJium5dOCQYGkfMLZXO6uVXcq7Td1QOv5U8wrt6CuuSK9mOJQGMqy0tQtQnf7uXFajq8lPBc4oNThyRaeHTxJKrVc0EcVs94LFgnsjS17vV0HLdSutN0IAiTfdTT+nG3a498Q42tBU5ClIwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080933; c=relaxed/simple; bh=rV73mlDiXmF5Z2ojMFBLCM4SIkcjQtW4k2nOaQI0FbM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pPETUz6Aqo+aT4+TTdsItBaO+rwC4x5mfHnrTYIwISEQKQ9xhLnxTbSvrvbJxRzdOStDKLpdhcI1EQy1npdVNzXLbvGnjUeZdZ3IS9hZHFoJZnQwe7J7E56iXkSiMmlC7kywR8sWRrZO0ko9YWJUlpYByihVJWL/n+JufiF1YKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=efTq5iDM; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="efTq5iDM" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-c858cc9870aso3255236a12.0 for ; Wed, 10 Jun 2026 01:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080932; x=1781685732; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=//v6/82RkqjQCguIRc8t+FdPVtsIJvFDXM0cNoEMOXg=; b=efTq5iDML1g52IvvhY/ADbNH6pZM77yKZG+t9DvZiKu5le5iL76Cwkkr0r7V4qko/u WWhadTOTUFzHPYzPEjdrTZRirUkCMoosKIMYT2q1P3GQ8bWfm+BcBFQzgBOGqwl2bbI9 JJfQDBFC721l5aVnrqRigQKpA5u3KquA9BHh8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080932; x=1781685732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=//v6/82RkqjQCguIRc8t+FdPVtsIJvFDXM0cNoEMOXg=; b=D7f5x4a0sIp3xkOpRV3KhGf238zNBfqVy8cwsnfYeNe4fUC/nUffGfCwbgU3D4/hR5 hXGPhUJlUMYQvKFcslJHRqh/uMb17pGq4H8QAO/gwbt+3pui274ELfUw8uCZ4dMJEkX0 9kPDv4Wbg6YdxA3eNInqRUA14lipcZIf1U4E2n8GfUIAZj6p7j668JEgPHSzPwTMXx3A 6ZKfZ+cp+hEnkl/RfRkF//VSL/mnvUQ21JtdkaptX6iCurqIVLd2GJvxtEGBq7oxynNL QOyRj3TdLPsEEnn8lNjZoKq+5TypSQkgoIysSB1MGO8yT9i6wfanvzzFShQbUvwKm53V Ce6w== X-Forwarded-Encrypted: i=1; AFNElJ/t6tdBsPn7RdcKrLDztDaCaGFmJrQUSei6y+tqgW9PosLGTy66drNr1b8XksrBusBCMQ4nBMY5hOObuvs=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4Z4UlJDdphikvJJYArQ0HAB76gFzGxzfKuB0s8q5Az7DzJpy4 x5xQb+kt+aZkctZIAESfHDeKjcE+CBKpfkpBGYaa4SPm37ms7aNO2e7YSaUWZJfCuQ== X-Gm-Gg: Acq92OH2l0YBAsqLpYgQkRtb3K1XU75FrHXPfF7OCFwP8Rbo9H7XfL22rPsM1OTYmvp V9qmAQ2AtMLNJYM7J51Qlzq5B2WDJpm1pU2zWMRIc8C2a1AhiXREM28a5lFkCUlowX6nYsnOh8+ KEyoAIWw0oIjyKm/0yEwJkx+dkqoQd53CWjfj0riXk9ldQFTDBMnBzUjwG0eEY7RQ8SWFPdA+DF QHZhffYCT6FcZ12GTzoYBKejTJR2zL3RRbFu0meYKMV47+icwFmB1RRWkjr7ro62IwQIkoKrgr0 7cCck4D7W9aa7T/OTFu3cA3oXWpvuGxAbyapU/D6Paf1bR/uO0lTWQxH/27H9ufNc8HCZNfUzIb blCf/XGnyMfe+RsOpvJ1DsfQPhl49D5m1uvFzlNCtO3/YYOwtJ9D3xQ+Wx8xkoFeMhr6JjcNze4 z79ll7ynFF1dq120tro1lP1aEdopsWZcL8wuoy6JXnD0vY2Ei82Q5V0wc0IwajlhtwDBQYd/g+/ KxCGGf6btvPnoheIQ== X-Received: by 2002:a17:903:94d:b0:2c0:d94f:50c7 with SMTP id d9443c01a7336-2c1ec508177mr217649415ad.7.1781080931995; Wed, 10 Jun 2026 01:42:11 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:11 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 12/16] arm64: dts: mediatek: mt8192-asurada: Add USB type-A connector Date: Wed, 10 Jun 2026 16:40:46 +0800 Message-ID: <20260610084053.2059858-13-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MT8192 Asurada design features a USB type-A connector for external devices. Add a proper representation for it with a node for the connector and OF graph connection to the USB hub behind it. Signed-off-by: Chen-Yu Tsai --- .../boot/dts/mediatek/mt8192-asurada.dtsi | 74 ++++++++++++++++++- 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/= boot/dts/mediatek/mt8192-asurada.dtsi index b7387075cb87..fb4d92750770 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi @@ -292,6 +292,32 @@ sound: sound { pinctrl-24 =3D <&aud_gpio_tdm_off_pins>; pinctrl-25 =3D <&aud_gpio_tdm_on_pins>; }; + + usb-a-connector { + compatible =3D "usb-a-connector"; + vbus-supply =3D <&pp5000_a>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + usb_a_u2_ep: endpoint { + remote-endpoint =3D <&usb2_hub_p3_ep>; + }; + }; + + port@1 { + reg =3D <1>; + + usb_a_u3_ep: endpoint { + remote-endpoint =3D <&usb3_hub_p3_ep>; + }; + }; + }; + }; }; =20 &afe { @@ -1702,11 +1728,53 @@ &uart0 { }; =20 &xhci { - status =3D "okay"; - wakeup-source; vusb33-supply =3D <&pp3300_g>; - vbus-supply =3D <&pp5000_a>; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "okay"; + + usb3_hub: usb-hub@1 { + compatible =3D "usb5e3,620"; + reg =3D <1>; + reset-gpios =3D <&pio 44 GPIO_ACTIVE_LOW>; + vdd-supply =3D <&pp5000_a>; + peer-hub =3D <&usb2_hub>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@3 { + reg =3D <3>; + + usb3_hub_p3_ep: endpoint { + remote-endpoint =3D <&usb_a_u3_ep>; + }; + }; + }; + }; + + usb2_hub: usb-hub@2 { + compatible =3D "usb5e3,610"; + reg =3D <2>; + reset-gpios =3D <&pio 44 GPIO_ACTIVE_LOW>; + vdd-supply =3D <&pp5000_a>; + peer-hub =3D <&usb3_hub>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@3 { + reg =3D <3>; + + usb2_hub_p3_ep: endpoint { + remote-endpoint =3D <&usb_a_u2_ep>; + }; + }; + }; + }; }; =20 #include --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 EC2583D88E0 for ; Wed, 10 Jun 2026 08:42:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080938; cv=none; b=WzlKYflHCI3CDLLM3YdLbLq5GWFYh5wGk0qqUjlTSrUeyXIO5EQ09KmUcySGZOAFg5T8HCBGCENVv9jPJ/OursMDdzPQp13PtXyFzu5DF1dAWVM5J5Hduzy7MoAfldUu4Y4oJLX+lZ0SwNn3ZFXEgvapEZDIlOkTR7NgKgUhxMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080938; c=relaxed/simple; bh=eYDsSekKvQ+9HqNvE0wh4Qv8KZgHot5fG4txdifkhHM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gFBVVvcw5Z9Eae6YMDsWpDaJuflghtcPks5RNcV/DlAfrXSTSO7l0x/WhWeScTcGhee08NFI3Qpfla1soXhwteroVde4IeMLyal9lvn8nscs8Lfw0ftplydc3UMVbgVq4oC+PhwBGmIF826Zc1f7612v4uB3J5T4GI2M5CtVLyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=fBqFRxxw; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="fBqFRxxw" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2c0c3184c71so50120715ad.1 for ; Wed, 10 Jun 2026 01:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080936; x=1781685736; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RTmbH1zLjGPBws1HWPEepttRsufOS8aO88js0ToljD4=; b=fBqFRxxwPfwrmt8r4XxXl1Ar1hlbSKVWm3NyDy5xK1tiVN+znJN6unsf7jQdX//I8u yWUjc7GiSMJWNpI7QuARLwaRsV0uzJhrgDp/RMFbdtWZL4N2qdPOeMyXViGUZwxT5SBP wVZkyW6QpJY86GGP8B0rQ2/Gdp1bHYr3Ds1m8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080936; x=1781685736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RTmbH1zLjGPBws1HWPEepttRsufOS8aO88js0ToljD4=; b=Di7onAiA6TVd9hfs/xfdVSZXpfb3wt33uJ90hBQOuqlvwSEL0BsIczDhowMRedFnom w2F0NRT/pJeFFi3THi/6We6gnXrIPQ628sIlEGZWNlmfZHv8itFzvXmHRsTKIAxxpuV6 3WyUNxBy/+W0B+AABm/1pqNc47BI6OBS2j7QPxAsTHbgxjqczvFx/qUAli2k7Ppgxslz Tx5OQMNChjTjSPvIufuAmGfrcUjL4jgba5c+4fWduaQaqFc75VaAHqHtM+8xxNEBUYjj FK7ghn1kTsviP/IRSsjW9BnvZ/PzWNCEZkozrXgggVwRkk9ldlrAW8WHLZPGAaBtvFii g4/Q== X-Forwarded-Encrypted: i=1; AFNElJ9WWJtXjRZMryT44kI9sELRKU+rekLvz5vGjxVXDYTd6fmX1L+ZOHOfdqoecjCN4DJmBW7iGK9OoVKXSJM=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8RlkdflUYFVUXohgT0DQA+rG5T3pTWmtgyG2+8dG5UHHqJB07 OI681tgwE1hn14YzQn6vMf6Y/5ogg9QJlwlmWgKM5xZUeyxVx4BsAonjSka0lX1/0w== X-Gm-Gg: Acq92OF8wNAcWuB6X/9pOJTNhUPEhb5mVM7fTShRR4zVQOAiKi3baGnGm5C7We4GDZN 8djW9ZtN35Sdfpbfl58jWZXTLpJUeyQiXxO3ofvmoJYHbip6XCjW2KxwhoV1cg/fXpr/QioD1IV 2jT3sOuHLhSJrSMdW+8K6U46jF+vmh1RUFUTy/GAvzqa2riAgW3xFsN04Br5hKh7XEQekuL7/xz AMDeckAmyQjAkFOOJrkucFPG9s7OUG+Gt+MWF7RVPQnIxDozL03aT2GdwFoYRyOLvi8ghhBione QMUpIzOzsHgwz15YzTVgx2zbPjG3ZQGrsKGlSdWt6Re5iaL8w/ecNX4Zjb7W+7V76WZo046clxh 3ZAwgCShPN6zvf/bM8oaChxSTWPuR+hlAIxO1mPpUMNPJVmImmX+VpTRDV9f1QitQPsQcRnXo9W nPPObO5irJUd0JQsWA/aRmuVUGvyI/pFuVDULxU7ITdrg29R6LX4clU0HIoDlRIIvS9FZ3utG9C j8y9SUtwZpQeAMbKQ== X-Received: by 2002:a17:903:1209:b0:2c0:c3ac:4ae6 with SMTP id d9443c01a7336-2c1e810b983mr261933095ad.19.1781080936358; Wed, 10 Jun 2026 01:42:16 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:16 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 13/16] arm64: dts: mediatek: mt8192-asurada: Add M.2 E-key slot Date: Wed, 10 Jun 2026 16:40:47 +0800 Message-ID: <20260610084053.2059858-14-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MT8192 Asurada design features an M.2 E-key slot for WiFi/BT combo cards. Only PCIe and USB are wired from the SoC to the slot, along with some auxiliary signals. Add the proper representation for it, replacing the PCIe wifi node and vpcie3v3-supply property under the PCIe controller. Also clean up the pcie controller node. Signed-off-by: Chen-Yu Tsai --- .../boot/dts/mediatek/mt8192-asurada.dtsi | 65 +++++++++++++++++-- 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/= boot/dts/mediatek/mt8192-asurada.dtsi index fb4d92750770..901240384a4a 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi @@ -318,6 +318,41 @@ usb_a_u3_ep: endpoint { }; }; }; + + wifi-bt-connector { + compatible =3D "pcie-m2-e-connector"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&m2_e_key_kill_pins>; + vpcie3v3-supply =3D <&pp3300_wlan>; + w-disable1-gpios =3D <&pio 61 GPIO_ACTIVE_LOW>; + w-disable2-gpios =3D <&pio 59 GPIO_ACTIVE_LOW>; + /* PCIe auxiliary signals wired to controller. */ + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* PCIe for WiFi */ + port@0 { + reg =3D <0>; + + wifi_ep: endpoint { + remote-endpoint =3D <&pcie_ep>; + }; + }; + + /* USB for Bluetooth */ + port@2 { + reg =3D <2>; + + bt_ep: endpoint { + remote-endpoint =3D <&usb2_hub_p4_ep>; + }; + }; + + /* SDIO, UART and I2S not implemented */ + }; + }; }; =20 &afe { @@ -671,19 +706,19 @@ &pcie { pinctrl-0 =3D <&pcie_pins>; memory-region =3D <&wifi_restricted_dma_region>; =20 - pcie0: pcie@0,0 { + pcie@0 { + compatible =3D "pciclass,0604"; + reg =3D <0 0 0 0 0>; device_type =3D "pci"; - reg =3D <0x0000 0 0 0 0>; num-lanes =3D <1>; - bus-range =3D <0x1 0x1>; - #address-cells =3D <3>; #size-cells =3D <2>; ranges; =20 - wifi: wifi@0,0 { - reg =3D <0x10000 0 0 0 0x100000>, - <0x10000 0 0x100000 0 0x100000>; + port { + pcie_ep: endpoint { + remote-endpoint =3D <&wifi_ep>; + }; }; }; }; @@ -1206,6 +1241,14 @@ pins-bus { }; }; =20 + m2_e_key_kill_pins: m2-e-key-kill-pins { + pins-kill { + pinmux =3D , + ; + output-high; + }; + }; + mmc0_default_pins: mmc0-default-pins { pins-cmd-dat { pinmux =3D , @@ -1773,6 +1816,14 @@ usb2_hub_p3_ep: endpoint { remote-endpoint =3D <&usb_a_u2_ep>; }; }; + + port@4 { + reg =3D <4>; + + usb2_hub_p4_ep: endpoint { + remote-endpoint =3D <&bt_ep>; + }; + }; }; }; }; --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 7E75E3B9922 for ; Wed, 10 Jun 2026 08:42:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080942; cv=none; b=DW+3xTb6kwPRHFAUZlQYWXOkmQH2NSgwskAysSh7ixekgDkHrKD64UgW3BOCoXdqNw+HaT+UVNAv18MOLvGZZJAEWn9FG4xNfWIoZwbJwWTg9EQnJKEoANykqh/vASE1GUXSY1qp94d6bPLzRcfevpvv9C2uxevmna1EeoCdnsA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080942; c=relaxed/simple; bh=H+EIMxj9juaYlu5/QAviV83PdweIQfdGFZaxQ6cEvGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nq1f+Frz3Cugda4kEfE7VzWI74uru1jj88xrjupzvZqFWFIZXrx5F+2ZxbyIVfNehkE1uz4dPBxXYmsGVV9K4RS4GCFzMpCalSPTRRxXOOxlg5D/tbViBlTYDKPZiJmhb82ZlLyvoD6R7j7gbknY2+z5Z8Rk/S8IfToVMxmNAVU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=lb8JCM75; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="lb8JCM75" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2bf18c30bb2so47296135ad.0 for ; Wed, 10 Jun 2026 01:42:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080941; x=1781685741; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+N3jX2N/52iyiNHpRxwGQULSKcGPzXu4/gET/t4pE5E=; b=lb8JCM75bQPAv45iIL6tkE4911aa+IJJPpcvd7IoLNfBWv0BEL8Z5tFzzDjTbNanuW aYlax1C5jsXYp3u3UlXSz8cHWXforBPz1n41/oHrrjBS+kI41X50Nr4UnOSKfdENcZxy 6Gcy7+9QD+YIJRiXz16rGngZUMLa4Xgu4OPas= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080941; x=1781685741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+N3jX2N/52iyiNHpRxwGQULSKcGPzXu4/gET/t4pE5E=; b=lwXpEcDFNm62XKZOsyjrSd0v1X2zD+K5F+iLnGGwwZYVNZ3u4+2+kuh/5pxeen7y/+ MKFu/BsDn+avb1cVbRuH7yhR2DXVAqt2oFIMmDsoaMQiPq79PSp+Dr3xhaLHr1NXSzTr 1+lpH1jlcFwX3t024mGspjF+Tq8ulhxcY2jE3qs5B0l45WLdf2zD6wUInTotkV05jg+e W/0xAqQrdc09PhTvI6WL5VI6J6SeV+LM4yUEKp1Lab+d/CsUwt7nxzZwf4YkyCNIh74D Uz5mEvTNztCYktsK7DBuT28LmVxjMFaY+dbBGhBkfFv0cmE4q3n3fxjoZSDbwSAlqv70 exhw== X-Forwarded-Encrypted: i=1; AFNElJ81ROvnez2TJ2DyUi3SGrbPz8XHJg+ErPfAWsrL0x0qp44sjuaWAmYo6VRQ9J40KsHk0rWDxGGFb4k46M0=@vger.kernel.org X-Gm-Message-State: AOJu0YytS545ZeVKgS/V8dNHi57/ztHTaiuyAESJVamOAe8igqxwAlla nPxeJ55gtG1MyrZkX8l2LVI8ik1w8Qx5xHRpGtIIKUo+x+CZzbo5ZM5Npm5Z7bJLGQ== X-Gm-Gg: Acq92OHiPcGb251yoxlHR46TumOKyJCiXwbAyr7GyhQdoZMgBpJu9hAbz5n3u6UzSXU 6f5bXqcAQqVm0On2GduxLTnpnEYoOd3+QXqSM9/iG2/TtXSuFkT600nLwhlWRl2g5fIR4saN18K ob04XJmvvX4ksSKrLp9yc+rhmv4eOxqREnm5U3h4ms09/AiYuQqkyLM6Rxg/huhlflXa4m9Ig1E 8cSWFomY1xH8ZM78gKQphV0HRtya5ChQ1tObdvk3va7sSFM2wRGhdxgFbenltYa96Xw0y1yuK0Y 9d+H6GN0bV9Ikpu4RqDDbMYYocr6YIj30YnjmRFUNjXCKk8dM8V7AAmb2SJPR1lsLAeJpZERdrm StKru0r/rBKsM3XqUOc911N/K8g6DSdbK1pZH4Hi2nwDefB9HUwx5OahdEa0/vCl6jaeSHwJwCe 4V5lwJfIb4z1mGkBYR8o5qYf9gkidftCLOk+ZeoWaHpYckTS+w3VIYNGfRxEMONIO372bCUrmp9 8oQCZPh+vVLKSVMpg== X-Received: by 2002:a17:902:e5ca:b0:2c0:b932:867d with SMTP id d9443c01a7336-2c1e893d0b9mr271721185ad.29.1781080940790; Wed, 10 Jun 2026 01:42:20 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:20 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 14/16] arm64: dts: mediatek: mt8195-cherry: Add M.2 E-key slot Date: Wed, 10 Jun 2026 16:40:48 +0800 Message-ID: <20260610084053.2059858-15-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Mt8195 Cherry design features an M.2 E-key slot for WiFi/BT combo cards. Only PCIe and USB are wired from the SoC to the slot, along with some auxiliary signals. Add the proper representation for it, replacing the PCIe wifi node and vpcie3v3-supply property under the PCIe controller, and the vbus-supply property under the xhci3 node. Signed-off-by: Chen-Yu Tsai --- .../boot/dts/mediatek/mt8195-cherry.dtsi | 74 +++++++++++++++++-- 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/b= oot/dts/mediatek/mt8195-cherry.dtsi index ef7afc436aef..c95a54de3567 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi @@ -266,6 +266,47 @@ tboard_thermistor2: thermal-sensor-t2 { 120000 51 125000 44>; }; + + wifi-bt-connector { + compatible =3D "pcie-m2-e-connector"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&m2_e_key_kill_pins>; + vpcie3v3-supply =3D <&pp3300_wlan>; + w-disable1-gpios =3D <&pio 61 GPIO_ACTIVE_LOW>; + w-disable2-gpios =3D <&pio 59 GPIO_ACTIVE_LOW>; + /* PCIe auxiliary signals wired to controller. */ + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* PCIe for WiFi */ + port@0 { + reg =3D <0>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + wifi_ep: endpoint@0 { + reg =3D <0>; + remote-endpoint =3D <&pcie1_ep>; + }; + }; + + /* USB for Bluetooth */ + port@2 { + reg =3D <2>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + bt_ep: endpoint@0 { + reg =3D <0>; + remote-endpoint =3D <&usb3_ep>; + }; + }; + + /* SDIO, UART and I2S not implemented */ + }; + }; }; =20 &adsp { @@ -791,14 +832,14 @@ pcie@0 { reg =3D <0 0 0 0 0>; device_type =3D "pci"; num-lanes =3D <1>; - vpcie3v3-supply =3D <&pp3300_wlan>; #address-cells =3D <3>; #size-cells =3D <2>; ranges; =20 - wifi@0 { - reg =3D <0 0 0 0 0>; - wakeup-source; + port { + pcie1_ep: endpoint { + remote-endpoint =3D <&wifi_ep>; + }; }; }; }; @@ -1085,6 +1126,14 @@ pins-bus { }; }; =20 + m2_e_key_kill_pins: m2-e-key-kill-pins { + pins-kill { + pinmux =3D , + ; + output-high; + }; + }; + mmc0_pins_default: mmc0-default-pins { pins-cmd-dat { pinmux =3D , @@ -1637,9 +1686,24 @@ &xhci2 { &xhci3 { /* MT7921's USB Bluetooth has issues with USB2 LPM */ usb2-lpm-disable; - vbus-supply =3D <&pp3300_wlan>; vusb33-supply =3D <&mt6359_vusb_ldo_reg>; status =3D "okay"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@1 { + reg =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + usb3_ep: endpoint@0 { + reg =3D <0>; + remote-endpoint =3D <&bt_ep>; + }; + }; + }; }; =20 #include --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 EE6283DB327 for ; Wed, 10 Jun 2026 08:42:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080947; cv=none; b=M2faXTyJLInAuqTOkewf8YwP8jJwPz1A8ej8p3h0T09lYXup0TgtrFnFEs5uRQ0DOIE5M4inZliaMpaBzzAEItZkLj5dh3huxQHz2UB4cdh0Y4G711/smWWOGV8VgIF9LjdfOAZMNELryFXRQeaTw6zMy2YEnSoWt0qjaj/aXo4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080947; c=relaxed/simple; bh=zHVdhMq+rKWWCXxeqfGAmNE6GxjdX0TW1LENd5DAyAY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=THVAcWYalnlPH5hSh5kRolzWGD6wLwETVhYG8ncNiT8NCubrlJplB4wR+Kkru2XScuSNePYaAvPOYEpH7ZTK7FpdwCy3g0Tcj27BlP2o3CLYEqxkdgwUg01jF69aMzoRuoDuEBKwWvotlMq9BQdLAhFqk3We7D9V9IYykwEP5YE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=NkUiCPf2; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="NkUiCPf2" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2c0c1e0b0faso44743915ad.0 for ; Wed, 10 Jun 2026 01:42:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080945; x=1781685745; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bvuoLRCQSovwiopZEvbdmvmPWRVQtE1B+7b6jjVlfrA=; b=NkUiCPf2sINRL09ygukL+F7oiwQI8yGwlyiJqZJSjA1HFciJ2zix19qQGcmBT6LPbN pUv13Sh6NAM8CXQzjPp58sWgoGcgmFeat6zQhEYlfdiVyIX2R8P1frZK/mwNh6A2usX0 SR5/4uROp0oJCyA5b6ikIQU5jB5SdlhpG2sks= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080945; x=1781685745; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bvuoLRCQSovwiopZEvbdmvmPWRVQtE1B+7b6jjVlfrA=; b=T/sKg4030Bv+JKZAhdEkXhyqzYpKAf30k3IjcImrMBAkZsLcYmOAFW40SOQg2uqFWW THUeE+PLH64MGw4i9cEJvyOZjN8EVsisbPX+q0z5Y8jFAuj/WJUdBS79WrfF8T1Y+bTc yRxN9ZsrHfEn8zD4/TBx6+Fkts4uA8RDEgMPwyWK5GKije6aJ5g1gYAYb+5Y/Ntyef6A k8S7K7RiMfSEzqby7X7a8JUQL9ed5sVxa/5JwzNYfjPQxppzNUCSF/L9/NQcEL5F8FAz hWXf37aZv7FB/Nc66+ij5GxNYBQOaxwvlFdCj4TP3RofTC5weqJZjeQVdbGAk02eCldW 0e+g== X-Forwarded-Encrypted: i=1; AFNElJ/3PX4P0El9wBiN5vpIthPvee954XS60r3ovWFCAX4guk3ScNmvflOJaluHuQrRgEdPTTw3qwLD2QwWOjc=@vger.kernel.org X-Gm-Message-State: AOJu0Yxdz3g+RJLrWaGzOc1QK//tfM+fzbNUQeN6CFUxhowCJUrl6Oqv +27Xdclxhw30KTtwlKIwhXQsEBFNk9TsgFc7Vd/T5SfJsSjOiIzL/P0RYQUCXQlnHQ== X-Gm-Gg: Acq92OFJS2bkwuE8VUCcMClif2EkSQ+csPNbBlfAlumy0wIchHaoqN7O1z0CvhgoC/P ESkchLi0OaOw3cllAUTfAqyqOjF0J0LKaH00HAI5/C0LARySaLWZXlHbu/jIvl6IL8c3FVg1qlO JI0bwpO6C3qeLjUybRfrPXSG85EWYwwOM+Y7F3rfSvDoTfIKe59bU+/RRf2PrZxdH4wRHQmhgWd 80GBuehKDMLGRbtnlSvI16SR8pyYmMie9ui9m5ryRRzEvswFKva7CuhckNs7oreLxw3gg1RbeXU 0X5tBKbbCV2j0vL5/ts82ix6A0Rmqnv6/szRw6L7xoxg7PhOchyUeHiCq1VVlWoqLg2bRaGLigF AS0jBqqde4p/IvbcmXZUVcc0fqf4AvlfKv9q5XtePeQ/pOW3jkghThMw8Iuz9PVuqWvfWEDC3eR 48gxXmoDXKtRW5vT1zzGwftl1ctzVAIuFiJhNc74EdJte2U+hzwDnd1k3/1MAbeprVqa5+CT/BY 7wX3rp3Xw28WH+j1A== X-Received: by 2002:a17:902:f543:b0:2c2:27be:39a3 with SMTP id d9443c01a7336-2c227be3b4fmr207662865ad.29.1781080945255; Wed, 10 Jun 2026 01:42:25 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:24 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 15/16] arm64: dts: mediatek: mt8195-cherry: Add USB type-A connector Date: Wed, 10 Jun 2026 16:40:49 +0800 Message-ID: <20260610084053.2059858-16-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MT8195 Cherry design features a USB type-A connector for external devices. Add a proper representation for it with a node for the connector and OF graph connection to the USB hub behind it. Signed-off-by: Chen-Yu Tsai --- .../boot/dts/mediatek/mt8195-cherry.dtsi | 73 ++++++++++++++++++- 1 file changed, 70 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/b= oot/dts/mediatek/mt8195-cherry.dtsi index c95a54de3567..8a21a8b996df 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi @@ -153,7 +153,6 @@ usb_vbus: regulator-5v0-usb-vbus { compatible =3D "regulator-fixed"; regulator-name =3D "usb-vbus"; enable-active-high; - regulator-always-on; vin-supply =3D <&pp5000_s5>; }; =20 @@ -267,6 +266,32 @@ tboard_thermistor2: thermal-sensor-t2 { 125000 44>; }; =20 + usb-a-connector { + compatible =3D "usb-a-connector"; + vbus-supply =3D <&usb_vbus>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + usb_a_u2_ep: endpoint { + remote-endpoint =3D <&usb2_hub_p3_ep>; + }; + }; + + port@1 { + reg =3D <1>; + + usb_a_u3_ep: endpoint { + remote-endpoint =3D <&usb3_hub_p3_ep>; + }; + }; + }; + }; + wifi-bt-connector { compatible =3D "pcie-m2-e-connector"; pinctrl-names =3D "default"; @@ -1672,13 +1697,55 @@ vdosys1_ep_ext: endpoint@1 { =20 &xhci0 { rx-fifo-depth =3D <3072>; - vbus-supply =3D <&usb_vbus>; + #address-cells =3D <1>; + #size-cells =3D <0>; vusb33-supply =3D <&mt6359_vusb_ldo_reg>; status =3D "okay"; + + usb3_hub: usb-hub@1 { + compatible =3D "usb5e3,620"; + reg =3D <1>; + reset-gpios =3D <&pio 84 GPIO_ACTIVE_LOW>; + vdd-supply =3D <&pp5000_s5>; + peer-hub =3D <&usb2_hub>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@3 { + reg =3D <3>; + + usb3_hub_p3_ep: endpoint { + remote-endpoint =3D <&usb_a_u3_ep>; + }; + }; + }; + }; + + usb2_hub: usb-hub@2 { + compatible =3D "usb5e3,610"; + reg =3D <2>; + reset-gpios =3D <&pio 84 GPIO_ACTIVE_LOW>; + vdd-supply =3D <&pp5000_s5>; + peer-hub =3D <&usb3_hub>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@3 { + reg =3D <3>; + + usb2_hub_p3_ep: endpoint { + remote-endpoint =3D <&usb_a_u2_ep>; + }; + }; + }; + }; }; =20 &xhci2 { - vbus-supply =3D <&usb_vbus>; vusb33-supply =3D <&mt6359_vusb_ldo_reg>; status =3D "okay"; }; --=20 2.54.0.1099.g489fc7bff1-goog From nobody Fri Jun 12 11:37:43 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 6D6A03DC4A4 for ; Wed, 10 Jun 2026 08:42:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080951; cv=none; b=V/NIcRNdA0pN3SLqVMNXk0dF/WeuvR+aRL9oRtIURLnBIxJyiLsY2fMAeaIQ4d/P6LU5E7YrWxKEMcWN8TB6tyHWCNiO4bNNvnNR7nlVN/Dbrf9Rk5tL/ZiUtFbPRTfWGkpa0UzAE5a0n6u8vvjhLVOXfSA1vRMjwTGdLu7XeF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781080951; c=relaxed/simple; bh=L0k6uos52VV4wg4MHzXBUup1YCt3bqCKawBNWUGaaBg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hSn0BLi73+2h0d8m4Q12zaVtmVgM+VCUg35e2OwKY+cr3W65BaXmRCoFJkUFaotzCzbUElrmJBl8WEp85RvYsrEZnrwH4B3KtUDnu5MWR5X5OHVCsovP9rn9A+G/ALHwRXBTQQraOdLEoeRNtYKqWemzT6HHPnctE1fbo2q4EME= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Qlzr6dIX; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Qlzr6dIX" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2c0c32f6ce1so45054185ad.2 for ; Wed, 10 Jun 2026 01:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1781080950; x=1781685750; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wIcmQ/+wBM4HApLQCMfHTTwDc3UumPbYrqxn3prOxAY=; b=Qlzr6dIXYLWe+J1AwJtZuVEydjBe/30Rx/JLGcFfo20Wo1t0CTykbRC69z3tMJ91V5 4UYX5bZfWp8s1ISrLW/TXHw3uqS1oZwf64wv5UztWEGoGUaZLdTeFVRjb1aVjqXHvZsu llT4AsUREnI9FbCkKNcT73SRhua2vtuyrm2iI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781080950; x=1781685750; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wIcmQ/+wBM4HApLQCMfHTTwDc3UumPbYrqxn3prOxAY=; b=fBPCEf3PB+M4NYZ3XcuX5VsuJ8LPwbHv7wY0j41xuMw17OGeBglB/qFePjpBQEzNBj cX6zdB0Cb6CY4oII80Bofg+DkFU6c6dlDpIO9Zf08oUBc1g9ZZYq1Yo/gBZTSlj7PmvY xibDhU2T5wcO8+JUArLSJjlQFaZDzS37u0yMCAQGVsdlLbpi5PbXgnOC5NR5/6x+0fga 69v5/8vtzL/zCt+BTsh3I6sRQpZQUDfUTzfnyhuTSw9ti6nGLI/QjH9u/WO1T5uO5/vh MHUoi3oKbkNLC4pXk2oYZLxC4Ishqcvovs9W3963ALTmmeusu9Ged526qZueHJjLxNMa EzpQ== X-Forwarded-Encrypted: i=1; AFNElJ/6ObI+gy0PGCAwQeKxb67dkc1JgLneKdvhYm61sD1IhrzChfn25qxrNevpNKXuWQH9DT+FfK5gYOfJH3k=@vger.kernel.org X-Gm-Message-State: AOJu0YxXQDBJjG6OT6xHJYFaZR6BZWZygYk2pJP5AK3+uTDHLSfLs/+N bF5f7UU3GrcBNP6Ny1RxXNg8NHKdiI8mu35OlfMZsfUCkRJe0s89RfE7PRtARID8bw== X-Gm-Gg: Acq92OE67ytbNEpy+XwZxhxLVhFPzkKrLkPMSS0Ph7lKgEq4SXekHrzJBaPYZX2VYKs aiIsu3TNDxJWtCbGoOy+4SvfuIysEsxO90mC/O6KUSVUBT6zUPzeCBYqlbdxHug3rF2Kn7z57IY MpwCAC70xX8J+6Y+q71TYRrzNREqSJ0Pq3peI4p3cJgPujDiLmbOq+xEH2cBqkWWpx04+wxWt0D zHVXG+4m6XqtC+2QBtIOCfjBMaXIUo5WcD1gy9QqgQ3KRIsDS5Vsu+RzBXhkzoPkdysl1aRBOic 6kbhYeCaZ/6ahvv61dkM3a0ORU/goofaKq8mGhmthMldLokYRuw71elrQBGLj1k5SvZX2q2JSE3 rA7uaZRdJbfgpzbVRpPuYX6LdieLcPedG6qIyppd/KO241sbXmyIhM5O/nI5ewxolLEUS+OixVc BSUWs8fD80+aJs8zma7Uz+c1kiW3VLQ7xG53R+kWOx5UEe6bYI8giUQ7tOdcMoT/EHr+9pDCNBz 2umd/dz+RJ3KdixwQ== X-Received: by 2002:a17:902:fc48:b0:2bf:23ad:8595 with SMTP id d9443c01a7336-2c1e78e4f0emr297124555ad.4.1781080949649; Wed, 10 Jun 2026 01:42:29 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:3870:6325:16c:d35c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f890b2sm239223725ad.26.2026.06.10.01.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 01:42:29 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Alan Stern , Chen-Yu Tsai , linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v2 16/16] arm64: dts: mediatek: mt8188-geralt: Add WiFi/BT as M.2 E-key slot Date: Wed, 10 Jun 2026 16:40:50 +0800 Message-ID: <20260610084053.2059858-17-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog In-Reply-To: <20260610084053.2059858-1-wenst@chromium.org> References: <20260610084053.2059858-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MT8188 Geralt design features a chip-on-board WiFi/BT solution. This is a M.2 E-key WiFi/BT board layout directly inserted into the mainboard design. The connections to the rest of the board are almost the same as if it were a separate M.2 card. The only addition is the PMU_EN pin on the chip; on M.2 cards this would be tied to the primary power source. Model the chip-on-board WiFi/BT solution as a M.2 E-key slot with PCIe, USB and auxiliary signals. The PMU_EN pin, which enables the internal power controls and regulators, is modeled as a regulator fed by the pp3300_wlan regulator. Since power sequencing is now correctly modeled using the M.2 E-key slot, drop the "regulator-always-on" property one pp3300_wlan regulator. Also drop the comment in xhci2 saying "MT7921's power is controlled by PCIe". Also drop the voltage range on the pp3300_wlan regulator. This "regulator" is just a load switch and does not provide any regulation. Signed-off-by: Chen-Yu Tsai --- .../boot/dts/mediatek/mt8188-geralt.dtsi | 93 ++++++++++++++++++- 1 file changed, 89 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8188-geralt.dtsi b/arch/arm64/b= oot/dts/mediatek/mt8188-geralt.dtsi index f382f90c48f5..c4cc2cff1b5b 100644 --- a/arch/arm64/boot/dts/mediatek/mt8188-geralt.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8188-geralt.dtsi @@ -86,13 +86,11 @@ pp3300_z1: regulator-pp3300-z1 { pp3300_wlan: regulator-pp3300-wlan { compatible =3D "regulator-fixed"; regulator-name =3D "pp3300_wlan"; - regulator-always-on; - regulator-min-microvolt =3D <3300000>; - regulator-max-microvolt =3D <3300000>; enable-active-high; gpio =3D <&pio 12 GPIO_ACTIVE_HIGH>; pinctrl-0 =3D <&wlan_en>; pinctrl-names =3D "default"; + /* load switch */ vin-supply =3D <&pp3300_z1>; }; =20 @@ -159,6 +157,17 @@ ppvar_mipi_disp_avee: regulator-ppvar-mipi-disp-avee { vin-supply =3D <&pp5000_z1>; }; =20 + /* PMU_EN pin controls internal regulators and power sequence */ + wlan_pmu: regulator-wlan-pmu { + compatible =3D "regulator-fixed"; + regulator-name =3D "wlan-pmu"; + enable-active-high; + gpio =3D <&pio 145 GPIO_ACTIVE_HIGH>; + pinctrl-0 =3D <&wlan_pmu_en>; + pinctrl-names =3D "default"; + vin-supply =3D <&pp3300_wlan>; + }; + reserved_memory: reserved-memory { #address-cells =3D <2>; #size-cells =3D <2>; @@ -193,6 +202,39 @@ adsp_dma_mem: memory@61000000 { no-map; }; }; + + wifi-bt-connector { + compatible =3D "pcie-m2-e-connector"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&m2_e_key_kill_pins>; + vpcie1v8-supply =3D <&mt6359_vcn18_ldo_reg>; + vpcie3v3-supply =3D <&wlan_pmu>; + w-disable1-gpios =3D <&pio 13 GPIO_ACTIVE_LOW>; + w-disable2-gpios =3D <&pio 14 GPIO_ACTIVE_LOW>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* PCIe for WiFi */ + port@0 { + reg =3D <0>; + + wifi_ep: endpoint { + remote-endpoint =3D <&pcie_ep>; + }; + }; + + /* USB for Bluetooth */ + port@2 { + reg =3D <2>; + + bt_ep: endpoint { + remote-endpoint =3D <&usb2_ep>; + }; + }; + }; + }; }; =20 &adsp { @@ -657,6 +699,22 @@ &pcie { pinctrl-names =3D "default"; pinctrl-0 =3D <&pcie_pins>; status =3D "okay"; + + pcie@0 { + compatible =3D "pciclass,0604"; + reg =3D <0 0 0 0 0>; + device_type =3D "pci"; + num-lanes =3D <1>; + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges; + + port { + pcie_ep: endpoint { + remote-endpoint =3D <&wifi_ep>; + }; + }; + }; }; =20 &pciephy { @@ -1000,6 +1058,14 @@ pins-bus { }; }; =20 + m2_e_key_kill_pins: m2-e-key-kill-pins { + pins-kill { + pinmux =3D , + ; + output-high; + }; + }; + mipi_disp_avdd_en: mipi-disp-avdd-en-pins { pins-en-ppvar-mipi-disp { pinmux =3D ; @@ -1164,6 +1230,13 @@ pins-bus { }; }; =20 + wlan_pmu_en: wlan-pmu-en-pins { + pins-wlan-pmu-en { + pinmux =3D ; + output-low; + }; + }; + wlan_en: wlan-en-pins { pins-en-pp3300-wlan { pinmux =3D ; @@ -1343,10 +1416,22 @@ vdosys1_ep_ext: endpoint@1 { }; =20 &xhci2 { - /* no power supply since MT7921's power is controlled by PCIe */ /* MT7921's USB BT has issues with USB2 LPM */ usb2-lpm-disable; status =3D "okay"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@1 { + reg =3D <1>; + + usb2_ep: endpoint { + remote-endpoint =3D <&bt_ep>; + }; + }; + }; }; =20 #include --=20 2.54.0.1099.g489fc7bff1-goog