public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Sjoerd Simons <sjoerd@collabora.com>
To: "Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Ryder Lee" <ryder.lee@mediatek.com>,
	"Jianjun Wang" <jianjun.wang@mediatek.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Chunfeng Yun" <chunfeng.yun@mediatek.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Lee Jones" <lee@kernel.org>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Lorenzo Bianconi" <lorenzo@kernel.org>,
	"Felix Fietkau" <nbd@nbd.name>
Cc: kernel@collabora.com, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-mediatek@lists.infradead.org, linux-pci@vger.kernel.org,
	 linux-phy@lists.infradead.org, netdev@vger.kernel.org,
	 Daniel Golle <daniel@makrotopia.org>,
	Bryan Hinton <bryan@bryanhinton.com>,
	 Sjoerd Simons <sjoerd@collabora.com>
Subject: [PATCH 07/15] arm64: dts: mediatek: mt7981b: Add PCIe and USB support
Date: Thu, 16 Oct 2025 12:08:43 +0200	[thread overview]
Message-ID: <20251016-openwrt-one-network-v1-7-de259719b6f2@collabora.com> (raw)
In-Reply-To: <20251016-openwrt-one-network-v1-0-de259719b6f2@collabora.com>

Add device tree nodes for PCIe controller and USB3 XHCI host
controller on MT7981B SoC. Both controllers share the USB3 PHY
which can be configured for either USB3 or PCIe operation.

The USB3 XHCI controller supports USB 2.0 and USB 3.0 SuperSpeed
operation. The PCIe controller is compatible with PCIe Gen2
specifications.

Also add the topmisc syscon node required for USB/PCIe PHY
multiplexing.

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 82 +++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
index b477375078ccd..13950fe6e8766 100644
--- a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
@@ -2,6 +2,7 @@
 
 #include <dt-bindings/clock/mediatek,mt7981-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/reset/mt7986-resets.h>
 
 / {
@@ -221,6 +222,57 @@ auxadc: adc@1100d000 {
 			status = "disabled";
 		};
 
+		xhci: usb@11200000 {
+			compatible = "mediatek,mt7986-xhci", "mediatek,mtk-xhci";
+			reg = <0 0x11200000 0 0x2e00>,
+			      <0 0x11203e00 0 0x0100>;
+			reg-names = "mac", "ippc";
+			clocks = <&infracfg CLK_INFRA_IUSB_SYS_CK>,
+				 <&infracfg CLK_INFRA_IUSB_CK>,
+				 <&infracfg CLK_INFRA_IUSB_133_CK>,
+				 <&infracfg CLK_INFRA_IUSB_66M_CK>,
+				 <&topckgen CLK_TOP_U2U3_XHCI_SEL>;
+			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
+			interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+			phys = <&u2port0 PHY_TYPE_USB2>,
+			       <&u3port0 PHY_TYPE_USB3>;
+			status = "disabled";
+		};
+
+		pcie: pcie@11280000 {
+			compatible = "mediatek,mt7981-pcie",
+				     "mediatek,mt8192-pcie";
+			reg = <0 0x11280000 0 0x4000>;
+			reg-names = "pcie-mac";
+			ranges = <0x82000000 0 0x20000000
+				  0x0 0x20000000 0 0x10000000>;
+			bus-range = <0x00 0xff>;
+			clocks = <&infracfg CLK_INFRA_IPCIE_CK>,
+				 <&infracfg CLK_INFRA_IPCIE_PIPE_CK>,
+				 <&infracfg CLK_INFRA_IPCIER_CK>,
+				 <&infracfg CLK_INFRA_IPCIEB_CK>;
+			clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
+			device_type = "pci";
+			phys = <&u3port0 PHY_TYPE_PCIE>;
+			phy-names = "pcie-phy";
+			interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-map-mask = <0 0 0 7>;
+			interrupt-map = <0 0 0 1 &pcie_intc 0>,
+					<0 0 0 2 &pcie_intc 1>,
+					<0 0 0 3 &pcie_intc 2>,
+					<0 0 0 4 &pcie_intc 3>;
+			#address-cells = <3>;
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			status = "disabled";
+
+			pcie_intc: interrupt-controller {
+				interrupt-controller;
+				#address-cells = <0>;
+				#interrupt-cells = <1>;
+			};
+		};
+
 		pio: pinctrl@11d00000 {
 			compatible = "mediatek,mt7981-pinctrl";
 			reg = <0 0x11d00000 0 0x1000>,
@@ -243,6 +295,36 @@ pio: pinctrl@11d00000 {
 			#interrupt-cells = <2>;
 		};
 
+		topmisc: topmisc@11d10000 {
+			compatible = "mediatek,mt7981-topmisc", "syscon";
+			reg = <0 0x11d10000 0 0x10000>;
+			#clock-cells = <1>;
+		};
+
+		usb_phy: t-phy@11e10000 {
+			compatible = "mediatek,mt7981-tphy",
+				     "mediatek,generic-tphy-v2";
+			ranges = <0 0 0x11e10000 0x1700>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			status = "disabled";
+
+			u2port0: usb-phy@0 {
+				reg = <0x0 0x700>;
+				clocks = <&topckgen CLK_TOP_USB_FRMCNT_SEL>;
+				clock-names = "ref";
+				#phy-cells = <1>;
+			};
+
+			u3port0: usb-phy@700 {
+				reg = <0x700 0x900>;
+				clocks = <&topckgen CLK_TOP_USB3_PHY_SEL>;
+				clock-names = "ref";
+				#phy-cells = <1>;
+				mediatek,syscon-type = <&topmisc 0x218 0>;
+			};
+		};
+
 		efuse: efuse@11f20000 {
 			compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
 			reg = <0 0x11f20000 0 0x1000>;

-- 
2.51.0



  parent reply	other threads:[~2025-10-16 10:09 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-16 10:08 [PATCH 00/15] arm64: dts: mediatek: Add Openwrt One AP functionality Sjoerd Simons
2025-10-16 10:08 ` [PATCH 01/15] arm64: dts: mediatek: mt7981b: Add labels to commonly referenced nodes Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 10:08 ` [PATCH 02/15] arm64: dts: mediatek: mt7981b-openwrt-one: Configure UART0 pinmux Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 12:38   ` Daniel Golle
2025-10-16 14:29     ` AngeloGioacchino Del Regno
2025-10-16 16:37       ` Daniel Golle
2025-10-20 10:23         ` AngeloGioacchino Del Regno
2025-10-20 12:28           ` Daniel Golle
2025-10-20 14:02             ` AngeloGioacchino Del Regno
2025-10-20 17:05               ` Daniel Golle
2025-10-16 10:08 ` [PATCH 03/15] arm64: dts: mediatek: mt7981b: Add reserved memory for TF-A Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 10:08 ` [PATCH 04/15] dt-bindings: mfd: syscon: Add mt7981-topmisc Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 15:29   ` Conor Dooley
2025-10-16 10:08 ` [PATCH 05/15] dt-bindings: pci: mediatek-pcie-gen3: Add MT7981 PCIe compatible Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 15:28   ` Conor Dooley
2025-10-16 15:55   ` Bjorn Helgaas
2025-10-16 10:08 ` [PATCH 06/15] dt-bindings: phy: mediatek,tphy: Add support for MT7981 Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 15:28   ` Conor Dooley
2025-10-16 10:08 ` Sjoerd Simons [this message]
2025-10-16 11:29   ` [PATCH 07/15] arm64: dts: mediatek: mt7981b: Add PCIe and USB support AngeloGioacchino Del Regno
2025-10-16 10:08 ` [PATCH 08/15] arm64: dts: mediatek: mt7981b-openwrt-one: Enable PCIe and USB Sjoerd Simons
2025-10-16 10:08 ` [PATCH 09/15] dt-bindings: net: mediatek,net: Correct bindings for MT7981 Sjoerd Simons
2025-10-16 11:29   ` AngeloGioacchino Del Regno
2025-10-16 15:27     ` Conor Dooley
2025-10-16 10:08 ` [PATCH 10/15] arm64: dts: mediatek: mt7981b: Add Ethernet and WiFi offload support Sjoerd Simons
2025-10-16 11:28   ` AngeloGioacchino Del Regno
2025-10-16 16:47   ` Daniel Golle
2025-10-20 10:27     ` AngeloGioacchino Del Regno
2025-10-20 12:17       ` Daniel Golle
2025-10-30 20:34     ` Sjoerd Simons
2025-10-16 10:08 ` [PATCH 11/15] arm64: dts: mediatek: mt7981b-openwrt-one: Enable SPI NOR Sjoerd Simons
2025-10-16 11:28   ` AngeloGioacchino Del Regno
2025-10-30 21:26     ` Sjoerd Simons
2025-10-16 10:08 ` [PATCH 12/15] arm64: dts: mediatek: mt7981b-openwrt-one: Enable Ethernet Sjoerd Simons
2025-10-17 17:31   ` Andrew Lunn
2025-10-21 20:21     ` Sjoerd Simons
2025-10-21 20:40       ` Andrew Lunn
2025-10-22  6:56         ` Sjoerd Simons
2025-10-28 11:14       ` Eric Woudstra
2025-10-28 13:24         ` Sjoerd Simons
2025-10-29 15:41           ` Lucien.Jheng
2025-10-16 10:08 ` [PATCH 13/15] arm64: dts: mediatek: mt7981b: Add wifi memory region Sjoerd Simons
2025-10-16 11:28   ` AngeloGioacchino Del Regno
2025-11-01 12:40     ` Sjoerd Simons
2025-10-16 10:08 ` [PATCH 14/15] arm64: dts: mediatek: mt7981b-openwrt-one: Enable wifi Sjoerd Simons
2025-10-16 11:28   ` AngeloGioacchino Del Regno
2025-10-16 10:08 ` [PATCH 15/15] arm64: dts: mediatek: mt7981b-openwrt-one: Enable leds Sjoerd Simons
2025-10-16 11:28   ` AngeloGioacchino Del Regno
2025-10-17 17:35   ` Andrew Lunn
2025-10-22  7:26     ` Sjoerd Simons
2025-10-22 12:35       ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251016-openwrt-one-network-v1-7-de259719b6f2@collabora.com \
    --to=sjoerd@collabora.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=bhelgaas@google.com \
    --cc=bryan@bryanhinton.com \
    --cc=chunfeng.yun@mediatek.com \
    --cc=conor+dt@kernel.org \
    --cc=daniel@makrotopia.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=jianjun.wang@mediatek.com \
    --cc=kernel@collabora.com \
    --cc=kishon@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=kwilczynski@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=lorenzo@kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mani@kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=ryder.lee@mediatek.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox