Skip to content

Instantly share code, notes, and snippets.

@tonosaman
Last active December 6, 2023 06:45
Show Gist options
  • Save tonosaman/eb47c1df073c872e117e6e2eb53de039 to your computer and use it in GitHub Desktop.
Save tonosaman/eb47c1df073c872e117e6e2eb53de039 to your computer and use it in GitHub Desktop.
Kria KV260 zynqmp_dpsub(=zynqmp-display@fd4a0000) device tree overlay

KV260 zynqmp-display@fd4a0000 linux driver initialization sequence(1/2)

The following is a summary of the device tree settings to enable zynqmp-display@fd4a0000.

Xilinx Kria KV260 Vision AI Starter Kit Development board system certified with Ubuntu ⇒ device tree overlay

  • Ubuntu-xilinx-zynqmp-5.4.0-1017.20

    Download from Ubuntu 20.04 LTS arm64

    Network Processor Video
    ethernet aarch64 aarch64 drm-platform-fd4a0000_zynqmp-display
  • krea:~$ sudo dtc /sys/firmware/fdt -> output

    • Note: /sys/firmware/fdt does not return live device-tree.
    • zynqmp-display@fd4a0000 is initialy disabled
      zynqmp-display@fd4a0000 {
      	compatible = "xlnx,zynqmp-dpsub-1.7";
      	status = "disabled";
      
    • But cat /proc/device-tree/amba/zynqmp-display@fd4a0000/status returns okay. Did the device tree overlay enable that? check it.
  • initrd(4) load overlays, zynqmp-sck-kv-g-rev1.dtbo and zynqmp-sck-kv-g-dp.dtbo

    • Documentation left in deprecated repository: Xilinx/ubuntu-firmware/xlnx-kria-firmware/k26

    • linux-xilinx-zynqmp/arch/arm64/boot/dts/xilinx/ is for petalinux use. ubuntu use package system.

    • kria specialized device trees are packaged in xlnx-kria-firmware:

    • Extract initrd (lz4 compressed) image:

      • lz4 -dc < /boot/initrd.img-5.4.0-1017-xilinx-zynqmp | cpio -idmp
    • Changing the Kernel bootargs Used By U-Boot

      • flash-kernel package contains U-boot script(/etc/flash-kernel/bootscript/bootscr.zynqmp) which setup bootargs and dtb.
    • xlnx-kria-firmware_0.6_20.04.1/xlnx-kria-firmware/usr/share/initramfs-tools/scripts/init-top/kria-dtbo-autoload

      vars@kria-dtbo-autoload values on kv260 corresponding source (in lnx-kria-firmware_0.6~20.04.1.tar.xz)
      ${dp_dtbo} zynqmp-sck-kv-g-dp.dtbo xlnx-kria-firmware/device-tree/zynqmp-sck-kv-g-dp.dts
      ${dtbo_file} zynqmp-sck-kv-g-rev1.dtbo xlnx-kria-firmware/device-tree/zynqmp-sck-kv-g-rev1.dts
      • Details of kria-dtbo-autoload script

        #! /bin/sh -e
        # local-premount script to load Krita SOM dtbos
        
        PREREQ=""
        
        # Output pre-requisites
        prereqs()
        {
                echo "$PREREQ"
        }
        
        case "$1" in
            prereqs)
                prereqs
                exit 0
                ;;
        esac
        # Model should contain K26, for instance "ZynqMP SMK-K26 Rev1/B/A"
        if ! grep -i -q K26 /sys/firmware/devicetree/base/model; then
            exit 0
        fi
        
        printf "Kria module detected, loading dtbo...\n"
        
        som_eeprom=$(find /sys/bus/i2c/devices/*50/eeprom -maxdepth 1 -name eeprom)
        cc_eeprom=$(find /sys/bus/i2c/devices/*51/eeprom -maxdepth 1 -name eeprom)
        
        som_name=$(fru-dump -i "$som_eeprom" -b -f "product name")
        # our busybox does not support "tr '[:upper:]' '[:lower:]'"
        # shellcheck disable=SC2018
        carrier_card=$(fru-dump -i "$cc_eeprom" -b -f "product name" | tr 'A-z' 'a-z')
        cc_rev=$(fru-dump -i "$cc_eeprom" -b -f revision)
        
        dtbo_path=/usr/share/xlnx-kria-firmware/devicetree
        dtbo_file="zynqmp-$carrier_card-rev$cc_rev.dtbo"
        
        printf "SOM: %s CARRIER_CARD: %s REVISION: %s\n" "$som_name" "$carrier_card" "$cc_rev"
        
        if [ -f "$dtbo_path/$dtbo_file" ]; then
            overlay_path="/configfs/device-tree/overlays/"
            printf "Applying %s\n" "$dtbo_file"
            [ ! -d "/configfs" ] && mkdir /configfs
            mount -t configfs configfs /configfs
            cd $overlay_path
            [ ! -d "./full" ] && mkdir full
            [ ! -d "/lib/firmware" ] && mkdir /lib/firmware/
            cp "$dtbo_path/$dtbo_file" /lib/firmware/
            printf "%s" "$dtbo_file" > full/path
            # Load dtbo for display port
            mkdir dp
            dp_dtbo=zynqmp-sck-kv-g-dp.dtbo
            cp "$dtbo_path/$dp_dtbo" /lib/firmware/
            printf "%s" "$dp_dtbo" > dp/path
        else
            printf "NO CARRIER DTBO FOUND, PLEASE CHECK %s\n" "$dtbo_path"
        fi
        
    • xlnx-kria-firmware_0.6~20.04.1_arm64.deb/data/usr/share/xlnx-kria-firmware/devicetree

      md5sum .dts
      98497ee166954651e0f65df589750f36 system-top.dtb
      d9c95605682f8d781e9b2be0fbbf3d9d zynqmp-sck-kv-g-dp.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-rev1.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-revB.dtbo
      50839d19650982af893061ae55d2aeb4 zynqmp-sck-kv-g-revZ.dtbo
    • iot-kria-classic-desktop-2004-x03-20211110-98-rootfs.tar.gz/boot/initrd.img-5.4.0-1017-xilinx-zynqmp-extract/usr/share/xlnx-kria-firmware/devicetree/*

      md5sum .dts
      d9c95605682f8d781e9b2be0fbbf3d9d zynqmp-sck-kv-g-dp.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-rev1.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-revB.dtbo
      50839d19650982af893061ae55d2aeb4 zynqmp-sck-kv-g-revZ.dtbo
    • kv260 ubuntu running:/usr/share/xlnx-kria-firmware/devicetree/*

      md5sum .dts
      98497ee166954651e0f65df589750f36 system-top.dtb
      d9c95605682f8d781e9b2be0fbbf3d9d zynqmp-sck-kv-g-dp.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-rev1.dtbo
      4d8decec43e2ff6c42f30c1e882b1e46 zynqmp-sck-kv-g-revB.dtbo
      50839d19650982af893061ae55d2aeb4 zynqmp-sck-kv-g-revZ.dtbo
    • dtc ${INITRD_ROOT}/usr/share/xlnx-kria-firmware/devicetree/zynqmp-sck-kv-g-dp.dtbo

      /dts-v1/;
      
      / {
        compatible = "xlnx,zynqmp-sk-kv260-revB\0xlnx,zynqmp-sk-kv260-revA\0xlnx,zynqmp-sk-kv260-revY\0xlnx,zynqmp-sk-kv260-revZ\0xlnx,zynqmp-sk-kv260\0xlnx,zynqmp";
        fragment4 { target = <0xffffffff>; __overlay__ { status = "okay"; }; };
        fragment5 { target = <0xffffffff>; __overlay__ { status = "okay"; }; };
        fragment6 { target = <0xffffffff>; __overlay__ { status = "okay"; }; };
        fragment7 { target = <0xffffffff>; __overlay__ { status = "okay"; }; };
        fragment8 { target = <0xffffffff>; __overlay__ { status = "okay"; }; };
        __fixups__ {
          zynqmp_dpsub = "/fragment4:target:0";
          zynqmp_dp_snd_pcm0 = "/fragment5:target:0";
          zynqmp_dp_snd_pcm1 = "/fragment6:target:0";
          zynqmp_dp_snd_card0 = "/fragment7:target:0";
          zynqmp_dp_snd_codec0 = "/fragment8:target:0";
        };
      };
      

Cocnlusion

  • The status of zynqmp_dpsub is set to "ok" by loading device tree overlay zynqmp-sck-kv-g-dp.dtbo.
  • *.dtbo is loaded by ${INITRD_ROOT}/usr/share/initramfs-tools/scripts/init-top/kria-dtbo-autoload.

In case of ZynqMP common petalinux image ⇒ overlay is not used

zynqmp_dpsub is enabled in single dtb extracted by bootloader.

  • changeset:1202c13/linux-xlnx

    arm64: zynqmp: Enable DP for kv260-revA board

    DP is enabled for revB and also kr260 kits and should be enabled for kv260-revA too. Changes in other boards were done by commit a9b5f6ed3624 ("arm64: zynqmp: Enable DP driver for SOMs").

1. Extract downloaded tgz and execute sdk.sh.

2. decompile dtb

dtc -I dtb -O dts /opt/petalinux/2021.1/sysroots/cortexa72-cortexa53-xilinx-linux/boot/device-tree.dtb
  • decompile result: device-tree.dts
    • zynqmp-zcu106-revA based.

      display@fd4a0000 {
      	compatible = "xlnx,zynqmp-dpsub-1.7";
      	status = "okay";
      	reg = <0x00 0xfd4a0000 0x00 0x1000 0x00 0xfd4aa000 0x00 0x1000 0x00 0xfd4ab000 0x00 0x1000 0x00 0xfd4ac000 0x00 0x1000>;
      	reg-names = "dp\0blend\0av_buf\0aud";
      	interrupts = <0x00 0x77 0x04>;
      	interrupt-parent = <0x04>;
      	#stream-id-cells = <0x01>;
      	iommus = <0x0e 0xce3>;
      	clock-names = "dp_apb_clk\0dp_aud_clk\0dp_vtc_pixel_clk_in";
      	power-domains = <0x0c 0x29>;
      	resets = <0x1c 0x03>;
      	dma-names = "vid0\0vid1\0vid2\0gfx0";
      	dmas = <0x24 0x00 0x24 0x01 0x24 0x02 0x24 0x03>;
      	clocks = <0x25 0x03 0x11 0x03 0x10>;
      	phy-names = "dp-phy0\0dp-phy1";
      	phys = <0x1d 0x01 0x06 0x00 0x03 0x1d 0x00 0x06 0x01 0x03>;
      	xlnx,max-lanes = <0x02>;
      	phandle = <0xa1>;
      
      	i2c-bus {
      	};
      
      	zynqmp_dp_snd_codec0 {
      		compatible = "xlnx,dp-snd-codec";
      		clock-names = "aud_clk";
      		clocks = <0x03 0x11>;
      		status = "okay";
      		phandle = <0x28>;
      	};
      
      	zynqmp_dp_snd_pcm0 {
      		compatible = "xlnx,dp-snd-pcm";
      		dmas = <0x24 0x04>;
      		dma-names = "tx";
      		status = "okay";
      		phandle = <0x26>;
      	};
      
      	zynqmp_dp_snd_pcm1 {
      		compatible = "xlnx,dp-snd-pcm";
      		dmas = <0x24 0x05>;
      		dma-names = "tx";
      		status = "okay";
      		phandle = <0x27>;
      	};
      
      	zynqmp_dp_snd_card {
      		compatible = "xlnx,dp-snd-card";
      		xlnx,dp-snd-pcm = <0x26 0x27>;
      		xlnx,dp-snd-codec = <0x28>;
      		status = "okay";
      		phandle = <0xa2>;
      	};
      };
      
/dts-v1/;
/ {
compatible = "xlnx,zynqmp-zcu106-revA\0xlnx,zynqmp-zcu106\0xlnx,zynqmp";
#address-cells = <0x02>;
#size-cells = <0x02>;
model = "ZynqMP ZCU106 RevA";
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
cpu@0 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
operating-points-v2 = <0x01>;
reg = <0x00>;
cpu-idle-states = <0x02>;
clocks = <0x03 0x0a>;
phandle = <0x3f>;
};
cpu@1 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x01>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x40>;
};
cpu@2 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x02>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x41>;
};
cpu@3 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x03>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x42>;
};
idle-states {
entry-method = "psci";
cpu-sleep-0 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x40000000>;
local-timer-stop;
entry-latency-us = <0x12c>;
exit-latency-us = <0x258>;
min-residency-us = <0x2710>;
phandle = <0x02>;
};
};
};
cpu-opp-table {
compatible = "operating-points-v2";
opp-shared;
phandle = <0x01>;
opp00 {
opp-hz = <0x00 0x47868bf4>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp01 {
opp-hz = <0x00 0x23c345fa>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp02 {
opp-hz = <0x00 0x17d783fc>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp03 {
opp-hz = <0x00 0x11e1a2fd>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
};
zynqmp_ipi {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-ipi-mailbox";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
xlnx,ipi-id = <0x00>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x43>;
mailbox@ff990400 {
u-boot,dm-pre-reloc;
reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>;
reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region";
#mbox-cells = <0x01>;
xlnx,ipi-id = <0x04>;
phandle = <0x05>;
};
};
dcc {
compatible = "arm,dcc";
status = "disabled";
u-boot,dm-pre-reloc;
phandle = <0x44>;
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupt-parent = <0x04>;
interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04>;
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
firmware {
zynqmp-firmware {
compatible = "xlnx,zynqmp-firmware";
u-boot,dm-pre-reloc;
method = "smc";
#power-domain-cells = <0x01>;
phandle = <0x0c>;
zynqmp-power {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-power";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
mboxes = <0x05 0x00 0x05 0x01>;
mbox-names = "tx\0rx";
phandle = <0x45>;
};
nvmem_firmware {
compatible = "xlnx,zynqmp-nvmem-fw";
#address-cells = <0x01>;
#size-cells = <0x01>;
soc_revision@0 {
reg = <0x00 0x04>;
phandle = <0x1e>;
};
efuse_dna@c {
reg = <0x0c 0x0c>;
phandle = <0x46>;
};
efuse_usr0@20 {
reg = <0x20 0x04>;
phandle = <0x47>;
};
efuse_usr1@24 {
reg = <0x24 0x04>;
phandle = <0x48>;
};
efuse_usr2@28 {
reg = <0x28 0x04>;
phandle = <0x49>;
};
efuse_usr3@2c {
reg = <0x2c 0x04>;
phandle = <0x4a>;
};
efuse_usr4@30 {
reg = <0x30 0x04>;
phandle = <0x4b>;
};
efuse_usr5@34 {
reg = <0x34 0x04>;
phandle = <0x4c>;
};
efuse_usr6@38 {
reg = <0x38 0x04>;
phandle = <0x4d>;
};
efuse_usr7@3c {
reg = <0x3c 0x04>;
phandle = <0x4e>;
};
efuse_miscusr@40 {
reg = <0x40 0x04>;
phandle = <0x4f>;
};
efuse_chash@50 {
reg = <0x50 0x04>;
phandle = <0x50>;
};
efuse_pufmisc@54 {
reg = <0x54 0x04>;
phandle = <0x51>;
};
efuse_sec@58 {
reg = <0x58 0x04>;
phandle = <0x52>;
};
efuse_spkid@5c {
reg = <0x5c 0x04>;
phandle = <0x53>;
};
efuse_ppk0hash@a0 {
reg = <0xa0 0x30>;
phandle = <0x54>;
};
efuse_ppk1hash@d0 {
reg = <0xd0 0x30>;
phandle = <0x55>;
};
};
pcap {
compatible = "xlnx,zynqmp-pcap-fpga";
clock-names = "ref_clk";
clocks = <0x03 0x29>;
phandle = <0x0b>;
};
zynqmp-aes {
compatible = "xlnx,zynqmp-aes";
phandle = <0x56>;
};
reset-controller {
compatible = "xlnx,zynqmp-reset";
#reset-cells = <0x01>;
phandle = <0x1c>;
};
pinctrl {
compatible = "xlnx,zynqmp-pinctrl";
status = "okay";
phandle = <0x57>;
i2c0-default {
phandle = <0x12>;
mux {
groups = "i2c0_3_grp";
function = "i2c0";
};
conf {
groups = "i2c0_3_grp";
bias-pull-up;
slew-rate = <0x01>;
power-source = <0x01>;
};
};
i2c0-gpio {
phandle = <0x13>;
mux {
groups = "gpio0_14_grp\0gpio0_15_grp";
function = "gpio0";
};
conf {
groups = "gpio0_14_grp\0gpio0_15_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
};
i2c1-default {
phandle = <0x15>;
mux {
groups = "i2c1_4_grp";
function = "i2c1";
};
conf {
groups = "i2c1_4_grp";
bias-pull-up;
slew-rate = <0x01>;
power-source = <0x01>;
};
};
i2c1-gpio {
phandle = <0x16>;
mux {
groups = "gpio0_16_grp\0gpio0_17_grp";
function = "gpio0";
};
conf {
groups = "gpio0_16_grp\0gpio0_17_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
};
uart0-default {
phandle = <0x20>;
mux {
groups = "uart0_4_grp";
function = "uart0";
};
conf {
groups = "uart0_4_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-rx {
pins = "MIO18";
bias-high-impedance;
};
conf-tx {
pins = "MIO19";
bias-disable;
};
};
uart1-default {
phandle = <0x21>;
mux {
groups = "uart1_5_grp";
function = "uart1";
};
conf {
groups = "uart1_5_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-rx {
pins = "MIO21";
bias-high-impedance;
};
conf-tx {
pins = "MIO20";
bias-disable;
};
};
usb0-default {
phandle = <0x23>;
mux {
groups = "usb0_0_grp";
function = "usb0";
};
conf {
groups = "usb0_0_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-rx {
pins = "MIO52\0MIO53\0MIO55";
bias-high-impedance;
};
conf-tx {
pins = "MIO54\0MIO56\0MIO57\0MIO58\0MIO59\0MIO60\0MIO61\0MIO62\0MIO63";
bias-disable;
};
};
gem3-default {
phandle = <0x10>;
mux {
function = "ethernet3";
groups = "ethernet3_0_grp";
};
conf {
groups = "ethernet3_0_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-rx {
pins = "MIO70\0MIO71\0MIO72\0MIO73\0MIO74\0MIO75";
bias-high-impedance;
low-power-disable;
};
conf-tx {
pins = "MIO64\0MIO65\0MIO66\0MIO67\0MIO68\0MIO69";
bias-disable;
low-power-enable;
};
mux-mdio {
function = "mdio3";
groups = "mdio3_0_grp";
};
conf-mdio {
groups = "mdio3_0_grp";
slew-rate = <0x01>;
power-source = <0x01>;
bias-disable;
};
};
can1-default {
phandle = <0x0d>;
mux {
function = "can1";
groups = "can1_6_grp";
};
conf {
groups = "can1_6_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-rx {
pins = "MIO25";
bias-high-impedance;
};
conf-tx {
pins = "MIO24";
bias-disable;
};
};
sdhci1-default {
phandle = <0x1f>;
mux {
groups = "sdio1_0_grp";
function = "sdio1";
};
conf {
groups = "sdio1_0_grp";
slew-rate = <0x01>;
power-source = <0x01>;
bias-disable;
};
mux-cd {
groups = "sdio1_cd_0_grp";
function = "sdio1_cd";
};
conf-cd {
groups = "sdio1_cd_0_grp";
bias-high-impedance;
bias-pull-up;
slew-rate = <0x01>;
power-source = <0x01>;
};
mux-wp {
groups = "sdio1_wp_0_grp";
function = "sdio1_wp";
};
conf-wp {
groups = "sdio1_wp_0_grp";
bias-high-impedance;
bias-pull-up;
slew-rate = <0x01>;
power-source = <0x01>;
};
};
gpio-default {
phandle = <0x11>;
mux {
function = "gpio0";
groups = "gpio0_22_grp\0gpio0_23_grp";
};
conf {
groups = "gpio0_22_grp\0gpio0_23_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
mux-msp {
function = "gpio0";
groups = "gpio0_13_grp\0gpio0_38_grp";
};
conf-msp {
groups = "gpio0_13_grp\0gpio0_38_grp";
slew-rate = <0x01>;
power-source = <0x01>;
};
conf-pull-up {
pins = "MIO22";
bias-pull-up;
};
conf-pull-none {
pins = "MIO13\0MIO23\0MIO38";
bias-disable;
};
};
};
sha384 {
compatible = "xlnx,zynqmp-keccak-384";
phandle = <0x58>;
};
zynqmp-rsa {
compatible = "xlnx,zynqmp-rsa";
phandle = <0x59>;
};
gpio {
compatible = "xlnx,zynqmp-gpio-modepin";
gpio-controller;
#gpio-cells = <0x02>;
phandle = <0x22>;
};
clock-controller {
u-boot,dm-pre-reloc;
#clock-cells = <0x01>;
compatible = "xlnx,zynqmp-clk";
clocks = <0x06 0x07 0x08 0x09 0x0a>;
clock-names = "pss_ref_clk\0video_clk\0pss_alt_ref_clk\0aux_ref_clk\0gt_crx_ref_clk";
phandle = <0x03>;
};
};
};
timer {
compatible = "arm,armv8-timer";
interrupt-parent = <0x04>;
interrupts = <0x01 0x0d 0xf08 0x01 0x0e 0xf08 0x01 0x0b 0xf08 0x01 0x0a 0xf08>;
};
edac {
compatible = "arm,cortex-a53-edac";
};
fpga-full {
compatible = "fpga-region";
fpga-mgr = <0x0b>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x5a>;
};
smmu@fd800000 {
compatible = "arm,mmu-500";
reg = <0x00 0xfd800000 0x00 0x20000>;
#iommu-cells = <0x01>;
status = "disabled";
#global-interrupts = <0x01>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04>;
phandle = <0x0e>;
};
axi {
compatible = "simple-bus";
u-boot,dm-pre-reloc;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x5b>;
can@ff060000 {
compatible = "xlnx,zynq-can-1.0";
status = "disabled";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff060000 0x00 0x1000>;
interrupts = <0x00 0x17 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x2f>;
clocks = <0x03 0x3f 0x03 0x1f>;
phandle = <0x5c>;
};
can@ff070000 {
compatible = "xlnx,zynq-can-1.0";
status = "okay";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff070000 0x00 0x1000>;
interrupts = <0x00 0x18 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x30>;
clocks = <0x03 0x40 0x03 0x1f>;
pinctrl-names = "default";
pinctrl-0 = <0x0d>;
phandle = <0x5d>;
};
cci@fd6e0000 {
compatible = "arm,cci-400";
status = "okay";
reg = <0x00 0xfd6e0000 0x00 0x9000>;
ranges = <0x00 0x00 0xfd6e0000 0x10000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
phandle = <0x5e>;
pmu@9000 {
compatible = "arm,cci-400-pmu,r1";
reg = <0x9000 0x5000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04>;
};
};
dma@fd500000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd500000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7c 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14e8>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x5f>;
};
dma@fd510000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd510000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14e9>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x60>;
};
dma@fd520000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd520000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14ea>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x61>;
};
dma@fd530000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd530000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14eb>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x62>;
};
dma@fd540000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd540000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x80 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14ec>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x63>;
};
dma@fd550000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd550000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x81 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14ed>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x64>;
};
dma@fd560000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd560000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x82 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14ee>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x65>;
};
dma@fd570000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd570000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x83 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x14ef>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x66>;
};
interrupt-controller@f9010000 {
compatible = "arm,gic-400";
#interrupt-cells = <0x03>;
reg = <0x00 0xf9010000 0x00 0x10000 0x00 0xf9020000 0x00 0x20000 0x00 0xf9040000 0x00 0x20000 0x00 0xf9060000 0x00 0x20000>;
interrupt-controller;
interrupt-parent = <0x04>;
interrupts = <0x01 0x09 0xf04>;
num_cpus = <0x02>;
num_interrupts = <0x60>;
phandle = <0x04>;
};
gpu@fd4b0000 {
status = "okay";
compatible = "arm,mali-400\0arm,mali-utgard";
reg = <0x00 0xfd4b0000 0x00 0x10000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04>;
interrupt-names = "IRQGP\0IRQGPMMU\0IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1";
clock-names = "gpu\0gpu_pp0\0gpu_pp1";
power-domains = <0x0c 0x3a>;
clocks = <0x03 0x18 0x03 0x19 0x03 0x1a>;
xlnx,tz-nonsecure = <0x01>;
phandle = <0x67>;
};
dma@ffa80000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa80000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x68>;
};
dma@ffa90000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa90000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x69>;
};
dma@ffaa0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaa0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6a>;
};
dma@ffab0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffab0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x50 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6b>;
};
dma@ffac0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffac0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x51 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6c>;
};
dma@ffad0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffad0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x52 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6d>;
};
dma@ffae0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffae0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x53 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6e>;
};
dma@ffaf0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaf0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x54 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x6f>;
};
memory-controller@fd070000 {
compatible = "xlnx,zynqmp-ddrc-2.40a";
reg = <0x00 0xfd070000 0x00 0x30000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x70 0x04>;
phandle = <0x70>;
};
nand-controller@ff100000 {
compatible = "xlnx,zynqmp-nand-controller\0arasan,nfc-v3p10";
status = "disabled";
reg = <0x00 0xff100000 0x00 0x1000>;
clock-names = "controller\0bus";
interrupt-parent = <0x04>;
interrupts = <0x00 0x0e 0x04>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x872>;
power-domains = <0x0c 0x2c>;
clocks = <0x03 0x3c 0x03 0x1f>;
phandle = <0x71>;
};
ethernet@ff0b0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x39 0x04 0x00 0x39 0x04>;
reg = <0x00 0xff0b0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x874>;
power-domains = <0x0c 0x1d>;
clocks = <0x03 0x1f 0x03 0x68 0x03 0x2d 0x03 0x31 0x03 0x2c>;
phandle = <0x72>;
};
ethernet@ff0c0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3b 0x04 0x00 0x3b 0x04>;
reg = <0x00 0xff0c0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x875>;
power-domains = <0x0c 0x1e>;
clocks = <0x03 0x1f 0x03 0x69 0x03 0x2e 0x03 0x32 0x03 0x2c>;
phandle = <0x73>;
};
ethernet@ff0d0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3d 0x04 0x00 0x3d 0x04>;
reg = <0x00 0xff0d0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x876>;
power-domains = <0x0c 0x1f>;
clocks = <0x03 0x1f 0x03 0x6a 0x03 0x2f 0x03 0x33 0x03 0x2c>;
phandle = <0x74>;
};
ethernet@ff0e0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3f 0x04 0x00 0x3f 0x04>;
reg = <0x00 0xff0e0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x877>;
power-domains = <0x0c 0x20>;
clocks = <0x03 0x1f 0x03 0x6b 0x03 0x30 0x03 0x34 0x03 0x2c>;
phy-handle = <0x0f>;
pinctrl-names = "default";
pinctrl-0 = <0x10>;
phy-mode = "rgmii-id";
xlnx,ptp-enet-clock = <0x00>;
local-mac-address = [ff ff ff ff ff ff];
phandle = <0x75>;
ethernet-phy@c {
reg = <0x0c>;
ti,rx-internal-delay = <0x08>;
ti,tx-internal-delay = <0x0a>;
ti,fifo-depth = <0x01>;
ti,dp83867-rxctrl-strap-quirk;
phandle = <0x0f>;
};
};
gpio@ff0a0000 {
compatible = "xlnx,zynqmp-gpio-1.0";
status = "okay";
#gpio-cells = <0x02>;
gpio-controller;
interrupt-parent = <0x04>;
interrupts = <0x00 0x10 0x04>;
interrupt-controller;
#interrupt-cells = <0x02>;
reg = <0x00 0xff0a0000 0x00 0x1000>;
power-domains = <0x0c 0x2e>;
clocks = <0x03 0x1f>;
pinctrl-names = "default";
pinctrl-0 = <0x11>;
emio-gpio-width = <0x20>;
gpio-mask-high = <0x00>;
gpio-mask-low = <0x5600>;
phandle = <0x14>;
};
i2c@ff020000 {
compatible = "cdns,i2c-r1p14";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x11 0x04>;
reg = <0x00 0xff020000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x25>;
clocks = <0x03 0x3d>;
pinctrl-names = "default\0gpio";
pinctrl-0 = <0x12>;
pinctrl-1 = <0x13>;
scl-gpios = <0x14 0x0e 0x00>;
sda-gpios = <0x14 0x0f 0x00>;
clock-frequency = <0x61a80>;
phandle = <0x76>;
gpio@20 {
compatible = "ti,tca6416";
reg = <0x20>;
gpio-controller;
#gpio-cells = <0x02>;
phandle = <0x77>;
};
gpio@21 {
compatible = "ti,tca6416";
reg = <0x21>;
gpio-controller;
#gpio-cells = <0x02>;
phandle = <0x78>;
};
i2c-mux@75 {
compatible = "nxp,pca9544";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x75>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
ina226@40 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u76";
reg = <0x40>;
shunt-resistor = <0x1388>;
phandle = <0x29>;
};
ina226@41 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u77";
reg = <0x41>;
shunt-resistor = <0x1388>;
phandle = <0x2a>;
};
ina226@42 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u78";
reg = <0x42>;
shunt-resistor = <0x1388>;
phandle = <0x2b>;
};
ina226@43 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u87";
reg = <0x43>;
shunt-resistor = <0x1388>;
phandle = <0x2c>;
};
ina226@44 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u85";
reg = <0x44>;
shunt-resistor = <0x1388>;
phandle = <0x2d>;
};
ina226@45 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u86";
reg = <0x45>;
shunt-resistor = <0x1388>;
phandle = <0x2e>;
};
ina226@46 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u93";
reg = <0x46>;
shunt-resistor = <0x1388>;
phandle = <0x2f>;
};
ina226@47 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u88";
reg = <0x47>;
shunt-resistor = <0x1388>;
phandle = <0x30>;
};
ina226@4a {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u15";
reg = <0x4a>;
shunt-resistor = <0x1388>;
phandle = <0x31>;
};
ina226@4b {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u92";
reg = <0x4b>;
shunt-resistor = <0x1388>;
phandle = <0x32>;
};
};
i2c@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
ina226@40 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u79";
reg = <0x40>;
shunt-resistor = <0x7d0>;
phandle = <0x33>;
};
ina226@41 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u81";
reg = <0x41>;
shunt-resistor = <0x1388>;
phandle = <0x34>;
};
ina226@42 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u80";
reg = <0x42>;
shunt-resistor = <0x1388>;
phandle = <0x35>;
};
ina226@43 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u84";
reg = <0x43>;
shunt-resistor = <0x1388>;
phandle = <0x36>;
};
ina226@44 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u16";
reg = <0x44>;
shunt-resistor = <0x1388>;
phandle = <0x37>;
};
ina226@45 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u65";
reg = <0x45>;
shunt-resistor = <0x1388>;
phandle = <0x38>;
};
ina226@46 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u74";
reg = <0x46>;
shunt-resistor = <0x1388>;
phandle = <0x39>;
};
ina226@47 {
compatible = "ti,ina226";
#io-channel-cells = <0x01>;
label = "ina226-u75";
reg = <0x47>;
shunt-resistor = <0x1388>;
phandle = <0x3a>;
};
};
i2c@2 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x02>;
max15301@a {
compatible = "maxim,max15301";
reg = <0x0a>;
};
max15303@b {
compatible = "maxim,max15303";
reg = <0x0b>;
};
max15303@10 {
compatible = "maxim,max15303";
reg = <0x10>;
};
max15301@13 {
compatible = "maxim,max15301";
reg = <0x13>;
};
max15303@14 {
compatible = "maxim,max15303";
reg = <0x14>;
};
max15303@15 {
compatible = "maxim,max15303";
reg = <0x15>;
};
max15303@16 {
compatible = "maxim,max15303";
reg = <0x16>;
};
max15303@17 {
compatible = "maxim,max15303";
reg = <0x17>;
};
max15301@18 {
compatible = "maxim,max15301";
reg = <0x18>;
};
max15303@1a {
compatible = "maxim,max15303";
reg = <0x1a>;
};
max15303@1b {
compatible = "maxim,max15303";
reg = <0x1b>;
};
max15303@1d {
compatible = "maxim,max15303";
reg = <0x1d>;
};
max20751@72 {
compatible = "maxim,max20751";
reg = <0x72>;
};
max20751@73 {
compatible = "maxim,max20751";
reg = <0x73>;
};
};
};
};
i2c@ff030000 {
compatible = "cdns,i2c-r1p14";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x12 0x04>;
reg = <0x00 0xff030000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x26>;
clocks = <0x03 0x3e>;
pinctrl-names = "default\0gpio";
pinctrl-0 = <0x15>;
pinctrl-1 = <0x16>;
scl-gpios = <0x14 0x10 0x00>;
sda-gpios = <0x14 0x11 0x00>;
clock-frequency = <0x61a80>;
phandle = <0x79>;
i2c-mux@74 {
compatible = "nxp,pca9548";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x74>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
eeprom@54 {
compatible = "atmel,24c08";
reg = <0x54>;
phandle = <0x7a>;
};
};
i2c@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
clock-generator@36 {
compatible = "silabs,si5341";
reg = <0x36>;
#clock-cells = <0x02>;
#address-cells = <0x01>;
#size-cells = <0x00>;
clocks = <0x17>;
clock-names = "xtal";
clock-output-names = "si5341";
phandle = <0x1b>;
out@0 {
reg = <0x00>;
always-on;
phandle = <0x7b>;
};
out@2 {
reg = <0x02>;
always-on;
phandle = <0x7c>;
};
out@3 {
reg = <0x03>;
always-on;
phandle = <0x7d>;
};
out@6 {
reg = <0x06>;
always-on;
phandle = <0x7e>;
};
out@7 {
reg = <0x07>;
always-on;
phandle = <0x7f>;
};
out@9 {
reg = <0x09>;
always-on;
phandle = <0x80>;
};
};
};
i2c@2 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x02>;
clock-generator@5d {
#clock-cells = <0x00>;
compatible = "silabs,si570";
reg = <0x5d>;
temperature-stability = <0x32>;
factory-fout = <0x11e1a300>;
clock-frequency = <0x11e1a300>;
clock-output-names = "si570_user";
phandle = <0x81>;
};
};
i2c@3 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x03>;
clock-generator@5d {
#clock-cells = <0x00>;
compatible = "silabs,si570";
reg = <0x5d>;
temperature-stability = <0x32>;
factory-fout = <0x9502f90>;
clock-frequency = <0x8d9ee20>;
clock-output-names = "si570_mgt";
phandle = <0x82>;
};
};
i2c@4 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x04>;
clock-generator@69 {
compatible = "silabs,si5328";
reg = <0x69>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#clock-cells = <0x01>;
clocks = <0x18>;
clock-names = "xtal";
clock-output-names = "si5328";
phandle = <0x83>;
clk0@0 {
reg = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x84>;
};
};
};
i2c@5 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x05>;
temp@4c {
compatible = "national,lm96163";
reg = <0x4c>;
};
};
};
i2c-mux@75 {
compatible = "nxp,pca9548";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x75>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
};
i2c@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
};
i2c@2 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x02>;
};
i2c@3 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x03>;
dev@19 {
compatible = "xxx";
reg = <0x19>;
};
dev@30 {
compatible = "xxx";
reg = <0x30>;
};
dev@35 {
compatible = "xxx";
reg = <0x35>;
};
dev@36 {
compatible = "xxx";
reg = <0x36>;
};
dev@51 {
compatible = "xxx";
reg = <0x51>;
};
};
i2c@4 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x04>;
};
i2c@5 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x05>;
};
i2c@6 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x06>;
};
i2c@7 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x07>;
};
};
};
memory-controller@ff960000 {
compatible = "xlnx,zynqmp-ocmc-1.0";
reg = <0x00 0xff960000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x0a 0x04>;
phandle = <0x85>;
};
perf-monitor@ffa00000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa00000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x86>;
};
perf-monitor@fd0b0000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd0b0000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x06>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x0a>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x87>;
};
perf-monitor@fd490000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd490000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x88>;
};
perf-monitor@ffa10000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa10000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x89>;
};
pcie@fd0e0000 {
compatible = "xlnx,nwl-pcie-2.11";
status = "disabled";
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
msi-controller;
device_type = "pci";
interrupt-parent = <0x04>;
interrupts = <0x00 0x76 0x04 0x00 0x75 0x04 0x00 0x74 0x04 0x00 0x73 0x04 0x00 0x72 0x04>;
interrupt-names = "misc\0dummy\0intx\0msi1\0msi0";
msi-parent = <0x19>;
reg = <0x00 0xfd0e0000 0x00 0x1000 0x00 0xfd480000 0x00 0x1000 0x80 0x00 0x00 0x1000000>;
reg-names = "breg\0pcireg\0cfg";
ranges = <0x2000000 0x00 0xe0000000 0x00 0xe0000000 0x00 0x10000000 0x43000000 0x06 0x00 0x06 0x00 0x02 0x00>;
interrupt-map-mask = <0x00 0x00 0x00 0x07>;
bus-range = <0x00 0xff>;
interrupt-map = <0x00 0x00 0x00 0x01 0x1a 0x01 0x00 0x00 0x00 0x02 0x1a 0x02 0x00 0x00 0x00 0x03 0x1a 0x03 0x00 0x00 0x00 0x04 0x1a 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x4d0>;
power-domains = <0x0c 0x3b>;
clocks = <0x03 0x17>;
phandle = <0x19>;
legacy-interrupt-controller {
interrupt-controller;
#address-cells = <0x00>;
#interrupt-cells = <0x01>;
phandle = <0x1a>;
};
};
spi@ff0f0000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-qspi-1.0";
status = "okay";
clock-names = "ref_clk\0pclk";
interrupts = <0x00 0x0f 0x04>;
interrupt-parent = <0x04>;
num-cs = <0x01>;
reg = <0x00 0xff0f0000 0x00 0x1000 0x00 0xc0000000 0x00 0x8000000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x873>;
power-domains = <0x0c 0x2d>;
clocks = <0x03 0x35 0x03 0x1f>;
is-dual = <0x01>;
spi-rx-bus-width = <0x04>;
spi-tx-bus-width = <0x04>;
phandle = <0x8a>;
flash@0 {
compatible = "m25p80\0jedec,spi-nor";
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x00>;
spi-tx-bus-width = <0x01>;
spi-rx-bus-width = <0x04>;
spi-max-frequency = <0x66ff300>;
phandle = <0x8b>;
partition@0 {
label = "boot";
reg = <0x00 0x1e00000>;
};
partition@1 {
label = "bootenv";
reg = <0x1e00000 0x40000>;
};
partition@2 {
label = "kernel";
reg = <0x1e40000 0x3c00000>;
};
};
};
phy@fd400000 {
compatible = "xlnx,zynqmp-psgtr-v1.1";
status = "okay";
reg = <0x00 0xfd400000 0x00 0x40000 0x00 0xfd3d0000 0x00 0x1000>;
reg-names = "serdes\0siou";
#phy-cells = <0x04>;
clocks = <0x1b 0x00 0x03 0x1b 0x00 0x02 0x1b 0x00 0x00>;
clock-names = "ref1\0ref2\0ref3";
phandle = <0x1d>;
};
rtc@ffa60000 {
compatible = "xlnx,zynqmp-rtc";
status = "okay";
reg = <0x00 0xffa60000 0x00 0x100>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x1a 0x04 0x00 0x1b 0x04>;
interrupt-names = "alarm\0sec";
calibration = <0x8000>;
phandle = <0x8c>;
};
ahci@fd0c0000 {
compatible = "ceva,ahci-1v84";
status = "okay";
reg = <0x00 0xfd0c0000 0x00 0x2000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x85 0x04>;
power-domains = <0x0c 0x1c>;
resets = <0x1c 0x10>;
#stream-id-cells = <0x04>;
clocks = <0x03 0x16>;
ceva,p0-cominit-params = <0x18401828>;
ceva,p0-comwake-params = <0x614080e>;
ceva,p0-burst-params = <0x13084a06>;
ceva,p0-retry-params = <0x96a43ffc>;
ceva,p1-cominit-params = <0x18401828>;
ceva,p1-comwake-params = <0x614080e>;
ceva,p1-burst-params = <0x13084a06>;
ceva,p1-retry-params = <0x96a43ffc>;
phy-names = "sata-phy";
phys = <0x1d 0x03 0x01 0x01 0x01>;
xlnx,tz-nonsecure-sata0 = <0x00>;
xlnx,tz-nonsecure-sata1 = <0x00>;
phandle = <0x8d>;
};
mmc@ff160000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x30 0x04>;
reg = <0x00 0xff160000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x870>;
power-domains = <0x0c 0x27>;
nvmem-cells = <0x1e>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd0\0clk_in_sd0";
clocks = <0x03 0x36 0x03 0x1f>;
phandle = <0x8e>;
};
mmc@ff170000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x31 0x04>;
reg = <0x00 0xff170000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x01>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x871>;
power-domains = <0x0c 0x28>;
nvmem-cells = <0x1e>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd1\0clk_in_sd1";
clocks = <0x03 0x37 0x03 0x1f>;
pinctrl-names = "default";
pinctrl-0 = <0x1f>;
no-1-8-v;
clock-frequency = <0xb2cbcae>;
xlnx,mio-bank = <0x01>;
phandle = <0x8f>;
};
spi@ff040000 {
compatible = "cdns,spi-r1p6";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x13 0x04>;
reg = <0x00 0xff040000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x23>;
clocks = <0x03 0x3a 0x03 0x1f>;
phandle = <0x90>;
};
spi@ff050000 {
compatible = "cdns,spi-r1p6";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x14 0x04>;
reg = <0x00 0xff050000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x24>;
clocks = <0x03 0x3b 0x03 0x1f>;
phandle = <0x91>;
};
timer@ff110000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x24 0x04 0x00 0x25 0x04 0x00 0x26 0x04>;
reg = <0x00 0xff110000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x18>;
clocks = <0x03 0x1f>;
phandle = <0x92>;
};
timer@ff120000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x27 0x04 0x00 0x28 0x04 0x00 0x29 0x04>;
reg = <0x00 0xff120000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x19>;
clocks = <0x03 0x1f>;
phandle = <0x93>;
};
timer@ff130000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2a 0x04 0x00 0x2b 0x04 0x00 0x2c 0x04>;
reg = <0x00 0xff130000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1a>;
clocks = <0x03 0x1f>;
phandle = <0x94>;
};
timer@ff140000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2d 0x04 0x00 0x2e 0x04 0x00 0x2f 0x04>;
reg = <0x00 0xff140000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1b>;
clocks = <0x03 0x1f>;
phandle = <0x95>;
};
serial@ff000000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x15 0x04>;
reg = <0x00 0xff000000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x21>;
clocks = <0x03 0x38 0x03 0x1f>;
pinctrl-names = "default";
pinctrl-0 = <0x20>;
cts-override;
device_type = "serial";
port-number = <0x00>;
phandle = <0x96>;
};
serial@ff010000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x16 0x04>;
reg = <0x00 0xff010000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x22>;
clocks = <0x03 0x39 0x03 0x1f>;
pinctrl-names = "default";
pinctrl-0 = <0x21>;
cts-override;
device_type = "serial";
port-number = <0x01>;
phandle = <0x97>;
};
usb0@ff9d0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "okay";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9d0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x16>;
resets = <0x1c 0x3b 0x1c 0x3d 0x1c 0x3f>;
reset-names = "usb_crst\0usb_hibrst\0usb_apbrst";
reset-gpio = <0x22 0x01 0x00>;
ranges;
nvmem-cells = <0x1e>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x20 0x03 0x22>;
pinctrl-names = "default";
pinctrl-0 = <0x23>;
xlnx,tz-nonsecure = <0x01>;
xlnx,usb-polarity = <0x00>;
xlnx,usb-reset-mode = <0x00>;
phandle = <0x98>;
dwc3@fe200000 {
compatible = "snps,dwc3";
status = "okay";
reg = <0x00 0xfe200000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x41 0x04 0x00 0x45 0x04 0x00 0x4b 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x860>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
dr_mode = "host";
snps,usb3_lpm_capable;
phy-names = "usb3-phy";
phys = <0x1d 0x02 0x04 0x00 0x02>;
phandle = <0x99>;
};
};
usb1@ff9e0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9e0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x17>;
resets = <0x1c 0x3c 0x1c 0x3e 0x1c 0x40>;
reset-names = "usb_crst\0usb_hibrst\0usb_apbrst";
ranges;
nvmem-cells = <0x1e>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x21 0x03 0x22>;
phandle = <0x9a>;
dwc3@fe300000 {
compatible = "snps,dwc3";
status = "disabled";
reg = <0x00 0xfe300000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x46 0x04 0x00 0x4a 0x04 0x00 0x4c 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0x861>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
phandle = <0x9b>;
};
};
watchdog@fd4d0000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x71 0x01>;
reg = <0x00 0xfd4d0000 0x00 0x1000>;
timeout-sec = <0x3c>;
reset-on-timeout;
clocks = <0x03 0x4b>;
phandle = <0x9c>;
};
watchdog@ff150000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x34 0x01>;
reg = <0x00 0xff150000 0x00 0x1000>;
timeout-sec = <0x0a>;
clocks = <0x03 0x70>;
phandle = <0x9d>;
};
ams@ffa50000 {
compatible = "xlnx,zynqmp-ams";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x38 0x04>;
interrupt-names = "ams-irq";
reg = <0x00 0xffa50000 0x00 0x800>;
reg-names = "ams-base";
#address-cells = <0x02>;
#size-cells = <0x02>;
#io-channel-cells = <0x01>;
ranges;
clocks = <0x03 0x46>;
phandle = <0x9e>;
ams_ps@ffa50800 {
compatible = "xlnx,zynqmp-ams-ps";
status = "okay";
reg = <0x00 0xffa50800 0x00 0x400>;
phandle = <0x9f>;
};
ams_pl@ffa50c00 {
compatible = "xlnx,zynqmp-ams-pl";
status = "okay";
reg = <0x00 0xffa50c00 0x00 0x400>;
phandle = <0xa0>;
};
};
dma-controller@fd4c0000 {
compatible = "xlnx,zynqmp-dpdma";
status = "okay";
reg = <0x00 0xfd4c0000 0x00 0x1000>;
interrupts = <0x00 0x7a 0x04>;
interrupt-parent = <0x04>;
clock-names = "axi_clk";
power-domains = <0x0c 0x29>;
dma-channels = <0x06>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0xce4>;
#dma-cells = <0x01>;
clocks = <0x03 0x14>;
phandle = <0x24>;
};
display@fd4a0000 {
compatible = "xlnx,zynqmp-dpsub-1.7";
status = "okay";
reg = <0x00 0xfd4a0000 0x00 0x1000 0x00 0xfd4aa000 0x00 0x1000 0x00 0xfd4ab000 0x00 0x1000 0x00 0xfd4ac000 0x00 0x1000>;
reg-names = "dp\0blend\0av_buf\0aud";
interrupts = <0x00 0x77 0x04>;
interrupt-parent = <0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0e 0xce3>;
clock-names = "dp_apb_clk\0dp_aud_clk\0dp_vtc_pixel_clk_in";
power-domains = <0x0c 0x29>;
resets = <0x1c 0x03>;
dma-names = "vid0\0vid1\0vid2\0gfx0";
dmas = <0x24 0x00 0x24 0x01 0x24 0x02 0x24 0x03>;
clocks = <0x25 0x03 0x11 0x03 0x10>;
phy-names = "dp-phy0\0dp-phy1";
phys = <0x1d 0x01 0x06 0x00 0x03 0x1d 0x00 0x06 0x01 0x03>;
xlnx,max-lanes = <0x02>;
phandle = <0xa1>;
i2c-bus {
};
zynqmp_dp_snd_codec0 {
compatible = "xlnx,dp-snd-codec";
clock-names = "aud_clk";
clocks = <0x03 0x11>;
status = "okay";
phandle = <0x28>;
};
zynqmp_dp_snd_pcm0 {
compatible = "xlnx,dp-snd-pcm";
dmas = <0x24 0x04>;
dma-names = "tx";
status = "okay";
phandle = <0x26>;
};
zynqmp_dp_snd_pcm1 {
compatible = "xlnx,dp-snd-pcm";
dmas = <0x24 0x05>;
dma-names = "tx";
status = "okay";
phandle = <0x27>;
};
zynqmp_dp_snd_card {
compatible = "xlnx,dp-snd-card";
xlnx,dp-snd-pcm = <0x26 0x27>;
xlnx,dp-snd-codec = <0x28>;
status = "okay";
phandle = <0xa2>;
};
};
};
fclk0 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x47>;
phandle = <0xa3>;
};
fclk1 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x48>;
phandle = <0xa4>;
};
fclk2 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x49>;
phandle = <0xa5>;
};
fclk3 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x4a>;
phandle = <0xa6>;
};
pss_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x1fc9350>;
phandle = <0x06>;
};
video_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x1fc9f08>;
phandle = <0x07>;
};
pss_alt_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x00>;
phandle = <0x08>;
};
gt_crx_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x66ff300>;
phandle = <0x0a>;
};
aux_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x09>;
};
dp_aclk {
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x5f5e100>;
clock-accuracy = <0x64>;
phandle = <0x25>;
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
sw19 {
label = "sw19";
gpios = <0x14 0x16 0x00>;
linux,code = <0x6c>;
wakeup-source;
autorepeat;
};
};
leds {
compatible = "gpio-leds";
heartbeat-led {
label = "heartbeat";
gpios = <0x14 0x17 0x00>;
linux,default-trigger = "heartbeat";
};
};
chosen {
xlnx,eeprom = "/axi/i2c@ff030000/i2c-mux@74/i2c@0/eeprom@54";
bootargs = " earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=1000M";
stdout-path = "serial0:115200n8";
};
ina226-u76 {
compatible = "iio-hwmon";
io-channels = <0x29 0x00 0x29 0x01 0x29 0x02 0x29 0x03>;
};
ina226-u77 {
compatible = "iio-hwmon";
io-channels = <0x2a 0x00 0x2a 0x01 0x2a 0x02 0x2a 0x03>;
};
ina226-u78 {
compatible = "iio-hwmon";
io-channels = <0x2b 0x00 0x2b 0x01 0x2b 0x02 0x2b 0x03>;
};
ina226-u87 {
compatible = "iio-hwmon";
io-channels = <0x2c 0x00 0x2c 0x01 0x2c 0x02 0x2c 0x03>;
};
ina226-u85 {
compatible = "iio-hwmon";
io-channels = <0x2d 0x00 0x2d 0x01 0x2d 0x02 0x2d 0x03>;
};
ina226-u86 {
compatible = "iio-hwmon";
io-channels = <0x2e 0x00 0x2e 0x01 0x2e 0x02 0x2e 0x03>;
};
ina226-u93 {
compatible = "iio-hwmon";
io-channels = <0x2f 0x00 0x2f 0x01 0x2f 0x02 0x2f 0x03>;
};
ina226-u88 {
compatible = "iio-hwmon";
io-channels = <0x30 0x00 0x30 0x01 0x30 0x02 0x30 0x03>;
};
ina226-u15 {
compatible = "iio-hwmon";
io-channels = <0x31 0x00 0x31 0x01 0x31 0x02 0x31 0x03>;
};
ina226-u92 {
compatible = "iio-hwmon";
io-channels = <0x32 0x00 0x32 0x01 0x32 0x02 0x32 0x03>;
};
ina226-u79 {
compatible = "iio-hwmon";
io-channels = <0x33 0x00 0x33 0x01 0x33 0x02 0x33 0x03>;
};
ina226-u81 {
compatible = "iio-hwmon";
io-channels = <0x34 0x00 0x34 0x01 0x34 0x02 0x34 0x03>;
};
ina226-u80 {
compatible = "iio-hwmon";
io-channels = <0x35 0x00 0x35 0x01 0x35 0x02 0x35 0x03>;
};
ina226-u84 {
compatible = "iio-hwmon";
io-channels = <0x36 0x00 0x36 0x01 0x36 0x02 0x36 0x03>;
};
ina226-u16 {
compatible = "iio-hwmon";
io-channels = <0x37 0x00 0x37 0x01 0x37 0x02 0x37 0x03>;
};
ina226-u65 {
compatible = "iio-hwmon";
io-channels = <0x38 0x00 0x38 0x01 0x38 0x02 0x38 0x03>;
};
ina226-u74 {
compatible = "iio-hwmon";
io-channels = <0x39 0x00 0x39 0x01 0x39 0x02 0x39 0x03>;
};
ina226-u75 {
compatible = "iio-hwmon";
io-channels = <0x3a 0x00 0x3a 0x01 0x3a 0x02 0x3a 0x03>;
};
ref48M {
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x2dc6c00>;
phandle = <0x17>;
};
refhdmi {
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x6cfd9c8>;
phandle = <0x18>;
};
amba_pl@0 {
#address-cells = <0x02>;
#size-cells = <0x02>;
compatible = "simple-bus";
ranges;
phandle = <0xa7>;
v_frmbuf_rd@a00f0000 {
#dma-cells = <0x01>;
clock-names = "ap_clk";
clocks = <0x3b>;
compatible = "xlnx,v-frmbuf-rd-2.2\0xlnx,axi-frmbuf-rd-v2.1";
interrupt-names = "interrupt";
interrupt-parent = <0x04>;
interrupts = <0x00 0x5a 0x04>;
reg = <0x00 0xa00f0000 0x00 0x10000>;
reset-gpios = <0x14 0x4f 0x01>;
xlnx,dma-addr-width = <0x40>;
xlnx,dma-align = <0x10>;
xlnx,max-height = <0x870>;
xlnx,max-width = <0xf00>;
xlnx,pixels-per-clock = <0x02>;
xlnx,s-axi-ctrl-addr-width = <0x07>;
xlnx,s-axi-ctrl-data-width = <0x20>;
xlnx,vid-formats = "y8\0nv12\0nv16\0xv20\0xv15";
xlnx,video-width = <0x0a>;
phandle = <0xa8>;
};
misc_clk_0 {
#clock-cells = <0x00>;
clock-frequency = <0x13be7950>;
compatible = "fixed-clock";
phandle = <0x3b>;
};
v_frmbuf_wr@a0200000 {
#dma-cells = <0x01>;
clock-names = "ap_clk";
clocks = <0x3b>;
compatible = "xlnx,v-frmbuf-wr-2.2\0xlnx,axi-frmbuf-wr-v2.1";
interrupt-names = "interrupt";
interrupt-parent = <0x04>;
interrupts = <0x00 0x5b 0x04>;
reg = <0x00 0xa0200000 0x00 0x10000>;
reset-gpios = <0x14 0x50 0x01>;
xlnx,dma-addr-width = <0x20>;
xlnx,dma-align = <0x10>;
xlnx,max-height = <0x870>;
xlnx,max-width = <0xf00>;
xlnx,pixels-per-clock = <0x02>;
xlnx,s-axi-ctrl-addr-width = <0x07>;
xlnx,s-axi-ctrl-data-width = <0x20>;
xlnx,vid-formats = "y8\0y10\0nv12\0nv16\0xv20\0xv15";
xlnx,video-width = <0x0a>;
phandle = <0xa9>;
};
vcu@a0100000 {
#address-cells = <0x02>;
#clock-cells = <0x01>;
#size-cells = <0x02>;
clock-names = "pll_ref\0aclk\0vcu_core_enc\0vcu_core_dec\0vcu_mcu_enc\0vcu_mcu_dec";
clocks = <0x3c 0x03 0x47 0x3d 0x01 0x3d 0x02 0x3d 0x03 0x3d 0x04>;
compatible = "xlnx,vcu-1.2\0xlnx,vcu";
interrupt-names = "vcu_host_interrupt";
interrupt-parent = <0x04>;
interrupts = <0x00 0x59 0x04>;
ranges;
reg = <0x00 0xa0140000 0x00 0x1000 0x00 0xa0141000 0x00 0x1000>;
reg-names = "vcu_slcr\0logicore";
reset-gpios = <0x14 0x4e 0x00>;
phandle = <0x3d>;
al5e@a0100000 {
compatible = "al,al5e-1.2\0al,al5e";
interrupt-parent = <0x04>;
interrupts = <0x00 0x59 0x04>;
reg = <0x00 0xa0100000 0x00 0x10000>;
phandle = <0xaa>;
};
al5d@a0120000 {
compatible = "al,al5d-1.2\0al,al5d";
interrupt-parent = <0x04>;
interrupts = <0x00 0x59 0x04>;
reg = <0x00 0xa0120000 0x00 0x10000>;
phandle = <0xab>;
};
};
misc_clk_1 {
#clock-cells = <0x00>;
clock-frequency = <0x1fca055>;
compatible = "fixed-clock";
phandle = <0x3c>;
};
vcu_ddr4_controller@4800000000 {
clock-names = "S_Axi_Clk";
clocks = <0x3e>;
compatible = "xlnx,vcu-ddr4-controller-1.1";
reg = <0x48 0x00 0x00 0x80000000>;
xlnx,wrpipe = <0x01>;
phandle = <0xac>;
};
misc_clk_2 {
#clock-cells = <0x00>;
clock-frequency = <0x11e8f901>;
compatible = "fixed-clock";
phandle = <0x3e>;
};
};
aliases {
ethernet0 = "/axi/ethernet@ff0e0000";
i2c0 = "/axi/i2c@ff020000";
i2c1 = "/axi/i2c@ff030000";
serial0 = "/axi/serial@ff000000";
serial1 = "/axi/serial@ff010000";
spi0 = "/axi/spi@ff0f0000";
};
memory {
device_type = "memory";
reg = <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
};
__symbols__ {
cpu0 = "/cpus/cpu@0";
cpu1 = "/cpus/cpu@1";
cpu2 = "/cpus/cpu@2";
cpu3 = "/cpus/cpu@3";
CPU_SLEEP_0 = "/cpus/idle-states/cpu-sleep-0";
cpu_opp_table = "/cpu-opp-table";
zynqmp_ipi = "/zynqmp_ipi";
ipi_mailbox_pmu1 = "/zynqmp_ipi/mailbox@ff990400";
dcc = "/dcc";
zynqmp_firmware = "/firmware/zynqmp-firmware";
zynqmp_power = "/firmware/zynqmp-firmware/zynqmp-power";
soc_revision = "/firmware/zynqmp-firmware/nvmem_firmware/soc_revision@0";
efuse_dna = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_dna@c";
efuse_usr0 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr0@20";
efuse_usr1 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr1@24";
efuse_usr2 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr2@28";
efuse_usr3 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr3@2c";
efuse_usr4 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr4@30";
efuse_usr5 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr5@34";
efuse_usr6 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr6@38";
efuse_usr7 = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_usr7@3c";
efuse_miscusr = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_miscusr@40";
efuse_chash = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_chash@50";
efuse_pufmisc = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_pufmisc@54";
efuse_sec = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_sec@58";
efuse_spkid = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_spkid@5c";
efuse_ppk0hash = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_ppk0hash@a0";
efuse_ppk1hash = "/firmware/zynqmp-firmware/nvmem_firmware/efuse_ppk1hash@d0";
zynqmp_pcap = "/firmware/zynqmp-firmware/pcap";
xlnx_aes = "/firmware/zynqmp-firmware/zynqmp-aes";
zynqmp_reset = "/firmware/zynqmp-firmware/reset-controller";
pinctrl0 = "/firmware/zynqmp-firmware/pinctrl";
pinctrl_i2c0_default = "/firmware/zynqmp-firmware/pinctrl/i2c0-default";
pinctrl_i2c0_gpio = "/firmware/zynqmp-firmware/pinctrl/i2c0-gpio";
pinctrl_i2c1_default = "/firmware/zynqmp-firmware/pinctrl/i2c1-default";
pinctrl_i2c1_gpio = "/firmware/zynqmp-firmware/pinctrl/i2c1-gpio";
pinctrl_uart0_default = "/firmware/zynqmp-firmware/pinctrl/uart0-default";
pinctrl_uart1_default = "/firmware/zynqmp-firmware/pinctrl/uart1-default";
pinctrl_usb0_default = "/firmware/zynqmp-firmware/pinctrl/usb0-default";
pinctrl_gem3_default = "/firmware/zynqmp-firmware/pinctrl/gem3-default";
pinctrl_can1_default = "/firmware/zynqmp-firmware/pinctrl/can1-default";
pinctrl_sdhci1_default = "/firmware/zynqmp-firmware/pinctrl/sdhci1-default";
pinctrl_gpio_default = "/firmware/zynqmp-firmware/pinctrl/gpio-default";
xlnx_keccak_384 = "/firmware/zynqmp-firmware/sha384";
xlnx_rsa = "/firmware/zynqmp-firmware/zynqmp-rsa";
modepin_gpio = "/firmware/zynqmp-firmware/gpio";
zynqmp_clk = "/firmware/zynqmp-firmware/clock-controller";
fpga_full = "/fpga-full";
smmu = "/smmu@fd800000";
amba = "/axi";
can0 = "/axi/can@ff060000";
can1 = "/axi/can@ff070000";
cci = "/axi/cci@fd6e0000";
fpd_dma_chan1 = "/axi/dma@fd500000";
fpd_dma_chan2 = "/axi/dma@fd510000";
fpd_dma_chan3 = "/axi/dma@fd520000";
fpd_dma_chan4 = "/axi/dma@fd530000";
fpd_dma_chan5 = "/axi/dma@fd540000";
fpd_dma_chan6 = "/axi/dma@fd550000";
fpd_dma_chan7 = "/axi/dma@fd560000";
fpd_dma_chan8 = "/axi/dma@fd570000";
gic = "/axi/interrupt-controller@f9010000";
gpu = "/axi/gpu@fd4b0000";
lpd_dma_chan1 = "/axi/dma@ffa80000";
lpd_dma_chan2 = "/axi/dma@ffa90000";
lpd_dma_chan3 = "/axi/dma@ffaa0000";
lpd_dma_chan4 = "/axi/dma@ffab0000";
lpd_dma_chan5 = "/axi/dma@ffac0000";
lpd_dma_chan6 = "/axi/dma@ffad0000";
lpd_dma_chan7 = "/axi/dma@ffae0000";
lpd_dma_chan8 = "/axi/dma@ffaf0000";
mc = "/axi/memory-controller@fd070000";
nand0 = "/axi/nand-controller@ff100000";
gem0 = "/axi/ethernet@ff0b0000";
gem1 = "/axi/ethernet@ff0c0000";
gem2 = "/axi/ethernet@ff0d0000";
gem3 = "/axi/ethernet@ff0e0000";
phy0 = "/axi/ethernet@ff0e0000/ethernet-phy@c";
gpio = "/axi/gpio@ff0a0000";
i2c0 = "/axi/i2c@ff020000";
tca6416_u97 = "/axi/i2c@ff020000/gpio@20";
tca6416_u61 = "/axi/i2c@ff020000/gpio@21";
u76 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@40";
u77 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@41";
u78 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@42";
u87 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@43";
u85 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@44";
u86 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@45";
u93 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@46";
u88 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@47";
u15 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@4a";
u92 = "/axi/i2c@ff020000/i2c-mux@75/i2c@0/ina226@4b";
u79 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@40";
u81 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@41";
u80 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@42";
u84 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@43";
u16 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@44";
u65 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@45";
u74 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@46";
u75 = "/axi/i2c@ff020000/i2c-mux@75/i2c@1/ina226@47";
i2c1 = "/axi/i2c@ff030000";
eeprom = "/axi/i2c@ff030000/i2c-mux@74/i2c@0/eeprom@54";
si5341 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36";
si5341_0 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@0";
si5341_2 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@2";
si5341_3 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@3";
si5341_6 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@6";
si5341_7 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@7";
si5341_9 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/clock-generator@36/out@9";
si570_1 = "/axi/i2c@ff030000/i2c-mux@74/i2c@2/clock-generator@5d";
si570_2 = "/axi/i2c@ff030000/i2c-mux@74/i2c@3/clock-generator@5d";
si5328 = "/axi/i2c@ff030000/i2c-mux@74/i2c@4/clock-generator@69";
si5328_clk = "/axi/i2c@ff030000/i2c-mux@74/i2c@4/clock-generator@69/clk0@0";
ocm = "/axi/memory-controller@ff960000";
perf_monitor_ocm = "/axi/perf-monitor@ffa00000";
perf_monitor_ddr = "/axi/perf-monitor@fd0b0000";
perf_monitor_cci = "/axi/perf-monitor@fd490000";
perf_monitor_lpd = "/axi/perf-monitor@ffa10000";
pcie = "/axi/pcie@fd0e0000";
pcie_intc = "/axi/pcie@fd0e0000/legacy-interrupt-controller";
qspi = "/axi/spi@ff0f0000";
flash0 = "/axi/spi@ff0f0000/flash@0";
psgtr = "/axi/phy@fd400000";
rtc = "/axi/rtc@ffa60000";
sata = "/axi/ahci@fd0c0000";
sdhci0 = "/axi/mmc@ff160000";
sdhci1 = "/axi/mmc@ff170000";
spi0 = "/axi/spi@ff040000";
spi1 = "/axi/spi@ff050000";
ttc0 = "/axi/timer@ff110000";
ttc1 = "/axi/timer@ff120000";
ttc2 = "/axi/timer@ff130000";
ttc3 = "/axi/timer@ff140000";
uart0 = "/axi/serial@ff000000";
uart1 = "/axi/serial@ff010000";
usb0 = "/axi/usb0@ff9d0000";
dwc3_0 = "/axi/usb0@ff9d0000/dwc3@fe200000";
usb1 = "/axi/usb1@ff9e0000";
dwc3_1 = "/axi/usb1@ff9e0000/dwc3@fe300000";
watchdog0 = "/axi/watchdog@fd4d0000";
lpd_watchdog = "/axi/watchdog@ff150000";
xilinx_ams = "/axi/ams@ffa50000";
ams_ps = "/axi/ams@ffa50000/ams_ps@ffa50800";
ams_pl = "/axi/ams@ffa50000/ams_pl@ffa50c00";
zynqmp_dpdma = "/axi/dma-controller@fd4c0000";
zynqmp_dpsub = "/axi/display@fd4a0000";
zynqmp_dp_snd_codec0 = "/axi/display@fd4a0000/zynqmp_dp_snd_codec0";
zynqmp_dp_snd_pcm0 = "/axi/display@fd4a0000/zynqmp_dp_snd_pcm0";
zynqmp_dp_snd_pcm1 = "/axi/display@fd4a0000/zynqmp_dp_snd_pcm1";
zynqmp_dp_snd_card0 = "/axi/display@fd4a0000/zynqmp_dp_snd_card";
fclk0 = "/fclk0";
fclk1 = "/fclk1";
fclk2 = "/fclk2";
fclk3 = "/fclk3";
pss_ref_clk = "/pss_ref_clk";
video_clk = "/video_clk";
pss_alt_ref_clk = "/pss_alt_ref_clk";
gt_crx_ref_clk = "/gt_crx_ref_clk";
aux_ref_clk = "/aux_ref_clk";
dp_aclk = "/dp_aclk";
ref48 = "/ref48M";
refhdmi = "/refhdmi";
amba_pl = "/amba_pl@0";
v_frmbuf_rd_0 = "/amba_pl@0/v_frmbuf_rd@a00f0000";
misc_clk_0 = "/amba_pl@0/misc_clk_0";
v_frmbuf_wr_0 = "/amba_pl@0/v_frmbuf_wr@a0200000";
vcu_0 = "/amba_pl@0/vcu@a0100000";
encoder = "/amba_pl@0/vcu@a0100000/al5e@a0100000";
decoder = "/amba_pl@0/vcu@a0100000/al5d@a0120000";
misc_clk_1 = "/amba_pl@0/misc_clk_1";
vcu_ddr4_controller_0 = "/amba_pl@0/vcu_ddr4_controller@4800000000";
misc_clk_2 = "/amba_pl@0/misc_clk_2";
};
};
/dts-v1/;
/memreserve/ 0x000000007824b000 0x0000000000db4d2a;
/ {
compatible = "xlnx,zynqmp-smk-k26-rev1\0xlnx,zynqmp-smk-k26-revB\0xlnx,zynqmp-smk-k26-revA\0xlnx,zynqmp-smk-k26\0xlnx,zynqmp";
#address-cells = <0x02>;
#size-cells = <0x02>;
model = "ZynqMP SMK-K26 Rev1/B/A";
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
cpu@0 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
operating-points-v2 = <0x01>;
reg = <0x00>;
cpu-idle-states = <0x02>;
clocks = <0x03 0x0a>;
phandle = <0x1b>;
};
cpu@1 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x01>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1c>;
};
cpu@2 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x02>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1d>;
};
cpu@3 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x03>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1e>;
};
idle-states {
entry-method = "psci";
cpu-sleep-0 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x40000000>;
local-timer-stop;
entry-latency-us = <0x12c>;
exit-latency-us = <0x258>;
min-residency-us = <0x2710>;
phandle = <0x02>;
};
};
};
cpu-opp-table {
compatible = "operating-points-v2";
opp-shared;
phandle = <0x01>;
opp00 {
opp-hz = <0x00 0x47868bf4>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp01 {
opp-hz = <0x00 0x23c345fa>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp02 {
opp-hz = <0x00 0x17d783fc>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp03 {
opp-hz = <0x00 0x11e1a2fd>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
};
zynqmp_ipi {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-ipi-mailbox";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
xlnx,ipi-id = <0x00>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
mailbox@ff990400 {
u-boot,dm-pre-reloc;
reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>;
reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region";
#mbox-cells = <0x01>;
xlnx,ipi-id = <0x04>;
phandle = <0x05>;
};
};
dcc {
compatible = "arm,dcc";
status = "disabled";
u-boot,dm-pre-reloc;
phandle = <0x1f>;
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupt-parent = <0x04>;
interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04>;
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
firmware {
zynqmp-firmware {
compatible = "xlnx,zynqmp-firmware";
u-boot,dm-pre-reloc;
method = "smc";
#power-domain-cells = <0x01>;
phandle = <0x0c>;
pcap {
compatible = "xlnx,zynqmp-pcap-fpga";
clock-names = "ref_clk";
clocks = <0x03 0x29>;
phandle = <0x0b>;
};
zynqmp-power {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-power";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
mboxes = <0x05 0x00 0x05 0x01>;
mbox-names = "tx\0rx";
phandle = <0x20>;
};
reset-controller {
compatible = "xlnx,zynqmp-reset";
#reset-cells = <0x01>;
phandle = <0x12>;
};
pinctrl {
compatible = "xlnx,zynqmp-pinctrl";
status = "disabled";
phandle = <0x21>;
};
clock-controller {
u-boot,dm-pre-reloc;
#clock-cells = <0x01>;
compatible = "xlnx,zynqmp-clk";
clocks = <0x06 0x07 0x08 0x09 0x0a>;
clock-names = "pss_ref_clk\0video_clk\0pss_alt_ref_clk\0aux_ref_clk\0gt_crx_ref_clk";
phandle = <0x03>;
};
};
};
timer {
compatible = "arm,armv8-timer";
interrupt-parent = <0x04>;
interrupts = <0x01 0x0d 0xf08 0x01 0x0e 0xf08 0x01 0x0b 0xf08 0x01 0x0a 0xf08>;
};
edac {
compatible = "arm,cortex-a53-edac";
};
fpga-full {
compatible = "fpga-region";
fpga-mgr = <0x0b>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x22>;
};
nvmem_firmware {
compatible = "xlnx,zynqmp-nvmem-fw";
#address-cells = <0x01>;
#size-cells = <0x01>;
soc_revision@0 {
reg = <0x00 0x04>;
phandle = <0x11>;
};
efuse_dna@c {
reg = <0x0c 0x0c>;
phandle = <0x23>;
};
efuse_usr0@20 {
reg = <0x20 0x04>;
phandle = <0x24>;
};
efuse_usr1@24 {
reg = <0x24 0x04>;
phandle = <0x25>;
};
efuse_usr2@28 {
reg = <0x28 0x04>;
phandle = <0x26>;
};
efuse_usr3@2c {
reg = <0x2c 0x04>;
phandle = <0x27>;
};
efuse_usr4@30 {
reg = <0x30 0x04>;
phandle = <0x28>;
};
efuse_usr5@34 {
reg = <0x34 0x04>;
phandle = <0x29>;
};
efuse_usr6@38 {
reg = <0x38 0x04>;
phandle = <0x2a>;
};
efuse_usr7@3c {
reg = <0x3c 0x04>;
phandle = <0x2b>;
};
efuse_miscusr@40 {
reg = <0x40 0x04>;
phandle = <0x2c>;
};
efuse_chash@50 {
reg = <0x50 0x04>;
phandle = <0x2d>;
};
efuse_pufmisc@54 {
reg = <0x54 0x04>;
phandle = <0x2e>;
};
efuse_sec@58 {
reg = <0x58 0x04>;
phandle = <0x2f>;
};
efuse_spkid@5c {
reg = <0x5c 0x04>;
phandle = <0x30>;
};
efuse_ppk0hash@a0 {
reg = <0xa0 0x30>;
phandle = <0x31>;
};
efuse_ppk1hash@d0 {
reg = <0xd0 0x30>;
phandle = <0x32>;
};
};
zynqmp_rsa {
compatible = "xlnx,zynqmp-rsa";
phandle = <0x33>;
};
sha384 {
compatible = "xlnx,zynqmp-keccak-384";
phandle = <0x34>;
};
zynqmp_aes {
compatible = "xlnx,zynqmp-aes";
phandle = <0x35>;
};
amba-apu@0 {
compatible = "simple-bus";
#address-cells = <0x02>;
#size-cells = <0x01>;
ranges = <0x00 0x00 0x00 0x00 0xffffffff>;
phandle = <0x36>;
interrupt-controller@f9010000 {
compatible = "arm,gic-400";
#interrupt-cells = <0x03>;
reg = <0x00 0xf9010000 0x10000 0x00 0xf9020000 0x20000 0x00 0xf9040000 0x20000 0x00 0xf9060000 0x20000>;
interrupt-controller;
interrupt-parent = <0x04>;
interrupts = <0x01 0x09 0xf04>;
num_cpus = <0x02>;
num_interrupts = <0x60>;
phandle = <0x04>;
};
};
smmu@fd800000 {
compatible = "arm,mmu-500";
reg = <0x00 0xfd800000 0x00 0x20000>;
#iommu-cells = <0x01>;
status = "disabled";
#global-interrupts = <0x01>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04>;
phandle = <0x0d>;
};
amba {
compatible = "simple-bus";
u-boot,dm-pre-reloc;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x37>;
can@ff060000 {
compatible = "xlnx,zynq-can-1.0";
status = "disabled";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff060000 0x00 0x1000>;
interrupts = <0x00 0x17 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x2f>;
clocks = <0x03 0x3f 0x03 0x1f>;
phandle = <0x38>;
};
can@ff070000 {
compatible = "xlnx,zynq-can-1.0";
status = "disabled";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff070000 0x00 0x1000>;
interrupts = <0x00 0x18 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x30>;
clocks = <0x03 0x40 0x03 0x1f>;
phandle = <0x39>;
};
cci@fd6e0000 {
compatible = "arm,cci-400";
status = "okay";
reg = <0x00 0xfd6e0000 0x00 0x9000>;
ranges = <0x00 0x00 0xfd6e0000 0x10000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
phandle = <0x3a>;
pmu@9000 {
compatible = "arm,cci-400-pmu,r1";
reg = <0x9000 0x5000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04>;
};
};
dma@fd500000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd500000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7c 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14e8>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3b>;
};
dma@fd510000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd510000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14e9>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3c>;
};
dma@fd520000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd520000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ea>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3d>;
};
dma@fd530000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd530000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14eb>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3e>;
};
dma@fd540000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd540000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x80 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ec>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3f>;
};
dma@fd550000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd550000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x81 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ed>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x40>;
};
dma@fd560000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd560000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x82 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ee>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x41>;
};
dma@fd570000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd570000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x83 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ef>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x42>;
};
gpu@fd4b0000 {
status = "okay";
compatible = "arm,mali-400\0arm,mali-utgard";
reg = <0x00 0xfd4b0000 0x00 0x10000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04>;
interrupt-names = "IRQGP\0IRQGPMMU\0IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1";
clock-names = "gpu\0gpu_pp0\0gpu_pp1";
power-domains = <0x0c 0x3a>;
clocks = <0x03 0x18 0x03 0x19 0x03 0x1a>;
xlnx,tz-nonsecure = <0x01>;
phandle = <0x43>;
};
dma@ffa80000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa80000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x44>;
};
dma@ffa90000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa90000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x45>;
};
dma@ffaa0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaa0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x46>;
};
dma@ffab0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffab0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x50 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x47>;
};
dma@ffac0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffac0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x51 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x48>;
};
dma@ffad0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffad0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x52 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x49>;
};
dma@ffae0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffae0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x53 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x4a>;
};
dma@ffaf0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaf0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x54 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x4b>;
};
memory-controller@fd070000 {
compatible = "xlnx,zynqmp-ddrc-2.40a";
reg = <0x00 0xfd070000 0x00 0x30000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x70 0x04>;
phandle = <0x4c>;
};
nand@ff100000 {
compatible = "arasan,nfc-v3p10";
status = "disabled";
reg = <0x00 0xff100000 0x00 0x1000>;
clock-names = "clk_sys\0clk_flash";
interrupt-parent = <0x04>;
interrupts = <0x00 0x0e 0x04>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x872>;
power-domains = <0x0c 0x2c>;
clocks = <0x03 0x3c 0x03 0x1f>;
phandle = <0x4d>;
};
ethernet@ff0b0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x39 0x04 0x00 0x39 0x04>;
reg = <0x00 0xff0b0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x874>;
power-domains = <0x0c 0x1d>;
clocks = <0x03 0x1f 0x03 0x68 0x03 0x2d 0x03 0x31 0x03 0x2c>;
phandle = <0x4e>;
};
ethernet@ff0c0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3b 0x04 0x00 0x3b 0x04>;
reg = <0x00 0xff0c0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x875>;
power-domains = <0x0c 0x1e>;
clocks = <0x03 0x1f 0x03 0x69 0x03 0x2e 0x03 0x32 0x03 0x2c>;
phandle = <0x4f>;
};
ethernet@ff0d0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3d 0x04 0x00 0x3d 0x04>;
reg = <0x00 0xff0d0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x876>;
power-domains = <0x0c 0x1f>;
clocks = <0x03 0x1f 0x03 0x6a 0x03 0x2f 0x03 0x33 0x03 0x2c>;
phandle = <0x50>;
};
ethernet@ff0e0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3f 0x04 0x00 0x3f 0x04>;
reg = <0x00 0xff0e0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x877>;
power-domains = <0x0c 0x20>;
clocks = <0x03 0x1f 0x03 0x6b 0x03 0x30 0x03 0x34 0x03 0x2c>;
phy-mode = "rgmii-id";
xlnx,ptp-enet-clock = <0x00>;
local-mac-address = [00 0a 35 00 22 01];
phandle = <0x51>;
};
gpio@ff0a0000 {
compatible = "xlnx,zynqmp-gpio-1.0";
status = "okay";
#gpio-cells = <0x02>;
gpio-controller;
interrupt-parent = <0x04>;
interrupts = <0x00 0x10 0x04>;
interrupt-controller;
#interrupt-cells = <0x02>;
reg = <0x00 0xff0a0000 0x00 0x1000>;
power-domains = <0x0c 0x2e>;
gpio-line-names = "QSPI_CLK\0QSPI_DQ1\0QSPI_DQ2\0QSPI_DQ3\0QSPI_DQ0\0QSPI_CS_B\0SPI_CLK\0LED1\0LED2\0SPI_CS_B\0SPI_MISO\0SPI_MOSI\0FWUEN\0EMMC_DAT0\0EMMC_DAT1\0EMMC_DAT2\0EMMC_DAT3\0EMMC_DAT4\0EMMC_DAT5\0EMMC_DAT6\0EMMC_DAT7\0EMMC_CMD\0EMMC_CLK\0EMMC_RST\0I2C1_SCL\0I2C1_SDA\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
clocks = <0x03 0x1f>;
emio-gpio-width = <0x20>;
gpio-mask-high = <0x00>;
gpio-mask-low = <0x5600>;
phandle = <0x0e>;
};
i2c@ff020000 {
compatible = "cdns,i2c-r1p14\0cdns,i2c-r1p10";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x11 0x04>;
reg = <0x00 0xff020000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x25>;
clocks = <0x03 0x3d>;
phandle = <0x52>;
};
i2c@ff030000 {
compatible = "cdns,i2c-r1p14\0cdns,i2c-r1p10";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x12 0x04>;
reg = <0x00 0xff030000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x26>;
clock-frequency = <0x61a80>;
scl-gpios = <0x0e 0x18 0x00>;
sda-gpios = <0x0e 0x19 0x00>;
clocks = <0x03 0x3e>;
phandle = <0x53>;
eeprom@50 {
compatible = "st,24c64\0atmel,24c64";
reg = <0x50>;
phandle = <0x54>;
};
eeprom@51 {
compatible = "st,24c64\0atmel,24c64";
reg = <0x51>;
phandle = <0x55>;
};
pmic@33 {
compatible = "dlg,da9131";
reg = <0x33>;
phandle = <0x56>;
regulators {
buck1 {
regulator-name = "da9131_buck1";
regulator-boot-on;
regulator-always-on;
phandle = <0x57>;
};
buck2 {
regulator-name = "da9131_buck2";
regulator-boot-on;
regulator-always-on;
phandle = <0x58>;
};
};
};
pmic@32 {
compatible = "dlg,da9130";
reg = <0x32>;
phandle = <0x59>;
regulators {
buck1 {
regulator-name = "da9130_buck1";
regulator-boot-on;
regulator-always-on;
phandle = <0x5a>;
};
};
};
};
memory-controller@ff960000 {
compatible = "xlnx,zynqmp-ocmc-1.0";
reg = <0x00 0xff960000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x0a 0x04>;
phandle = <0x5b>;
};
perf-monitor@ffa00000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa00000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x5c>;
};
perf-monitor@fd0b0000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd0b0000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x06>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x0a>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x5d>;
};
perf-monitor@fd490000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd490000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x5e>;
};
perf-monitor@ffa10000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa10000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x5f>;
};
pcie@fd0e0000 {
compatible = "xlnx,nwl-pcie-2.11";
status = "disabled";
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
msi-controller;
device_type = "pci";
interrupt-parent = <0x04>;
interrupts = <0x00 0x76 0x04 0x00 0x75 0x04 0x00 0x74 0x04 0x00 0x73 0x04 0x00 0x72 0x04>;
interrupt-names = "misc\0dummy\0intx\0msi1\0msi0";
msi-parent = <0x0f>;
reg = <0x00 0xfd0e0000 0x00 0x1000 0x00 0xfd480000 0x00 0x1000 0x80 0x00 0x00 0x1000000>;
reg-names = "breg\0pcireg\0cfg";
ranges = <0x2000000 0x00 0xe0000000 0x00 0xe0000000 0x00 0x10000000 0x43000000 0x06 0x00 0x06 0x00 0x02 0x00>;
interrupt-map-mask = <0x00 0x00 0x00 0x07>;
bus-range = <0x00 0xff>;
interrupt-map = <0x00 0x00 0x00 0x01 0x10 0x01 0x00 0x00 0x00 0x02 0x10 0x02 0x00 0x00 0x00 0x03 0x10 0x03 0x00 0x00 0x00 0x04 0x10 0x04>;
power-domains = <0x0c 0x3b>;
clocks = <0x03 0x17>;
phandle = <0x0f>;
legacy-interrupt-controller {
interrupt-controller;
#address-cells = <0x00>;
#interrupt-cells = <0x01>;
phandle = <0x10>;
};
};
spi@ff0f0000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-qspi-1.0";
status = "okay";
clock-names = "ref_clk\0pclk";
interrupts = <0x00 0x0f 0x04>;
interrupt-parent = <0x04>;
num-cs = <0x01>;
reg = <0x00 0xff0f0000 0x00 0x1000 0x00 0xc0000000 0x00 0x8000000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x873>;
power-domains = <0x0c 0x2d>;
clocks = <0x03 0x35 0x03 0x1f>;
is-dual = <0x00>;
spi-rx-bus-width = <0x04>;
spi-tx-bus-width = <0x04>;
phandle = <0x60>;
flash@0 {
compatible = "mt25qu512a\0jedec,spi-nor";
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x00>;
spi-tx-bus-width = <0x01>;
spi-rx-bus-width = <0x04>;
spi-max-frequency = <0x2625a00>;
partition@0 {
label = "Image Selector";
reg = <0x00 0x80000>;
read-only;
lock;
};
partition@80000 {
label = "Image Selector Golden";
reg = <0x80000 0x80000>;
read-only;
lock;
};
partition@100000 {
label = "Persistent Register";
reg = <0x100000 0x20000>;
};
partition@120000 {
label = "Persistent Register Backup";
reg = <0x120000 0x20000>;
};
partition@140000 {
label = "Open_1";
reg = <0x140000 0xc0000>;
};
partition@200000 {
label = "Image A (FSBL, PMU, ATF, U-Boot)";
reg = <0x200000 0xd00000>;
};
partition@f00000 {
label = "ImgSel Image A Catch";
reg = <0xf00000 0x80000>;
read-only;
lock;
};
partition@f80000 {
label = "Image B (FSBL, PMU, ATF, U-Boot)";
reg = <0xf80000 0xd00000>;
};
partition@1c80000 {
label = "ImgSel Image B Catch";
reg = <0x1c80000 0x80000>;
read-only;
lock;
};
partition@1d00000 {
label = "Open_2";
reg = <0x1d00000 0x100000>;
};
partition@1e00000 {
label = "Recovery Image";
reg = <0x1e00000 0x200000>;
read-only;
lock;
};
partition@2000000 {
label = "Recovery Image Backup";
reg = <0x2000000 0x200000>;
read-only;
lock;
};
partition@2200000 {
label = "U-Boot storage variables";
reg = <0x2200000 0x20000>;
};
partition@2220000 {
label = "U-Boot storage variables backup";
reg = <0x2220000 0x20000>;
};
partition@2240000 {
label = "SHA256";
reg = <0x2240000 0x10000>;
read-only;
lock;
};
partition@2250000 {
label = "User";
reg = <0x2250000 0x1db0000>;
};
};
};
rtc@ffa60000 {
compatible = "xlnx,zynqmp-rtc";
status = "okay";
reg = <0x00 0xffa60000 0x00 0x100>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x1a 0x04 0x00 0x1b 0x04>;
interrupt-names = "alarm\0sec";
calibration = <0x8000>;
phandle = <0x61>;
};
zynqmp_phy@fd400000 {
compatible = "xlnx,zynqmp-psgtr-v1.1";
status = "okay";
reg = <0x00 0xfd400000 0x00 0x40000 0x00 0xfd3d0000 0x00 0x1000>;
reg-names = "serdes\0siou";
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
resets = <0x12 0x10 0x12 0x3b 0x12 0x3c 0x12 0x3d 0x12 0x3e 0x12 0x3f 0x12 0x40 0x12 0x03 0x12 0x1d 0x12 0x1e 0x12 0x1f 0x12 0x20>;
reset-names = "sata_rst\0usb0_crst\0usb1_crst\0usb0_hibrst\0usb1_hibrst\0usb0_apbrst\0usb1_apbrst\0dp_rst\0gem0_rst\0gem1_rst\0gem2_rst\0gem3_rst";
phandle = <0x62>;
lane0 {
#phy-cells = <0x04>;
phandle = <0x15>;
};
lane1 {
#phy-cells = <0x04>;
phandle = <0x14>;
};
lane2 {
#phy-cells = <0x04>;
phandle = <0x63>;
};
lane3 {
#phy-cells = <0x04>;
phandle = <0x64>;
};
};
ahci@fd0c0000 {
compatible = "ceva,ahci-1v84";
status = "disabled";
reg = <0x00 0xfd0c0000 0x00 0x2000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x85 0x04>;
power-domains = <0x0c 0x1c>;
#stream-id-cells = <0x04>;
clocks = <0x03 0x16>;
phandle = <0x65>;
};
mmc@ff160000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x30 0x04>;
reg = <0x00 0xff160000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x870>;
power-domains = <0x0c 0x27>;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd0\0clk_in_sd0";
non-removable;
disable-wp;
bus-width = <0x08>;
xlnx,mio-bank = <0x00>;
clocks = <0x03 0x36 0x03 0x1f>;
phandle = <0x66>;
};
mmc@ff170000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x31 0x04>;
reg = <0x00 0xff170000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x01>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x871>;
power-domains = <0x0c 0x28>;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd1\0clk_in_sd1";
clocks = <0x03 0x37 0x03 0x1f>;
clock-frequency = <0xb2cfe8b>;
xlnx,mio-bank = <0x01>;
phandle = <0x67>;
};
spi@ff040000 {
compatible = "cdns,spi-r1p6";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x13 0x04>;
reg = <0x00 0xff040000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x23>;
clocks = <0x03 0x3a 0x03 0x1f>;
phandle = <0x68>;
};
spi@ff050000 {
compatible = "cdns,spi-r1p6";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x14 0x04>;
reg = <0x00 0xff050000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x24>;
label = "TPM";
num-cs = <0x01>;
clocks = <0x03 0x3b 0x03 0x1f>;
is-decoded-cs = <0x00>;
phandle = <0x69>;
tpm@0 {
compatible = "infineon,slb9670\0tcg,tpm_tis-spi";
reg = <0x00>;
spi-max-frequency = <0x11a49a0>;
};
};
timer@ff110000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x24 0x04 0x00 0x25 0x04 0x00 0x26 0x04>;
reg = <0x00 0xff110000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x18>;
clocks = <0x03 0x1f>;
phandle = <0x6a>;
};
timer@ff120000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x27 0x04 0x00 0x28 0x04 0x00 0x29 0x04>;
reg = <0x00 0xff120000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x19>;
clocks = <0x03 0x1f>;
phandle = <0x6b>;
};
timer@ff130000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2a 0x04 0x00 0x2b 0x04 0x00 0x2c 0x04>;
reg = <0x00 0xff130000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1a>;
clocks = <0x03 0x1f>;
phandle = <0x6c>;
};
timer@ff140000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2d 0x04 0x00 0x2e 0x04 0x00 0x2f 0x04>;
reg = <0x00 0xff140000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1b>;
clocks = <0x03 0x1f>;
phandle = <0x6d>;
};
serial@ff000000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x15 0x04>;
reg = <0x00 0xff000000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x21>;
clocks = <0x03 0x38 0x03 0x1f>;
phandle = <0x6e>;
};
serial@ff010000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x16 0x04>;
reg = <0x00 0xff010000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x22>;
clocks = <0x03 0x39 0x03 0x1f>;
cts-override;
device_type = "serial";
port-number = <0x00>;
phandle = <0x6f>;
};
usb0@ff9d0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9d0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x16>;
ranges;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x20 0x03 0x22>;
xlnx,tz-nonsecure = <0x01>;
xlnx,usb-polarity = <0x00>;
xlnx,usb-reset-mode = <0x00>;
phandle = <0x70>;
dwc3@fe200000 {
compatible = "snps,dwc3";
status = "disabled";
reg = <0x00 0xfe200000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x41 0x04 0x00 0x45 0x04 0x00 0x4b 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x860>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
phandle = <0x71>;
};
};
usb1@ff9e0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9e0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x17>;
ranges;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x21 0x03 0x22>;
phandle = <0x72>;
dwc3@fe300000 {
compatible = "snps,dwc3";
status = "disabled";
reg = <0x00 0xfe300000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x46 0x04 0x00 0x4a 0x04 0x00 0x4c 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x861>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
phandle = <0x73>;
};
};
watchdog@fd4d0000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x71 0x01>;
reg = <0x00 0xfd4d0000 0x00 0x1000>;
timeout-sec = <0x3c>;
reset-on-timeout;
clocks = <0x03 0x4b>;
phandle = <0x74>;
};
watchdog@ff150000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x34 0x01>;
reg = <0x00 0xff150000 0x00 0x1000>;
timeout-sec = <0x0a>;
clocks = <0x03 0x70>;
phandle = <0x75>;
};
ams@ffa50000 {
compatible = "xlnx,zynqmp-ams";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x38 0x04>;
interrupt-names = "ams-irq";
reg = <0x00 0xffa50000 0x00 0x800>;
reg-names = "ams-base";
#address-cells = <0x02>;
#size-cells = <0x02>;
#io-channel-cells = <0x01>;
ranges;
clocks = <0x03 0x46>;
phandle = <0x1a>;
ams_ps@ffa50800 {
compatible = "xlnx,zynqmp-ams-ps";
status = "okay";
reg = <0x00 0xffa50800 0x00 0x400>;
phandle = <0x76>;
};
ams_pl@ffa50c00 {
compatible = "xlnx,zynqmp-ams-pl";
status = "okay";
reg = <0x00 0xffa50c00 0x00 0x400>;
phandle = <0x77>;
};
};
dma@fd4c0000 {
compatible = "xlnx,dpdma";
status = "disabled";
reg = <0x00 0xfd4c0000 0x00 0x1000>;
interrupts = <0x00 0x7a 0x04>;
interrupt-parent = <0x04>;
clock-names = "axi_clk";
power-domains = <0x0c 0x29>;
dma-channels = <0x06>;
#dma-cells = <0x01>;
clocks = <0x03 0x14>;
phandle = <0x16>;
dma-video0channel {
compatible = "xlnx,video0";
};
dma-video1channel {
compatible = "xlnx,video1";
};
dma-video2channel {
compatible = "xlnx,video2";
};
dma-graphicschannel {
compatible = "xlnx,graphics";
};
dma-audio0channel {
compatible = "xlnx,audio0";
};
dma-audio1channel {
compatible = "xlnx,audio1";
};
};
zynqmp-display@fd4a0000 {
compatible = "xlnx,zynqmp-dpsub-1.7";
status = "disabled";
reg = <0x00 0xfd4a0000 0x00 0x1000 0x00 0xfd4aa000 0x00 0x1000 0x00 0xfd4ab000 0x00 0x1000 0x00 0xfd4ac000 0x00 0x1000>;
reg-names = "dp\0blend\0av_buf\0aud";
interrupts = <0x00 0x77 0x04>;
interrupt-parent = <0x04>;
clock-names = "dp_apb_clk\0dp_aud_clk\0dp_vtc_pixel_clk_in";
power-domains = <0x0c 0x29>;
clocks = <0x13 0x03 0x11 0x03 0x10>;
phy-names = "dp-phy0\0dp-phy1";
phys = <0x14 0x06 0x00 0x00 0x19bfcc0 0x15 0x06 0x01 0x00 0x19bfcc0>;
xlnx,max-lanes = <0x02>;
phandle = <0x78>;
vid-layer {
dma-names = "vid0\0vid1\0vid2";
dmas = <0x16 0x00 0x16 0x01 0x16 0x02>;
phandle = <0x79>;
};
gfx-layer {
dma-names = "gfx0";
dmas = <0x16 0x03>;
phandle = <0x7a>;
};
i2c-bus {
};
zynqmp_dp_snd_codec0 {
compatible = "xlnx,dp-snd-codec";
clock-names = "aud_clk";
clocks = <0x03 0x11>;
status = "disabled";
phandle = <0x19>;
};
zynqmp_dp_snd_pcm0 {
compatible = "xlnx,dp-snd-pcm0";
dmas = <0x16 0x04>;
dma-names = "tx";
status = "disabled";
phandle = <0x17>;
};
zynqmp_dp_snd_pcm1 {
compatible = "xlnx,dp-snd-pcm1";
dmas = <0x16 0x05>;
dma-names = "tx";
status = "disabled";
phandle = <0x18>;
};
zynqmp_dp_snd_card {
compatible = "xlnx,dp-snd-card";
xlnx,dp-snd-pcm = <0x17 0x18>;
xlnx,dp-snd-codec = <0x19>;
status = "disabled";
phandle = <0x7b>;
};
};
};
aliases {
gpio0 = "/amba/gpio@ff0a0000";
i2c0 = "/amba/i2c@ff030000";
i2c1 = "/amba/i2c@ff030000";
mmc0 = "/amba/mmc@ff160000";
mmc1 = "/amba/mmc@ff170000";
rtc0 = "/amba/rtc@ffa60000";
serial0 = "/amba/serial@ff010000";
serial1 = "/amba/serial@ff010000";
serial2 = "/dcc";
spi0 = "/amba/spi@ff0f0000";
spi1 = "/amba/spi@ff050000";
spi2 = "/amba/spi@ff050000";
usb0 = "/amba/usb0@ff9d0000";
usb1 = "/amba/usb1@ff9e0000";
nvmem0 = "/amba/i2c@ff030000/eeprom@50";
nvmem1 = "/amba/i2c@ff030000/eeprom@51";
ethernet0 = "/amba/ethernet@ff0e0000";
};
chosen {
linux,initrd-end = <0x00 0x78fffd2a>;
linux,initrd-start = <0x00 0x7824b000>;
bootargs = " earlycon console=ttyPS0,115200 console=tty1 root=/dev/mmcblk0p2 uio_pdrv_genirq.of_id=generic-uio cma=1000M quiet splash";
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
fwuen {
label = "fwuen";
gpios = <0x0e 0x0c 0x01>;
};
};
leds {
compatible = "gpio-leds";
ds35 {
label = "heartbeat";
gpios = <0x0e 0x07 0x00>;
linux,default-trigger = "heartbeat";
};
ds36 {
label = "vbus_det";
gpios = <0x0e 0x08 0x00>;
default-state = "on";
};
};
ams {
compatible = "iio-hwmon";
io-channels = <0x1a 0x00 0x1a 0x01 0x1a 0x02 0x1a 0x03 0x1a 0x04 0x1a 0x05 0x1a 0x06 0x1a 0x07 0x1a 0x08 0x1a 0x09 0x1a 0x0a 0x1a 0x0b 0x1a 0x0c 0x1a 0x0d 0x1a 0x0e 0x1a 0x0f 0x1a 0x10 0x1a 0x11 0x1a 0x12 0x1a 0x13 0x1a 0x14 0x1a 0x15 0x1a 0x16 0x1a 0x17 0x1a 0x18 0x1a 0x19 0x1a 0x1a 0x1a 0x1b 0x1a 0x1c 0x1a 0x1d>;
};
fclk0 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x47>;
phandle = <0x7c>;
};
fclk1 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x48>;
phandle = <0x7d>;
};
fclk2 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x49>;
phandle = <0x7e>;
};
fclk3 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x4a>;
phandle = <0x7f>;
};
pss_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x1fca055>;
phandle = <0x06>;
};
video_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x07>;
};
pss_alt_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x00>;
phandle = <0x08>;
};
gt_crx_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x66ff300>;
phandle = <0x0a>;
};
aux_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x09>;
};
dp_aclk {
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x5f5e100>;
clock-accuracy = <0x64>;
phandle = <0x13>;
};
memory {
device_type = "memory";
reg = <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
};
__symbols__ {
cpu0 = "/cpus/cpu@0";
cpu1 = "/cpus/cpu@1";
cpu2 = "/cpus/cpu@2";
cpu3 = "/cpus/cpu@3";
CPU_SLEEP_0 = "/cpus/idle-states/cpu-sleep-0";
cpu_opp_table = "/cpu-opp-table";
ipi_mailbox_pmu1 = "/zynqmp_ipi/mailbox@ff990400";
dcc = "/dcc";
zynqmp_firmware = "/firmware/zynqmp-firmware";
zynqmp_pcap = "/firmware/zynqmp-firmware/pcap";
zynqmp_power = "/firmware/zynqmp-firmware/zynqmp-power";
zynqmp_reset = "/firmware/zynqmp-firmware/reset-controller";
pinctrl0 = "/firmware/zynqmp-firmware/pinctrl";
zynqmp_clk = "/firmware/zynqmp-firmware/clock-controller";
fpga_full = "/fpga-full";
soc_revision = "/nvmem_firmware/soc_revision@0";
efuse_dna = "/nvmem_firmware/efuse_dna@c";
efuse_usr0 = "/nvmem_firmware/efuse_usr0@20";
efuse_usr1 = "/nvmem_firmware/efuse_usr1@24";
efuse_usr2 = "/nvmem_firmware/efuse_usr2@28";
efuse_usr3 = "/nvmem_firmware/efuse_usr3@2c";
efuse_usr4 = "/nvmem_firmware/efuse_usr4@30";
efuse_usr5 = "/nvmem_firmware/efuse_usr5@34";
efuse_usr6 = "/nvmem_firmware/efuse_usr6@38";
efuse_usr7 = "/nvmem_firmware/efuse_usr7@3c";
efuse_miscusr = "/nvmem_firmware/efuse_miscusr@40";
efuse_chash = "/nvmem_firmware/efuse_chash@50";
efuse_pufmisc = "/nvmem_firmware/efuse_pufmisc@54";
efuse_sec = "/nvmem_firmware/efuse_sec@58";
efuse_spkid = "/nvmem_firmware/efuse_spkid@5c";
efuse_ppk0hash = "/nvmem_firmware/efuse_ppk0hash@a0";
efuse_ppk1hash = "/nvmem_firmware/efuse_ppk1hash@d0";
xlnx_rsa = "/zynqmp_rsa";
xlnx_keccak_384 = "/sha384";
xlnx_aes = "/zynqmp_aes";
amba_apu = "/amba-apu@0";
gic = "/amba-apu@0/interrupt-controller@f9010000";
smmu = "/smmu@fd800000";
amba = "/amba";
can0 = "/amba/can@ff060000";
can1 = "/amba/can@ff070000";
cci = "/amba/cci@fd6e0000";
fpd_dma_chan1 = "/amba/dma@fd500000";
fpd_dma_chan2 = "/amba/dma@fd510000";
fpd_dma_chan3 = "/amba/dma@fd520000";
fpd_dma_chan4 = "/amba/dma@fd530000";
fpd_dma_chan5 = "/amba/dma@fd540000";
fpd_dma_chan6 = "/amba/dma@fd550000";
fpd_dma_chan7 = "/amba/dma@fd560000";
fpd_dma_chan8 = "/amba/dma@fd570000";
gpu = "/amba/gpu@fd4b0000";
lpd_dma_chan1 = "/amba/dma@ffa80000";
lpd_dma_chan2 = "/amba/dma@ffa90000";
lpd_dma_chan3 = "/amba/dma@ffaa0000";
lpd_dma_chan4 = "/amba/dma@ffab0000";
lpd_dma_chan5 = "/amba/dma@ffac0000";
lpd_dma_chan6 = "/amba/dma@ffad0000";
lpd_dma_chan7 = "/amba/dma@ffae0000";
lpd_dma_chan8 = "/amba/dma@ffaf0000";
mc = "/amba/memory-controller@fd070000";
nand0 = "/amba/nand@ff100000";
gem0 = "/amba/ethernet@ff0b0000";
gem1 = "/amba/ethernet@ff0c0000";
gem2 = "/amba/ethernet@ff0d0000";
gem3 = "/amba/ethernet@ff0e0000";
gpio = "/amba/gpio@ff0a0000";
i2c0 = "/amba/i2c@ff020000";
i2c1 = "/amba/i2c@ff030000";
eeprom = "/amba/i2c@ff030000/eeprom@50";
eeprom_cc = "/amba/i2c@ff030000/eeprom@51";
da9131 = "/amba/i2c@ff030000/pmic@33";
da9131_buck1 = "/amba/i2c@ff030000/pmic@33/regulators/buck1";
da9131_buck2 = "/amba/i2c@ff030000/pmic@33/regulators/buck2";
da9130 = "/amba/i2c@ff030000/pmic@32";
da9130_buck1 = "/amba/i2c@ff030000/pmic@32/regulators/buck1";
ocm = "/amba/memory-controller@ff960000";
perf_monitor_ocm = "/amba/perf-monitor@ffa00000";
perf_monitor_ddr = "/amba/perf-monitor@fd0b0000";
perf_monitor_cci = "/amba/perf-monitor@fd490000";
perf_monitor_lpd = "/amba/perf-monitor@ffa10000";
pcie = "/amba/pcie@fd0e0000";
pcie_intc = "/amba/pcie@fd0e0000/legacy-interrupt-controller";
qspi = "/amba/spi@ff0f0000";
rtc = "/amba/rtc@ffa60000";
serdes = "/amba/zynqmp_phy@fd400000";
lane0 = "/amba/zynqmp_phy@fd400000/lane0";
lane1 = "/amba/zynqmp_phy@fd400000/lane1";
lane2 = "/amba/zynqmp_phy@fd400000/lane2";
lane3 = "/amba/zynqmp_phy@fd400000/lane3";
sata = "/amba/ahci@fd0c0000";
sdhci0 = "/amba/mmc@ff160000";
sdhci1 = "/amba/mmc@ff170000";
spi0 = "/amba/spi@ff040000";
spi1 = "/amba/spi@ff050000";
ttc0 = "/amba/timer@ff110000";
ttc1 = "/amba/timer@ff120000";
ttc2 = "/amba/timer@ff130000";
ttc3 = "/amba/timer@ff140000";
uart0 = "/amba/serial@ff000000";
uart1 = "/amba/serial@ff010000";
usb0 = "/amba/usb0@ff9d0000";
dwc3_0 = "/amba/usb0@ff9d0000/dwc3@fe200000";
usb1 = "/amba/usb1@ff9e0000";
dwc3_1 = "/amba/usb1@ff9e0000/dwc3@fe300000";
watchdog0 = "/amba/watchdog@fd4d0000";
lpd_watchdog = "/amba/watchdog@ff150000";
xilinx_ams = "/amba/ams@ffa50000";
ams_ps = "/amba/ams@ffa50000/ams_ps@ffa50800";
ams_pl = "/amba/ams@ffa50000/ams_pl@ffa50c00";
xlnx_dpdma = "/amba/dma@fd4c0000";
zynqmp_dpsub = "/amba/zynqmp-display@fd4a0000";
vid_layer = "/amba/zynqmp-display@fd4a0000/vid-layer";
gfx_layer = "/amba/zynqmp-display@fd4a0000/gfx-layer";
zynqmp_dp_snd_codec0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_codec0";
zynqmp_dp_snd_pcm0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_pcm0";
zynqmp_dp_snd_pcm1 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_pcm1";
zynqmp_dp_snd_card0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_card";
fclk0 = "/fclk0";
fclk1 = "/fclk1";
fclk2 = "/fclk2";
fclk3 = "/fclk3";
pss_ref_clk = "/pss_ref_clk";
video_clk = "/video_clk";
pss_alt_ref_clk = "/pss_alt_ref_clk";
gt_crx_ref_clk = "/gt_crx_ref_clk";
aux_ref_clk = "/aux_ref_clk";
dp_aclk = "/dp_aclk";
};
};
// SPDX-License-Identifier: GPL-2.0
/*
* KV260 Base Linux DTS
*
* (C) Copyright 2021, Xilinx, Inc.
*
* amit nagal <amitn@xilinx.com>
* swagath gadde <swagath.gadde@xilinx.com>
*/
/dts-v1/;
/ {
compatible = "xlnx,zynqmp-smk-k26-rev1\0xlnx,zynqmp-smk-k26-revB\0xlnx,zynqmp-smk-k26-revA\0xlnx,zynqmp-smk-k26\0xlnx,zynqmp";
#address-cells = <0x02>;
#size-cells = <0x02>;
model = "ZynqMP SMK-K26 Rev1/B/A";
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
cpu@0 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
operating-points-v2 = <0x01>;
reg = <0x00>;
cpu-idle-states = <0x02>;
clocks = <0x03 0x0a>;
phandle = <0x1b>;
};
cpu@1 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x01>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1c>;
};
cpu@2 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x02>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1d>;
};
cpu@3 {
compatible = "arm,cortex-a53";
device_type = "cpu";
enable-method = "psci";
reg = <0x03>;
operating-points-v2 = <0x01>;
cpu-idle-states = <0x02>;
phandle = <0x1e>;
};
idle-states {
entry-method = "psci";
cpu-sleep-0 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x40000000>;
local-timer-stop;
entry-latency-us = <0x12c>;
exit-latency-us = <0x258>;
min-residency-us = <0x2710>;
phandle = <0x02>;
};
};
};
cpu-opp-table {
compatible = "operating-points-v2";
opp-shared;
phandle = <0x01>;
opp00 {
opp-hz = <0x00 0x47868bf4>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp01 {
opp-hz = <0x00 0x23c345fa>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp02 {
opp-hz = <0x00 0x17d783fc>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
opp03 {
opp-hz = <0x00 0x11e1a2fd>;
opp-microvolt = <0xf4240>;
clock-latency-ns = <0x7a120>;
};
};
zynqmp_ipi {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-ipi-mailbox";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
xlnx,ipi-id = <0x00>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
mailbox@ff990400 {
u-boot,dm-pre-reloc;
reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>;
reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region";
#mbox-cells = <0x01>;
xlnx,ipi-id = <0x04>;
phandle = <0x05>;
};
};
dcc {
compatible = "arm,dcc";
status = "disabled";
u-boot,dm-pre-reloc;
phandle = <0x1f>;
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupt-parent = <0x04>;
interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04>;
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
firmware {
zynqmp-firmware {
compatible = "xlnx,zynqmp-firmware";
u-boot,dm-pre-reloc;
method = "smc";
#power-domain-cells = <0x01>;
phandle = <0x0c>;
pcap {
compatible = "xlnx,zynqmp-pcap-fpga";
clock-names = "ref_clk";
clocks = <0x03 0x29>;
phandle = <0x0b>;
};
zynqmp-power {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-power";
interrupt-parent = <0x04>;
interrupts = <0x00 0x23 0x04>;
mboxes = <0x05 0x00 0x05 0x01>;
mbox-names = "tx\0rx";
phandle = <0x20>;
};
reset-controller {
compatible = "xlnx,zynqmp-reset";
#reset-cells = <0x01>;
phandle = <0x12>;
};
pinctrl {
compatible = "xlnx,zynqmp-pinctrl";
status = "disabled";
phandle = <0x21>;
};
clock-controller {
u-boot,dm-pre-reloc;
#clock-cells = <0x01>;
compatible = "xlnx,zynqmp-clk";
clocks = <0x06 0x07 0x08 0x09 0x0a>;
clock-names = "pss_ref_clk\0video_clk\0pss_alt_ref_clk\0aux_ref_clk\0gt_crx_ref_clk";
phandle = <0x03>;
};
};
};
timer {
compatible = "arm,armv8-timer";
interrupt-parent = <0x04>;
interrupts = <0x01 0x0d 0xf08 0x01 0x0e 0xf08 0x01 0x0b 0xf08 0x01 0x0a 0xf08>;
};
edac {
compatible = "arm,cortex-a53-edac";
};
fpga-full {
compatible = "fpga-region";
fpga-mgr = <0x0b>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x22>;
};
nvmem_firmware {
compatible = "xlnx,zynqmp-nvmem-fw";
#address-cells = <0x01>;
#size-cells = <0x01>;
soc_revision@0 {
reg = <0x00 0x04>;
phandle = <0x11>;
};
efuse_dna@c {
reg = <0x0c 0x0c>;
phandle = <0x23>;
};
efuse_usr0@20 {
reg = <0x20 0x04>;
phandle = <0x24>;
};
efuse_usr1@24 {
reg = <0x24 0x04>;
phandle = <0x25>;
};
efuse_usr2@28 {
reg = <0x28 0x04>;
phandle = <0x26>;
};
efuse_usr3@2c {
reg = <0x2c 0x04>;
phandle = <0x27>;
};
efuse_usr4@30 {
reg = <0x30 0x04>;
phandle = <0x28>;
};
efuse_usr5@34 {
reg = <0x34 0x04>;
phandle = <0x29>;
};
efuse_usr6@38 {
reg = <0x38 0x04>;
phandle = <0x2a>;
};
efuse_usr7@3c {
reg = <0x3c 0x04>;
phandle = <0x2b>;
};
efuse_miscusr@40 {
reg = <0x40 0x04>;
phandle = <0x2c>;
};
efuse_chash@50 {
reg = <0x50 0x04>;
phandle = <0x2d>;
};
efuse_pufmisc@54 {
reg = <0x54 0x04>;
phandle = <0x2e>;
};
efuse_sec@58 {
reg = <0x58 0x04>;
phandle = <0x2f>;
};
efuse_spkid@5c {
reg = <0x5c 0x04>;
phandle = <0x30>;
};
efuse_ppk0hash@a0 {
reg = <0xa0 0x30>;
phandle = <0x31>;
};
efuse_ppk1hash@d0 {
reg = <0xd0 0x30>;
phandle = <0x32>;
};
};
zynqmp_rsa {
compatible = "xlnx,zynqmp-rsa";
phandle = <0x33>;
};
sha384 {
compatible = "xlnx,zynqmp-keccak-384";
phandle = <0x34>;
};
zynqmp_aes {
compatible = "xlnx,zynqmp-aes";
phandle = <0x35>;
};
amba-apu@0 {
compatible = "simple-bus";
#address-cells = <0x02>;
#size-cells = <0x01>;
ranges = <0x00 0x00 0x00 0x00 0xffffffff>;
phandle = <0x36>;
interrupt-controller@f9010000 {
compatible = "arm,gic-400";
#interrupt-cells = <0x03>;
reg = <0x00 0xf9010000 0x10000 0x00 0xf9020000 0x20000 0x00 0xf9040000 0x20000 0x00 0xf9060000 0x20000>;
interrupt-controller;
interrupt-parent = <0x04>;
interrupts = <0x01 0x09 0xf04>;
num_cpus = <0x02>;
num_interrupts = <0x60>;
phandle = <0x04>;
};
};
smmu@fd800000 {
compatible = "arm,mmu-500";
reg = <0x00 0xfd800000 0x00 0x20000>;
#iommu-cells = <0x01>;
status = "disabled";
#global-interrupts = <0x01>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04>;
phandle = <0x0d>;
};
amba {
compatible = "simple-bus";
u-boot,dm-pre-reloc;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x37>;
can@ff060000 {
compatible = "xlnx,zynq-can-1.0";
status = "disabled";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff060000 0x00 0x1000>;
interrupts = <0x00 0x17 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x2f>;
clocks = <0x03 0x3f 0x03 0x1f>;
phandle = <0x38>;
};
can@ff070000 {
compatible = "xlnx,zynq-can-1.0";
status = "disabled";
clock-names = "can_clk\0pclk";
reg = <0x00 0xff070000 0x00 0x1000>;
interrupts = <0x00 0x18 0x04>;
interrupt-parent = <0x04>;
tx-fifo-depth = <0x40>;
rx-fifo-depth = <0x40>;
power-domains = <0x0c 0x30>;
clocks = <0x03 0x40 0x03 0x1f>;
phandle = <0x39>;
};
cci@fd6e0000 {
compatible = "arm,cci-400";
status = "okay";
reg = <0x00 0xfd6e0000 0x00 0x9000>;
ranges = <0x00 0x00 0xfd6e0000 0x10000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
phandle = <0x3a>;
pmu@9000 {
compatible = "arm,cci-400-pmu,r1";
reg = <0x9000 0x5000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04>;
};
};
dma@fd500000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd500000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7c 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14e8>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3b>;
};
dma@fd510000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd510000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14e9>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3c>;
};
dma@fd520000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd520000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ea>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3d>;
};
dma@fd530000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd530000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x7f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14eb>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3e>;
};
dma@fd540000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd540000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x80 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ec>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x3f>;
};
dma@fd550000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd550000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x81 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ed>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x40>;
};
dma@fd560000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd560000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x82 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ee>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x41>;
};
dma@fd570000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xfd570000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x83 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x80>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x14ef>;
power-domains = <0x0c 0x2a>;
clocks = <0x03 0x13 0x03 0x1f>;
phandle = <0x42>;
};
gpu@fd4b0000 {
status = "okay";
compatible = "arm,mali-400\0arm,mali-utgard";
reg = <0x00 0xfd4b0000 0x00 0x10000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04>;
interrupt-names = "IRQGP\0IRQGPMMU\0IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1";
clock-names = "gpu\0gpu_pp0\0gpu_pp1";
power-domains = <0x0c 0x3a>;
clocks = <0x03 0x18 0x03 0x19 0x03 0x1a>;
xlnx,tz-nonsecure = <0x01>;
phandle = <0x43>;
};
dma@ffa80000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa80000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4d 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x44>;
};
dma@ffa90000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffa90000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4e 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x45>;
};
dma@ffaa0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaa0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x4f 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x46>;
};
dma@ffab0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffab0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x50 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x47>;
};
dma@ffac0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffac0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x51 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x48>;
};
dma@ffad0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffad0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x52 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x49>;
};
dma@ffae0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffae0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x53 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x4a>;
};
dma@ffaf0000 {
status = "okay";
compatible = "xlnx,zynqmp-dma-1.0";
reg = <0x00 0xffaf0000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x54 0x04>;
clock-names = "clk_main\0clk_apb";
xlnx,bus-width = <0x40>;
#stream-id-cells = <0x01>;
power-domains = <0x0c 0x2b>;
clocks = <0x03 0x44 0x03 0x1f>;
phandle = <0x4b>;
};
memory-controller@fd070000 {
compatible = "xlnx,zynqmp-ddrc-2.40a";
reg = <0x00 0xfd070000 0x00 0x30000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x70 0x04>;
phandle = <0x4c>;
};
nand@ff100000 {
compatible = "arasan,nfc-v3p10";
status = "disabled";
reg = <0x00 0xff100000 0x00 0x1000>;
clock-names = "clk_sys\0clk_flash";
interrupt-parent = <0x04>;
interrupts = <0x00 0x0e 0x04>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x872>;
power-domains = <0x0c 0x2c>;
clocks = <0x03 0x3c 0x03 0x1f>;
phandle = <0x4d>;
};
ethernet@ff0b0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x39 0x04 0x00 0x39 0x04>;
reg = <0x00 0xff0b0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x874>;
power-domains = <0x0c 0x1d>;
clocks = <0x03 0x1f 0x03 0x68 0x03 0x2d 0x03 0x31 0x03 0x2c>;
phandle = <0x4e>;
};
ethernet@ff0c0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3b 0x04 0x00 0x3b 0x04>;
reg = <0x00 0xff0c0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x875>;
power-domains = <0x0c 0x1e>;
clocks = <0x03 0x1f 0x03 0x69 0x03 0x2e 0x03 0x32 0x03 0x2c>;
phandle = <0x4f>;
};
ethernet@ff0d0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3d 0x04 0x00 0x3d 0x04>;
reg = <0x00 0xff0d0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x876>;
power-domains = <0x0c 0x1f>;
clocks = <0x03 0x1f 0x03 0x6a 0x03 0x2f 0x03 0x33 0x03 0x2c>;
phandle = <0x50>;
};
ethernet@ff0e0000 {
compatible = "cdns,zynqmp-gem\0cdns,gem";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x3f 0x04 0x00 0x3f 0x04>;
reg = <0x00 0xff0e0000 0x00 0x1000>;
clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk";
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x877>;
power-domains = <0x0c 0x20>;
clocks = <0x03 0x1f 0x03 0x6b 0x03 0x30 0x03 0x34 0x03 0x2c>;
phy-mode = "rgmii-id";
xlnx,ptp-enet-clock = <0x00>;
local-mac-address = [00 0a 35 00 22 01];
phandle = <0x51>;
};
gpio@ff0a0000 {
compatible = "xlnx,zynqmp-gpio-1.0";
status = "okay";
#gpio-cells = <0x02>;
gpio-controller;
interrupt-parent = <0x04>;
interrupts = <0x00 0x10 0x04>;
interrupt-controller;
#interrupt-cells = <0x02>;
reg = <0x00 0xff0a0000 0x00 0x1000>;
power-domains = <0x0c 0x2e>;
gpio-line-names = "QSPI_CLK\0QSPI_DQ1\0QSPI_DQ2\0QSPI_DQ3\0QSPI_DQ0\0QSPI_CS_B\0SPI_CLK\0LED1\0LED2\0SPI_CS_B\0SPI_MISO\0SPI_MOSI\0FWUEN\0EMMC_DAT0\0EMMC_DAT1\0EMMC_DAT2\0EMMC_DAT3\0EMMC_DAT4\0EMMC_DAT5\0EMMC_DAT6\0EMMC_DAT7\0EMMC_CMD\0EMMC_CLK\0EMMC_RST\0I2C1_SCL\0I2C1_SDA\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
clocks = <0x03 0x1f>;
emio-gpio-width = <0x20>;
gpio-mask-high = <0x00>;
gpio-mask-low = <0x5600>;
phandle = <0x0e>;
};
i2c@ff020000 {
compatible = "cdns,i2c-r1p14\0cdns,i2c-r1p10";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x11 0x04>;
reg = <0x00 0xff020000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x25>;
clocks = <0x03 0x3d>;
phandle = <0x52>;
};
i2c@ff030000 {
compatible = "cdns,i2c-r1p14\0cdns,i2c-r1p10";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x12 0x04>;
reg = <0x00 0xff030000 0x00 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x26>;
clock-frequency = <0x61a80>;
scl-gpios = <0x0e 0x18 0x00>;
sda-gpios = <0x0e 0x19 0x00>;
clocks = <0x03 0x3e>;
phandle = <0x53>;
eeprom@50 {
compatible = "st,24c64\0atmel,24c64";
reg = <0x50>;
phandle = <0x54>;
};
eeprom@51 {
compatible = "st,24c64\0atmel,24c64";
reg = <0x51>;
phandle = <0x55>;
};
pmic@33 {
compatible = "dlg,da9131";
reg = <0x33>;
phandle = <0x56>;
regulators {
buck1 {
regulator-name = "da9131_buck1";
regulator-boot-on;
regulator-always-on;
phandle = <0x57>;
};
buck2 {
regulator-name = "da9131_buck2";
regulator-boot-on;
regulator-always-on;
phandle = <0x58>;
};
};
};
pmic@32 {
compatible = "dlg,da9130";
reg = <0x32>;
phandle = <0x59>;
regulators {
buck1 {
regulator-name = "da9130_buck1";
regulator-boot-on;
regulator-always-on;
phandle = <0x5a>;
};
};
};
};
memory-controller@ff960000 {
compatible = "xlnx,zynqmp-ocmc-1.0";
reg = <0x00 0xff960000 0x00 0x1000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x0a 0x04>;
phandle = <0x5b>;
};
perf-monitor@ffa00000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa00000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x5c>;
};
perf-monitor@fd0b0000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd0b0000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x06>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x0a>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x5d>;
};
perf-monitor@fd490000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xfd490000 0x00 0x10000>;
interrupts = <0x00 0x7b 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x00>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1c>;
phandle = <0x5e>;
};
perf-monitor@ffa10000 {
compatible = "xlnx,axi-perf-monitor";
reg = <0x00 0xffa10000 0x00 0x10000>;
interrupts = <0x00 0x19 0x04>;
interrupt-parent = <0x04>;
xlnx,enable-profile = <0x00>;
xlnx,enable-trace = <0x00>;
xlnx,num-monitor-slots = <0x01>;
xlnx,enable-event-count = <0x01>;
xlnx,enable-event-log = <0x01>;
xlnx,have-sampled-metric-cnt = <0x01>;
xlnx,num-of-counters = <0x08>;
xlnx,metric-count-width = <0x20>;
xlnx,metrics-sample-count-width = <0x20>;
xlnx,global-count-width = <0x20>;
xlnx,metric-count-scale = <0x01>;
clocks = <0x03 0x1f>;
phandle = <0x5f>;
};
pcie@fd0e0000 {
compatible = "xlnx,nwl-pcie-2.11";
status = "disabled";
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
msi-controller;
device_type = "pci";
interrupt-parent = <0x04>;
interrupts = <0x00 0x76 0x04 0x00 0x75 0x04 0x00 0x74 0x04 0x00 0x73 0x04 0x00 0x72 0x04>;
interrupt-names = "misc\0dummy\0intx\0msi1\0msi0";
msi-parent = <0x0f>;
reg = <0x00 0xfd0e0000 0x00 0x1000 0x00 0xfd480000 0x00 0x1000 0x80 0x00 0x00 0x1000000>;
reg-names = "breg\0pcireg\0cfg";
ranges = <0x2000000 0x00 0xe0000000 0x00 0xe0000000 0x00 0x10000000 0x43000000 0x06 0x00 0x06 0x00 0x02 0x00>;
interrupt-map-mask = <0x00 0x00 0x00 0x07>;
bus-range = <0x00 0xff>;
interrupt-map = <0x00 0x00 0x00 0x01 0x10 0x01 0x00 0x00 0x00 0x02 0x10 0x02 0x00 0x00 0x00 0x03 0x10 0x03 0x00 0x00 0x00 0x04 0x10 0x04>;
power-domains = <0x0c 0x3b>;
clocks = <0x03 0x17>;
phandle = <0x0f>;
legacy-interrupt-controller {
interrupt-controller;
#address-cells = <0x00>;
#interrupt-cells = <0x01>;
phandle = <0x10>;
};
};
spi@ff0f0000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-qspi-1.0";
status = "okay";
clock-names = "ref_clk\0pclk";
interrupts = <0x00 0x0f 0x04>;
interrupt-parent = <0x04>;
num-cs = <0x01>;
reg = <0x00 0xff0f0000 0x00 0x1000 0x00 0xc0000000 0x00 0x8000000>;
#address-cells = <0x01>;
#size-cells = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x873>;
power-domains = <0x0c 0x2d>;
clocks = <0x03 0x35 0x03 0x1f>;
is-dual = <0x00>;
spi-rx-bus-width = <0x04>;
spi-tx-bus-width = <0x04>;
phandle = <0x60>;
flash@0 {
compatible = "mt25qu512a\0jedec,spi-nor";
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x00>;
spi-tx-bus-width = <0x01>;
spi-rx-bus-width = <0x04>;
spi-max-frequency = <0x2625a00>;
partition@0 {
label = "Image Selector";
reg = <0x00 0x80000>;
read-only;
lock;
};
partition@80000 {
label = "Image Selector Golden";
reg = <0x80000 0x80000>;
read-only;
lock;
};
partition@100000 {
label = "Persistent Register";
reg = <0x100000 0x20000>;
};
partition@120000 {
label = "Persistent Register Backup";
reg = <0x120000 0x20000>;
};
partition@140000 {
label = "Open_1";
reg = <0x140000 0xc0000>;
};
partition@200000 {
label = "Image A (FSBL, PMU, ATF, U-Boot)";
reg = <0x200000 0xd00000>;
};
partition@f00000 {
label = "ImgSel Image A Catch";
reg = <0xf00000 0x80000>;
read-only;
lock;
};
partition@f80000 {
label = "Image B (FSBL, PMU, ATF, U-Boot)";
reg = <0xf80000 0xd00000>;
};
partition@1c80000 {
label = "ImgSel Image B Catch";
reg = <0x1c80000 0x80000>;
read-only;
lock;
};
partition@1d00000 {
label = "Open_2";
reg = <0x1d00000 0x100000>;
};
partition@1e00000 {
label = "Recovery Image";
reg = <0x1e00000 0x200000>;
read-only;
lock;
};
partition@2000000 {
label = "Recovery Image Backup";
reg = <0x2000000 0x200000>;
read-only;
lock;
};
partition@2200000 {
label = "U-Boot storage variables";
reg = <0x2200000 0x20000>;
};
partition@2220000 {
label = "U-Boot storage variables backup";
reg = <0x2220000 0x20000>;
};
partition@2240000 {
label = "SHA256";
reg = <0x2240000 0x10000>;
read-only;
lock;
};
partition@2250000 {
label = "User";
reg = <0x2250000 0x1db0000>;
};
};
};
rtc@ffa60000 {
compatible = "xlnx,zynqmp-rtc";
status = "okay";
reg = <0x00 0xffa60000 0x00 0x100>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x1a 0x04 0x00 0x1b 0x04>;
interrupt-names = "alarm\0sec";
calibration = <0x8000>;
phandle = <0x61>;
};
zynqmp_phy@fd400000 {
compatible = "xlnx,zynqmp-psgtr-v1.1";
status = "okay";
reg = <0x00 0xfd400000 0x00 0x40000 0x00 0xfd3d0000 0x00 0x1000>;
reg-names = "serdes\0siou";
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
resets = <0x12 0x10 0x12 0x3b 0x12 0x3c 0x12 0x3d 0x12 0x3e 0x12 0x3f 0x12 0x40 0x12 0x03 0x12 0x1d 0x12 0x1e 0x12 0x1f 0x12 0x20>;
reset-names = "sata_rst\0usb0_crst\0usb1_crst\0usb0_hibrst\0usb1_hibrst\0usb0_apbrst\0usb1_apbrst\0dp_rst\0gem0_rst\0gem1_rst\0gem2_rst\0gem3_rst";
phandle = <0x62>;
lane0 {
#phy-cells = <0x04>;
phandle = <0x15>;
};
lane1 {
#phy-cells = <0x04>;
phandle = <0x14>;
};
lane2 {
#phy-cells = <0x04>;
phandle = <0x63>;
};
lane3 {
#phy-cells = <0x04>;
phandle = <0x64>;
};
};
ahci@fd0c0000 {
compatible = "ceva,ahci-1v84";
status = "disabled";
reg = <0x00 0xfd0c0000 0x00 0x2000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x85 0x04>;
power-domains = <0x0c 0x1c>;
#stream-id-cells = <0x04>;
clocks = <0x03 0x16>;
phandle = <0x65>;
};
mmc@ff160000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x30 0x04>;
reg = <0x00 0xff160000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x00>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x870>;
power-domains = <0x0c 0x27>;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd0\0clk_in_sd0";
non-removable;
disable-wp;
bus-width = <0x08>;
xlnx,mio-bank = <0x00>;
clocks = <0x03 0x36 0x03 0x1f>;
phandle = <0x66>;
};
mmc@ff170000 {
u-boot,dm-pre-reloc;
compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x31 0x04>;
reg = <0x00 0xff170000 0x00 0x1000>;
clock-names = "clk_xin\0clk_ahb";
xlnx,device_id = <0x01>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x871>;
power-domains = <0x0c 0x28>;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
#clock-cells = <0x01>;
clock-output-names = "clk_out_sd1\0clk_in_sd1";
clocks = <0x03 0x37 0x03 0x1f>;
clock-frequency = <0xb2cfe8b>;
xlnx,mio-bank = <0x01>;
phandle = <0x67>;
};
spi@ff040000 {
compatible = "cdns,spi-r1p6";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x13 0x04>;
reg = <0x00 0xff040000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x23>;
clocks = <0x03 0x3a 0x03 0x1f>;
phandle = <0x68>;
};
spi@ff050000 {
compatible = "cdns,spi-r1p6";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x14 0x04>;
reg = <0x00 0xff050000 0x00 0x1000>;
clock-names = "ref_clk\0pclk";
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x0c 0x24>;
label = "TPM";
num-cs = <0x01>;
clocks = <0x03 0x3b 0x03 0x1f>;
is-decoded-cs = <0x00>;
phandle = <0x69>;
tpm@0 {
compatible = "infineon,slb9670\0tcg,tpm_tis-spi";
reg = <0x00>;
spi-max-frequency = <0x11a49a0>;
};
};
timer@ff110000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x24 0x04 0x00 0x25 0x04 0x00 0x26 0x04>;
reg = <0x00 0xff110000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x18>;
clocks = <0x03 0x1f>;
phandle = <0x6a>;
};
timer@ff120000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x27 0x04 0x00 0x28 0x04 0x00 0x29 0x04>;
reg = <0x00 0xff120000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x19>;
clocks = <0x03 0x1f>;
phandle = <0x6b>;
};
timer@ff130000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2a 0x04 0x00 0x2b 0x04 0x00 0x2c 0x04>;
reg = <0x00 0xff130000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1a>;
clocks = <0x03 0x1f>;
phandle = <0x6c>;
};
timer@ff140000 {
compatible = "cdns,ttc";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x2d 0x04 0x00 0x2e 0x04 0x00 0x2f 0x04>;
reg = <0x00 0xff140000 0x00 0x1000>;
timer-width = <0x20>;
power-domains = <0x0c 0x1b>;
clocks = <0x03 0x1f>;
phandle = <0x6d>;
};
serial@ff000000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "disabled";
interrupt-parent = <0x04>;
interrupts = <0x00 0x15 0x04>;
reg = <0x00 0xff000000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x21>;
clocks = <0x03 0x38 0x03 0x1f>;
phandle = <0x6e>;
};
serial@ff010000 {
u-boot,dm-pre-reloc;
compatible = "cdns,uart-r1p12\0xlnx,xuartps";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x16 0x04>;
reg = <0x00 0xff010000 0x00 0x1000>;
clock-names = "uart_clk\0pclk";
power-domains = <0x0c 0x22>;
clocks = <0x03 0x39 0x03 0x1f>;
cts-override;
device_type = "serial";
port-number = <0x00>;
phandle = <0x6f>;
};
usb0@ff9d0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9d0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x16>;
ranges;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x20 0x03 0x22>;
xlnx,tz-nonsecure = <0x01>;
xlnx,usb-polarity = <0x00>;
xlnx,usb-reset-mode = <0x00>;
phandle = <0x70>;
dwc3@fe200000 {
compatible = "snps,dwc3";
status = "disabled";
reg = <0x00 0xfe200000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x41 0x04 0x00 0x45 0x04 0x00 0x4b 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x860>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
phandle = <0x71>;
};
};
usb1@ff9e0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "disabled";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9e0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x0c 0x17>;
ranges;
nvmem-cells = <0x11>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x21 0x03 0x22>;
phandle = <0x72>;
dwc3@fe300000 {
compatible = "snps,dwc3";
status = "disabled";
reg = <0x00 0xfe300000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupt-names = "dwc_usb3\0otg\0hiber";
interrupts = <0x00 0x46 0x04 0x00 0x4a 0x04 0x00 0x4c 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x0d 0x861>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
phandle = <0x73>;
};
};
watchdog@fd4d0000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x71 0x01>;
reg = <0x00 0xfd4d0000 0x00 0x1000>;
timeout-sec = <0x3c>;
reset-on-timeout;
clocks = <0x03 0x4b>;
phandle = <0x74>;
};
watchdog@ff150000 {
compatible = "cdns,wdt-r1p2";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x34 0x01>;
reg = <0x00 0xff150000 0x00 0x1000>;
timeout-sec = <0x0a>;
clocks = <0x03 0x70>;
phandle = <0x75>;
};
ams@ffa50000 {
compatible = "xlnx,zynqmp-ams";
status = "okay";
interrupt-parent = <0x04>;
interrupts = <0x00 0x38 0x04>;
interrupt-names = "ams-irq";
reg = <0x00 0xffa50000 0x00 0x800>;
reg-names = "ams-base";
#address-cells = <0x02>;
#size-cells = <0x02>;
#io-channel-cells = <0x01>;
ranges;
clocks = <0x03 0x46>;
phandle = <0x1a>;
ams_ps@ffa50800 {
compatible = "xlnx,zynqmp-ams-ps";
status = "okay";
reg = <0x00 0xffa50800 0x00 0x400>;
phandle = <0x76>;
};
ams_pl@ffa50c00 {
compatible = "xlnx,zynqmp-ams-pl";
status = "okay";
reg = <0x00 0xffa50c00 0x00 0x400>;
phandle = <0x77>;
};
};
dma@fd4c0000 {
compatible = "xlnx,dpdma";
status = "disabled";
reg = <0x00 0xfd4c0000 0x00 0x1000>;
interrupts = <0x00 0x7a 0x04>;
interrupt-parent = <0x04>;
clock-names = "axi_clk";
power-domains = <0x0c 0x29>;
dma-channels = <0x06>;
#dma-cells = <0x01>;
clocks = <0x03 0x14>;
phandle = <0x16>;
dma-video0channel {
compatible = "xlnx,video0";
};
dma-video1channel {
compatible = "xlnx,video1";
};
dma-video2channel {
compatible = "xlnx,video2";
};
dma-graphicschannel {
compatible = "xlnx,graphics";
};
dma-audio0channel {
compatible = "xlnx,audio0";
};
dma-audio1channel {
compatible = "xlnx,audio1";
};
};
zynqmp-display@fd4a0000 {
compatible = "xlnx,zynqmp-dpsub-1.7";
status = "disabled";
reg = <0x00 0xfd4a0000 0x00 0x1000 0x00 0xfd4aa000 0x00 0x1000 0x00 0xfd4ab000 0x00 0x1000 0x00 0xfd4ac000 0x00 0x1000>;
reg-names = "dp\0blend\0av_buf\0aud";
interrupts = <0x00 0x77 0x04>;
interrupt-parent = <0x04>;
clock-names = "dp_apb_clk\0dp_aud_clk\0dp_vtc_pixel_clk_in";
power-domains = <0x0c 0x29>;
clocks = <0x13 0x03 0x11 0x03 0x10>;
phy-names = "dp-phy0\0dp-phy1";
phys = <0x14 0x06 0x00 0x00 0x19bfcc0 0x15 0x06 0x01 0x00 0x19bfcc0>;
xlnx,max-lanes = <0x02>;
phandle = <0x78>;
vid-layer {
dma-names = "vid0\0vid1\0vid2";
dmas = <0x16 0x00 0x16 0x01 0x16 0x02>;
phandle = <0x79>;
};
gfx-layer {
dma-names = "gfx0";
dmas = <0x16 0x03>;
phandle = <0x7a>;
};
i2c-bus {
};
zynqmp_dp_snd_codec0 {
compatible = "xlnx,dp-snd-codec";
clock-names = "aud_clk";
clocks = <0x03 0x11>;
status = "disabled";
phandle = <0x19>;
};
zynqmp_dp_snd_pcm0 {
compatible = "xlnx,dp-snd-pcm0";
dmas = <0x16 0x04>;
dma-names = "tx";
status = "disabled";
phandle = <0x17>;
};
zynqmp_dp_snd_pcm1 {
compatible = "xlnx,dp-snd-pcm1";
dmas = <0x16 0x05>;
dma-names = "tx";
status = "disabled";
phandle = <0x18>;
};
zynqmp_dp_snd_card {
compatible = "xlnx,dp-snd-card";
xlnx,dp-snd-pcm = <0x17 0x18>;
xlnx,dp-snd-codec = <0x19>;
status = "disabled";
phandle = <0x7b>;
};
};
};
aliases {
gpio0 = "/amba/gpio@ff0a0000";
i2c0 = "/amba/i2c@ff030000";
i2c1 = "/amba/i2c@ff030000";
mmc0 = "/amba/mmc@ff160000";
mmc1 = "/amba/mmc@ff170000";
rtc0 = "/amba/rtc@ffa60000";
serial0 = "/amba/serial@ff010000";
serial1 = "/amba/serial@ff010000";
serial2 = "/dcc";
spi0 = "/amba/spi@ff0f0000";
spi1 = "/amba/spi@ff050000";
spi2 = "/amba/spi@ff050000";
usb0 = "/amba/usb0@ff9d0000";
usb1 = "/amba/usb1@ff9e0000";
nvmem0 = "/amba/i2c@ff030000/eeprom@50";
nvmem1 = "/amba/i2c@ff030000/eeprom@51";
ethernet0 = "/amba/ethernet@ff0e0000";
};
chosen {
bootargs = "earlycon console=ttyPS0,115200 clk_ignore_unused ext4=/dev/mmcblk0p2:/rootfs init_fatal_sh=1 cma=1000M ";
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
fwuen {
label = "fwuen";
gpios = <0x0e 0x0c 0x01>;
};
};
leds {
compatible = "gpio-leds";
ds35 {
label = "heartbeat";
gpios = <0x0e 0x07 0x00>;
linux,default-trigger = "heartbeat";
};
ds36 {
label = "vbus_det";
gpios = <0x0e 0x08 0x00>;
default-state = "on";
};
};
ams {
compatible = "iio-hwmon";
io-channels = <0x1a 0x00 0x1a 0x01 0x1a 0x02 0x1a 0x03 0x1a 0x04 0x1a 0x05 0x1a 0x06 0x1a 0x07 0x1a 0x08 0x1a 0x09 0x1a 0x0a 0x1a 0x0b 0x1a 0x0c 0x1a 0x0d 0x1a 0x0e 0x1a 0x0f 0x1a 0x10 0x1a 0x11 0x1a 0x12 0x1a 0x13 0x1a 0x14 0x1a 0x15 0x1a 0x16 0x1a 0x17 0x1a 0x18 0x1a 0x19 0x1a 0x1a 0x1a 0x1b 0x1a 0x1c 0x1a 0x1d>;
};
fclk0 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x47>;
phandle = <0x7c>;
};
fclk1 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x48>;
phandle = <0x7d>;
};
fclk2 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x49>;
phandle = <0x7e>;
};
fclk3 {
status = "okay";
compatible = "xlnx,fclk";
clocks = <0x03 0x4a>;
phandle = <0x7f>;
};
pss_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x1fca055>;
phandle = <0x06>;
};
video_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x07>;
};
pss_alt_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x00>;
phandle = <0x08>;
};
gt_crx_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x66ff300>;
phandle = <0x0a>;
};
aux_ref_clk {
u-boot,dm-pre-reloc;
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x19bfcc0>;
phandle = <0x09>;
};
dp_aclk {
compatible = "fixed-clock";
#clock-cells = <0x00>;
clock-frequency = <0x5f5e100>;
clock-accuracy = <0x64>;
phandle = <0x13>;
};
memory {
device_type = "memory";
reg = <0x00 0x00 0x00 0x7ff00000 0x08 0x00 0x00 0x80000000>;
};
__symbols__ {
cpu0 = "/cpus/cpu@0";
cpu1 = "/cpus/cpu@1";
cpu2 = "/cpus/cpu@2";
cpu3 = "/cpus/cpu@3";
CPU_SLEEP_0 = "/cpus/idle-states/cpu-sleep-0";
cpu_opp_table = "/cpu-opp-table";
ipi_mailbox_pmu1 = "/zynqmp_ipi/mailbox@ff990400";
dcc = "/dcc";
zynqmp_firmware = "/firmware/zynqmp-firmware";
zynqmp_pcap = "/firmware/zynqmp-firmware/pcap";
zynqmp_power = "/firmware/zynqmp-firmware/zynqmp-power";
zynqmp_reset = "/firmware/zynqmp-firmware/reset-controller";
pinctrl0 = "/firmware/zynqmp-firmware/pinctrl";
zynqmp_clk = "/firmware/zynqmp-firmware/clock-controller";
fpga_full = "/fpga-full";
soc_revision = "/nvmem_firmware/soc_revision@0";
efuse_dna = "/nvmem_firmware/efuse_dna@c";
efuse_usr0 = "/nvmem_firmware/efuse_usr0@20";
efuse_usr1 = "/nvmem_firmware/efuse_usr1@24";
efuse_usr2 = "/nvmem_firmware/efuse_usr2@28";
efuse_usr3 = "/nvmem_firmware/efuse_usr3@2c";
efuse_usr4 = "/nvmem_firmware/efuse_usr4@30";
efuse_usr5 = "/nvmem_firmware/efuse_usr5@34";
efuse_usr6 = "/nvmem_firmware/efuse_usr6@38";
efuse_usr7 = "/nvmem_firmware/efuse_usr7@3c";
efuse_miscusr = "/nvmem_firmware/efuse_miscusr@40";
efuse_chash = "/nvmem_firmware/efuse_chash@50";
efuse_pufmisc = "/nvmem_firmware/efuse_pufmisc@54";
efuse_sec = "/nvmem_firmware/efuse_sec@58";
efuse_spkid = "/nvmem_firmware/efuse_spkid@5c";
efuse_ppk0hash = "/nvmem_firmware/efuse_ppk0hash@a0";
efuse_ppk1hash = "/nvmem_firmware/efuse_ppk1hash@d0";
xlnx_rsa = "/zynqmp_rsa";
xlnx_keccak_384 = "/sha384";
xlnx_aes = "/zynqmp_aes";
amba_apu = "/amba-apu@0";
gic = "/amba-apu@0/interrupt-controller@f9010000";
smmu = "/smmu@fd800000";
amba = "/amba";
can0 = "/amba/can@ff060000";
can1 = "/amba/can@ff070000";
cci = "/amba/cci@fd6e0000";
fpd_dma_chan1 = "/amba/dma@fd500000";
fpd_dma_chan2 = "/amba/dma@fd510000";
fpd_dma_chan3 = "/amba/dma@fd520000";
fpd_dma_chan4 = "/amba/dma@fd530000";
fpd_dma_chan5 = "/amba/dma@fd540000";
fpd_dma_chan6 = "/amba/dma@fd550000";
fpd_dma_chan7 = "/amba/dma@fd560000";
fpd_dma_chan8 = "/amba/dma@fd570000";
gpu = "/amba/gpu@fd4b0000";
lpd_dma_chan1 = "/amba/dma@ffa80000";
lpd_dma_chan2 = "/amba/dma@ffa90000";
lpd_dma_chan3 = "/amba/dma@ffaa0000";
lpd_dma_chan4 = "/amba/dma@ffab0000";
lpd_dma_chan5 = "/amba/dma@ffac0000";
lpd_dma_chan6 = "/amba/dma@ffad0000";
lpd_dma_chan7 = "/amba/dma@ffae0000";
lpd_dma_chan8 = "/amba/dma@ffaf0000";
mc = "/amba/memory-controller@fd070000";
nand0 = "/amba/nand@ff100000";
gem0 = "/amba/ethernet@ff0b0000";
gem1 = "/amba/ethernet@ff0c0000";
gem2 = "/amba/ethernet@ff0d0000";
gem3 = "/amba/ethernet@ff0e0000";
gpio = "/amba/gpio@ff0a0000";
i2c0 = "/amba/i2c@ff020000";
i2c1 = "/amba/i2c@ff030000";
eeprom = "/amba/i2c@ff030000/eeprom@50";
eeprom_cc = "/amba/i2c@ff030000/eeprom@51";
da9131 = "/amba/i2c@ff030000/pmic@33";
da9131_buck1 = "/amba/i2c@ff030000/pmic@33/regulators/buck1";
da9131_buck2 = "/amba/i2c@ff030000/pmic@33/regulators/buck2";
da9130 = "/amba/i2c@ff030000/pmic@32";
da9130_buck1 = "/amba/i2c@ff030000/pmic@32/regulators/buck1";
ocm = "/amba/memory-controller@ff960000";
perf_monitor_ocm = "/amba/perf-monitor@ffa00000";
perf_monitor_ddr = "/amba/perf-monitor@fd0b0000";
perf_monitor_cci = "/amba/perf-monitor@fd490000";
perf_monitor_lpd = "/amba/perf-monitor@ffa10000";
pcie = "/amba/pcie@fd0e0000";
pcie_intc = "/amba/pcie@fd0e0000/legacy-interrupt-controller";
qspi = "/amba/spi@ff0f0000";
rtc = "/amba/rtc@ffa60000";
serdes = "/amba/zynqmp_phy@fd400000";
lane0 = "/amba/zynqmp_phy@fd400000/lane0";
lane1 = "/amba/zynqmp_phy@fd400000/lane1";
lane2 = "/amba/zynqmp_phy@fd400000/lane2";
lane3 = "/amba/zynqmp_phy@fd400000/lane3";
sata = "/amba/ahci@fd0c0000";
sdhci0 = "/amba/mmc@ff160000";
sdhci1 = "/amba/mmc@ff170000";
spi0 = "/amba/spi@ff040000";
spi1 = "/amba/spi@ff050000";
ttc0 = "/amba/timer@ff110000";
ttc1 = "/amba/timer@ff120000";
ttc2 = "/amba/timer@ff130000";
ttc3 = "/amba/timer@ff140000";
uart0 = "/amba/serial@ff000000";
uart1 = "/amba/serial@ff010000";
usb0 = "/amba/usb0@ff9d0000";
dwc3_0 = "/amba/usb0@ff9d0000/dwc3@fe200000";
usb1 = "/amba/usb1@ff9e0000";
dwc3_1 = "/amba/usb1@ff9e0000/dwc3@fe300000";
watchdog0 = "/amba/watchdog@fd4d0000";
lpd_watchdog = "/amba/watchdog@ff150000";
xilinx_ams = "/amba/ams@ffa50000";
ams_ps = "/amba/ams@ffa50000/ams_ps@ffa50800";
ams_pl = "/amba/ams@ffa50000/ams_pl@ffa50c00";
xlnx_dpdma = "/amba/dma@fd4c0000";
zynqmp_dpsub = "/amba/zynqmp-display@fd4a0000";
vid_layer = "/amba/zynqmp-display@fd4a0000/vid-layer";
gfx_layer = "/amba/zynqmp-display@fd4a0000/gfx-layer";
zynqmp_dp_snd_codec0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_codec0";
zynqmp_dp_snd_pcm0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_pcm0";
zynqmp_dp_snd_pcm1 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_pcm1";
zynqmp_dp_snd_card0 = "/amba/zynqmp-display@fd4a0000/zynqmp_dp_snd_card";
fclk0 = "/fclk0";
fclk1 = "/fclk1";
fclk2 = "/fclk2";
fclk3 = "/fclk3";
pss_ref_clk = "/pss_ref_clk";
video_clk = "/video_clk";
pss_alt_ref_clk = "/pss_alt_ref_clk";
gt_crx_ref_clk = "/gt_crx_ref_clk";
aux_ref_clk = "/aux_ref_clk";
dp_aclk = "/dp_aclk";
};
};
// SPDX-License-Identifier: GPL-2.0
/*
* dts file for KV260 DP subsystem
*
* (C) Copyright 2021, Xilinx, Inc.
*
* Michal Simek <michal.simek@xilinx.com>
*/
/dts-v1/;
/plugin/;
/{
compatible = "xlnx,zynqmp-sk-kv260-revB",
"xlnx,zynqmp-sk-kv260-revA",
"xlnx,zynqmp-sk-kv260-revY",
"xlnx,zynqmp-sk-kv260-revZ",
"xlnx,zynqmp-sk-kv260", "xlnx,zynqmp";
fragment4 {
target = <&zynqmp_dpsub>;
__overlay__ {
status = "okay";
};
};
fragment5 {
target = <&zynqmp_dp_snd_pcm0>;
__overlay__ {
status = "okay";
};
};
fragment6 {
target = <&zynqmp_dp_snd_pcm1>;
__overlay__ {
status = "okay";
};
};
fragment7 {
target = <&zynqmp_dp_snd_card0>;
__overlay__ {
status = "okay";
};
};
fragment8 {
target = <&zynqmp_dp_snd_codec0>;
__overlay__ {
status = "okay";
};
};
};
// SPDX-License-Identifier: GPL-2.0
/*
* dts file for KV260 Rev1 Carrier Card
*
* (C) Copyright 2021, Xilinx, Inc.
*
* amit nagal <amitn@xilinx.com>
* swagath gadde <swagath.gadde@xilinx.com>
*/
/dts-v1/;
/ {
compatible = "xlnx,zynqmp-sk-kv260-rev1\0xlnx,zynqmp-sk-kv260-revB\0xlnx,zynqmp-sk-kv260-revA\0xlnx,zynqmp-sk-kv260\0xlnx,zynqmp";
fragment1 {
target = <0xffffffff>;
__overlay__ {
#address-cells = <0x01>;
#size-cells = <0x00>;
pinctrl-names = "default\0gpio";
pinctrl-0 = <0x01>;
pinctrl-1 = <0x02>;
scl-gpios = <0xffffffff 0x18 0x00>;
sda-gpios = <0xffffffff 0x19 0x00>;
ina260@40 {
compatible = "ti,ina260";
#io-channel-cells = <0x01>;
label = "ina260-u14";
reg = <0x40>;
phandle = <0x03>;
};
usb5744@2d {
compatible = "microchip,usb5744";
reg = <0x2d>;
reset-gpios = <0xffffffff 0x2c 0x00>;
phandle = <0x09>;
};
};
};
fragment1a {
target = <0xffffffff>;
__overlay__ {
ina260-u14 {
compatible = "iio-hwmon";
io-channels = <0x03 0x00 0x03 0x01 0x03 0x02>;
};
};
};
fragment2 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
};
};
fragment4 {
target = <0xffffffff>;
__overlay__ {
status = "disabled";
phy-names = "dp-phy0\0dp-phy1";
phys = <0xffffffff 0x06 0x00 0x00 0x19bfcc0 0xffffffff 0x06 0x01 0x00 0x19bfcc0>;
};
};
fragment9 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
};
};
fragment10 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x04>;
};
};
fragment11 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
dr_mode = "host";
snps,usb3_lpm_capable;
phy-names = "usb3-phy";
phys = <0xffffffff 0x04 0x00 0x01 0x18cba80>;
maximum-speed = "super-speed";
};
};
fragment12 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x05>;
no-1-8-v;
disable-wp;
xlnx,mio-bank = <0x01>;
clk-phase-sd-hs = <0x7e 0x3c>;
clk-phase-uhs-sdr25 = <0x78 0x3c>;
clk-phase-uhs-ddr50 = <0x7e 0x30>;
};
};
fragment13 {
target = <0xffffffff>;
__overlay__ {
#address-cells = <0x01>;
#size-cells = <0x00>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x06>;
phy-handle = <0x07>;
phy-mode = "rgmii-id";
mdio {
#address-cells = <0x01>;
#size-cells = <0x00>;
reset-gpios = <0xffffffff 0x26 0x01>;
reset-delay-us = <0x02>;
phandle = <0x0a>;
ethernet-phy@1 {
#phy-cells = <0x01>;
reg = <0x01>;
ti,rx-internal-delay = <0x08>;
ti,tx-internal-delay = <0x0a>;
ti,fifo-depth = <0x01>;
ti,dp83867-rxctrl-strap-quirk;
phandle = <0x07>;
};
};
};
};
fragment14 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
uart1-default {
phandle = <0x08>;
conf {
groups = "uart1_9_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
drive-strength = <0x0c>;
};
conf-rx {
pins = "MIO37";
bias-high-impedance;
};
conf-tx {
pins = "MIO36";
bias-disable;
};
mux {
groups = "uart1_9_grp";
function = "uart1";
};
};
i2c1-default {
phandle = <0x01>;
conf {
groups = "i2c1_6_grp";
bias-pull-up;
slew-rate = <0x01>;
io-standard = <0x01>;
};
mux {
groups = "i2c1_6_grp";
function = "i2c1";
};
};
i2c1-gpio {
phandle = <0x02>;
conf {
groups = "gpio0_24_grp\0gpio0_25_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
};
mux {
groups = "gpio0_24_grp\0gpio0_25_grp";
function = "gpio0";
};
};
gem3-default {
phandle = <0x06>;
conf {
groups = "ethernet3_0_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
};
conf-rx {
pins = "MIO70\0MIO72\0MIO74";
bias-high-impedance;
low-power-disable;
};
conf-bootstrap {
pins = "MIO71\0MIO73\0MIO75";
bias-disable;
low-power-disable;
};
conf-tx {
pins = "MIO64\0MIO65\0MIO66\0MIO67\0MIO68\0MIO69";
bias-disable;
low-power-enable;
};
conf-mdio {
groups = "mdio3_0_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
bias-disable;
};
mux-mdio {
function = "mdio3";
groups = "mdio3_0_grp";
};
mux {
function = "ethernet3";
groups = "ethernet3_0_grp";
};
};
usb0-default {
phandle = <0x04>;
conf {
groups = "usb0_0_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
};
conf-rx {
pins = "MIO52\0MIO53\0MIO55";
bias-high-impedance;
};
conf-tx {
pins = "MIO54\0MIO56\0MIO57\0MIO58\0MIO59\0MIO60\0MIO61\0MIO62\0MIO63";
bias-disable;
};
mux {
groups = "usb0_0_grp";
function = "usb0";
};
};
sdhci1-default {
phandle = <0x05>;
conf {
groups = "sdio1_0_grp";
slew-rate = <0x01>;
io-standard = <0x01>;
bias-disable;
};
conf-cd {
groups = "sdio1_cd_0_grp";
bias-high-impedance;
bias-pull-up;
slew-rate = <0x01>;
io-standard = <0x01>;
};
mux-cd {
groups = "sdio1_cd_0_grp";
function = "sdio1_cd";
};
mux {
groups = "sdio1_0_grp";
function = "sdio1";
};
};
};
};
fragment15 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x08>;
};
};
__symbols__ {
u14 = "/fragment1/__overlay__/ina260@40";
usbhub = "/fragment1/__overlay__/usb5744@2d";
mdio = "/fragment13/__overlay__/mdio";
phy0 = "/fragment13/__overlay__/mdio/ethernet-phy@1";
pinctrl_uart1_default = "/fragment14/__overlay__/uart1-default";
pinctrl_i2c1_default = "/fragment14/__overlay__/i2c1-default";
pinctrl_i2c1_gpio = "/fragment14/__overlay__/i2c1-gpio";
pinctrl_gem3_default = "/fragment14/__overlay__/gem3-default";
pinctrl_usb0_default = "/fragment14/__overlay__/usb0-default";
pinctrl_sdhci1_default = "/fragment14/__overlay__/sdhci1-default";
};
__fixups__ {
i2c1 = "/fragment1:target:0";
gpio = "/fragment1/__overlay__:scl-gpios:0\0/fragment1/__overlay__:sda-gpios:0\0/fragment1/__overlay__/usb5744@2d:reset-gpios:0\0/fragment13/__overlay__/mdio:reset-gpios:0";
amba = "/fragment1a:target:0";
serdes = "/fragment2:target:0";
zynqmp_dpsub = "/fragment4:target:0";
lane1 = "/fragment4/__overlay__:phys:0";
lane0 = "/fragment4/__overlay__:phys:20";
xlnx_dpdma = "/fragment9:target:0";
usb0 = "/fragment10:target:0";
dwc3_0 = "/fragment11:target:0";
lane2 = "/fragment11/__overlay__:phys:0";
sdhci1 = "/fragment12:target:0";
gem3 = "/fragment13:target:0";
pinctrl0 = "/fragment14:target:0";
uart1 = "/fragment15:target:0";
};
__local_fixups__ {
fragment1 {
__overlay__ {
pinctrl-0 = <0x00>;
pinctrl-1 = <0x00>;
};
};
fragment1a {
__overlay__ {
ina260-u14 {
io-channels = <0x00 0x08 0x10>;
};
};
};
fragment10 {
__overlay__ {
pinctrl-0 = <0x00>;
};
};
fragment12 {
__overlay__ {
pinctrl-0 = <0x00>;
};
};
fragment13 {
__overlay__ {
pinctrl-0 = <0x00>;
phy-handle = <0x00>;
};
};
fragment15 {
__overlay__ {
pinctrl-0 = <0x00>;
};
};
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment