From nobody Wed Oct 8 00:44:46 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0116A2E49BE; Thu, 3 Jul 2025 12:08:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544535; cv=none; b=py8NzPEfQEIupv2ijhJ8XCarsxkCD/VSXdI2xqMzbPkzAC9Abmnk2wvMYPrl0+P8JD+tz4z3UqNouFHIpBOswb1pLIJvHMZI6zGzhutz5SIWgKEVW2SnrTgl5KnBG8Ocgj/mXUpgxkkYGGDVaMLM6LAQ0EaJQwvdcsmdeS0hWKA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544535; c=relaxed/simple; bh=s/94Tgqvq2RSTm7RvG1ScZa66QKOUKbVqBsJ8W4tfRg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gm7khnS3Zy+jE5TfOsmehNZXKioH/ndJNNxbSP4TS4WbpqbDDob+7BLyT0EF4vaqWKh2PWCbJA4jgoRg6bvV77G8b0SFLWpeaJc4YxtMtDPyROFXvXutrn/+tXwZ95c/KinDGnmhUacJmNzVSA9AYrzXLMKN/dQQfb2UMqIb7SM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=daSYpMWn; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="daSYpMWn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1751544532; bh=s/94Tgqvq2RSTm7RvG1ScZa66QKOUKbVqBsJ8W4tfRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=daSYpMWns0gDeAEQYdYJl/nprICGkyhZBZz+/euBYJaZcae1eUlebS6cqpwyihy4I 4fn6OhRkjY7KMJeNQJJyf/xP8Rl00GfI3EhC17Y42knWC8jLvXWBJROT6Xneozw1Cj igU5pS/aOy6uXigTcgFW9ckU8seN7PVMEOpzIrb8JKRJjUzb5iKluTHPKNbeADYAeB Ryu2GsSS/cF6GyD4yWPXaLdMDz9ETIk9JhSDYmiXFZ7W1FBJ/N3AO7Yw4xTqYO7r33 X6kNAwkSvwTV1tVEFz+gUYhY4N23SK5Hw6kopAHS5aLWKSIMtjm5AwpNMMw88ILDrx 5GgDfJujVDXxw== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id 866B117E059B; Thu, 3 Jul 2025 14:08:51 +0200 (CEST) From: AngeloGioacchino Del Regno To: jianjun.wang@mediatek.com Cc: ryder.lee@mediatek.com, bhelgaas@google.com, lpieralisi@kernel.org, kwilczynski@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH v2 1/3] PCI: mediatek-gen3: Implement sys clock ready time setting Date: Thu, 3 Jul 2025 14:08:45 +0200 Message-ID: <20250703120847.121826-2-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> References: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> 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 preparation to add support for the PCI-Express Gen3 controller found in newer MediaTek SoCs, such as the Dimensity 9400 MT6991 and the MT8196 Chromebook SoC, add the definition for the PCIE Resource Control register and a new sys_clk_rdy_time_us variable in platform data. If sys_clk_rdy_time_us is found (> 0), set the new value in the aforementioned register only after configuring the controller to RC mode, as this may otherwise be reset. Overriding the register defaults for SYS_CLK_RDY_TIME allows to work around sys_clk_rdy signal glitching in MT6991 and MT8196. Signed-off-by: AngeloGioacchino Del Regno --- drivers/pci/controller/pcie-mediatek-gen3.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/cont= roller/pcie-mediatek-gen3.c index 5464b4ae5c20..8035f7f812aa 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -101,6 +101,9 @@ #define PCIE_MSI_SET_ADDR_HI_BASE 0xc80 #define PCIE_MSI_SET_ADDR_HI_OFFSET 0x04 =20 +#define PCIE_RESOURCE_CTRL_REG 0xd2c +#define PCIE_RSRC_SYS_CLK_RDY_TIME_MASK GENMASK(7, 0) + #define PCIE_ICMD_PM_REG 0x198 #define PCIE_TURN_OFF_LINK BIT(4) =20 @@ -148,6 +151,7 @@ enum mtk_gen3_pcie_flags { * struct mtk_gen3_pcie_pdata - differentiate between host generations * @power_up: pcie power_up callback * @phy_resets: phy reset lines SoC data. + * @sys_clk_rdy_time_us: System clock ready time override (microseconds) * @flags: pcie device flags. */ struct mtk_gen3_pcie_pdata { @@ -156,6 +160,7 @@ struct mtk_gen3_pcie_pdata { const char *id[MAX_NUM_PHY_RESETS]; int num_resets; } phy_resets; + u8 sys_clk_rdy_time_us; u32 flags; }; =20 @@ -436,6 +441,15 @@ static int mtk_pcie_startup_port(struct mtk_gen3_pcie = *pcie) writel_relaxed(val, pcie->base + PCIE_CONF_LINK2_CTL_STS); } =20 + /* If parameter is present, adjust SYS_CLK_RDY_TIME to avoid glitching */ + if (pcie->soc->sys_clk_rdy_time_us) { + val =3D readl_relaxed(pcie->base + PCIE_RESOURCE_CTRL_REG); + val &=3D ~PCIE_RSRC_SYS_CLK_RDY_TIME_MASK; + val |=3D FIELD_PREP(PCIE_RSRC_SYS_CLK_RDY_TIME_MASK, + pcie->soc->sys_clk_rdy_time_us); + writel_relaxed(val, pcie->base + PCIE_RESOURCE_CTRL_REG); + } + /* Set class code */ val =3D readl_relaxed(pcie->base + PCIE_PCI_IDS_1); val &=3D ~GENMASK(31, 8); --=20 2.49.0 From nobody Wed Oct 8 00:44:46 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4949D2E54BF; Thu, 3 Jul 2025 12:08:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544537; cv=none; b=CHj4+a1fxjKbKGwXImyCXdy7+IlsbtGJ5FNm5hkXXro7pLs+0dpCNNFp3/mMCg808FxlBnqu4hZES6Vke3+Kol+ChQRp3X0uW2lgfTbHvNJysxuVSo/uzTFz141M3lgDW/FwJXhHkjwqPdw2SZmtAVmMiTkonFQd8L1sBZiLT7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544537; c=relaxed/simple; bh=uvtB0oCs74aMKuLBMLpHE5WJ8YVpay9CsNi1HZ/A9zQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VTCWjMYB+tvAipya5YSZHFeV3z9I/MGZ/LZyZt9m5kESafOYE5rxAkI/yluH/0FHnrg4rK1prV6xK45X0z0Pdnm83zM2/nwRAKrB1LCU+bw7BUt6YoSsBKbat2FloA5Qwbb8aL1zNIChAgcew/XRY/yDLuuvE8KPrXH64m0Ir2I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=eN9JfteX; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="eN9JfteX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1751544533; bh=uvtB0oCs74aMKuLBMLpHE5WJ8YVpay9CsNi1HZ/A9zQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eN9JfteXgu/5eC6zkJRCDnv2ULEfLQ0/bBafTSPJAe1If6ea4F2/KsQ9MqLsoMeZa HYm5ibFfFn71bvgOYHpgp+GEVVXKTLxX09tjylM/nsiX78PxbHl1ikesWEjp0d1c/V HgsAdHnOWNjPD0JKOA/hHTmXUJxTGp7OnWMQoZf8Zu/aAnUW3Bc0atHnk5Rd/qUSJO IvZfstDhCfSHPKyNOGPSbfFE1GfkWNUFhM4hQTvEOY/afStGKWGnS5V9lce7if6xm+ L5hPAgbiIRgjpmGCt2ECXKVivDK2gyY0Q9XUqp5nme8STNaIjp7vPB/Whxxi3UDxJS J4mBoYdfro2qw== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8E36917E09C6; Thu, 3 Jul 2025 14:08:52 +0200 (CEST) From: AngeloGioacchino Del Regno To: jianjun.wang@mediatek.com Cc: ryder.lee@mediatek.com, bhelgaas@google.com, lpieralisi@kernel.org, kwilczynski@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH v2 2/3] dt-bindings: PCI: mediatek-gen3: Add support for MT6991/MT8196 Date: Thu, 3 Jul 2025 14:08:46 +0200 Message-ID: <20250703120847.121826-3-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> References: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> 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" Add compatible strings for MT8196 and MT6991 (which are fully compatible between each other) and clock definitions. These new SoCs don't have tl_96m and tl_32k clocks, but need an AHB to APB bus clock and a low power clock. Signed-off-by: AngeloGioacchino Del Regno Reviewed-by: Krzysztof Kozlowski --- .../bindings/pci/mediatek-pcie-gen3.yaml | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml = b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml index 162406e0691a..fe3b17b92597 100644 --- a/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml +++ b/Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml @@ -52,7 +52,12 @@ properties: - mediatek,mt8188-pcie - mediatek,mt8195-pcie - const: mediatek,mt8192-pcie + - items: + - enum: + - mediatek,mt6991-pcie + - const: mediatek,mt8196-pcie - const: mediatek,mt8192-pcie + - const: mediatek,mt8196-pcie - const: airoha,en7581-pcie =20 reg: @@ -212,6 +217,36 @@ allOf: =20 mediatek,pbus-csr: false =20 + - if: + properties: + compatible: + contains: + enum: + - mediatek,mt8196-pcie + then: + properties: + clocks: + minItems: 6 + + clock-names: + items: + - const: pl_250m + - const: tl_26m + - const: bus + - const: low_power + - const: peri_26m + - const: peri_mem + + resets: + maxItems: 2 + + reset-names: + items: + - const: phy + - const: mac + + mediatek,pbus-csr: false + - if: properties: compatible: --=20 2.49.0 From nobody Wed Oct 8 00:44:46 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F6BF2E6130; Thu, 3 Jul 2025 12:08:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544538; cv=none; b=f8lTYCs9HUie2o8wJUbgicD+RcLfxGWU2tb0fc082bN2LZ/PuJtMDORI77T7nFpIyLpVXcDDD6u8MmOutRMh8CKk3fRVO0aOmQI1811EhUqjD52w2ZY4LYNmrcxPev1y2gPKGKWHdRIYZW8wp2zEmZAEUXgGbFTCv6Z0EmTXr58= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751544538; c=relaxed/simple; bh=tzB00E/eA47pTyzdZtsolZ62VuMIChKHgXq99sgnpPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=unymPxuyH8ewEwo00cj2DX7x3Q4wAUKzBmv1+t2sYrGKy771UUPKFmPuTHBt41I32nV260JWwVc2AsCsCgp6rhd16y2ti6eSWU0tmmWtEcAdlwYtvLWl88C6XJGVFjg1y7uaykS9JrdR0TRmj696qop9A2VY7xB+tinP3K0bIeI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=fyhQzmtg; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="fyhQzmtg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1751544534; bh=tzB00E/eA47pTyzdZtsolZ62VuMIChKHgXq99sgnpPE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fyhQzmtgnvMwxyCzSIm0Saiwdy4JoV85pA174oRhj1BMIN1sVouL7PTh8RvrzIs1G YbRtE80P2NE2YpBxlqvzJutsI6KwI2ptN0Ys8Ahf99IbBuZNhd1fWDkWjyRhnggCig M+sC4kqYD9sKaArkAXRbeYmsYYS0qYysaxwdmQM7aznnyyCK+8n33mvL98k3lcx1vI EQ9h6ScbpWVBhB8j72MceUR7xcA0R6xxVi4HepEVdttZ8jV9AQb7bCIiSC/yFN/DsF f8Qx5qHSdwM6iP5rae/BnQTdh/teCFZiZ6X8MecVwez73N/xrt33hBmqKhe89QaDwR nIEgRNTJMXkEQ== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8F1EF17E0EBD; Thu, 3 Jul 2025 14:08:53 +0200 (CEST) From: AngeloGioacchino Del Regno To: jianjun.wang@mediatek.com Cc: ryder.lee@mediatek.com, bhelgaas@google.com, lpieralisi@kernel.org, kwilczynski@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH v2 3/3] PCI: mediatek-gen3: Add support for MediaTek MT8196 SoC Date: Thu, 3 Jul 2025 14:08:47 +0200 Message-ID: <20250703120847.121826-4-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> References: <20250703120847.121826-1-angelogioacchino.delregno@collabora.com> 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" Introduce support for the PCI-Express Gen3 controller found in the MT8196 (and MT6991) SoC by adding a compatible string and platform specific data. Signed-off-by: AngeloGioacchino Del Regno --- drivers/pci/controller/pcie-mediatek-gen3.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/cont= roller/pcie-mediatek-gen3.c index 8035f7f812aa..f8adf88d19b0 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -1358,6 +1358,15 @@ static const struct mtk_gen3_pcie_pdata mtk_pcie_soc= _mt8192 =3D { }, }; =20 +static const struct mtk_gen3_pcie_pdata mtk_pcie_soc_mt8196 =3D { + .power_up =3D mtk_pcie_power_up, + .phy_resets =3D { + .id[0] =3D "phy", + .num_resets =3D 1, + }, + .sys_clk_rdy_time_us =3D 10, +}; + static const struct mtk_gen3_pcie_pdata mtk_pcie_soc_en7581 =3D { .power_up =3D mtk_pcie_en7581_power_up, .phy_resets =3D { @@ -1372,6 +1381,7 @@ static const struct mtk_gen3_pcie_pdata mtk_pcie_soc_= en7581 =3D { static const struct of_device_id mtk_pcie_of_match[] =3D { { .compatible =3D "airoha,en7581-pcie", .data =3D &mtk_pcie_soc_en7581 }, { .compatible =3D "mediatek,mt8192-pcie", .data =3D &mtk_pcie_soc_mt8192 = }, + { .compatible =3D "mediatek,mt8196-pcie", .data =3D &mtk_pcie_soc_mt8196 = }, {}, }; MODULE_DEVICE_TABLE(of, mtk_pcie_of_match); --=20 2.49.0