Commit 2602c32f authored by Vidya Sagar's avatar Vidya Sagar Committed by Thierry Reding

arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT

Add P2U (PIPE to UPHY) and PCIe controller nodes to device tree.
The Tegra194 SoC contains six PCIe controllers and twenty P2U instances
grouped into two different PHY bricks namely High-Speed IO (HSIO-12 P2Us)
and NVIDIA High Speed (NVHS-8 P2Us) respectively.
Signed-off-by: default avatarVidya Sagar <vidyas@nvidia.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 871be845
...@@ -494,6 +494,166 @@ hsp_top0: hsp@3c00000 { ...@@ -494,6 +494,166 @@ hsp_top0: hsp@3c00000 {
#mbox-cells = <2>; #mbox-cells = <2>;
}; };
p2u_hsio_0: phy@3e10000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e10000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_1: phy@3e20000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e20000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_2: phy@3e30000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e30000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_3: phy@3e40000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e40000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_4: phy@3e50000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e50000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_5: phy@3e60000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e60000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_6: phy@3e70000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e70000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_7: phy@3e80000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e80000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_8: phy@3e90000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03e90000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_9: phy@3ea0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03ea0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_0: phy@3eb0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03eb0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_1: phy@3ec0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03ec0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_2: phy@3ed0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03ed0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_3: phy@3ee0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03ee0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_4: phy@3ef0000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03ef0000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_5: phy@3f00000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03f00000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_6: phy@3f10000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03f10000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_nvhs_7: phy@3f20000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03f20000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_10: phy@3f30000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03f30000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
p2u_hsio_11: phy@3f40000 {
compatible = "nvidia,tegra194-p2u";
reg = <0x03f40000 0x10000>;
reg-names = "ctl";
#phy-cells = <0>;
};
hsp_aon: hsp@c150000 { hsp_aon: hsp@c150000 {
compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp"; compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
reg = <0x0c150000 0xa0000>; reg = <0x0c150000 0xa0000>;
...@@ -957,6 +1117,283 @@ sor3: sor@15bc0000 { ...@@ -957,6 +1117,283 @@ sor3: sor@15bc0000 {
}; };
}; };
pcie@14100000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
reg = <0x00 0x14100000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x30000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x30040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x30080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <1>;
num-viewport = <8>;
linux,pci-domain = <1>;
clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_1>;
clock-names = "core";
resets = <&bpmp TEGRA194_RESET_PEX0_CORE_1_APB>,
<&bpmp TEGRA194_RESET_PEX0_CORE_1>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
nvidia,bpmp = <&bpmp 1>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x30100000 0x0 0x30100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */
0x82000000 0x0 0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
};
pcie@14120000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
reg = <0x00 0x14120000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x32000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x32040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x32080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <1>;
num-viewport = <8>;
linux,pci-domain = <2>;
clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_2>;
clock-names = "core";
resets = <&bpmp TEGRA194_RESET_PEX0_CORE_2_APB>,
<&bpmp TEGRA194_RESET_PEX0_CORE_2>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
nvidia,bpmp = <&bpmp 2>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x32100000 0x0 0x32100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */
0x82000000 0x0 0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
};
pcie@14140000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
reg = <0x00 0x14140000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x34000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x34040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x34080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <1>;
num-viewport = <8>;
linux,pci-domain = <3>;
clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_3>;
clock-names = "core";
resets = <&bpmp TEGRA194_RESET_PEX0_CORE_3_APB>,
<&bpmp TEGRA194_RESET_PEX0_CORE_3>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
nvidia,bpmp = <&bpmp 3>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x34100000 0x0 0x34100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */
0x82000000 0x0 0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
};
pcie@14160000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
reg = <0x00 0x14160000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x36000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x36040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x36080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <4>;
num-viewport = <8>;
linux,pci-domain = <4>;
clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_4>;
clock-names = "core";
resets = <&bpmp TEGRA194_RESET_PEX0_CORE_4_APB>,
<&bpmp TEGRA194_RESET_PEX0_CORE_4>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
nvidia,bpmp = <&bpmp 4>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x36100000 0x0 0x36100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
0x82000000 0x0 0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
};
pcie@14180000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
reg = <0x00 0x14180000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x38000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x38040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x38080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <8>;
num-viewport = <8>;
linux,pci-domain = <0>;
clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_0>;
clock-names = "core";
resets = <&bpmp TEGRA194_RESET_PEX0_CORE_0_APB>,
<&bpmp TEGRA194_RESET_PEX0_CORE_0>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
nvidia,bpmp = <&bpmp 0>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
0x82000000 0x0 0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
};
pcie@141a0000 {
compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x3a000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x3a040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x3a080000 0x0 0x00040000>; /* DBI reg space (256K) */
reg-names = "appl", "config", "atu_dma", "dbi";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <8>;
num-viewport = <8>;
linux,pci-domain = <5>;
clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>,
<&bpmp TEGRA194_CLK_PEX1_CORE_5M>;
clock-names = "core", "core_m";
resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
<&bpmp TEGRA194_RESET_PEX1_CORE_5>;
reset-names = "apb", "core";
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
interrupt-names = "intr", "msi";
nvidia,bpmp = <&bpmp 5>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
supports-clkreq;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x3a100000 0x0 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */
0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
0x82000000 0x0 0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
};
sysram@40000000 { sysram@40000000 {
compatible = "nvidia,tegra194-sysram", "mmio-sram"; compatible = "nvidia,tegra194-sysram", "mmio-sram";
reg = <0x0 0x40000000 0x0 0x50000>; reg = <0x0 0x40000000 0x0 0x50000>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment