blob: 3bf2071cc7837f92d891de063375390b7a552795 [file] [log] [blame]
/*
* Copyright 2022 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_rev2.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/interrupt-controller/arm-gic.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0>;
};
cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x100>;
};
};
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@48000000 {
compatible = "arm,gic-v3", "arm,gic";
reg = <0x48000000 0x10000>, /* GIC Dist */
<0x48040000 0xc0000>; /* GICR (RD_base + SGI_base) */
interrupt-controller;
#interrupt-cells = <4>;
status = "okay";
};
iomuxc: iomuxc@443c0000 {
compatible = "nxp,imx-iomuxc";
reg = <0x443c0000 DT_SIZE_K(64)>;
status = "okay";
pinctrl: pinctrl {
status = "okay";
compatible = "nxp,imx93-pinctrl";
};
};
ana_pll: ana_pll@44480000 {
compatible = "nxp,imx-ana";
reg = <0x44480000 DT_SIZE_K(64)>;
};
ccm: ccm@44450000 {
compatible = "nxp,imx-ccm-rev2";
reg = <0x44450000 DT_SIZE_K(64)>;
#clock-cells = <3>;
};
gpio1: gpio@47400000 {
compatible = "nxp,imx-rgpio";
reg = <0x47400000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
<GIC_SPI 11 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
gpio-controller;
#gpio-cells = <2>;
};
gpio2: gpio@43810000 {
compatible = "nxp,imx-rgpio";
reg = <0x43810000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
<GIC_SPI 58 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
gpio-controller;
#gpio-cells = <2>;
};
gpio3: gpio@43820000 {
compatible = "nxp,imx-rgpio";
reg = <0x43820000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
<GIC_SPI 60 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
gpio-controller;
#gpio-cells = <2>;
};
gpio4: gpio@43830000 {
compatible = "nxp,imx-rgpio";
reg = <0x43830000 DT_SIZE_K(64)>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
<GIC_SPI 190 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
gpio-controller;
#gpio-cells = <2>;
};
lpuart1: serial@44380000 {
compatible = "nxp,imx-lpuart", "nxp,kinetis-lpuart";
reg = <0x44380000 DT_SIZE_K(64)>;
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-names = "irq_0";
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPUART1_CLK 0x6c 24>;
status = "disabled";
};
lpuart2: serial@44390000 {
compatible = "nxp,imx-lpuart", "nxp,kinetis-lpuart";
reg = <0x44390000 DT_SIZE_K(64)>;
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-names = "irq_0";
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPUART2_CLK 0x6c 24>;
status = "disabled";
};
lpi2c1: i2c@44340000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x44340000 0x4000>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
status = "disabled";
};
lpi2c2: i2c@44350000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x44350000 0x4000>;
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C2_CLK 0x70 8>;
status = "disabled";
};
lpi2c3: i2c@42530000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x42530000 0x4000>;
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C3_CLK 0x70 10>;
status = "disabled";
};
lpi2c4: i2c@42540000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x42540000 0x4000>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C4_CLK 0x80 24>;
status = "disabled";
};
lpi2c5: i2c@426b0000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x426b0000 0x4000>;
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C5_CLK 0x80 24>;
status = "disabled";
};
lpi2c6: i2c@426c0000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x426c0000 0x4000>;
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C6_CLK 0x80 24>;
status = "disabled";
};
lpi2c7: i2c@426d0000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x426d0000 0x4000>;
interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C7_CLK 0x80 24>;
status = "disabled";
};
lpi2c8: i2c@426e0000 {
compatible = "nxp,imx-lpi2c";
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x426e0000 0x4000>;
interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
clocks = <&ccm IMX_CCM_LPI2C8_CLK 0x80 24>;
status = "disabled";
};
lpspi1: spi@44360000 {
compatible = "nxp,imx-lpspi";
reg = <0x44360000 0x4000>;
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI1_CLK 0x6c 0>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi2: spi@44370000 {
compatible = "nxp,imx-lpspi";
reg = <0x44370000 0x4000>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI2_CLK 0x6c 2>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi3: spi@42550000 {
compatible = "nxp,imx-lpspi";
reg = <0x42550000 0x4000>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI3_CLK 0x6c 4>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi4: spi@42560000 {
compatible = "nxp,imx-lpspi";
reg = <0x42560000 0x4000>;
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI4_CLK 0x6c 6>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi5: spi@426f0000 {
compatible = "nxp,imx-lpspi";
reg = <0x426f0000 0x4000>;
interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI5_CLK 0x6c 6>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi6: spi@42700000 {
compatible = "nxp,imx-lpspi";
reg = <0x42700000 0x4000>;
interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI6_CLK 0x6c 6>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi7: spi@42710000 {
compatible = "nxp,imx-lpspi";
reg = <0x42710000 0x4000>;
interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI7_CLK 0x6c 0>;
#address-cells = <1>;
#size-cells = <0>;
};
lpspi8: spi@42720000 {
compatible = "nxp,imx-lpspi";
reg = <0x42720000 0x4000>;
interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
interrupt-parent = <&gic>;
status = "disabled";
clocks = <&ccm IMX_CCM_LPSPI8_CLK 0x6c 2>;
#address-cells = <1>;
#size-cells = <0>;
};
edma4: dma@42000000 {
compatible = "nxp,edma";
reg = <0x42000000 (DT_SIZE_K(64) * 32)>;
valid-channels = <0>, <1>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
<GIC_SPI 128 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
#dma-cells = <2>;
hal-cfg-index = <1>;
status = "disabled";
};
sai3: dai@42660000 {
compatible = "nxp,dai-sai";
reg = <0x42660000 DT_SIZE_K(64)>;
mclk-is-output;
clocks = <&ccm IMX_CCM_SAI3_CLK 0x0 0x0>;
clock-names = "mclk1";
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
dai-index = <3>;
dmas = <&edma4 0 60>, <&edma4 1 61>;
dma-names = "tx", "rx";
status = "disabled";
};
};
&gpio1{
pinmux = <&iomuxc1_i2c1_scl_gpio_io_gpio1_io00>,
<&iomuxc1_i2c1_sda_gpio_io_gpio1_io01>,
<&iomuxc1_i2c2_scl_gpio_io_gpio1_io02>,
<&iomuxc1_i2c2_sda_gpio_io_gpio1_io03>,
<&iomuxc1_uart1_rxd_gpio_io_gpio1_io04>,
<&iomuxc1_uart1_txd_gpio_io_gpio1_io05>,
<&iomuxc1_uart2_rxd_gpio_io_gpio1_io06>,
<&iomuxc1_uart2_txd_gpio_io_gpio1_io07>,
<&iomuxc1_pdm_clk_gpio_io_gpio1_io08>,
<&iomuxc1_pdm_bit_stream0_gpio_io_gpio1_io09>,
<&iomuxc1_pdm_bit_stream1_gpio_io_gpio1_io10>,
<&iomuxc1_sai1_txfs_gpio_io_gpio1_io11>,
<&iomuxc1_sai1_txc_gpio_io_gpio1_io12>,
<&iomuxc1_sai1_txd0_gpio_io_gpio1_io13>,
<&iomuxc1_sai1_rxd0_gpio_io_gpio1_io14>,
<&iomuxc1_wdog_any_gpio_io_gpio1_io15>;
};
&gpio2{
pinmux = <&iomuxc1_gpio_io00_gpio_io_gpio2_io00>,
<&iomuxc1_gpio_io01_gpio_io_gpio2_io01>,
<&iomuxc1_gpio_io02_gpio_io_gpio2_io02>,
<&iomuxc1_gpio_io03_gpio_io_gpio2_io03>,
<&iomuxc1_gpio_io04_gpio_io_gpio2_io04>,
<&iomuxc1_gpio_io05_gpio_io_gpio2_io05>,
<&iomuxc1_gpio_io06_gpio_io_gpio2_io06>,
<&iomuxc1_gpio_io07_gpio_io_gpio2_io07>,
<&iomuxc1_gpio_io08_gpio_io_gpio2_io08>,
<&iomuxc1_gpio_io09_gpio_io_gpio2_io09>,
<&iomuxc1_gpio_io10_gpio_io_gpio2_io10>,
<&iomuxc1_gpio_io11_gpio_io_gpio2_io11>,
<&iomuxc1_gpio_io12_gpio_io_gpio2_io12>,
<&iomuxc1_gpio_io13_gpio_io_gpio2_io13>,
<&iomuxc1_gpio_io14_gpio_io_gpio2_io14>,
<&iomuxc1_gpio_io15_gpio_io_gpio2_io15>,
<&iomuxc1_gpio_io16_gpio_io_gpio2_io16>,
<&iomuxc1_gpio_io17_gpio_io_gpio2_io17>,
<&iomuxc1_gpio_io18_gpio_io_gpio2_io18>,
<&iomuxc1_gpio_io19_gpio_io_gpio2_io19>,
<&iomuxc1_gpio_io20_gpio_io_gpio2_io20>,
<&iomuxc1_gpio_io21_gpio_io_gpio2_io21>,
<&iomuxc1_gpio_io22_gpio_io_gpio2_io22>,
<&iomuxc1_gpio_io23_gpio_io_gpio2_io23>,
<&iomuxc1_gpio_io24_gpio_io_gpio2_io24>,
<&iomuxc1_gpio_io25_gpio_io_gpio2_io25>,
<&iomuxc1_gpio_io26_gpio_io_gpio2_io26>,
<&iomuxc1_gpio_io27_gpio_io_gpio2_io27>,
<&iomuxc1_gpio_io28_gpio_io_gpio2_io28>,
<&iomuxc1_gpio_io29_gpio_io_gpio2_io29>;
};
&gpio3{
pinmux = <&iomuxc1_sd2_cd_b_gpio_io_gpio3_io00>,
<&iomuxc1_sd2_clk_gpio_io_gpio3_io01>,
<&iomuxc1_sd2_cmd_gpio_io_gpio3_io02>,
<&iomuxc1_sd2_data0_gpio_io_gpio3_io03>,
<&iomuxc1_sd2_data1_gpio_io_gpio3_io04>,
<&iomuxc1_sd2_data2_gpio_io_gpio3_io05>,
<&iomuxc1_sd2_data3_gpio_io_gpio3_io06>,
<&iomuxc1_sd2_reset_b_gpio_io_gpio3_io07>,
<&iomuxc1_sd1_clk_gpio_io_gpio3_io08>,
<&iomuxc1_sd1_cmd_gpio_io_gpio3_io09>,
<&iomuxc1_sd1_data0_gpio_io_gpio3_io10>,
<&iomuxc1_sd1_data1_gpio_io_gpio3_io11>,
<&iomuxc1_sd1_data2_gpio_io_gpio3_io12>,
<&iomuxc1_sd1_data3_gpio_io_gpio3_io13>,
<&iomuxc1_sd1_data4_gpio_io_gpio3_io14>,
<&iomuxc1_sd1_data5_gpio_io_gpio3_io15>,
<&iomuxc1_sd1_data6_gpio_io_gpio3_io16>,
<&iomuxc1_sd1_data7_gpio_io_gpio3_io17>,
<&iomuxc1_sd1_strobe_gpio_io_gpio3_io18>,
<&iomuxc1_sd2_vselect_gpio_io_gpio3_io19>,
<&iomuxc1_sd3_clk_gpio_io_gpio3_io20>,
<&iomuxc1_sd3_cmd_gpio_io_gpio3_io21>,
<&iomuxc1_sd3_data0_gpio_io_gpio3_io22>,
<&iomuxc1_sd3_data1_gpio_io_gpio3_io23>,
<&iomuxc1_sd3_data2_gpio_io_gpio3_io24>,
<&iomuxc1_sd3_data3_gpio_io_gpio3_io25>,
<&iomuxc1_ccm_clko1_gpio_io_gpio3_io26>,
<&iomuxc1_ccm_clko2_gpio_io_gpio3_io27>,
<&iomuxc1_dap_tdi_gpio_io_gpio3_io28>,
<&iomuxc1_dap_tms_swdio_gpio_io_gpio3_io29>,
<&iomuxc1_dap_tclk_swclk_gpio_io_gpio3_io30>,
<&iomuxc1_dap_tdo_traceswo_gpio_io_gpio3_io31>;
};
&gpio4{
pinmux = <&iomuxc1_enet1_mdc_gpio_io_gpio4_io00>,
<&iomuxc1_enet1_mdio_gpio_io_gpio4_io01>,
<&iomuxc1_enet1_td3_gpio_io_gpio4_io02>,
<&iomuxc1_enet1_td2_gpio_io_gpio4_io03>,
<&iomuxc1_enet1_td1_gpio_io_gpio4_io04>,
<&iomuxc1_enet1_td0_gpio_io_gpio4_io05>,
<&iomuxc1_enet1_tx_ctl_gpio_io_gpio4_io06>,
<&iomuxc1_enet1_txc_gpio_io_gpio4_io07>,
<&iomuxc1_enet1_rx_ctl_gpio_io_gpio4_io08>,
<&iomuxc1_enet1_rxc_gpio_io_gpio4_io09>,
<&iomuxc1_enet1_rd0_gpio_io_gpio4_io10>,
<&iomuxc1_enet1_rd1_gpio_io_gpio4_io11>,
<&iomuxc1_enet1_rd2_gpio_io_gpio4_io12>,
<&iomuxc1_enet1_rd3_gpio_io_gpio4_io13>,
<&iomuxc1_enet2_mdc_gpio_io_gpio4_io14>,
<&iomuxc1_enet2_mdio_gpio_io_gpio4_io15>,
<&iomuxc1_enet2_td3_gpio_io_gpio4_io16>,
<&iomuxc1_enet2_td2_gpio_io_gpio4_io17>,
<&iomuxc1_enet2_td1_gpio_io_gpio4_io18>,
<&iomuxc1_enet2_td0_gpio_io_gpio4_io19>,
<&iomuxc1_enet2_tx_ctl_gpio_io_gpio4_io20>,
<&iomuxc1_enet2_txc_gpio_io_gpio4_io21>,
<&iomuxc1_enet2_rx_ctl_gpio_io_gpio4_io22>,
<&iomuxc1_enet2_rxc_gpio_io_gpio4_io23>,
<&iomuxc1_enet2_rd0_gpio_io_gpio4_io24>,
<&iomuxc1_enet2_rd1_gpio_io_gpio4_io25>,
<&iomuxc1_enet2_rd2_gpio_io_gpio4_io26>,
<&iomuxc1_enet2_rd3_gpio_io_gpio4_io27>,
<&iomuxc1_ccm_clko3_gpio_io_gpio4_io28>,
<&iomuxc1_ccm_clko4_gpio_io_gpio4_io29>;
};