xref: /linux/arch/arm64/boot/dts/freescale/imx8-ss-hsio.dtsi (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
19f7053f6SRichard Zhu// SPDX-License-Identifier: GPL-2.0+
29f7053f6SRichard Zhu/*
39f7053f6SRichard Zhu * Copyright 2024 NXP
49f7053f6SRichard Zhu *
59f7053f6SRichard Zhu * Richard Zhu <hongxing.zhu@nxp.com>
69f7053f6SRichard Zhu */
79f7053f6SRichard Zhu#include <dt-bindings/phy/phy.h>
89f7053f6SRichard Zhu
99f7053f6SRichard Zhuhsio_axi_clk: clock-hsio-axi {
109f7053f6SRichard Zhu	compatible = "fixed-clock";
119f7053f6SRichard Zhu	#clock-cells = <0>;
129f7053f6SRichard Zhu	clock-frequency = <400000000>;
139f7053f6SRichard Zhu	clock-output-names = "hsio_axi_clk";
149f7053f6SRichard Zhu};
159f7053f6SRichard Zhu
169f7053f6SRichard Zhuhsio_per_clk: clock-hsio-per {
179f7053f6SRichard Zhu	compatible = "fixed-clock";
189f7053f6SRichard Zhu	#clock-cells = <0>;
199f7053f6SRichard Zhu	clock-frequency = <133333333>;
209f7053f6SRichard Zhu	clock-output-names = "hsio_per_clk";
219f7053f6SRichard Zhu};
229f7053f6SRichard Zhu
239f7053f6SRichard Zhuhsio_refa_clk: clock-hsio-refa {
249f7053f6SRichard Zhu	compatible = "gpio-gate-clock";
259f7053f6SRichard Zhu	clocks = <&xtal100m>;
269f7053f6SRichard Zhu	#clock-cells = <0>;
279f7053f6SRichard Zhu	enable-gpios = <&lsio_gpio4 27 GPIO_ACTIVE_LOW>;
289f7053f6SRichard Zhu};
299f7053f6SRichard Zhu
309f7053f6SRichard Zhuhsio_refb_clk: clock-hsio-refb {
319f7053f6SRichard Zhu	compatible = "gpio-gate-clock";
329f7053f6SRichard Zhu	clocks = <&xtal100m>;
339f7053f6SRichard Zhu	#clock-cells = <0>;
349f7053f6SRichard Zhu	enable-gpios = <&lsio_gpio4 1 GPIO_ACTIVE_LOW>;
359f7053f6SRichard Zhu};
369f7053f6SRichard Zhu
379f7053f6SRichard Zhuxtal100m: clock-xtal100m {
389f7053f6SRichard Zhu	compatible = "fixed-clock";
399f7053f6SRichard Zhu	#clock-cells = <0>;
409f7053f6SRichard Zhu	clock-frequency = <100000000>;
419f7053f6SRichard Zhu	clock-output-names = "xtal_100MHz";
429f7053f6SRichard Zhu};
439f7053f6SRichard Zhu
449f7053f6SRichard Zhuhsio_subsys: bus@5f000000 {
459f7053f6SRichard Zhu	compatible = "simple-bus";
469f7053f6SRichard Zhu	ranges = <0x5f000000 0x0 0x5f000000 0x01000000>,
479f7053f6SRichard Zhu		 <0x80000000 0x0 0x70000000 0x10000000>;
489f7053f6SRichard Zhu	#address-cells = <1>;
499f7053f6SRichard Zhu	#size-cells = <1>;
509f7053f6SRichard Zhu	dma-ranges = <0x80000000 0 0x80000000 0x80000000>;
519f7053f6SRichard Zhu
529f7053f6SRichard Zhu	pcieb: pcie@5f010000 {
539f7053f6SRichard Zhu		compatible = "fsl,imx8q-pcie";
549f7053f6SRichard Zhu		reg = <0x5f010000 0x10000>,
559f7053f6SRichard Zhu		      <0x8ff00000 0x80000>;
569f7053f6SRichard Zhu		reg-names = "dbi", "config";
579f7053f6SRichard Zhu		ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>,
589f7053f6SRichard Zhu			 <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>;
599f7053f6SRichard Zhu		#interrupt-cells = <1>;
60f9893c34SAlexander Stein		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
61f9893c34SAlexander Stein			     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
62f9893c34SAlexander Stein		interrupt-names = "msi", "dma";
639f7053f6SRichard Zhu		#address-cells = <3>;
649f7053f6SRichard Zhu		#size-cells = <2>;
659f7053f6SRichard Zhu		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
669f7053f6SRichard Zhu			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
679f7053f6SRichard Zhu			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
689f7053f6SRichard Zhu		clock-names = "dbi", "mstr", "slv";
699f7053f6SRichard Zhu		bus-range = <0x00 0xff>;
709f7053f6SRichard Zhu		device_type = "pci";
719f7053f6SRichard Zhu		interrupt-map = <0 0 0 1 &gic 0 105 4>,
729f7053f6SRichard Zhu				<0 0 0 2 &gic 0 106 4>,
739f7053f6SRichard Zhu				<0 0 0 3 &gic 0 107 4>,
749f7053f6SRichard Zhu				<0 0 0 4 &gic 0 108 4>;
759f7053f6SRichard Zhu		interrupt-map-mask = <0 0 0 0x7>;
769f7053f6SRichard Zhu		num-lanes = <1>;
779f7053f6SRichard Zhu		num-viewport = <4>;
789f7053f6SRichard Zhu		power-domains = <&pd IMX_SC_R_PCIE_B>;
799f7053f6SRichard Zhu		fsl,max-link-speed = <3>;
809f7053f6SRichard Zhu		status = "disabled";
819f7053f6SRichard Zhu	};
829f7053f6SRichard Zhu
83*d03743c5SFrank Li	pcieb_ep: pcie-ep@5f010000 {
84*d03743c5SFrank Li		compatible = "fsl,imx8q-pcie-ep";
85*d03743c5SFrank Li		reg = <0x5f010000 0x00010000>,
86*d03743c5SFrank Li		      <0x80000000 0x10000000>;
87*d03743c5SFrank Li		reg-names = "dbi", "addr_space";
88*d03743c5SFrank Li		num-lanes = <1>;
89*d03743c5SFrank Li		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
90*d03743c5SFrank Li		interrupt-names = "dma";
91*d03743c5SFrank Li		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
92*d03743c5SFrank Li			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
93*d03743c5SFrank Li			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
94*d03743c5SFrank Li		clock-names = "dbi", "mstr", "slv";
95*d03743c5SFrank Li		power-domains = <&pd IMX_SC_R_PCIE_B>;
96*d03743c5SFrank Li		fsl,max-link-speed = <3>;
97*d03743c5SFrank Li		num-ib-windows = <6>;
98*d03743c5SFrank Li		num-ob-windows = <6>;
99*d03743c5SFrank Li		status = "disabled";
100*d03743c5SFrank Li	};
101*d03743c5SFrank Li
1029f7053f6SRichard Zhu	pcieb_lpcg: clock-controller@5f060000 {
1039f7053f6SRichard Zhu		compatible = "fsl,imx8qxp-lpcg";
1049f7053f6SRichard Zhu		reg = <0x5f060000 0x10000>;
1059f7053f6SRichard Zhu		clocks = <&hsio_axi_clk>, <&hsio_axi_clk>, <&hsio_axi_clk>;
1069f7053f6SRichard Zhu		#clock-cells = <1>;
1079f7053f6SRichard Zhu		clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_6>;
1089f7053f6SRichard Zhu		clock-output-names = "hsio_pcieb_mstr_axi_clk",
1099f7053f6SRichard Zhu				     "hsio_pcieb_slv_axi_clk",
1109f7053f6SRichard Zhu				     "hsio_pcieb_dbi_axi_clk";
1119f7053f6SRichard Zhu		power-domains = <&pd IMX_SC_R_PCIE_B>;
1129f7053f6SRichard Zhu	};
1139f7053f6SRichard Zhu
1149f7053f6SRichard Zhu	phyx1_crr1_lpcg: clock-controller@5f0b0000 {
1159f7053f6SRichard Zhu		compatible = "fsl,imx8qxp-lpcg";
1169f7053f6SRichard Zhu		reg = <0x5f0b0000 0x10000>;
1179f7053f6SRichard Zhu		clocks = <&hsio_per_clk>;
1189f7053f6SRichard Zhu		#clock-cells = <1>;
1199f7053f6SRichard Zhu		clock-indices = <IMX_LPCG_CLK_4>;
1209f7053f6SRichard Zhu		clock-output-names = "hsio_phyx1_per_clk";
1219f7053f6SRichard Zhu		power-domains = <&pd IMX_SC_R_SERDES_1>;
1229f7053f6SRichard Zhu	};
1239f7053f6SRichard Zhu
1249f7053f6SRichard Zhu	pcieb_crr3_lpcg: clock-controller@5f0d0000 {
1259f7053f6SRichard Zhu		compatible = "fsl,imx8qxp-lpcg";
1269f7053f6SRichard Zhu		reg = <0x5f0d0000 0x10000>;
1279f7053f6SRichard Zhu		clocks = <&hsio_per_clk>;
1289f7053f6SRichard Zhu		#clock-cells = <1>;
1299f7053f6SRichard Zhu		clock-indices = <IMX_LPCG_CLK_4>;
1309f7053f6SRichard Zhu		clock-output-names = "hsio_pcieb_per_clk";
1319f7053f6SRichard Zhu		power-domains = <&pd IMX_SC_R_PCIE_B>;
1329f7053f6SRichard Zhu	};
1339f7053f6SRichard Zhu
1349f7053f6SRichard Zhu	misc_crr5_lpcg: clock-controller@5f0f0000 {
1359f7053f6SRichard Zhu		compatible = "fsl,imx8qxp-lpcg";
1369f7053f6SRichard Zhu		reg = <0x5f0f0000 0x10000>;
1379f7053f6SRichard Zhu		clocks = <&hsio_per_clk>;
1389f7053f6SRichard Zhu		#clock-cells = <1>;
1399f7053f6SRichard Zhu		clock-indices = <IMX_LPCG_CLK_4>;
1409f7053f6SRichard Zhu		clock-output-names = "hsio_misc_per_clk";
1419f7053f6SRichard Zhu		power-domains = <&pd IMX_SC_R_HSIO_GPIO>;
1429f7053f6SRichard Zhu	};
1439f7053f6SRichard Zhu};
144