162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR MIT 262306a36Sopenharmony_ci// 362306a36Sopenharmony_ci// Copyright 2015 Freescale Semiconductor, Inc. 462306a36Sopenharmony_ci// Copyright 2016 Toradex AG 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include "imx7s.dtsi" 762306a36Sopenharmony_ci#include <dt-bindings/reset/imx7-reset.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/ { 1062306a36Sopenharmony_ci aliases { 1162306a36Sopenharmony_ci usb0 = &usbotg1; 1262306a36Sopenharmony_ci usb1 = &usbotg2; 1362306a36Sopenharmony_ci usb2 = &usbh; 1462306a36Sopenharmony_ci }; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci cpus { 1762306a36Sopenharmony_ci cpu0: cpu@0 { 1862306a36Sopenharmony_ci clock-frequency = <996000000>; 1962306a36Sopenharmony_ci operating-points-v2 = <&cpu0_opp_table>; 2062306a36Sopenharmony_ci #cooling-cells = <2>; 2162306a36Sopenharmony_ci nvmem-cells = <&fuse_grade>; 2262306a36Sopenharmony_ci nvmem-cell-names = "speed_grade"; 2362306a36Sopenharmony_ci }; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci cpu1: cpu@1 { 2662306a36Sopenharmony_ci compatible = "arm,cortex-a7"; 2762306a36Sopenharmony_ci device_type = "cpu"; 2862306a36Sopenharmony_ci reg = <1>; 2962306a36Sopenharmony_ci clock-frequency = <996000000>; 3062306a36Sopenharmony_ci operating-points-v2 = <&cpu0_opp_table>; 3162306a36Sopenharmony_ci #cooling-cells = <2>; 3262306a36Sopenharmony_ci cpu-idle-states = <&cpu_sleep_wait>; 3362306a36Sopenharmony_ci }; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci timer { 3762306a36Sopenharmony_ci compatible = "arm,armv7-timer"; 3862306a36Sopenharmony_ci interrupt-parent = <&intc>; 3962306a36Sopenharmony_ci interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4062306a36Sopenharmony_ci <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4162306a36Sopenharmony_ci <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4262306a36Sopenharmony_ci <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 4362306a36Sopenharmony_ci }; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci cpu0_opp_table: opp-table { 4662306a36Sopenharmony_ci compatible = "operating-points-v2"; 4762306a36Sopenharmony_ci opp-shared; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci opp-792000000 { 5062306a36Sopenharmony_ci opp-hz = /bits/ 64 <792000000>; 5162306a36Sopenharmony_ci opp-microvolt = <1000000>; 5262306a36Sopenharmony_ci clock-latency-ns = <150000>; 5362306a36Sopenharmony_ci opp-supported-hw = <0xd>, <0x7>; 5462306a36Sopenharmony_ci opp-suspend; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci opp-996000000 { 5862306a36Sopenharmony_ci opp-hz = /bits/ 64 <996000000>; 5962306a36Sopenharmony_ci opp-microvolt = <1100000>; 6062306a36Sopenharmony_ci clock-latency-ns = <150000>; 6162306a36Sopenharmony_ci opp-supported-hw = <0xc>, <0x7>; 6262306a36Sopenharmony_ci opp-suspend; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci opp-1200000000 { 6662306a36Sopenharmony_ci opp-hz = /bits/ 64 <1200000000>; 6762306a36Sopenharmony_ci opp-microvolt = <1225000>; 6862306a36Sopenharmony_ci clock-latency-ns = <150000>; 6962306a36Sopenharmony_ci opp-supported-hw = <0x8>, <0x3>; 7062306a36Sopenharmony_ci opp-suspend; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci }; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci usbphynop2: usbphynop2 { 7562306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 7662306a36Sopenharmony_ci clocks = <&clks IMX7D_USB_PHY2_CLK>; 7762306a36Sopenharmony_ci clock-names = "main_clk"; 7862306a36Sopenharmony_ci #phy-cells = <0>; 7962306a36Sopenharmony_ci }; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci soc: soc { 8262306a36Sopenharmony_ci etm@3007d000 { 8362306a36Sopenharmony_ci compatible = "arm,coresight-etm3x", "arm,primecell"; 8462306a36Sopenharmony_ci reg = <0x3007d000 0x1000>; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci /* 8762306a36Sopenharmony_ci * System will hang if added nosmp in kernel command line 8862306a36Sopenharmony_ci * without arm,primecell-periphid because amba bus try to 8962306a36Sopenharmony_ci * read id and core1 power off at this time. 9062306a36Sopenharmony_ci */ 9162306a36Sopenharmony_ci arm,primecell-periphid = <0xbb956>; 9262306a36Sopenharmony_ci cpu = <&cpu1>; 9362306a36Sopenharmony_ci clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 9462306a36Sopenharmony_ci clock-names = "apb_pclk"; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci out-ports { 9762306a36Sopenharmony_ci port { 9862306a36Sopenharmony_ci etm1_out_port: endpoint { 9962306a36Sopenharmony_ci remote-endpoint = <&ca_funnel_in_port1>; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci }; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci intc: interrupt-controller@31001000 { 10662306a36Sopenharmony_ci compatible = "arm,cortex-a7-gic"; 10762306a36Sopenharmony_ci interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 10862306a36Sopenharmony_ci #interrupt-cells = <3>; 10962306a36Sopenharmony_ci interrupt-controller; 11062306a36Sopenharmony_ci interrupt-parent = <&intc>; 11162306a36Sopenharmony_ci reg = <0x31001000 0x1000>, 11262306a36Sopenharmony_ci <0x31002000 0x2000>, 11362306a36Sopenharmony_ci <0x31004000 0x2000>, 11462306a36Sopenharmony_ci <0x31006000 0x2000>; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci pcie: pcie@33800000 { 11862306a36Sopenharmony_ci compatible = "fsl,imx7d-pcie"; 11962306a36Sopenharmony_ci reg = <0x33800000 0x4000>, 12062306a36Sopenharmony_ci <0x4ff00000 0x80000>; 12162306a36Sopenharmony_ci reg-names = "dbi", "config"; 12262306a36Sopenharmony_ci #address-cells = <3>; 12362306a36Sopenharmony_ci #size-cells = <2>; 12462306a36Sopenharmony_ci device_type = "pci"; 12562306a36Sopenharmony_ci bus-range = <0x00 0xff>; 12662306a36Sopenharmony_ci ranges = <0x81000000 0 0 0x4ff80000 0 0x00010000>, /* downstream I/O */ 12762306a36Sopenharmony_ci <0x82000000 0 0x40000000 0x40000000 0 0x0ff00000>; /* non-prefetchable memory */ 12862306a36Sopenharmony_ci num-lanes = <1>; 12962306a36Sopenharmony_ci interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 13062306a36Sopenharmony_ci interrupt-names = "msi"; 13162306a36Sopenharmony_ci #interrupt-cells = <1>; 13262306a36Sopenharmony_ci interrupt-map-mask = <0 0 0 0x7>; 13362306a36Sopenharmony_ci /* 13462306a36Sopenharmony_ci * Reference manual lists pci irqs incorrectly 13562306a36Sopenharmony_ci * Real hardware ordering is same as imx6: D+MSI, C, B, A 13662306a36Sopenharmony_ci */ 13762306a36Sopenharmony_ci interrupt-map = <0 0 0 1 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 13862306a36Sopenharmony_ci <0 0 0 2 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 13962306a36Sopenharmony_ci <0 0 0 3 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 14062306a36Sopenharmony_ci <0 0 0 4 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 14162306a36Sopenharmony_ci clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>, 14262306a36Sopenharmony_ci <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>, 14362306a36Sopenharmony_ci <&clks IMX7D_PCIE_PHY_ROOT_CLK>; 14462306a36Sopenharmony_ci clock-names = "pcie", "pcie_bus", "pcie_phy"; 14562306a36Sopenharmony_ci assigned-clocks = <&clks IMX7D_PCIE_CTRL_ROOT_SRC>, 14662306a36Sopenharmony_ci <&clks IMX7D_PCIE_PHY_ROOT_SRC>; 14762306a36Sopenharmony_ci assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>, 14862306a36Sopenharmony_ci <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci fsl,max-link-speed = <2>; 15162306a36Sopenharmony_ci power-domains = <&pgc_pcie_phy>; 15262306a36Sopenharmony_ci resets = <&src IMX7_RESET_PCIEPHY>, 15362306a36Sopenharmony_ci <&src IMX7_RESET_PCIE_CTRL_APPS_EN>, 15462306a36Sopenharmony_ci <&src IMX7_RESET_PCIE_CTRL_APPS_TURNOFF>; 15562306a36Sopenharmony_ci reset-names = "pciephy", "apps", "turnoff"; 15662306a36Sopenharmony_ci fsl,imx7d-pcie-phy = <&pcie_phy>; 15762306a36Sopenharmony_ci status = "disabled"; 15862306a36Sopenharmony_ci }; 15962306a36Sopenharmony_ci }; 16062306a36Sopenharmony_ci}; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci&aips2 { 16362306a36Sopenharmony_ci pcie_phy: pcie-phy@306d0000 { 16462306a36Sopenharmony_ci compatible = "fsl,imx7d-pcie-phy"; 16562306a36Sopenharmony_ci reg = <0x306d0000 0x10000>; 16662306a36Sopenharmony_ci status = "disabled"; 16762306a36Sopenharmony_ci }; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci pxp: pxp@30700000 { 17062306a36Sopenharmony_ci compatible = "fsl,imx7d-pxp"; 17162306a36Sopenharmony_ci reg = <0x30700000 0x10000>; 17262306a36Sopenharmony_ci interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 17362306a36Sopenharmony_ci <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 17462306a36Sopenharmony_ci clocks = <&clks IMX7D_PXP_CLK>; 17562306a36Sopenharmony_ci clock-names = "axi"; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci}; 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci&aips3 { 18062306a36Sopenharmony_ci usbotg2: usb@30b20000 { 18162306a36Sopenharmony_ci compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 18262306a36Sopenharmony_ci reg = <0x30b20000 0x200>; 18362306a36Sopenharmony_ci interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 18462306a36Sopenharmony_ci clocks = <&clks IMX7D_USB_CTRL_CLK>; 18562306a36Sopenharmony_ci fsl,usbphy = <&usbphynop2>; 18662306a36Sopenharmony_ci fsl,usbmisc = <&usbmisc2 0>; 18762306a36Sopenharmony_ci phy-clkgate-delay-us = <400>; 18862306a36Sopenharmony_ci status = "disabled"; 18962306a36Sopenharmony_ci }; 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci usbmisc2: usbmisc@30b20200 { 19262306a36Sopenharmony_ci #index-cells = <1>; 19362306a36Sopenharmony_ci compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc"; 19462306a36Sopenharmony_ci reg = <0x30b20200 0x200>; 19562306a36Sopenharmony_ci }; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci fec2: ethernet@30bf0000 { 19862306a36Sopenharmony_ci compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 19962306a36Sopenharmony_ci reg = <0x30bf0000 0x10000>; 20062306a36Sopenharmony_ci interrupt-names = "int0", "int1", "int2", "pps"; 20162306a36Sopenharmony_ci interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 20262306a36Sopenharmony_ci <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 20362306a36Sopenharmony_ci <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 20462306a36Sopenharmony_ci <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 20562306a36Sopenharmony_ci clocks = <&clks IMX7D_ENET2_IPG_ROOT_CLK>, 20662306a36Sopenharmony_ci <&clks IMX7D_ENET_AXI_ROOT_CLK>, 20762306a36Sopenharmony_ci <&clks IMX7D_ENET2_TIME_ROOT_CLK>, 20862306a36Sopenharmony_ci <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, 20962306a36Sopenharmony_ci <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>; 21062306a36Sopenharmony_ci clock-names = "ipg", "ahb", "ptp", 21162306a36Sopenharmony_ci "enet_clk_ref", "enet_out"; 21262306a36Sopenharmony_ci fsl,num-tx-queues = <3>; 21362306a36Sopenharmony_ci fsl,num-rx-queues = <3>; 21462306a36Sopenharmony_ci fsl,stop-mode = <&gpr 0x10 4>; 21562306a36Sopenharmony_ci status = "disabled"; 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci}; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci&ca_funnel_in_ports { 22062306a36Sopenharmony_ci port@1 { 22162306a36Sopenharmony_ci reg = <1>; 22262306a36Sopenharmony_ci ca_funnel_in_port1: endpoint { 22362306a36Sopenharmony_ci remote-endpoint = <&etm1_out_port>; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci }; 22662306a36Sopenharmony_ci}; 227