From nobody Wed Oct 8 23:48:13 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 277652472B5; Mon, 23 Jun 2025 12:01:07 +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=1750680069; cv=none; b=C/f95Xq4hEl3oSKA+kTCmnNenj55XP6zDggId4lWAovHz53ggzvYAJlgiRnd08JmxbH/Xt9dRKeWGaeuZNfwJnTn3Xfm/TLRQ5E1hdru1pKszuDxU/LxCSqGPDnbRwwGCeIKJYhCxB2ba2AISXYOJhdBN8DCWB8UCYayGj8iUmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750680069; c=relaxed/simple; bh=tABn/FJ82Le+j08iE0OB/YyH0TeyciA9txoBoYQ1Hzc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k/F5ehHnmqGtbyyYdeUO3Ve105GHIJn2BRYtv3qBbFDUt+z4t5OSVESIPFeP7u5KiZK5PXnxBNx1/SUdHl2cTZHCl7BVvNNwkvF6jU+Dc7XTtBhZ0qonzaAyHefoR+aIjAHzc3fF6p2Q1wzHEM+WEZn6lb1pAkALYnjB1Ii5fS4= 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=FcINmgcw; 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="FcINmgcw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1750680066; bh=tABn/FJ82Le+j08iE0OB/YyH0TeyciA9txoBoYQ1Hzc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FcINmgcwaK5zRPUrFPtU0z0vn1ScOK8Kj5+yOFrqxGPXYZjRGzFmGpdORy8/NRvH9 P9YEgFyc2zzfdYzoSwcCgQ3sXw5i4Zdc/NUVOFBTWkNpsfxTQ9QsAgZMS/yik0K+A0 3XCsKJJOh8qV5csiPorkgGfMABmJuasrAt7X/HGGTAkyVkSsA+BfLAQqlM1XSCed5w A5QAvFCfaCfYpNcdM/2L9G6rb9gc7STGbA70u3d08imh9CbxG+apvgiS+OQB44R0iR 934shlkaaVMlvb50f4fgXC/Qp4J2SfFNYv1sBPsET0UQJomGxpQ2p8LpiP/3RTEdSr gkHlJLp2XY1PA== 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 9F09117E0EC0; Mon, 23 Jun 2025 14:01:05 +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 v1 1/3] PCI: mediatek-gen3: Implement sys clock ready time setting Date: Mon, 23 Jun 2025 14:00:56 +0200 Message-ID: <20250623120058.109036-2-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250623120058.109036-1-angelogioacchino.delregno@collabora.com> References: <20250623120058.109036-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 b55f5973414c..00c9f2532870 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 23:48:13 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 ECC5930E85D; Mon, 23 Jun 2025 12:01:08 +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=1750680070; cv=none; b=DB5bnpm5qdKvbMl5mGloK0vU/2GaVmzhDDUJ6937Nlbhyi0GqpZGdIk7UuMkZRdVwKdFf2JQ+iLTBu/NwjEWEfLIGv6s1YJFeI9GpGWIG7/Pc1Te8pTyVJFmoqfB8o8VKXnK6X4+gzLL8QqIbMY6t01dSFz5Woyi942IL3cp3Nk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750680070; c=relaxed/simple; bh=4YZC1yBzz98fnTISzErlxhtsitEhMR41vg8eXDbdCg8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gw7UXrT3/xe2op490VTGkE2jpFGj+0191isqHhK5jmozjbn7askeGRGLTGVCHKe1oKFsg5Q5+YwhOInrLggBOarhd4yj3eEZRqiz1epAK8HvVxEJowylIb2Nf954lawidlSeAGYZNGvlm3/OqySoSg5I5oIxIMkgvxrzXwWqNXM= 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=NrDeY5ZP; 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="NrDeY5ZP" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1750680067; bh=4YZC1yBzz98fnTISzErlxhtsitEhMR41vg8eXDbdCg8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NrDeY5ZPfGNDNpFRaQXvk1zD2HO7zttavLLRmTDmu4irZfjDfBsspNPViZ/Z+PLd1 CK3Fr9jGeSoQCbTVIDeWlm+gft14jzIuxi6RIKhspkBCJ378fadHG0oYt1zRvro0qk 0CS4Y9LO9/z4NbBBW4jYWVx09CWSGg8ky/7Vp5k9rgqaFwOEZpzv9X8DG1Uz9eqYkt jRGuTMPFBYxgoQ50HI5vFxluE1P6RAxIbJaBYwTNwJn2M7oFHC9iUoeVNp/P+FkYwS 64RjiXLwLvNwFJp23qzOu/Ejir2pVTjpo9HO7pzkgUq51Z/rLNsC/Nav4Pn/vFRyRG 3pIGLsu9/+XMQ== 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 A5C2517E10D5; Mon, 23 Jun 2025 14:01:06 +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 v1 2/3] dt-bindings: PCI: mediatek-gen3: Add support for MT6991/MT8196 Date: Mon, 23 Jun 2025 14:00:57 +0200 Message-ID: <20250623120058.109036-3-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250623120058.109036-1-angelogioacchino.delregno@collabora.com> References: <20250623120058.109036-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 --- .../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..02cddf0246ce 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: + minItems: 1 + maxItems: 2 + + reset-names: + minItems: 1 + maxItems: 2 + + mediatek,pbus-csr: false + - if: properties: compatible: --=20 2.49.0 From nobody Wed Oct 8 23:48:13 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 09CE525A2CD; Mon, 23 Jun 2025 12:01:10 +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=1750680071; cv=none; b=BYUma/SnqPViuhPzhgAsKkV1xieQuYHGOO/anHKy96IPJC30JqQcbFieDSeAL9kJP/l3sYDy+69KxH9eNO3WCFnDrpEOWje+xYDSizMYDFSdZlytkE46ZiUO/udHKFf2GLDdduXXOTGpb5H4QUPBCcDWYN5oxkkfhx9v6eROpWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750680071; c=relaxed/simple; bh=hggLnCb5W6mqHyWLaRt+klzDu+LtdyTLXbh8FYBkU3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gyeee7D0waVWz5nVFHNjhFxSaLBqX6chTwOYtNzpD4LXYSrFFCJhbZlKx/eFSfPFvVVIXbWd/BjY8Dfo1u35kSJ0QGvwKnq3jjolz8FBuI5LdItbBUVrcqfyCFvXdHTTs6nRLPOHaWyoU2Q19UFrqzs1KjmF1eH2ioBnGj6ZAN0= 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=f+NovE4r; 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="f+NovE4r" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1750680068; bh=hggLnCb5W6mqHyWLaRt+klzDu+LtdyTLXbh8FYBkU3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f+NovE4rNp5POOblkw5XkHQSywS6Lqih/nV+xeErNblFRaKE+u2YXKMPVxhdV+mxG S4xiK7WI4ZIsJjeypaWTa2Kh4BLTJP05nM2RLEcLSuDrn7hFXvifHS0xDuH1l9DLsS V8rken+bECTBlr6xUCJMF8X29j/L4GWOY4ZfsswXyosFweeUl41fZ0lXpbQUoXmphE VEBZ6SMra0QscFpFuH+zp+v/gRgpRYV0XwQTzZz/YDt6GEa7fJSTq2fIgMWpDiFlut erUL1aGxiRd4NcTxE7jI3zFn/2M8brM8mO17tZW9oAjofV22lICqngJQu29q0AxWe+ hf5+TKSxQTwXA== 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 AB74C17E1560; Mon, 23 Jun 2025 14:01:07 +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 v1 3/3] PCI: mediatek-gen3: Add support for MediaTek MT8196 SoC Date: Mon, 23 Jun 2025 14:00:58 +0200 Message-ID: <20250623120058.109036-4-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250623120058.109036-1-angelogioacchino.delregno@collabora.com> References: <20250623120058.109036-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 00c9f2532870..43b99779274f 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -1359,6 +1359,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 { @@ -1373,6 +1382,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