blob: 9c3c7c35d1773ba245faf53ffb61f8e80ef83e1e [file] [log] [blame]
/*
* Copyright 2020-2022,2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <mem.h>
#include <freq.h>
#include <arm64/armv8-a.dtsi>
#include <zephyr/dt-bindings/clock/imx_ccm.h>
#include <zephyr/dt-bindings/interrupt-controller/arm-gic.h>
#include <zephyr/dt-bindings/rdc/imx_rdc.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
chosen {
zephyr,console = &uart2;
zephyr,shell-uart = &uart2;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <1>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <2>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <3>;
};
};
arch_timer: timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>,
<GIC_PPI 14 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>,
<GIC_PPI 11 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>,
<GIC_PPI 10 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
};
gic: interrupt-controller@38800000 {
compatible = "arm,gic-v3", "arm,gic";
reg = <0x38800000 0x10000>, /* GIC Dist */
<0x38880000 0xc0000>; /* GICR (RD_base + SGI_base) */
interrupt-controller;
#interrupt-cells = <4>;
status = "okay";
};
gpt1: gpt@302d0000 {
compatible = "nxp,imx-gpt";
reg = <0x302d0000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>;
gptfreq = <24000000>;
clocks = <&ccm IMX_CCM_GPT_IPG_CLK 0x6C 20>;
status = "disabled";
};
gpt2: gpt@302e0000 {
compatible = "nxp,imx-gpt";
reg = <0x302e0000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL
IRQ_DEFAULT_PRIORITY>;
gptfreq = <24000000>;
clocks = <&ccm IMX_CCM_GPT_IPG_CLK 0x68 24>;
status = "disabled";
};
iomuxc: iomuxc@30330000 {
compatible = "nxp,imx-iomuxc";
reg = <0x30330000 DT_SIZE_K(64)>;
status = "okay";
pinctrl: pinctrl {
status = "okay";
compatible = "nxp,imx8mp-pinctrl";
};
};
ana_pll: ana_pll@30360000 {
compatible = "nxp,imx-ana";
reg = <0x30360000 DT_SIZE_K(64)>;
};
ccm: ccm@30380000 {
compatible = "nxp,imx-ccm";
reg = <0x30380000 DT_SIZE_K(64)>;
#clock-cells = <3>;
};
uart2: serial@30890000 {
compatible = "nxp,imx-iuart";
reg = <0x30890000 DT_SIZE_K(64)>;
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-names = "irq_0";
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_UART2_CLK 0x6c 24>;
rdc = <(RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)|\
RDC_DOMAIN_PERM(M4_DOMAIN_ID, RDC_DOMAIN_PERM_RW))>;
status = "disabled";
};
uart4: serial@30a60000 {
compatible = "nxp,imx-iuart";
reg = <0x30a60000 DT_SIZE_K(64)>;
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-names = "irq_0";
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_UART4_CLK 0x6c 24>;
rdc = <(RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)|\
RDC_DOMAIN_PERM(M4_DOMAIN_ID, RDC_DOMAIN_PERM_RW))>;
status = "disabled";
};
rdc: rdc@303d0000 {
compatible = "nxp,rdc";
reg = <0x303d0000 DT_SIZE_K(64)>;
};
enet: enet@30be0000 {
compatible = "nxp,enet1g";
reg = <0x30be0000 DT_SIZE_K(64)>;
clocks = <&ccm IMX_CCM_ENET_CLK 0 0>;
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
status = "disabled";
enet_mac: ethernet {
compatible = "nxp,enet-mac";
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-names = "COMMON";
interrupt-parent = <&gic>;
nxp,mdio = <&enet_mdio>;
nxp,ptp-clock = <&enet_ptp_clock>;
status = "disabled";
};
enet_mdio: mdio {
compatible = "nxp,enet-mdio";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
enet_ptp_clock: ptp_clock {
compatible = "nxp,enet-ptp-clock";
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_ENET_PLL 0 0>;
status = "disabled";
};
};
};