xref: /linux/arch/arm64/boot/dts/freescale/imx8-ss-hsio.dtsi (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2024 NXP
4 *
5 * Richard Zhu <hongxing.zhu@nxp.com>
6 */
7#include <dt-bindings/phy/phy.h>
8
9hsio_axi_clk: clock-hsio-axi {
10	compatible = "fixed-clock";
11	#clock-cells = <0>;
12	clock-frequency = <400000000>;
13	clock-output-names = "hsio_axi_clk";
14};
15
16hsio_per_clk: clock-hsio-per {
17	compatible = "fixed-clock";
18	#clock-cells = <0>;
19	clock-frequency = <133333333>;
20	clock-output-names = "hsio_per_clk";
21};
22
23hsio_refa_clk: clock-hsio-refa {
24	compatible = "gpio-gate-clock";
25	clocks = <&xtal100m>;
26	#clock-cells = <0>;
27	enable-gpios = <&lsio_gpio4 27 GPIO_ACTIVE_LOW>;
28};
29
30hsio_refb_clk: clock-hsio-refb {
31	compatible = "gpio-gate-clock";
32	clocks = <&xtal100m>;
33	#clock-cells = <0>;
34	enable-gpios = <&lsio_gpio4 1 GPIO_ACTIVE_LOW>;
35};
36
37xtal100m: clock-xtal100m {
38	compatible = "fixed-clock";
39	#clock-cells = <0>;
40	clock-frequency = <100000000>;
41	clock-output-names = "xtal_100MHz";
42};
43
44hsio_subsys: bus@5f000000 {
45	compatible = "simple-bus";
46	ranges = <0x5f000000 0x0 0x5f000000 0x01000000>,
47		 <0x80000000 0x0 0x70000000 0x10000000>;
48	#address-cells = <1>;
49	#size-cells = <1>;
50	dma-ranges = <0x80000000 0 0x80000000 0x80000000>;
51
52	pcieb: pcie@5f010000 {
53		compatible = "fsl,imx8q-pcie";
54		reg = <0x5f010000 0x10000>,
55		      <0x8ff00000 0x80000>;
56		reg-names = "dbi", "config";
57		ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>,
58			 <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>;
59		#interrupt-cells = <1>;
60		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
61			     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
62		interrupt-names = "msi", "dma";
63		#address-cells = <3>;
64		#size-cells = <2>;
65		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
66			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
67			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
68		clock-names = "dbi", "mstr", "slv";
69		bus-range = <0x00 0xff>;
70		device_type = "pci";
71		interrupt-map = <0 0 0 1 &gic 0 105 4>,
72				<0 0 0 2 &gic 0 106 4>,
73				<0 0 0 3 &gic 0 107 4>,
74				<0 0 0 4 &gic 0 108 4>;
75		interrupt-map-mask = <0 0 0 0x7>;
76		num-lanes = <1>;
77		num-viewport = <4>;
78		power-domains = <&pd IMX_SC_R_PCIE_B>;
79		fsl,max-link-speed = <3>;
80		status = "disabled";
81	};
82
83	pcieb_ep: pcie-ep@5f010000 {
84		compatible = "fsl,imx8q-pcie-ep";
85		reg = <0x5f010000 0x00010000>,
86		      <0x80000000 0x10000000>;
87		reg-names = "dbi", "addr_space";
88		num-lanes = <1>;
89		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
90		interrupt-names = "dma";
91		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
92			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
93			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
94		clock-names = "dbi", "mstr", "slv";
95		power-domains = <&pd IMX_SC_R_PCIE_B>;
96		fsl,max-link-speed = <3>;
97		num-ib-windows = <6>;
98		num-ob-windows = <6>;
99		status = "disabled";
100	};
101
102	pcieb_lpcg: clock-controller@5f060000 {
103		compatible = "fsl,imx8qxp-lpcg";
104		reg = <0x5f060000 0x10000>;
105		clocks = <&hsio_axi_clk>, <&hsio_axi_clk>, <&hsio_axi_clk>;
106		#clock-cells = <1>;
107		clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_6>;
108		clock-output-names = "hsio_pcieb_mstr_axi_clk",
109				     "hsio_pcieb_slv_axi_clk",
110				     "hsio_pcieb_dbi_axi_clk";
111		power-domains = <&pd IMX_SC_R_PCIE_B>;
112	};
113
114	phyx1_crr1_lpcg: clock-controller@5f0b0000 {
115		compatible = "fsl,imx8qxp-lpcg";
116		reg = <0x5f0b0000 0x10000>;
117		clocks = <&hsio_per_clk>;
118		#clock-cells = <1>;
119		clock-indices = <IMX_LPCG_CLK_4>;
120		clock-output-names = "hsio_phyx1_per_clk";
121		power-domains = <&pd IMX_SC_R_SERDES_1>;
122	};
123
124	pcieb_crr3_lpcg: clock-controller@5f0d0000 {
125		compatible = "fsl,imx8qxp-lpcg";
126		reg = <0x5f0d0000 0x10000>;
127		clocks = <&hsio_per_clk>;
128		#clock-cells = <1>;
129		clock-indices = <IMX_LPCG_CLK_4>;
130		clock-output-names = "hsio_pcieb_per_clk";
131		power-domains = <&pd IMX_SC_R_PCIE_B>;
132	};
133
134	misc_crr5_lpcg: clock-controller@5f0f0000 {
135		compatible = "fsl,imx8qxp-lpcg";
136		reg = <0x5f0f0000 0x10000>;
137		clocks = <&hsio_per_clk>;
138		#clock-cells = <1>;
139		clock-indices = <IMX_LPCG_CLK_4>;
140		clock-output-names = "hsio_misc_per_clk";
141		power-domains = <&pd IMX_SC_R_HSIO_GPIO>;
142	};
143};
144