From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 2098642B726 for ; Fri, 15 May 2026 09:02:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835733; cv=none; b=kkmJ7bnOkDE/6jRdZNsP+k067aQ4X4uZc4cU3lppAKR1sXxVFJfM7p91b53zz0nXoptB/6cpJwE1PIw99VtINhsAun3IE9h82YXMQBa69BQv6wwYKGZyiRr+ao0UGC/BdFiDF8INjEhnBlom2BPBcieNimVGakLtWOndZtpTtEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835733; c=relaxed/simple; bh=aAFwJQgIt7xDHMJ5j64aG3AQ7uDImuBxz1E2PHKbomw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XFFJ6ccIrR+f+AtJBBd9eOmKLKu+hJd+WFk6kiKJrBShdbar1+VDLTQHedmHwR6uaOaxpAt+kMkByiRjmtuXfRXx1BDWqdoW9oTyLfwLzoAviU0uUNG90QviCIqYi6zprh5QZdZtqzZGMNjXXQWhcTxkSPUerEkyZ8gw/nmyjYQ= 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=liyPZIAL; arc=none smtp.client-ip=209.85.216.42 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="liyPZIAL" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-365e20fe3b8so5374719a91.3 for ; Fri, 15 May 2026 02:02:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835731; x=1779440531; 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=VXZt6qBmARZ13tXsBdYUa2P85z9cDemCtuWb0vwC4yk=; b=liyPZIALxM6+z9ZGu5nXZEUgIre9qgeNd9WxG3qRseUNupPzCzh+tPk/eKHRVXJlHd 1j2ITUUxG+UAMVEnnFt66KZw4NDq+aIjgrVwO3uGt8stuh9cz6LBvbMMFXi9TJxexRNy PzUZfQwRC9d2U1vVBxXvikdtfcfu/xMIDAa1k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835731; x=1779440531; 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=VXZt6qBmARZ13tXsBdYUa2P85z9cDemCtuWb0vwC4yk=; b=n+K47zUxjKO60JdV5ysyrXQTkABVPKFTc78cVfudldyTtjtqNvzJf8vjxhdvmWFr4q OOyl6J2qlHjxdki7Bb96DXZTQ+jniZORxo/4QTQb38kG63tBH14uCUfV6PDDkaYyh9f5 W5uRM9P8olE8RjhVA0c0Pk3Lq/v09q3qDc5hj8yz9ee/VONHpzYx1PiUAGAdilN9Uk85 7TP3GpqU5UAPs3tAVHodeQr0d/dHEutQrlIPuek125qObvK2XunvjsT9A800Kx6iC3dX qY0bCIvIzV7k5Rj8myAISxI5Gf5WgebbcuTVzeNESJdXR9r/adHJnNXqyibin7oCnfBJ CH1w== X-Forwarded-Encrypted: i=1; AFNElJ8c26Xt0z4RY7Q4IDvn+kx2GV712rEDjGqpNDtjOGhy5XLvH76/jZhReRUFRYxkJP0O2jJ512DGrf4pGjk=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1FUdWXdJRY07zrURDDfHIim9Ru6oYI4/qxsD+QXc3aqij/QJ/ NZoSxmIPWDjjNa5VreioVP8hS+mpvUCYPHQRg8F9fZrgGsBv6tQwpKufWmE5heFSNA== X-Gm-Gg: Acq92OFsmsQlLX8ePPyYz4N0E1reX/SIOx+k+QcDmzHqmqpR9+/GLygEEYxvdP7pYdn OHcyYidngjnUXYyPyTuUGkSGzl2gQU51XnLIy5tfQTiUOp5Ce1IhO59dWwKaEvG6GbyRm4A+ETm GMsJ/AcDrQGckQ4b/48jmrcTeUE+/qzGLQhVmJt6oxpQYGJVi9/XcmBaI11WZgWnCaJrXCVwPuO I2fETitIiNBUBS9mut2rti/mHVwsTyJu/Vye/qoDWwX5Wjk4SyChfn3aV+2WDpsOqoP1i0UAlyB ATJFMScWbf8RYFNL9Mv3ZYFHjs7aitAGa0IYKNA00BVC39c6q/v7knh4zJ6ezzTWAgl/4hR5lyQ kNYzE7UZJDz3aCiOoVZ7CGPPDAFcqKE4mIcq3ggFmZH7xwXiOV4Ukd7zUwi/ML3bHc/MxrPM1aT kMmw7qF7eXJMNWh11kqtCaC3gc87CSagavcFceG2juj1LUZAhHHwgrFC0Msg+8jE0OoYsjuYnA7 McRfiIx X-Received: by 2002:a17:90b:548b:b0:366:2668:b5b6 with SMTP id 98e67ed59e1d1-36951b9e004mr3400112a91.22.1778835731362; Fri, 15 May 2026 02:02:11 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:10 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 01/12] power: sequencing: Add index parameter for getting power sequencer Date: Fri, 15 May 2026 17:01:37 +0800 Message-ID: <20260515090149.3169406-2-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 more than one sequencer could be associated with a particular device. For example, a USB hub has multiple downstream ports, and each port could be connected to a different M.2 E-key slot. In this case the index would be the port number. The index tells power sequencers for different slots (connected to different hub ports) apart. For the consumer API, add a new pwrseq_get_index() for new users. The original pwrseq_get() now calls pwrseq_get_index() with index =3D -1. For the provider API, add the index parameter to the .match function signature, and tweak all existing providers to match. Actual use of the new index parameter will be introduced in the next change. Other than the API change, no functional changes are intended. Signed-off-by: Chen-Yu Tsai --- drivers/power/sequencing/core.c | 12 ++++++++---- drivers/power/sequencing/pwrseq-pcie-m2.c | 2 +- drivers/power/sequencing/pwrseq-qcom-wcn.c | 6 +++--- drivers/power/sequencing/pwrseq-thead-gpu.c | 2 +- include/linux/pwrseq/consumer.h | 6 ++++-- include/linux/pwrseq/provider.h | 2 +- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/power/sequencing/core.c b/drivers/power/sequencing/cor= e.c index 14335c4f813e..1a91ee6d416f 100644 --- a/drivers/power/sequencing/core.c +++ b/drivers/power/sequencing/core.c @@ -612,6 +612,7 @@ struct pwrseq_match_data { struct pwrseq_desc *desc; struct device *dev; const char *target; + int index; }; =20 static int pwrseq_match_device(struct device *pwrseq_dev, void *data) @@ -627,7 +628,7 @@ static int pwrseq_match_device(struct device *pwrseq_de= v, void *data) if (!device_is_registered(&pwrseq->dev)) return 0; =20 - ret =3D pwrseq->match(pwrseq, match_data->dev); + ret =3D pwrseq->match(pwrseq, match_data->dev, match_data->index); if (ret =3D=3D PWRSEQ_NO_MATCH || ret < 0) return ret; =20 @@ -655,16 +656,18 @@ static int pwrseq_match_device(struct device *pwrseq_= dev, void *data) } =20 /** - * pwrseq_get() - Get the power sequencer associated with this device. + * pwrseq_get_index() - Get the power sequencer associated with this devic= e. * @dev: Device for which to get the sequencer. * @target: Name of the target exposed by the sequencer this device wants = to * reach. + * @index: Index of the sequencer associated with the device. * * Returns: * New power sequencer descriptor for use by the consumer driver or ERR_PT= R() * on failure. */ -struct pwrseq_desc *pwrseq_get(struct device *dev, const char *target) +struct pwrseq_desc *pwrseq_get_index(struct device *dev, const char *targe= t, + int index) { struct pwrseq_match_data match_data; int ret; @@ -676,6 +679,7 @@ struct pwrseq_desc *pwrseq_get(struct device *dev, cons= t char *target) match_data.desc =3D desc; match_data.dev =3D dev; match_data.target =3D target; + match_data.index =3D index; =20 guard(rwsem_read)(&pwrseq_sem); =20 @@ -689,7 +693,7 @@ struct pwrseq_desc *pwrseq_get(struct device *dev, cons= t char *target) =20 return_ptr(desc); } -EXPORT_SYMBOL_GPL(pwrseq_get); +EXPORT_SYMBOL_GPL(pwrseq_get_index); =20 /** * pwrseq_put() - Release the power sequencer descriptor. diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index ef69ae268059..16a332f9da7d 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -158,7 +158,7 @@ static const struct pwrseq_pcie_m2_pdata pwrseq_pcie_m2= _m_of_data =3D { }; =20 static int pwrseq_pcie_m2_match(struct pwrseq_device *pwrseq, - struct device *dev) + struct device *dev, int index) { struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); struct device_node *endpoint __free(device_node) =3D NULL; diff --git a/drivers/power/sequencing/pwrseq-qcom-wcn.c b/drivers/power/seq= uencing/pwrseq-qcom-wcn.c index b55b4317e21b..ac6b34e01c51 100644 --- a/drivers/power/sequencing/pwrseq-qcom-wcn.c +++ b/drivers/power/sequencing/pwrseq-qcom-wcn.c @@ -335,7 +335,7 @@ static const char *const pwrseq_wcn3990_vregs[] =3D { }; =20 static int pwrseq_qcom_wcn3990_match(struct pwrseq_device *pwrseq, - struct device *dev); + struct device *dev, int index); =20 static const struct pwrseq_qcom_wcn_pdata pwrseq_wcn3990_of_data =3D { .vregs =3D pwrseq_wcn3990_vregs, @@ -436,13 +436,13 @@ static int pwrseq_qcom_wcn_match_regulator(struct pwr= seq_device *pwrseq, } =20 static int pwrseq_qcom_wcn_match(struct pwrseq_device *pwrseq, - struct device *dev) + struct device *dev, int index) { return pwrseq_qcom_wcn_match_regulator(pwrseq, dev, "vddaon-supply"); } =20 static int pwrseq_qcom_wcn3990_match(struct pwrseq_device *pwrseq, - struct device *dev) + struct device *dev, int index) { int ret; =20 diff --git a/drivers/power/sequencing/pwrseq-thead-gpu.c b/drivers/power/se= quencing/pwrseq-thead-gpu.c index a45318b4b2c1..cb7a6ea66c4b 100644 --- a/drivers/power/sequencing/pwrseq-thead-gpu.c +++ b/drivers/power/sequencing/pwrseq-thead-gpu.c @@ -115,7 +115,7 @@ static const struct pwrseq_target_data *pwrseq_thead_gp= u_targets[] =3D { }; =20 static int pwrseq_thead_gpu_match(struct pwrseq_device *pwrseq, - struct device *dev) + struct device *dev, int index) { struct pwrseq_thead_gpu_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); static const char *const clk_names[] =3D { "core", "sys" }; diff --git a/include/linux/pwrseq/consumer.h b/include/linux/pwrseq/consume= r.h index 7d583b4f266e..d5d57cdb0c8e 100644 --- a/include/linux/pwrseq/consumer.h +++ b/include/linux/pwrseq/consumer.h @@ -11,10 +11,12 @@ struct device; struct pwrseq_desc; =20 +#define pwrseq_get(dev, target) pwrseq_get_index(dev, target, -1) + #if IS_ENABLED(CONFIG_POWER_SEQUENCING) =20 struct pwrseq_desc * __must_check -pwrseq_get(struct device *dev, const char *target); +pwrseq_get_index(struct device *dev, const char *target, int index); void pwrseq_put(struct pwrseq_desc *desc); =20 struct pwrseq_desc * __must_check @@ -26,7 +28,7 @@ int pwrseq_power_off(struct pwrseq_desc *desc); #else /* CONFIG_POWER_SEQUENCING */ =20 static inline struct pwrseq_desc * __must_check -pwrseq_get(struct device *dev, const char *target) +pwrseq_get_index(struct device *dev, const char *target, int index) { return ERR_PTR(-ENOSYS); } diff --git a/include/linux/pwrseq/provider.h b/include/linux/pwrseq/provide= r.h index 33b3d2c2e39d..a2ec6c612c8b 100644 --- a/include/linux/pwrseq/provider.h +++ b/include/linux/pwrseq/provider.h @@ -11,7 +11,7 @@ struct module; struct pwrseq_device; =20 typedef int (*pwrseq_power_state_func)(struct pwrseq_device *); -typedef int (*pwrseq_match_func)(struct pwrseq_device *, struct device *); +typedef int (*pwrseq_match_func)(struct pwrseq_device *, struct device *, = int); =20 #define PWRSEQ_NO_MATCH 0 #define PWRSEQ_MATCH_OK 1 --=20 2.54.0.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (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 8AFC6429822 for ; Fri, 15 May 2026 09:02:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835736; cv=none; b=uDTJVY5+4+2HMlAPp6plR2eQVt+Z0Apg/v6MpCW/P7bLuA7MYxXyo53urVGdMRZjjhYCNi+pFx2JPGamImMSk4u6uauS5winZtUikM0LChpabebDCfkRX61MTfWrTAN+UcxkV3xZs6CyFLzUySXM6i5SCWcQN+w4pVzKyX4TP54= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835736; c=relaxed/simple; bh=QIk7JPCunkbKluanxQkxUv0yYQaC75cEo7KnXQQKbys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jaYEKaZATRiWhA3AA6vtbPF1HUin1YfD5r+DQxE1GrlHzL4/SuEbRGYhMfyoUBnXAlHAXxBcGkiLhQoiUAZc4QeHg2l3WiHN1J55msfE9Sgzi2NaVFYPCAD0sQVfbfkq9wNzHb2ao4cJWOrAhTqCO1CRk4wItVZXqzL68kMcdWM= 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=lPyRB48M; arc=none smtp.client-ip=209.85.216.54 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="lPyRB48M" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-3665a90bcd3so7142355a91.1 for ; Fri, 15 May 2026 02:02:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835735; x=1779440535; 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=+04SKeVBhvRIfsHaTWxnqsLENnjwWESaqrABBm+vFKc=; b=lPyRB48MdySvrLxUPjSIJtXH9XTUO69dL/fHGI1Yh2IyKrtIa/VkpLd6MErLFlH6zz IckhG3nXnBSVeDkOEWWz6/7f/KU3o2A5sXsH8RSEh89U2rnM8EiP2liyKZgtZNDjgSY7 p3Eo4tPUhYr1t8YBuvnxG5NJirHq/IG0XQgaw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835735; x=1779440535; 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=+04SKeVBhvRIfsHaTWxnqsLENnjwWESaqrABBm+vFKc=; b=FfZm8pPuH8Z10MvdT7sfSXvvTnqcoc3sQoA1qFRNcsHLvE8cxU94+tZpY9m4IHox7I 5bDgD7JuqbVNXoy98UTjyI6r/SodE2psmSCnWdwhsLV65kb9FmasRhyFr3RLdwDfpuDN gpva5SoyriCtnadGXnECrvRbXXPan1BCRSr2gZ4mQKGsX3utkrdYPyw68UG5Kq3IdkUO ItpbOPKNW+XAtxNGR2FhBBuBD/a55EHLUPdAljkRS1JlNz634zy67YilC6/BOz43mr5H wlDyutXIYTLL9vSIicxQMdkNpMh/HboLn9A4L9p4GPBLrNir3TbeIT+nguzHdrLmcOUQ BcJQ== X-Forwarded-Encrypted: i=1; AFNElJ8T2qEWu6yt+1GFjiNATzVCdxyV7ruhdg60NhWz2wIcYb4qYI84N/+PEAzJ2fDNU3d/rhQXptUfTuBSsPo=@vger.kernel.org X-Gm-Message-State: AOJu0YyrbJbs7Ah8MKJJ+r/1lZ4kO2UAPZVf09vnRei5K2A4KyR6KPJn TovyXLv+76QHsUwHAXhtgBGiCjgFhinf35pCSuhpJUUIGPRTHyNxYkqB07CQTYRYMBU6SKjKYCr ArCk= X-Gm-Gg: Acq92OHRzQT4sutdKREBEt1cCUncDW+7O6XbPZ3xK889nWkk4UIxUcVZrNVj3KBT54U hLJ4p/kPY7bkGaYLE5TgEBIb/C27d79MiV3nD+TPMljWFSikoa/7KnD7TGqaGkEZhdXxFs7PmHV hqQyMuLxXpjlLCgsaEeHY59+hpavZK6jA+IV99ojrjo7NzDIggTEkeTdYLOz9l8GDOY3gMwVgBE +mGME85KRPp+I0ub6NtjXCshgd3iEwKJvxm6ICVpRH1emAnXSuDYDFg4WjwPlv/Bh/W5k4FPm8F kTsgUXNyDahuDxVSD9m2QCTStIkhHs/4cG7EFTHODBzZnEZmueM5hsFs5SL9slaorLLbJCmPSba EsvKW3UYprcAjsMGlvDI0WZXbRYlpFzskl9h+jRPtstnmrYtqbO1ESGekqVF9pE15YadkVFsUCr y6oSOd49KMHqXtoIFnOf0ciXpXAwqDiBEtEG3lr6o9P90CBIgPp5PuzGul1XHbqVHoe8zmIZGE5 ADteJ9O X-Received: by 2002:a17:90b:50d0:b0:367:bb47:9fc2 with SMTP id 98e67ed59e1d1-369518bae79mr3243819a91.2.1778835734722; Fri, 15 May 2026 02:02:14 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:14 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 02/12] power: sequencing: pcie-m2: implement port index matching Date: Fri, 15 May 2026 17:01:38 +0800 Message-ID: <20260515090149.3169406-3-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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" For USB connections, the upstream USB (hub) device could be connected to multiple M.2 E-key slots (or other power sequencer providers) via different downstream USB ports. The provider needs a way to tell the different connections apart so that the correct provider is matched. In the previous change an index parameter was added for the consumer API and the provider matching function. Implement port matching using the index parameter. We simply check if the remote endpoint's port number matches the index. Signed-off-by: Chen-Yu Tsai --- drivers/power/sequencing/pwrseq-pcie-m2.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index 16a332f9da7d..c9aed2c02e81 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -165,12 +165,28 @@ static int pwrseq_pcie_m2_match(struct pwrseq_device = *pwrseq, =20 /* * Traverse the 'remote-endpoint' nodes and check if the remote node's - * parent matches the OF node of 'dev'. + * parent matches the OF node of 'dev' and the port number matches + * 'index'. */ for_each_endpoint_of_node(ctx->of_node, endpoint) { + struct device_node *remote_ep __free(device_node) =3D + of_graph_get_remote_endpoint(endpoint); struct device_node *remote __free(device_node) =3D - of_graph_get_remote_port_parent(endpoint); - if (remote && (remote =3D=3D dev_of_node(dev))) + of_graph_get_port_parent(remote_ep); + struct of_endpoint ep; + + if (!remote) + continue; + if (remote !=3D dev_of_node(dev)) + continue; + /* For existing users of pwrseq_get(): index =3D -1 */ + if (index < 0) + return PWRSEQ_MATCH_OK; + + /* Check if the remote endpoint's port matches 'index'. */ + if (of_graph_parse_endpoint(remote_ep, &ep) < 0) + continue; + if (ep.port =3D=3D index) return PWRSEQ_MATCH_OK; } =20 --=20 2.54.0.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8A33426EBB for ; Fri, 15 May 2026 09:02:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835740; cv=none; b=qaGm4wnWZl6gZGuWriZYt42Qr7R+1qAf5KEg4Z+tow1uDEyR2yUWVWg4XDbjVp03hxA25POBlrnUNXvO2OYtJiEjME7XUCce2AX2Dw6ec3zDMgEZBG3TPYmavWLvN5tStvf2L3u5nIySnQ0ZkWBxeaAhsQGzWHjB103BIlwA3yo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835740; c=relaxed/simple; bh=vOEO0AyQPFcIP5Oepet64iLw7BJ4UcNrPP/hNlqxr94=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oAzuLFqXLASgSsQD4ZByveApWT4lKptrvYZzpZjtJvx3t89r8XShrGcNcjDpoJ1YxiFKXVG1KUGmgGEH9RiZi1rsTkwJqEnFXY3AgjxgR4mZ/TbJBHeBJvIIWIMgQLgrvk3qqBJMq19RrTZ/g/rJYWbz4I8TAxplIATUCJ3ZaJw= 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=nmGFmDDh; arc=none smtp.client-ip=209.85.216.49 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="nmGFmDDh" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-366be8040a9so3807941a91.3 for ; Fri, 15 May 2026 02:02:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835738; x=1779440538; 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=lkMXWQOY3SYOq1egH+Z6kUsiL0nTYxohMUH/RmfCF7Q=; b=nmGFmDDhYtbSJbIfmkvcEEz6IMBYLHqawySsgWUdsZ60LRJZjfZowRpT7soor+1YpC 1810YBzjQUC+IFoK8fmC4V3+779tnUjc4ha3iYaG7ZaWhl+X7teLvWx83DnJBKG+YNYQ AtZPpE+RLkEiWn9hrpmerbtsRiGy1ebcBHoq8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835738; x=1779440538; 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=lkMXWQOY3SYOq1egH+Z6kUsiL0nTYxohMUH/RmfCF7Q=; b=jKwTPOq36aHoJXw40WRTWawayN6OBUaVywLbJiQulHlVUkAIPPfYUl1FGZRN+/SIsO 3yYQPHDVo+wZFwEDgNyc+hjLnCxBVGZGmaYxDrhW+KBvr83m7TPmsBv4umnPMHfyg76t 8e+mA+zpENUbJR+AQ45lm9LHV0djf4OAjCGA3N8pntyCsTgs1/wwLLGwxLHhMrQm9vtZ /E6VWfDmxRYyD9wbesJXe7djLaPus8petgYTKAj66kvFisuKzjPH9/1+vS2kUaglw3vE 8ooUUPP/m8MrONBteGvKZvXR7sf/nucOJ7pddKwlHKtXHHvdDCa3mHF+kfXupaVo7l68 GLkw== X-Forwarded-Encrypted: i=1; AFNElJ9P5JlAThKAcBVwHR45/lCGw7RzXxz1tC6JoX2WOKnE74PyB9Ukj8kMv2aOqzCg9awGjsvkgNTRiZPSSQA=@vger.kernel.org X-Gm-Message-State: AOJu0YzlAxrh34E6CGSn2pp9V+6FaNucf4N/XyXy39K6w8aysJchbcV6 gXnMlCr+/FOqK576Fz4P3mh2HfJfoXB9RrgvgX3OAYdiK3+BpgHjyOcBKtlLDErpfA== X-Gm-Gg: Acq92OH0vVXjHjVwRXmd/JZpNf4uaOZWSFCzfpd6EpYDPglbrN61wkvqyK6sL8h+zPd Hx3AYLK5QJueXhh3HPCSc2QvzN8LSPzoNpOo0yRCKsySmQ2UKCbxv4hKZav6E4kyOCHgWxentYE ru+X2sWS3Sd7HytvZ9JeT7TcgBcwdHF+UHCMMm/90f0OkV3M9xHu5hcNF55qF08BL8QKeGLKDEj Sr5Ln/03hugl1dhBs8wsgzjhDqSp3xvm4nsqbUsjquw+++XW9qe4YKN7oyB8sAIGw3Hab8r2DQ1 f1u7mrMGc0TKuw8rlqCxhetvX2Ku8CuXlGFAnnYlk1kAHKWg41AT0+uFcJK+fItuu75sCugNN8b 4o1q0oc4U39vM73XBUCmGx/exSJ9nV8447q0F60iT9ev9Dbe6UQsMoTz+GzDgtrqyon5ut6UlPo Br6vDOjiSBJCXHIragXiaNkiyDiVv1qw+3qgfbnzac+ysrkwAVRmogYOoRxwkd4+fXlFOwYsB7b H4B6wwFznXCpWpt/LU= X-Received: by 2002:a17:90b:5744:b0:366:159a:c17e with SMTP id 98e67ed59e1d1-369518af9c4mr3451493a91.2.1778835738088; Fri, 15 May 2026 02:02:18 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:17 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 03/12] power: sequencing: pcie-m2: Add usb and sdio targets for E-key connector Date: Fri, 15 May 2026 17:01:39 +0800 Message-ID: <20260515090149.3169406-4-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 c9aed2c02e81..a5585f000ef1 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -62,46 +62,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 { @@ -123,13 +123,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 @@ -140,7 +151,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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.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 2DD2642EEC5 for ; Fri, 15 May 2026 09:02:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835743; cv=none; b=jiDJdsfKRfBl7GzTfzxIEh9hnX4rsJje7WuD6bbJHPhO+bjBCSAGJkCfiDuJzSvi9DCUt1KWsll8WJhpXG9aQLbhfpHfz7YTyd+Ovyae7OT30MD/phLQ36hlt+obtm9LJg5Zok9HleRX0PEG5YxqS8X7fTIcVtZjqg9/EPvkth8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835743; c=relaxed/simple; bh=bOSDifb0+bqORKH2w/7EPITVe40diI8h5lS71n8Mt58=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V8gVUPvY8+YxBitN5ePYbzPuu59Ma4gbQSwXVEDCd04cmlV/mLpY5weJ34v/ls8RpEq2+Zxlcw9Up9O2P72PRbhs6fKoJagmDQw2HaMz8+EWWM2VR+RL0U9C6GfSgpxsTDF03vXREln/u273iSlNkIWaWBRsh0ZX8oXH38b33uA= 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=JCj3R3Wf; arc=none smtp.client-ip=209.85.215.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="JCj3R3Wf" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c828daf83e2so2853152a12.2 for ; Fri, 15 May 2026 02:02:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835741; x=1779440541; 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=CWN7gkxjFiGZ3cV0OWHAWJ+8N9Pyp+YRIV9vOKGoCOQ=; b=JCj3R3WftoStic+DwMeCi+7mnyb0HhFcBZBXMAAfPT8pcXH2l8L+N8MkzUL3dAtdOD dxnkd8kwHxLw5PJkQjPiN34ytGyYS5XK8H08Y+ZZMPJadfGPi/d6HgCu6y1pTgWFcJR3 jaNMIkNq26XYAcikYNj0CqhML+KgXMF6VweKI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835741; x=1779440541; 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=CWN7gkxjFiGZ3cV0OWHAWJ+8N9Pyp+YRIV9vOKGoCOQ=; b=p8cuITFvSzzK1B7JyTQHthxilJD8aGpbk+iY5RGQbx+MtGlz709m2btukub5uu8DtU OxeIPQEHZT3g4EXiAU8iiQ4aOxoAfVUl7/YehQyR3KkezoAwhGSwM/pjC4RzzmH6mRah iQ7G0ArnqBksZbL/WI+2LxgK1qBpP2r9p6J5BDwYYkuIg4Gj5SPtRLWD/AzPvdwxJyEB 3waaY11ss2f8hQgB+Xfoym+FVlzh9XA36NilcDS21RJk+Rg/kNXfwCBEwd6Ei1ErAS3u zVCeMjzoVhCi02W2pUokNsKydwG1Gc2CCzgIOELugTH48XkVOG9TQvtIoa61NyfDnJCp Z87g== X-Forwarded-Encrypted: i=1; AFNElJ8YrHx10gwmy+2v2Gl71sYFH2bruyUz7ukECSClukN9lkJhQEUI378rAjXIIDwwjhptQ1NB68XIn4F7uBs=@vger.kernel.org X-Gm-Message-State: AOJu0YxJyyyGeSAl6BuxbZS2OBRqb6K7CkUfYU9pUacMn0aLVKiHrQrY htHOJs2kZ8+vvJ1jzk2bbTQMdy6vbOHRgWaTy2jhUSA0bqFdycum6sJ7rQswGh2LPA== X-Gm-Gg: Acq92OHBD//XWyPavBfdIG8BjfzAjm3iy4hnnEDAkUeyQyC4LvfYW++OITc3rYbVzqh ZJUFuPXgZZgVPxL+8isvoa8j3ZWLElR4kSB4qSkWy/HT8LIjvuZ/ayCsmou6hbx8sNkvJ5ewvzw ONIB4U4Ymw9oXKe8KyRglig1BliGIbbyynk8du8bNACtfbKpDHUwKlC+F9piep8NhSOWnLPRQTL rpwDVCrKb6aT0q5stIhpRY7fAv6WmfLm9WwM3G/bfiA/8giG0R0tBvBUV2Rzcco0UBA2azBpv/A Jf3/mkIPMxpYiYVQgfTf9m+17U0IGFLNy9KAx/A2OheXetAippL3WY32psTtMij6n06iaY/dyII DpvxulDVAt1NlzrrI/BNP+p0QK4Gj2Vrk2/h23SdY3y3MCqqzIls/h2bNLuwSIVE8UrlHkZpgGX h9P1ZEBbvDny6OqwDdeY4nX2zh2sAscmrYfuzXy7s7v0Eqbes7dB7qI7JWhVMKRHw+smNBbnZUc sF00xzeU1J4LBNbXp0= X-Received: by 2002:a17:90b:5203:b0:35f:b288:8e4c with SMTP id 98e67ed59e1d1-36951a6722fmr2708708a91.15.1778835741437; Fri, 15 May 2026 02:02:21 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:21 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 04/12] usb: hub: Return actual error from hub_configure() in hub_probe() Date: Fri, 15 May 2026 17:01:40 +0800 Message-ID: <20260515090149.3169406-5-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 --- drivers/usb/core/hub.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 24960ba9caa9..90ea597d42ae 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1998,14 +1998,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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (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 DBFC743636C for ; Fri, 15 May 2026 09:02:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835747; cv=none; b=f3118IRN0V+GXjvu8xETZpy2kUBy2l+62iA0MQz29fv64PY7kwIg/8/9h88cdSLa/GvvMzPRoqCXK1gSBBD0ayGzW7ZToq4fGX0OXPXG3Bpn+9qJdcH461mzqaoWz5MfrqYPE51UazYvv2Fqy2xMPqmXL+9fSc6cT6L4lMu4yGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835747; c=relaxed/simple; bh=ThZbiS1vJdpqqF5s9c83K6xjiqLVYZz844wOEk97YQI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R9Ly3INdUyhfzyKbj07tjfd8VCZt+xIhBw6YnxPU2d7fo5BY91qE2Rd6tJPX/ONYsZrABCdh7ND5tLH9AZXsXvsl2LN/mGtRjOsaRKSElTMxxwMQNhBCX5vhwg/l/c0xoO1kv+uXEyyrh+NGSe/GxhNcwKo/yk0jD2ATILqVyAk= 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=XlhjQUpa; arc=none smtp.client-ip=209.85.216.50 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="XlhjQUpa" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-365d8e43759so319792a91.0 for ; Fri, 15 May 2026 02:02:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835745; x=1779440545; 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=I5s0xfmF/GQtBdazhqko0ifwn84a9WWF/9AOtLNrAd4=; b=XlhjQUpaJFI97ZjAaeRMQTINqRBWk2ijtS/8RsoQwASSs3ACilaYIuHm0KcipNSibT GQrmF3/0a2jHgaaEFe5bmKwA+8Tmxf4LjaDiLa7vdXD4nCoUusIXHLLPmkjBavK0sU74 m0jV5fSJQoYP1Vf++g5Oat9B6/FSlTy+41nno= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835745; x=1779440545; 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=I5s0xfmF/GQtBdazhqko0ifwn84a9WWF/9AOtLNrAd4=; b=nSsAmQXThdZWTjRHaTsQNg7KAH/j6NCMTGxLBC+Sqx8vLQ4rYmsvrXBVbCP82wHSQV IKnYG+Bz87pjqfcnKetecueG2HBuz32hhduuasetZP0gmwSnkc081u92q2J0z6mtFIIF B3kTI26nCpNjNw94bJlcKcGXaRqnk373QNeYvvODY5v+apLlrp+gGvAbY1Y4aD1wg/wq V3UdY7pZdtHsTMnKNNmuO25ndJzaSVHkxFgYTRecHNYmH/9LzFqJ0yXFR0zBMVCqS3wM /l4TYGim3eowZDjOktwWpYq7LpGArTbxDRP8S2RjNNiqiekpF0nxE7a9gxWD87M2mgA1 ScDw== X-Forwarded-Encrypted: i=1; AFNElJ8ijJ8FfsUmMQhNf04+z7bN3jbOcL7nijDi2qV/LSpT5W8GSmdOuwUZh5iqi52ySVBqraaWbwXZesrVt4A=@vger.kernel.org X-Gm-Message-State: AOJu0YxAV1Q7K1qvmdSvKkdGbGstf9BL1fS5c+/p8h8Z/S5+Od7Zmv1r eMPMKKJTDGsiP7Mh3qzN4dxONZjUBz5uEUwFzZd8FAe0QHDNYBLv4/IUgpmPAuxlYsKhQWvHK45 S8Xw= X-Gm-Gg: Acq92OE4sDb+ejbtNxHISJpq+dLuOutYodo//a2gDLJu8CMrBnZVXJhwSVYdKOzmLiu hOLq6hUY168pg98a9lS6FAC/sKoN4GWnfT0Ziwecy/1xxc6FnKp7IYjBrsSYKMcMI10gg1UanxS j4ix6nu2nv08mmc+zWIFlawIYY2ebmrJyT4+WHfHEPwHu8ShOWOoaDFcPwQKlgka+FPxiv33pNG Jp9hxTHeV4I3BGbWXzJBDLl0iBsQ8ZTno1mbpWhhX0NUSMh/oOXcGsigrt4Hd23JhtMNoMnT8wP Q//QmUjpm5l8Oq9JGpcPeYOiQP6LB0kmoLeet5wOp15ftIItjnsd8WgLoLi2HV/pjc8TWRydIQT KCOallcp9Fxi99eqgnZQCyp95wCP1OM6PfNKwSU2q50Xs5cPeeKPiNUh+SM5/Q/gxoyjHhhSBBE tuK/g0wrBgZ3QvthUMIp7puVmeKrMcvw5pagh8NbjRO7p23ZDtCZrVavSAld9KAnIHCF5/mrFdC XtcCjB/nqtwpjIvsAg= X-Received: by 2002:a17:90b:134b:b0:35f:bb17:39f with SMTP id 98e67ed59e1d1-36923318fc5mr6642779a91.1.1778835744858; Fri, 15 May 2026 02:02:24 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:24 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 05/12] usb: hub: Power on connected M.2 E-key connectors Date: Fri, 15 May 2026 17:01:41 +0800 Message-ID: <20260515090149.3169406-6-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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. The feature is limited to OF platforms, since the connection is over an OF graph. And it doesn't make sense to return an error when the power sequencing framework is not enabled, as that would block all USB devices. Therefor the function short circuits out if any of these conditions happen. Also, this 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. Signed-off-by: Chen-Yu Tsai --- drivers/usb/core/hub.c | 17 ++++++++++++- drivers/usb/core/hub.h | 2 ++ drivers/usb/core/port.c | 54 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 90ea597d42ae..4165f71e212b 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -31,7 +31,9 @@ #include #include #include +#include #include +#include #include =20 #include @@ -888,13 +890,25 @@ int usb_hub_set_port_power(struct usb_device *hdev, s= truct usb_hub *hub, { int ret; =20 + if (set) + ret =3D pwrseq_power_on(hub->ports[port1 - 1]->pwrseq); + else + ret =3D pwrseq_power_off(hub->ports[port1 - 1]->pwrseq); + if (ret) + return ret; + 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_power_off(hub->ports[port1 - 1]->pwrseq); + else + pwrseq_power_on(hub->ports[port1 - 1]->pwrseq); return ret; + } =20 if (set) set_bit(port1, hub->power_bits); @@ -1867,6 +1881,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); diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index 9ebc5ef54a32..6039e5f5dcd7 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 @@ -104,6 +105,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; diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index b1364f0c384c..2d09037fee93 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,32 @@ static const struct component_ops connector_ops =3D { .unbind =3D connector_unbind, }; =20 +static struct pwrseq_desc *usb_hub_port_pwrseq_get(struct usb_device *hub,= int port1) +{ + struct device_node *node =3D dev_of_node(&hub->dev); + struct device_node *np __free(device_node) =3D NULL; + + if (!IS_ENABLED(CONFIG_OF)) + return NULL; + + if (!IS_ENABLED(CONFIG_POWER_SEQUENCING)) + return NULL; + + if (!of_graph_is_present(node)) + return NULL; + + np =3D of_graph_get_remote_node(node, port1, -1); + if (!np) + return NULL; + + if (!of_device_is_compatible(np, "pcie-m2-e-connector")) { + dev_dbg(&hub->dev, "remote endpoint %pOF not m2 connector", np); + return NULL; + } + + return pwrseq_get_index(&hub->dev, "usb", port1); +} + int usb_hub_create_port_device(struct usb_hub *hub, int port1) { struct usb_port *port_dev; @@ -801,10 +833,24 @@ 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(hdev, port1); + 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; + } + 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); @@ -842,6 +888,10 @@ int usb_hub_create_port_device(struct usb_hub *hub, in= t port1) } return 0; =20 +err_pwrseq_off: + 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: @@ -858,6 +908,8 @@ 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); + 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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19F79438FF6 for ; Fri, 15 May 2026 09:02:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835750; cv=none; b=WxgUlw+bZ1m+qDQwhy1e5c8aLaEjh1IS1ulURQnblqzCZblx05M+OJX72iijQ41gk4IgYjT/0mzPu+oA4KsxDpp4F+Id246WGw0FOY1g6FdQlK13vcOjsJDikYrOq6J6K7ZpAgisClk6BrHWnVSFuKmqYKchbRCp08lcNDWsLaw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835750; c=relaxed/simple; bh=ZpZa7k5qW6d4O5s2gIExYuE8RnKJzrY7mGSZ7vTtpmM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lS8gbsg9IJppOyCULVTiykzkr7WSkUKzqD/jlH3KO5pvDDWNDRNbBqYwElo3nD9fxckT1br3/G3vha2SHjHxDjMRWPm5rkK2KGyzdojZ08B3zwUYXLLlliReEhEa3v53ngB/HQ6/pVgjnVEpNl5Sdpo7lStb6OG5hEBa7OHnpAc= 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=M1ZKebKz; arc=none smtp.client-ip=209.85.216.47 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="M1ZKebKz" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-366375c4076so4334895a91.3 for ; Fri, 15 May 2026 02:02:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835748; x=1779440548; 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=cmC0iPkEpdT0NyKzeBxGsIEHmhfQRvHGa186Cj4Bsl0=; b=M1ZKebKzXgxRYmqadt91sF2wLWIgeZuyblx2pRSUYy433NDojHxvOTfmweZHw6Rpr/ z+O5zJd0FkNbaCHBCAA95AX8Un9yEksRiBJ7GQUztR4++xhjMUiI9zZV4+5w6lSdiHjk nYN8SWqW1GXjG0rgzVuqjmInrVTD/qZJxOtPQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835748; x=1779440548; 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=cmC0iPkEpdT0NyKzeBxGsIEHmhfQRvHGa186Cj4Bsl0=; b=f4paB/iDPmbyjhWHRZCKhzrra7rhWKcfMntBeBDBzPITlKIb9M75ZHN7xHOu1FHXH7 YHS29l7MS3dg3giHrDfTvfq7GylyUG4H4DGNdsG0EtMKzK0I5Z686TWZ5BVewLmmMzKj Py3KdRPf2k90IPeC3G4cc2hWuUqxI25A2KPkl+YCPjT9nooMi0xzuijBhlp4wtHCQk59 XhtNKydDSfMBO+HG+ST033RvSDBTPkebkeCCsD7TqRHvYSjcktVBnHuDck+w+4IgJa1u kds598dg4429JpM/z43D42BKPwKuCvzYJlxCaYsuYJVhLTJqYl2Lk//uafN/UdzxI+FG SmYA== X-Forwarded-Encrypted: i=1; AFNElJ9Bfcr6fsYMvDZb6Bt/sEwmceZBjdGzeizBrZz7VQT2rRHPmavtGE4TDbkA5vW818yHq1IviiYPOom6yEI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8KyCOVb67IEZVEZvL6uKGAGvFu81kFjU8axGUqvD+3sjnd6ch HMFfcSVZb6bZSsm6TiBK/JHxF0w4lnNIBsKlRoqwrNzfYE2uvVlXRz9su/sKElvsFQ== X-Gm-Gg: Acq92OEHwWRQ8v1lm683AKmT7teJC0ddrbgknn9QKSm2HD522VA7vFS9jIrkI/8lIxx wuDKNb8hHUBJlrzn4nxGlq5B+T5Ml4A0Kb1cB3aQXuRXeKOmg9tAuP22m59RxDqmxr8nBOSuDgs geGT6kAmgaNXU0BXkJsBzgAlldeIdV+cMab+ignZIG2NUQjDnFzKGx/wTqA4M9zgRshiUnkx8uM JIt2EtcLJZ8vUT9bMEXxXELW+J/qIrnuiWVRqnPwv4hdJIv8HTKzirrgFHLtzYqMoXvwKBTCcrT lwCDvVXbFPSqGdraEsi3a/CBftIGYksyWMykVv3k2KW9+jdstpCfOnGGXNWQGgDkpDE1g390c+5 yuq4lWoOBCH5dQOfFN4VZqz80kZQh1PcyCnwfNiSY24P/JoLOCEvNXTgn11r4QtjZW56usfKM8B jvsT0exKaonmSzmoK+TVnwPOySCDg18AP3NL6x60SHIHXw/JSdbzQh22Krq/0+S/k3kkIAzcw8L 7XVrM1hb++cQy4TOuk= X-Received: by 2002:a17:90b:1c82:b0:35f:b7f5:9cd with SMTP id 98e67ed59e1d1-36951c9fad8mr3137430a91.20.1778835748348; Fri, 15 May 2026 02:02:28 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:27 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 06/12] Revert "dt-bindings: usb: mediatek,mtk-xhci: Add port for SuperSpeed EP" Date: Fri, 15 May 2026 17:01:42 +0800 Message-ID: <20260515090149.3169406-7-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 --- 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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 85F9343C04B for ; Fri, 15 May 2026 09:02:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835753; cv=none; b=pKX79sreCL3znu55o8bzsXlhxtd9+fBG0L8bsgKRKVsJDavfaauWmr7t+Sz3McVbffms9yiEz/6ujiD4fll00qA0xhsFmTVqdZkeiXC+yUR0GSHV0l679tgzzIjphjs/Ou3q29soRixEuwkaVI9J1LbybmvrlyZT+KWQOGiBmS0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835753; c=relaxed/simple; bh=QRpARmRr4aby8NmbN5psePJT0Yr58c8UhxRZ326x/uE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eM7PlBZz852/Fan+QcQn37coDDO/UNVIJKGKUq0ZbHDITg/1nDyj8ld3VI8fKZnny5OWW5hEmKdwlgSD0Czb3lLDHiOUdr1HlW2mRFvZ7qdvHi27OW6qm/xvLBBjK40K488CX7OzYYH7WgOPt0piGcKmu1qnRfj9+m7UAoeiquQ= 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=XVBLp6dG; arc=none smtp.client-ip=209.85.216.48 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="XVBLp6dG" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-36622412e97so5908933a91.2 for ; Fri, 15 May 2026 02:02:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835752; x=1779440552; 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=ISYKmXVI5dGO3RCkjTpj/otEcK5TE9KEG1oM+kKbrzw=; b=XVBLp6dG2w7uoyWmBIp0CYnnZjzHEo5WWhiovnBtiqtfWfWsFkeB8ysWTXF7+3FrXi nacf+BfQBjFV0t/UnuegJ8R1AK3vR7Z5gNksPxUHh0wPDNMKy9DJQ/JoI6ERLFHaBRko rzOSjwKD6bz7wtRj2BDy/wgaxwuPbmAQGNqP0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835752; x=1779440552; 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=ISYKmXVI5dGO3RCkjTpj/otEcK5TE9KEG1oM+kKbrzw=; b=UGiiAvgWBci7/FK2gTr6BxRxaKiVD2B3io84+Gd+I/qdGTOWaOdKdWV7e2NiWtX96e 2bR7PXc69RWwInE7R0mfvX8DG8FZ0IwS+9cnTsgKj+TCbCy/J6/+LJKGylUjzh1yMCZ8 Fw0dlAPMAeIMJ5Jm13t4eQzdv3bEWoSRrL8o48ySfDIPst3CKpmtKhVl8CVhVjLgNr+v R5BFG6zzbZILUQoeTzujBm4dng0nW2xN/PsJ/NoCEJGNMas71QUpnGSCBSNuGM+IW3tQ 1xashnUatDO6+/UsqMQLrMi0a3Rm2NHieyQ+NlGK8QxrpNug5OsEAeJkABj5j9DG8za2 izYw== X-Forwarded-Encrypted: i=1; AFNElJ/YTYcpzXoPvcc6d3zyNs6ALo6yjMjQJKxDs5ThDf+wKZ9Yv31fyOOFSgYtHVqNyQiziUH3Tbz/jyZ/Mmw=@vger.kernel.org X-Gm-Message-State: AOJu0YxPFvDOxWvvI4t8lLuVHYz4vFpf2jUDvaFBIsyWmOH6UYltUVGC vCRO2yYw1AdHIwNwa+iiedkX3OJrHVnWj2aRmpr74QCJN+VVdPYMpRaZ/Y2a1kcXgQ== X-Gm-Gg: Acq92OF4Qvjz8GGFmEc58a9VZqeRwRsDBzjkIXSVJK3TbV2iOKRAd1+4gt4o5/6klPG GMqkiu3sqb32xx0e8pS+eCuso1HkSY/GPsXVB0QtPokL8UYmRYCQipy8Yex6Nt/Geig7hiUxdS7 kuCr7skOa7j8lL6RTasjr56lZoXO/GKegjMJc/FTKHQruMVq0Z8RNVx9Qj3aI5sluQ3p3dHBvX7 oUJ3eN421m8jox4264AkJrG/QHIiSTAR67oSeQdaPOrDfV4ZTfiPkxxP0T6y6A1rEcaPvZiaWYM U974vRIbELvnWzDSGUHWak0N3RgEv+q9CMQl9XAYOtHsTdun43GjGLTL36PfcSCq5R0W1O+rqX3 owu4H5JNLT1WPPvKhbFf9AELt317pZhYhhIacl9J+/JSJuTBjHgqaVoZSj1/FbVzuDZFX2fXb6w vFSv52NQaG4CVZ0q4JPSRQR40lvkxSlcQXR0KKyPwGhqGAtgs4s8uctoqEUSJGekzK+FGfhZfoT yfFwxveLB+LFjkGUE4= X-Received: by 2002:a17:90b:5784:b0:366:479c:59e8 with SMTP id 98e67ed59e1d1-369519dfe40mr3451397a91.8.1778835751725; Fri, 15 May 2026 02:02:31 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:31 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 07/12] dt-bindings: usb: mediatek,mtk-xhci: Allow ports for USB connections Date: Fri, 15 May 2026 17:01:43 +0800 Message-ID: <20260515090149.3169406-8-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7C5342E012 for ; Fri, 15 May 2026 09:02:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835757; cv=none; b=iAJfKLN8hFlJUZsnP/frqolXg/AaqWLJstP8BF27aG4+zd8q0/2kj9/bP9N/gP2eAPXHaZ8AMFes1pWhL9l2lRfqQAgU4NOozPrU6SgajuNatEtlNq+rv+JBuoH5Hyhxk1+cw8Db0GwxlWqLwC/tfb+EZT7bx9pCObS2o8teOzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835757; c=relaxed/simple; bh=6pAbUH6Dp2ugRs5RDIe0yKeS1DEjUiAIURTicXIqUwY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qvsBGT0/WPLUPjb+rOHb3wGpzCtmXxwVfmpldd11Whk5+cQF2Tdsl5dWB4sYsAD9Fiut3O8qcBhL5AjZCu9ruw2uMi9bIO2JrirUMrI9NV3n2oS/Ht5Kfdu0Ntzi5TDOA1GZ+u2ZjnDoPTxUP1fS5uRxGOaXiuOapuRz9OMcHgg= 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=bUMxrti+; arc=none smtp.client-ip=209.85.216.51 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="bUMxrti+" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-367c2a39fcfso3670632a91.3 for ; Fri, 15 May 2026 02:02:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835755; x=1779440555; 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=gi/8adN9TdR0oUR/hsRlFBiThItLlG36dm/4R472kYw=; b=bUMxrti+DL5cdjuUph+f7J+OVkKQVS7Va88HwADdYgfspcuFt5n9wWuqqHqkJlmGoi xXtH1XJOvPDKCZ/4s+q7KaihI0xsth93QNTuBX3ydKDflyld3xd3NWhyowN6yc93/a/2 DD9E/8ywwBfWx6VUCPYTpKsdRmI7/Kzwv3WUQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835755; x=1779440555; 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=gi/8adN9TdR0oUR/hsRlFBiThItLlG36dm/4R472kYw=; b=obrGY1q2KcsDz213Tx0bAsdiE9o9+lpqzHHwNu+SbyFZ4RyxbP47oFFyS2CwzLxacp 4GBgRDptAgWgfcULOPUaVA4HzRr7/sidkQYTPK/7n1HyeXoXo3J/W+ftMWDHlGP2vKOl o3+Dk3TzTuloDJyIZSY9h/CYtFnW6vWvCSSzz2yj6InJVx6CBrWAVSZ6L2ux5GC3vLRG OVrpukUlH57RNc+b5+w29cAUlptXB/nVrkWdCORQAULu94Apt712XzfAfNunmp8Wzlq8 HEhy/53gxhyloh3LzxMPiEqF+niYLy3hvvMSyKyrwjokK9XhzEjZJM3XCuo8Z61Qj5mm K7dA== X-Forwarded-Encrypted: i=1; AFNElJ9JPEWdwb7z5tJzNOxgODNYnS767kNfb2N0mvaUijcxGJ5A9mCHb+Bz9oFLQbkGueBLzRQZ/vO/Jx0K0B4=@vger.kernel.org X-Gm-Message-State: AOJu0YyFzz8pVjt8hDkwctdc71koFbIrH+sogoiEyVP3iyA++h113jq1 /efuD8woQSXs+5pZKxfoAvQwelQihLafu5Ces4m1mjApipxuPXykdVCUnHs+m1EFFkecLlINbg5 jUQc= X-Gm-Gg: Acq92OFlABjjmUlo0O7Yf4zmaJ8qRoRpsWKvRiVsF7+DkSlHV7Oc1KbqDW/iZph0lqj 2gif5t+396bEXe+fu18vx5L2kLV6YiuR7SU2ZYIGRVgVbDknFEd/lpRniyyoQbGqXGwxXIvImrf jtBN/gY7f0vtAnRHSsgWuGxybZYa4b7TClXptvvFNHkFDWKrSmfwovQTTDUMV2jiQPkxoJUo2jy RJswdVJrPDV6J2APe77g3jP8bY8D8crpHGIAyJAMmIbqEIkau8zmba8MoTuI+wi0Aq9/Ma19u+/ Gdmmt82f1yXoDRCqBF8yXVtFLrXxDTEj0BokhOXV8XkWI6yHggQiseNkNCNL7aN0G0glIcOK1V+ +d0NCMYc+Q1Oh9hgD75uXNeKKEayIh8MWBozyICwnaOv1NrveYNR9U7YELqYtqnVVTUZp7LI5s1 qahj43VRxxeGvsbdbOed5vLoqInGFWWkRhr3wDMogefGczIhZC1hkyR0S8Sa4d4MTFDia85fG+0 BVmW3jnyLyz/dkdZ6E= X-Received: by 2002:a17:90b:5790:b0:368:98c0:8836 with SMTP id 98e67ed59e1d1-36951a667c3mr3003689a91.18.1778835755183; Fri, 15 May 2026 02:02:35 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:34 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 08/12] arm64: dts: mediatek: mt8192-asurada: Add USB type-A connector Date: Fri, 15 May 2026 17:01:44 +0800 Message-ID: <20260515090149.3169406-9-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (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 7B9F943D4F4 for ; Fri, 15 May 2026 09:02:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835761; cv=none; b=Oo02w+7u7D2mLoEdH1L5o6vKbzzrfCtLucEFYiEGtIBKZBh+wbXm8Gt7sl/8oq00+dfiifdLG/29hVbLLqmIZ3KkpjH8G0Kyzg3qSFlbS6AE+rWRjNQJsBHrkQOK2WseKS4wRWa26p+gxWqwvqA4PrDTXpvOevg1JQuzd/a42FY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835761; c=relaxed/simple; bh=N43s7YYjxhkf+GkW3rTXjXBZcOKRHT+sr+u8J0torXs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HrLTM3DScgcAkpHqMMBWID5lCSr/NQviE3shT1v9yHgIfY8bIleUkzNtGWLpIAT1JwurnQPbZH2z5/3OWqNEiV3vEuI8Ve+6UTq9BsVqun8YtK9UobfDXCuQ0o41ovr7BgqhMA9SQwdTjop2qKV8GuVoVfYdqc2dxHOFM5z4ycw= 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=NHdrkCBi; arc=none smtp.client-ip=209.85.216.50 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="NHdrkCBi" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-366375c43c2so5200224a91.2 for ; Fri, 15 May 2026 02:02:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835758; x=1779440558; 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=9YXeYvlbGnNmMv9PUsmYFfNNN3O6C6muQR1bAD60qYI=; b=NHdrkCBiWeitsIo035FAAwltK+dvELq8z0rJxKNuw7KfOKdaxKhJXoxAjwwsr78Rhy B31z87CNuSO172vT2iMuYQGdf9C9SEd+g2tSNwPSupWdMJxx37+MtUuJoDgLC7yhDO/p 8W3AobpOhae7hZkthHul/RN0paAG/pPmyv468= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835758; x=1779440558; 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=9YXeYvlbGnNmMv9PUsmYFfNNN3O6C6muQR1bAD60qYI=; b=LDAV+mzYgRU6rTsskEa40JwZDogfqLAQsHaaQn+w8Rb0RrVMufKVBkuLaVGsaoruy9 tMWwdrSI26lY4HaKkujvscqQEv6TCNdpXi3OKYAm1oCU2y3KTI5BvmYOBQjIwhKrp0MK rX8CGKp41B4cng70+QSC2EfwFSPQ0aMtVwVlE354jaIS+Hbi4t42JKd5dVAGy2NK9u6I 0sZPkfSlhbC1m+l3oWZC8ssTaDTl7ucmy65O/wrVHMTCpli64h8FPdb34DTuiD2OT79J +CLB6vnk00uwdrjjIInCa4HwxWuapTN/LueaUs1z8KO1MrEzpoO0LsJRhPGJrdlmWaYU nRCA== X-Forwarded-Encrypted: i=1; AFNElJ/wYEAZRv5gc14I2bZGJgGKwekRQ/nEzgahKYiRatDpun8W9LjxgTQT/nZGZFVm7hQ7x9ghKazg+IkVQQs=@vger.kernel.org X-Gm-Message-State: AOJu0YynDwap/cXR1kBhlGvqzLvwymxwyyBLVgem1JGGW0Z3+1qaCxEn 2jpk0Ijwb3rK55+li3nq68FdnYgQg+7ZG45vmDiGkZdb32apeyzAe6AnllQuw9MoEw== X-Gm-Gg: Acq92OEVpblBrrAUwjnNHoBNuZWjvgkWG/VHLxi37sBvPe5czpLLnCNi+LW379Vgnpo MWpAntOtreSryqhsuesLZE6Lf2TiuZgEjF3lxiIsutURjcxdemhSXPsAEGriQpQ9eaF135OvP0m 4EJMLSFhvxeFDFTaXBcAHQE+cysLo9L2hZRzJfTsKWD+oomaTuAu8Cp8dPeLXNlwuBKfaLPUdcx GGuAjrrdKq5GT5mI6K2V1ga/03Te+XFWy77xYRsI327J5AaaVmlDB4UNEr0EmPEnyhikl8ioAIP jZZzQmlRcEOHYpvHNwQMTbkENuEh6UjlYBNyD8jQOXd7iv7Itp66gMA16ZWCcvXCkrWKildNagc OYLwTfJSQB1QCcIjIcTtA+sYAlzWQRcmsmRhPo+sSyZYw+Tzkh92xPWNheKMQD8/HZjGWxXhIts Jb2WL4d2oho8VClYyH+/Ez28b7pfPdD0XFun6mzRMK3NW21ZXbwYZrcQoyW8nJedoNjiPlCRzQc zXTRayv X-Received: by 2002:a17:90b:3d0a:b0:366:479e:63a5 with SMTP id 98e67ed59e1d1-369518b25cemr3280292a91.2.1778835758557; Fri, 15 May 2026 02:02:38 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:38 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 09/12] arm64: dts: mediatek: mt8192-asurada: Add M.2 E-key slot Date: Fri, 15 May 2026 17:01:45 +0800 Message-ID: <20260515090149.3169406-10-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 ABA9043DA3B for ; Fri, 15 May 2026 09:02:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835764; cv=none; b=BVzFF540u82dKdQ1FXHTwdVdyRgmtJ8ipDOyO9oDkczwaRV0JhsneWQHm9g50sVwBGr4e3cbfeMoiR8sYDG9zmZ3fShFtgb57L0R7LB+8iQyXozAf3wIZqExKDVTTrpRo5L7fPrmKVKu33dPq4q1K3efjfjfrpgL9IWRLmGwfOA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835764; c=relaxed/simple; bh=VrOSzPFrQvicaTFR+8obgla8JultGfpYF5nJAKr0KVE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QCkIatuMAYen5I7MoLlkCmcNyPZZ/ZYirRcQgQU1ikoKZhrkpAKLlg0MIaD5haUK5vAQ3bRsXKGuvX1sVP64nVpxVrI9NfMRq9cZIqxSP70Gwk1Ebnhhrf10rDHKgYdBkq6LTVy2FfS7ZzcuqxaGLmCvb6z2Te/4cCdiLEy5qT4= 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=IntThx1g; arc=none smtp.client-ip=209.85.216.48 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="IntThx1g" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-36608b2f2dcso6460432a91.2 for ; Fri, 15 May 2026 02:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835762; x=1779440562; 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=EEzJ+Z0L9sJzo3bRALn/EbUhsV+JTXUM3B754yNkOg8=; b=IntThx1gua/EnZx2ZFe7/kpR6hVhyNyEUOs2k/6V+pNbH5wQM1Vi7TcOx94YenaeSY h8dc7BzpYkhflcnMD0+IHW8dQjWY6vUjw/H2tg1BYRD3D7yKdX2nRejXG944hUODIrJi fp4ZXvqqCF5owqLc0Z0asUAjqMgqW8yYIJJ6c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835762; x=1779440562; 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=EEzJ+Z0L9sJzo3bRALn/EbUhsV+JTXUM3B754yNkOg8=; b=ZD31TqA2dvu/Z71hDhS6rqK/iOrtfHqy0zrfIl219TBMBUscBszll3SPhZ6FEqds8G mkOpzO+0p1iDwM6d+xc59noQdd6acQ2+9bwDMCcxXQvUuBrDp4kKUpfA6pH9RR34vMlA hsEoll9zDpt5jZV4C8mty8jCAemzgGyw7L3H4JzcMJW1TN76lyOGg2RSrWZIMGttjR6h 9pbjuw0VUxq7uw9ryg2lL1WXuHknvD3k4Jg6JC6NFwuVxT2w2q0Wc/vmnkaldmoJnyad tNzoRgpZm0xWQ0nBESjTxZBdZRPAdbP1NLyz6iFN7FGRq/Nu+o6M4VmTTSMcjkxcpmAj sR7Q== X-Forwarded-Encrypted: i=1; AFNElJ/9lIdox8L91iN1RQOBxekzsWJvqta90ssIcykLXsG5qXpqj0zZr7O31Yq+3UZYMvdyKXuZ7tz0I2GWq4M=@vger.kernel.org X-Gm-Message-State: AOJu0YzPAxLnaAHSc4M/d/tlZn9sFhj9VamDuWJX9yxyKSAPYOJIWhld a5N30az18cP9rFGRxxSIpQcQ9rrD9oDu9Qs/wbogRdBnYTGuOHGpga1lOe8qmwEYTQ== X-Gm-Gg: Acq92OHPQ33Wd/u4BJCmVkvcWO7bUH8Kk/ZJYJciJFCvF8sehCmCjsMKStctcH+iGKc 3PsRe5Mc1eh914yWJ0eiLiyWODblkwidQ+O5MRXALl4kPxg5BDGxi3Uh96ZyWB0kdtZWOEkV5zC yfJ3dJqglH1qMadxiHsoawvhIngJTzA9qNUcYP9FS/eBnqA4HAxNbxp9M7Vj7nAKPc6rKsLE5Vo 85TqSHLSNU4Z6rnWuxgsOF15R/iLZsDij8g1ZFQ9PEJ6H/ECkhLhjf+IVadI60r8c/hmNyJ8TVh 7nbTRVkTRMqCJ4Hpzr1qQmJsyAOLp3y1honr3+HjVMn4qMLrIMdKUQdUzMxOJR9s94T7BCzsKNs S/AEoVgaJ+nbn4gKZWHm6ywo91FiSZgzomQlSkIjwHZdj4If/TTOOwBBvuDpxnE0OMAGqe7mC4d rtz1O/Yd1KJEpyZRFMaEsutuNoz766lXBPDjX6GKcUE+htv9apengIZkoz7Amc70q5OldY1q8xy pDaJMPD X-Received: by 2002:a17:90b:544f:b0:35f:b46e:e329 with SMTP id 98e67ed59e1d1-3695189552fmr3108678a91.6.1778835761921; Fri, 15 May 2026 02:02:41 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:41 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 10/12] arm64: dts: mediatek: mt8195-cherry: Add M.2 E-key slot Date: Fri, 15 May 2026 17:01:46 +0800 Message-ID: <20260515090149.3169406-11-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (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 155EC43E9D5 for ; Fri, 15 May 2026 09:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835768; cv=none; b=k5zty49F2aLTFEXYepsOA6P5AlWE1gcn9sZ4vSmCxaW4H4bpmpQQ4PUN88IJONYc8BXF8gOGrWN3GCWiuJem37cy+w6Z8Uhp6D3KOADpw9cfYGCnwCzfionaZdc0lLDaGoeIYOkiP0nyC2NDONrLQfJdDQI5rIfLg+IrL4i47DM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835768; c=relaxed/simple; bh=Gz1BdO2CNIH1WVRh/auvzptyTOFoc+CyHx9t/Lizdxw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QI6nOAOXo2gvLsWEtoH8K9mF+L9CSv8WBBIyn8DZ5XQe4dBe/yx5AhYqPKtlYI1HXqvaYNPPtTXDQbicsWvrR3GvGNctT6lApRWjockwsmyfJFqLxMZTCyCS3XzZ3cD16AQGKaXRPzOev4EUIpHdoMXpAUV8Ktq/qyu9+5h0Des= 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=M2v0VpvA; arc=none smtp.client-ip=209.85.216.45 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="M2v0VpvA" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-366375c43c2so5200270a91.2 for ; Fri, 15 May 2026 02:02:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835765; x=1779440565; 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=T2ZaGVux29bB4QztqEVTUE9+3m9wph3XttnIMDbQw7w=; b=M2v0VpvAjlya9oG55Sn6CgaBBDHW5/dZHaKggREN3ATYa9+fAnANphMS+zRZapskTf BeOm2v1MqsAB/2o+441GRo1sjw/VMgch7S0wG5Cd/BpGFDY1wktLy70KpArBtgdORpR7 6X5jlTdwuJ02fwq2KqwgyRhZ3WJpS1tU3Wu+w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835765; x=1779440565; 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=T2ZaGVux29bB4QztqEVTUE9+3m9wph3XttnIMDbQw7w=; b=RIImixU5qHobDsz5u1GXIEnUTwC3/A53kWLgxMtRPhfl1IuFuEpwn0Ys6YXALthup/ Noldi4a6jBRYgut7Kw0Ge4IlAZPOIIOHS6qMfCAoevLBCUUPVmo0EtenFNXSuB17k+Na QYQUtyOqL1b22Ci86Pcg+1NpKDnA1BtxOEI/5CbnaeTLWlhEBlAKd5gjadkw2rAqT7sI Xtl+/WUewH5C+uP7EstjvLBMNfL3/V8jl5wC5bQ4usYdcYKuDws9W2aUP+nOM59ezusd EJu6ChnQelIPf4tjhcI59/2FyRP9mC+WqONJbYrfW7f6vZB/SZ3gUFEQrdyc/90Hp32B XPEA== X-Forwarded-Encrypted: i=1; AFNElJ8lIVX5elJUGVBVGGYEW2DpcfRo1h/wADB4E2dJ3oPy9f1CY0x/pq36e5YG2V+qkynHJwENgAMfOa4EuLQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yyirw4rzJn/bpfeMOc0Wudom37SfutGx+OsP83YZDg8FJDB1rTL XHtVEmM6tDy8UdM0D+CwMpLu4sv7DFGWeIohfRXbye5+Abc0g8ibkDGbtFL9M+8irw== X-Gm-Gg: Acq92OFqeO4jfGbQ7EWy8Un9KaEHRGNv1PmEjgtDGgmimWCU+g7AnCWRVYhUgAWeRSU StTKJOEQMc5+TjBUofIucsLbZn1Lf2F2WNqntwDTd4kJYizlc70n+Sh8DDvewQJoVk5Mo2n03We jbP+R8Ql7cg2Wl94LVgVY8gKx+HeF10oDaigb91I+B5IdELDYK/QVtWH79LbaYIXmHCAgq/CXzP WnN60hu4XucgZm2+CacB0stZHMOTkTfDrFNHxollz8vtXwta4qfmhV1sUveWvFDlgtI46tKNqFn 0qjZqf7Ooin6EmAZvZyPFuVYICqtEjlZL7aQYEvDIiuaCuPX2lAim1ZvohWui+k7TAPYQ9ckE9f Vfb5+APG5piZSvv9/s6HC46fpGDbm+gBzVZ2rf6okBESc2glgP20gS4CbyGuni5KXRcnHc5CQg6 7qaJHw54uIy2n5gIUWELSqolvHc+IqqvHc7ofGNBHG3uYOiYsx/oahni5pOqZ/eBMuDyspC57RS +WQjR+IrWNaFVDtxCU= X-Received: by 2002:a17:90b:53cf:b0:366:16d1:6a25 with SMTP id 98e67ed59e1d1-369518b206cmr3162750a91.5.1778835765371; Fri, 15 May 2026 02:02:45 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:44 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 11/12] arm64: dts: mediatek: mt8195-cherry: Add USB type-A connector Date: Fri, 15 May 2026 17:01:47 +0800 Message-ID: <20260515090149.3169406-12-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 | 72 ++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/b= oot/dts/mediatek/mt8195-cherry.dtsi index c95a54de3567..b21cbe918c1f 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,9 +1697,52 @@ 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 { --=20 2.54.0.563.g4f69b47b94-goog From nobody Fri Jun 12 11:37:54 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C6ED441048 for ; Fri, 15 May 2026 09:02:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835772; cv=none; b=SnjCX6tj0QEQXxtkubpFoV7Lym4MxMDvPcwwAqKW+S3lrJSQ62AUTOTNpepiZHqsn2hRQpJL4tEwfQdrOyH3BABtZv5Fz80fcoBjVv2dkLDNkan1kn/abnpH55n/hUFw1O5gRIfMjejB6gvcnwAVTekmEwsOcDeuo6NXqeAEeZk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778835772; c=relaxed/simple; bh=hzmFuLfaZehJONSUg8nNmwN5xN2aJspRaBE7HbdGagQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WQjvO/ARiARo9kfBeman4MXWlCyquemiT4W+VeVtStZnmatHv9U8ZI5ml4Rv/scxZN25txMURijjIRQ59PJyNGxrpJHo37cT5aG5sJ2IUa2T7LJ2Pgl4L8P1SGSVqz+pd9Vlc/9JLz3spwCLvbTgb9BN4ZdduyUsZCOGoB03PMI= 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=fpbM0JDu; arc=none smtp.client-ip=209.85.216.49 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="fpbM0JDu" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-366139223e4so5418387a91.0 for ; Fri, 15 May 2026 02:02:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1778835769; x=1779440569; 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=pt4T5ObMyYagXPbowM8Wn1tRV9x+5vQ2cef3iU5ynik=; b=fpbM0JDuoHI1reJ6klWr2SLVRJe4FIi6JZOHStuaNlznIkJwajRajT0ocY1Q6F48V6 CnuDOr5LT0NMQqVBkqUastLg5gXGbnML6k2FXxP/PGgCqTgWme+2zQe3k5P8v+YJXHIq k6up0xH7SzdepLAfaWrDzOlrTgJeNl4zSvqe0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778835769; x=1779440569; 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=pt4T5ObMyYagXPbowM8Wn1tRV9x+5vQ2cef3iU5ynik=; b=YTJo40dd257t2zwA3Ds7gj9WaEd07EiuPUP9wMGbM3m48dcSGR2taQ/keJ9LZHZPTE Jr75bkN05qI1WUS/CKnHx2e1kzpWGt86s7JDNsHWtjYqUV5wYPvo3JrrrNl3ov2z1aRZ 9i4ByiIUdIGo0VxHcgj197MsrYU3yRzxcaY483R1wDDcx/QfIXsT35OvmpZHPKQeKiVD BCfJBgG1ChbeaBflSCPCcBUAmUV9U/ruh8kLRUeklgbBEv126QiiefeOoqFbpbHzjiJF EXJ76m7B/0pGLdru8vK6wj4RmyHEDKlt2dOyZHcI2zjgFXTJn6hsABcJIVmu4W9gyi3n HdYw== X-Forwarded-Encrypted: i=1; AFNElJ/6MgQhohEzxvOyhmtD/ZRT4IBetUlyPAWVWKrztunkDVRL5Y4O2MJZAJbwkdGC1dXYjcP6tkx2CPif/iM=@vger.kernel.org X-Gm-Message-State: AOJu0YzisQOntJFsd0u889PAwIbFnn2keDdloYWd9oQ+d0EFkVxs6Uhq WFbWmmPRzbHxZ9YEZlQX7aAe5KlY+S/c+KQw+9tefG1VWybU8yWec+vJlj/o3HUzMg== X-Gm-Gg: Acq92OHXIxQAp/Zqo/cR7DWy2vkybGTuSZkT5jzyp+SgniIR8MPuyqvsCYn6zPfR6Vk Vl8WSavRuwIDwJuYjgG11FM7JkjEMkjVlpXliQ0N+lC3f7MfScbIMXCVxYWkoCk1W3G1Il/mxO0 gIGHztD9C8B1BNHTs1HbA0M/EBbI1/EwYpTE27zdyPc/m4oMecsDzrLlCuNlFMbW1TtytBPlMz2 8wo6dn90ffz7uqXUOqXuFYHIP9Cby77mnVwq8lWnqY6nfze+K4K+SJhHx3gmD3wnYIaustrZOji nLy4EUjZGPhCf2ko3vhNlQ9gfK4yq5/jq8rh55omAuVuy7Tq4S1Nx1q8RGM98juQNUe4PtOIsZK 1NReyks45b8hhfTP+rIWE21VsVSc3douai1VFpt6N/9aqMOh4kekcLlgVY+wCiPhkbh9e+CSXyG +rZmvewMED9K8uO0qD8JClGaimkENB+f4wOT/Nbzc9jlYApMzhXJvD0yOzY7D3WEqihcYXQuwVn 7NDlGXQ X-Received: by 2002:a17:90b:1344:b0:366:4782:138c with SMTP id 98e67ed59e1d1-36951b971ccmr3221579a91.17.1778835768758; Fri, 15 May 2026 02:02:48 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:b3d8:e32e:c2fc:c31e]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36951584654sm2076537a91.7.2026.05.15.02.02.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 02:02:48 -0700 (PDT) From: Chen-Yu Tsai To: Bartosz Golaszewski , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno Cc: Chen-Yu Tsai , 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 RFC 12/12] arm64: dts: mediatek: mt8188-geralt: Add WiFi/BT as M.2 E-key slot Date: Fri, 15 May 2026 17:01:48 +0800 Message-ID: <20260515090149.3169406-13-wenst@chromium.org> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog In-Reply-To: <20260515090149.3169406-1-wenst@chromium.org> References: <20260515090149.3169406-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 4cb23595d17b..d7b5eb95ba0f 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 { @@ -656,6 +698,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 { @@ -999,6 +1057,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 ; @@ -1163,6 +1229,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 ; @@ -1342,10 +1415,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.563.g4f69b47b94-goog