/dts-v1/;
/plugin/;

&fpga_full {
        firmware-name = "zcu106_pl_vcu_example.bit.bin";

        misc_clk_0: misc_clk_0 {
                #clock-cells = <0x0>;
                clocks = <&zynqmp_clk 0x47>;
                clock-mult = <0x7d0>;
                compatible = "fixed-factor-clock";
                clock-div = <0x3e8>;
        };

        misc_clk_1: misc_clk_1 {
                #clock-cells = <0x0>;
                clocks = <&zynqmp_clk 0x47>;
                clock-mult = <0x3e8>;
                compatible = "fixed-factor-clock";
                clock-div = <0xbb8>;
        };

        clocking0: clocking0 {
                clocks = <&zynqmp_clk 0x47>;
                clock-output-names = "fabric_clk";
                #clock-cells = <0x0>;
                assigned-clock-rates = <0x5f5e100>;
                assigned-clocks = <&zynqmp_clk 0x47>;
                compatible = "xlnx,fclk";
        };

        afi0: afi0 {
                config-afi = <0x0 0x0 0x1 0x0 0x2 0x0 0x3 0x0 0x4 0x0 0x5 0x0 0x6 0x0 0x7 0x0 0x8 0x2 0x9 0x2 0xa 0x0 0xb 0x0 0xc 0x2 0xd 0x2 0xe 0xa00 0xf 0x0>;
                resets = <&zynqmp_reset 0x74>,
                 <&zynqmp_reset 0x75>,
                 <&zynqmp_reset 0x76>,
                 <&zynqmp_reset 0x77>;
                compatible = "xlnx,afi-fpga";
        };
};

&amba {

        axi_intc_0: interrupt-controller@80020000 {
                xlnx,name = "axi_intc_0";
                xlnx,async-intr = <0xffffffff>;
                interrupt-names = "irq";
                interrupt-controller;
                xlnx,ivar-rst-val = <0x10>;
                xlnx,has-fast = <0x0>;
                clock-names = "s_axi_aclk";
                xlnx,is-fast = <0x0>;
                xlnx,processor-clk-freq-mhz = <0x64>;
                xlnx,cascade-master = <0x0>;
                xlnx,sense-of-irq-level-type = "Active_High";
                xlnx,intc-type = <0x0>;
                xlnx,has-ipr = <0x1>;
                xlnx,mb-clk-not-connected = <0x1>;
                xlnx,edk-iptype = "PERIPHERAL";
                xlnx,num-sync-ff = <0x2>;
                xlnx,has-cie = <0x1>;
                xlnx,enable-async = <0x0>;
                xlnx,has-sie = <0x1>;
                xlnx,num-intr-inputs = <0x1>;
                xlnx,irq-connection = <0x1>;
                xlnx,num-sw-intr = <0x0>;
                xlnx,s-axi-aclk-freq-mhz = <0xc8>;
                clocks = <&misc_clk_0>;
                xlnx,addr-width = <0x20>;
                reg = <0x0 0x80020000 0x0 0x1000>;
                xlnx,has-ilr = <0x0>;
                xlnx,ip-name = "axi_intc";
                xlnx,en-cascade-mode = <0x0>;
                interrupt-parent = <&gic>;
                xlnx,irq-active = <0x1>;
                xlnx,ivar-reset-value = <0x10>;
                xlnx,kind-of-lvl = <0xffffffff>;
                xlnx,disable-synchronizers = <0x1>;
                compatible = "xlnx,axi-intc-4.1", "xlnx,xps-intc-1.00.a";
                xlnx,has-ivr = <0x1>;
                xlnx,irq-is-level = <0x1>;
                xlnx,kind-of-edge = <0xffffffff>;
                xlnx,kind-of-intr = <0x0>;
                xlnx,edk-special = "INTR_CTRL";
                xlnx,sense-of-irq-edge-type = "Rising";
                interrupts = <0x0 0x59 0x4>;
                #interrupt-cells = <0x2>;
        };

        axi_vip_pltf: axi_vip@a0000000 {
                xlnx,has-burst = <0x1>;
                xlnx,axi-protocol = <0x0>;
                xlnx,axi-aruser-width = <0x10>;
                xlnx,has-region = <0x0>;
                xlnx,has-cache = <0x1>;
                xlnx,axi-supports-narrow = <0x0>;
                xlnx,axi-has-region = <0x0>;
                xlnx,interface-mode = "SLAVE";
                xlnx,wuser-width = <0x0>;
                xlnx,has-lock = <0x1>;
                xlnx,wuser-bits-per-byte = <0x0>;
                xlnx,vip-pkg-name = <0x0>;
                xlnx,axi-wuser-width = <0x0>;
                xlnx,protocol = "AXI4";
                clock-names = "aclk";
                xlnx,edk-iptype = "PERIPHERAL";
                xlnx,axi-has-rresp = <0x1>;
                xlnx,id-width = <0x0>;
                clocks = <&misc_clk_0>;
                xlnx,addr-width = <0x20>;
                xlnx,axi-addr-width = <0x20>;
                xlnx,read-write-mode = "READ_WRITE";
                xlnx,ruser-width = <0x0>;
                xlnx,slave-seg-type = "REG";
                xlnx,supports-narrow = <0x0>;
                xlnx,has-rresp = <0x1>;
                xlnx,ruser-bits-per-byte = <0x0>;
                xlnx,awuser-width = <0x10>;
                xlnx,axi-has-qos = <0x1>;
                xlnx,name = "axi_vip_pltf";
                xlnx,axi-wdata-width = <0x20>;
                xlnx,axi-ruser-width = <0x0>;
                xlnx,axi-has-bresp = <0x1>;
                xlnx,has-aresetn = <0x1>;
                xlnx,axi-interface-mode = <0x2>;
                xlnx,axi-wid-width = <0x0>;
                xlnx,buser-width = <0x0>;
                xlnx,has-bresp = <0x1>;
                xlnx,axi-has-prot = <0x1>;
                xlnx,axi-rid-width = <0x0>;
                xlnx,axi-awuser-width = <0x10>;
                xlnx,axi-has-wstrb = <0x1>;
                xlnx,axi-has-aresetn = <0x1>;
                compatible = "xlnx,axi-vip-1.1";
                xlnx,data-width = <0x20>;
                xlnx,aruser-width = <0x10>;
                xlnx,axi-buser-width = <0x0>;
                xlnx,has-size = <0x0>;
                xlnx,has-qos = <0x1>;
                xlnx,has-wstrb = <0x1>;
                xlnx,axi-has-lock = <0x1>;
                xlnx,axi-rdata-width = <0x20>;
                xlnx,axi-has-burst = <0x1>;
                reg = <0x0 0xa0000000 0x0 0x10000>;
                xlnx,has-aclken = <0x0>;
                xlnx,ip-name = "axi_vip";
                xlnx,has-prot = <0x1>;
                xlnx,has-user-bits-per-byte = <0x0>;
                xlnx,axi-has-cache = <0x1>;
        };

        vcu_0: vcu@80100000 {
                xlnx,dechorresolution = <0xf00>;
                xlnx,coreclkfreq = <0x29b>;
                xlnx,hdl-axi-dec-base1 = <0x0>;
                xlnx,hdl-axi-enc-clk = <0x0>;
                xlnx,hdl-enc-buffer-b-frame = <0x0>;
                xlnx,hdl-max-num-cores = <0x0>;
                xlnx,hdl-num-streams = <0x0>;
                xlnx,mcu-debug = <0x0>;
                #clock-cells = <0x1>;
                reg-names = "vcu_slcr", "logicore";
                xlnx,hdl-axi-dec-base0 = <0x0>;
                xlnx,wpp-en = <0x0>;
                xlnx,axi-mcu-range = <0x0>;
                xlnx,axi-dec-range1 = <0x0>;
                xlnx,hdl-mem-depth = <0xd600>;
                xlnx,enc-buffer-en;
                xlnx,axi-dec-range0 = <0x0>;
                xlnx,hdl-core-clk = <0x29b>;
                xlnx,axi-mcu-base = <0x0>;
                xlnx,encodercolordepth = <0xa>;
                xlnx,encodernumcores = <0x4>;
                xlnx,decodercolordepth = <0xa>;
                xlnx,hdl-pll-clk-hi = <0x21>;
                xlnx,hdl-num-concurrent-streams = <0x0>;
                xlnx,core-clk = <0x29b>;
                xlnx,axi-enc-base1 = <0x0>;
                xlnx,enc-frame-size = <0x4>;
                xlnx,encodercodingtype = "INTRA_ONLY";
                xlnx,hdl-frame-size-y = <0x870>;
                xlnx,enc-buffer-motion-vec-range = <0x0>;
                xlnx,axi-enc-base0 = <0x0>;
                xlnx,hdl-frame-size-x = <0xf00>;
                xlnx,decodercodingtype = "INTRA_ONLY";
                xlnx,axi-dec-base1 = <0x0>;
                xlnx,enc-buffer-type = <0x0>;
                xlnx,enc-color-depth = <0x1>;
                xlnx,hdl-wpp-en = <0x0>;
                xlnx,no-of-dec-streams = <0x1>;
                xlnx,axi-dec-base0 = <0x0>;
                xlnx,enchorresolution = <0xf00>;
                xlnx,encoderchromaformat = "4_2_2";
                xlnx,hdl-axi-dec-range1 = <0x0>;
                xlnx,enable-decoder;
                xlnx,hdl-axi-dec-range0 = <0x0>;
                xlnx,hdl-enc-buffer-manual-override = <0x1>;
                xlnx,hdl-enc-buffer-motion-vec-range = <0x0>;
                xlnx,hdl-dec-color-depth = <0x1>;
                clock-names = "pll_ref", "aclk", "vcu_core_enc", "vcu_mcu_enc", "vcu_core_dec", "vcu_mcu_dec";
                xlnx,enc-coding-type = <0x1>;
                xlnx,hdl-fps = <0x3c>;
                xlnx,vcu-enc0-data-width = <0x80>;
                xlnx,enc-clk = <0x0>;
                xlnx,enc-buffer-b-frame = <0x0>;
                xlnx,edk-iptype = "PERIPHERAL";
                xlnx,dec-fps = <0x3>;
                xlnx,hdl-video-standard = <0x0>;
                xlnx,hdl-dec-coding-type = <0x0>;
                clocks = <&misc_clk_1>,
                 <&misc_clk_0>,
                 <&vcu_0 0x0>,
                 <&vcu_0 0x1>,
                 <&vcu_0 0x2>,
                 <&vcu_0 0x3>;
                xlnx,enableencoder;
                xlnx,hdl-table-no = <0x1>;
                xlnx,enc-buffer-size = <0x85c>;
                xlnx,dec-frame-size = <0x4>;
                xlnx,vcu-mcu-data-width = <0x20>;
                xlnx,vcu-dec1-data-width = <0x80>;
                xlnx,enc-buffer-size-actual = <0x28d>;
                xlnx,hdl-pll-clk-lo = <0x20>;
                xlnx,hdl-ram-type = <0x0>;
                xlnx,hdl-dec-color-format = <0x1>;
                xlnx,axi-dec-clk = <0x0>;
                xlnx,table-no = <0x1>;
                interrupts = <0x0 0x2>;
                xlnx,name = "vcu_0";
                xlnx,hdl-axi-mcu-base = <0x0>;
                xlnx,hdl-mcu-clk = <0x1bc>;
                xlnx,hdl-axi-dec-clk = <0x0>;
                xlnx,hdl-test-port-en = <0x0>;
                xlnx,pll-clk = <0x1fca055>;
                xlnx,dec-color-format = <0x1>;
                xlnx,enc-buffer-manual-override = <0x1>;
                xlnx,hdl-pll-bypass = <0x0>;
                xlnx,axi-mcu-clk = <0xc8>;
                xlnx,hdl-dec-video-standard = <0x0>;
                xlnx,no-of-streams = <0x1>;
                xlnx,decodernumcores = <0x2>;
                xlnx,enc-mem-uram-used = <0x28d>;
                ranges;
                xlnx,enc-video-standard = <0x0>;
                xlnx,hdl-axi-mcu-clk = <0x40000000>;
                xlnx,hdl-dec-frame-size-y = <0x870>;
                xlnx,hdl-color-depth = <0x1>;
                xlnx,hdl-dec-frame-size-x = <0xf00>;
                interrupt-parent = <&axi_intc_0>;
                xlnx,decverresolution = <0x870>;
                xlnx,hdl-encoder-en = <0x1>;
                xlnx,enable-encoder;
                xlnx,dec-color-depth = <0x1>;
                xlnx,vcu-axiliteapb-data-width = <0x20>;
                compatible = "xlnx,vcu-1.2", "xlnx,vcu";
                xlnx,decoderchromaformat = "4_2_2";
                xlnx,axi-enc-range1 = <0x0>;
                xlnx,enc-color-format = <0x1>;
                xlnx,hdl-coding-type = <0x1>;
                xlnx,hdl-vcu-test-en = <0x0>;
                interrupt-names = "vcu_host_interrupt";
                xlnx,axi-enc-range0 = <0x0>;
                xlnx,dec-coding-type = <0x0>;
                xlnx,enc-fps = <0x3>;
                xlnx,vcu-dec0-data-width = <0x80>;
                xlnx,hdl-axi-mcu-range = <0x0>;
                #address-cells = <0x2>;
                xlnx,hdl-enc-buffer-en = <0x1>;
                xlnx,hdl-enc-clk = <0x0>;
                reg = <0x0 0x80140000 0x0 0x1000 0x0 0x80141000 0x0 0x1000>;
                #size-cells = <0x2>;
                xlnx,ip-name = "vcu";
                xlnx,enc-mem-bram-used = <0x0>;
                xlnx,encverresolution = <0x870>;
                xlnx,hdl-dec-fps = <0x3c>;
                xlnx,pll-bypass = <0x0>;
                xlnx,dec-video-standard = <0x0>;
                xlnx,vcu-enc1-data-width = <0x80>;
                xlnx,enabledecoder;
                xlnx,hdl-axi-enc-range1 = <0x0>;
                xlnx,axi-enc-clk = <0x0>;
                xlnx,encodercoding = "H.265";
                xlnx,hdl-axi-enc-range0 = <0x0>;
                xlnx,mcu-clk = <0x1bc>;
                xlnx,hdl-axi-enc-base1 = <0x0>;
                xlnx,hdl-decoder-en = <0x1>;
                xlnx,decodercoding = "H.265";
                xlnx,hdl-axi-enc-base0 = <0x0>;
                xlnx,hdl-color-format = <0x1>;

                encoder: al5e@80100000 {
                        reg = <0x0 0x80100000 0x0 0x10000>;
                        compatible = "al,al5e-1.2", "al,al5e";
                        interrupts = <0x0 0x2>;
                        interrupt-parent = <&axi_intc_0>;
                };

                decoder: al5d@80120000 {
                        reg = <0x0 0x80120000 0x0 0x10000>;
                        compatible = "al,al5d-1.2", "al,al5d";
                        interrupts = <0x0 0x2>;
                        interrupt-parent = <&axi_intc_0>;
                };
        };
};

