xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8-ss-hsio.dtsi (revision 8ccc0d235c226d84112561d453c49904398d085c)
15f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
25f62a964SEmmanuel Vadot/*
35f62a964SEmmanuel Vadot * Copyright 2024 NXP
45f62a964SEmmanuel Vadot *
55f62a964SEmmanuel Vadot * Richard Zhu <hongxing.zhu@nxp.com>
65f62a964SEmmanuel Vadot */
75f62a964SEmmanuel Vadot#include <dt-bindings/phy/phy.h>
85f62a964SEmmanuel Vadot
95f62a964SEmmanuel Vadothsio_axi_clk: clock-hsio-axi {
105f62a964SEmmanuel Vadot	compatible = "fixed-clock";
115f62a964SEmmanuel Vadot	#clock-cells = <0>;
125f62a964SEmmanuel Vadot	clock-frequency = <400000000>;
135f62a964SEmmanuel Vadot	clock-output-names = "hsio_axi_clk";
145f62a964SEmmanuel Vadot};
155f62a964SEmmanuel Vadot
165f62a964SEmmanuel Vadothsio_per_clk: clock-hsio-per {
175f62a964SEmmanuel Vadot	compatible = "fixed-clock";
185f62a964SEmmanuel Vadot	#clock-cells = <0>;
195f62a964SEmmanuel Vadot	clock-frequency = <133333333>;
205f62a964SEmmanuel Vadot	clock-output-names = "hsio_per_clk";
215f62a964SEmmanuel Vadot};
225f62a964SEmmanuel Vadot
235f62a964SEmmanuel Vadothsio_refa_clk: clock-hsio-refa {
245f62a964SEmmanuel Vadot	compatible = "gpio-gate-clock";
255f62a964SEmmanuel Vadot	clocks = <&xtal100m>;
265f62a964SEmmanuel Vadot	#clock-cells = <0>;
275f62a964SEmmanuel Vadot	enable-gpios = <&lsio_gpio4 27 GPIO_ACTIVE_LOW>;
285f62a964SEmmanuel Vadot};
295f62a964SEmmanuel Vadot
305f62a964SEmmanuel Vadothsio_refb_clk: clock-hsio-refb {
315f62a964SEmmanuel Vadot	compatible = "gpio-gate-clock";
325f62a964SEmmanuel Vadot	clocks = <&xtal100m>;
335f62a964SEmmanuel Vadot	#clock-cells = <0>;
345f62a964SEmmanuel Vadot	enable-gpios = <&lsio_gpio4 1 GPIO_ACTIVE_LOW>;
355f62a964SEmmanuel Vadot};
365f62a964SEmmanuel Vadot
375f62a964SEmmanuel Vadotxtal100m: clock-xtal100m {
385f62a964SEmmanuel Vadot	compatible = "fixed-clock";
395f62a964SEmmanuel Vadot	#clock-cells = <0>;
405f62a964SEmmanuel Vadot	clock-frequency = <100000000>;
415f62a964SEmmanuel Vadot	clock-output-names = "xtal_100MHz";
425f62a964SEmmanuel Vadot};
435f62a964SEmmanuel Vadot
445f62a964SEmmanuel Vadothsio_subsys: bus@5f000000 {
455f62a964SEmmanuel Vadot	compatible = "simple-bus";
465f62a964SEmmanuel Vadot	ranges = <0x5f000000 0x0 0x5f000000 0x01000000>,
475f62a964SEmmanuel Vadot		 <0x80000000 0x0 0x70000000 0x10000000>;
485f62a964SEmmanuel Vadot	#address-cells = <1>;
495f62a964SEmmanuel Vadot	#size-cells = <1>;
505f62a964SEmmanuel Vadot	dma-ranges = <0x80000000 0 0x80000000 0x80000000>;
515f62a964SEmmanuel Vadot
525f62a964SEmmanuel Vadot	pcieb: pcie@5f010000 {
535f62a964SEmmanuel Vadot		compatible = "fsl,imx8q-pcie";
545f62a964SEmmanuel Vadot		reg = <0x5f010000 0x10000>,
555f62a964SEmmanuel Vadot		      <0x8ff00000 0x80000>;
565f62a964SEmmanuel Vadot		reg-names = "dbi", "config";
575f62a964SEmmanuel Vadot		ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>,
585f62a964SEmmanuel Vadot			 <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>;
595f62a964SEmmanuel Vadot		#interrupt-cells = <1>;
60*8ccc0d23SEmmanuel Vadot		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
61*8ccc0d23SEmmanuel Vadot			     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
62*8ccc0d23SEmmanuel Vadot		interrupt-names = "msi", "dma";
635f62a964SEmmanuel Vadot		#address-cells = <3>;
645f62a964SEmmanuel Vadot		#size-cells = <2>;
655f62a964SEmmanuel Vadot		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
665f62a964SEmmanuel Vadot			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
675f62a964SEmmanuel Vadot			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
685f62a964SEmmanuel Vadot		clock-names = "dbi", "mstr", "slv";
695f62a964SEmmanuel Vadot		bus-range = <0x00 0xff>;
705f62a964SEmmanuel Vadot		device_type = "pci";
715f62a964SEmmanuel Vadot		interrupt-map = <0 0 0 1 &gic 0 105 4>,
725f62a964SEmmanuel Vadot				<0 0 0 2 &gic 0 106 4>,
735f62a964SEmmanuel Vadot				<0 0 0 3 &gic 0 107 4>,
745f62a964SEmmanuel Vadot				<0 0 0 4 &gic 0 108 4>;
755f62a964SEmmanuel Vadot		interrupt-map-mask = <0 0 0 0x7>;
765f62a964SEmmanuel Vadot		num-lanes = <1>;
775f62a964SEmmanuel Vadot		num-viewport = <4>;
785f62a964SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_PCIE_B>;
795f62a964SEmmanuel Vadot		fsl,max-link-speed = <3>;
805f62a964SEmmanuel Vadot		status = "disabled";
815f62a964SEmmanuel Vadot	};
825f62a964SEmmanuel Vadot
83*8ccc0d23SEmmanuel Vadot	pcieb_ep: pcie-ep@5f010000 {
84*8ccc0d23SEmmanuel Vadot		compatible = "fsl,imx8q-pcie-ep";
85*8ccc0d23SEmmanuel Vadot		reg = <0x5f010000 0x00010000>,
86*8ccc0d23SEmmanuel Vadot		      <0x80000000 0x10000000>;
87*8ccc0d23SEmmanuel Vadot		reg-names = "dbi", "addr_space";
88*8ccc0d23SEmmanuel Vadot		num-lanes = <1>;
89*8ccc0d23SEmmanuel Vadot		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
90*8ccc0d23SEmmanuel Vadot		interrupt-names = "dma";
91*8ccc0d23SEmmanuel Vadot		clocks = <&pcieb_lpcg IMX_LPCG_CLK_6>,
92*8ccc0d23SEmmanuel Vadot			 <&pcieb_lpcg IMX_LPCG_CLK_4>,
93*8ccc0d23SEmmanuel Vadot			 <&pcieb_lpcg IMX_LPCG_CLK_5>;
94*8ccc0d23SEmmanuel Vadot		clock-names = "dbi", "mstr", "slv";
95*8ccc0d23SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_PCIE_B>;
96*8ccc0d23SEmmanuel Vadot		fsl,max-link-speed = <3>;
97*8ccc0d23SEmmanuel Vadot		num-ib-windows = <6>;
98*8ccc0d23SEmmanuel Vadot		num-ob-windows = <6>;
99*8ccc0d23SEmmanuel Vadot		status = "disabled";
100*8ccc0d23SEmmanuel Vadot	};
101*8ccc0d23SEmmanuel Vadot
1025f62a964SEmmanuel Vadot	pcieb_lpcg: clock-controller@5f060000 {
1035f62a964SEmmanuel Vadot		compatible = "fsl,imx8qxp-lpcg";
1045f62a964SEmmanuel Vadot		reg = <0x5f060000 0x10000>;
1055f62a964SEmmanuel Vadot		clocks = <&hsio_axi_clk>, <&hsio_axi_clk>, <&hsio_axi_clk>;
1065f62a964SEmmanuel Vadot		#clock-cells = <1>;
1075f62a964SEmmanuel Vadot		clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_6>;
1085f62a964SEmmanuel Vadot		clock-output-names = "hsio_pcieb_mstr_axi_clk",
1095f62a964SEmmanuel Vadot				     "hsio_pcieb_slv_axi_clk",
1105f62a964SEmmanuel Vadot				     "hsio_pcieb_dbi_axi_clk";
1115f62a964SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_PCIE_B>;
1125f62a964SEmmanuel Vadot	};
1135f62a964SEmmanuel Vadot
1145f62a964SEmmanuel Vadot	phyx1_crr1_lpcg: clock-controller@5f0b0000 {
1155f62a964SEmmanuel Vadot		compatible = "fsl,imx8qxp-lpcg";
1165f62a964SEmmanuel Vadot		reg = <0x5f0b0000 0x10000>;
1175f62a964SEmmanuel Vadot		clocks = <&hsio_per_clk>;
1185f62a964SEmmanuel Vadot		#clock-cells = <1>;
1195f62a964SEmmanuel Vadot		clock-indices = <IMX_LPCG_CLK_4>;
1205f62a964SEmmanuel Vadot		clock-output-names = "hsio_phyx1_per_clk";
1215f62a964SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_SERDES_1>;
1225f62a964SEmmanuel Vadot	};
1235f62a964SEmmanuel Vadot
1245f62a964SEmmanuel Vadot	pcieb_crr3_lpcg: clock-controller@5f0d0000 {
1255f62a964SEmmanuel Vadot		compatible = "fsl,imx8qxp-lpcg";
1265f62a964SEmmanuel Vadot		reg = <0x5f0d0000 0x10000>;
1275f62a964SEmmanuel Vadot		clocks = <&hsio_per_clk>;
1285f62a964SEmmanuel Vadot		#clock-cells = <1>;
1295f62a964SEmmanuel Vadot		clock-indices = <IMX_LPCG_CLK_4>;
1305f62a964SEmmanuel Vadot		clock-output-names = "hsio_pcieb_per_clk";
1315f62a964SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_PCIE_B>;
1325f62a964SEmmanuel Vadot	};
1335f62a964SEmmanuel Vadot
1345f62a964SEmmanuel Vadot	misc_crr5_lpcg: clock-controller@5f0f0000 {
1355f62a964SEmmanuel Vadot		compatible = "fsl,imx8qxp-lpcg";
1365f62a964SEmmanuel Vadot		reg = <0x5f0f0000 0x10000>;
1375f62a964SEmmanuel Vadot		clocks = <&hsio_per_clk>;
1385f62a964SEmmanuel Vadot		#clock-cells = <1>;
1395f62a964SEmmanuel Vadot		clock-indices = <IMX_LPCG_CLK_4>;
1405f62a964SEmmanuel Vadot		clock-output-names = "hsio_misc_per_clk";
1415f62a964SEmmanuel Vadot		power-domains = <&pd IMX_SC_R_HSIO_GPIO>;
1425f62a964SEmmanuel Vadot	};
1435f62a964SEmmanuel Vadot};
144