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