AnsweredAssumed Answered

Device Tree for AD9371 with ZC706

Question asked by asmaitha on Jan 17, 2017
Latest reply on Feb 3, 2017 by mhennerich

Hello,

I am trying to interface ZC706 and ADRV9371 evaluation boards.

From the reference schematics for ZC706 EV board, what i understood is that AD9371 and AD9528 are connected to the FPGA over SPI interface in the PL section.

                      But in the device tree AD9371 and AD9528 are added under "amba" part as below :

 

amba {
        compatible = "simple-bus";
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        interrupt-parent = <0x1>;
        ranges;

 

        spi@e0006000 {
            compatible = "xlnx,zynq-spi-r1p6";
            reg = <0xe0006000 0x1000>;
            status = "okay";
            interrupt-parent = <0x1>;
            interrupts = <0x0 0x1a 0x4>;
            clocks = <0x2 0x19 0x2 0x22>;
            clock-names = "ref_clk", "pclk";
            #address-cells = <0x1>;
            #size-cells = <0x0>;

 

            ad9528-1@0 {
                #address-cells = <0x1>;
                #size-cells = <0x0>;
                #clock-cells = <0x1>;
                compatible = "ad9528";
                spi-cpol;
                spi-cpha;
                spi-max-frequency = <0x989680>;
                reg = <0x0>;
                clock-output-names = "ad9528-1_out0", "ad9528-1_out1", "ad9528-1_out2", "ad9528-1_out3", "ad9528-1_out4", "ad9528-1_out5", "ad9528-1_out6", "ad9528-1_out7", "ad9528-1_out8", "ad9528-1_out9", "ad9528-1_out10", "ad9528-1_out11", "ad9528-1_out12", "ad9528-1_out13";
                adi,vcxo-freq = <0x7530000>;
                adi,refa-enable;
                adi,refa-diff-rcv-enable;
                adi,refa-r-div = <0x1>;
                adi,osc-in-cmos-neg-inp-enable;
                adi,pll1-feedback-div = <0x4>;
                adi,pll1-charge-pump-current-nA = <0x1388>;
                adi,pll2-ndiv-a-cnt = <0x2>;
                adi,pll2-ndiv-b-cnt = <0x7>;
                adi,pll2-vco-diff-m1 = <0x3>;
                adi,pll2-n2-div = <0xa>;
                adi,pll2-r1-div = <0x1>;
                adi,pll2-charge-pump-current-nA = <0xc4888>;
                adi,sysref-src = <0x2>;
                adi,sysref-pattern-mode = <0x1>;
                adi,sysref-k-div = <0x200>;
                adi,sysref-request-enable;
                adi,sysref-nshot-mode = <0x3>;
                adi,sysref-request-trigger-mode = <0x0>;
                adi,rpole2 = <0x0>;
                adi,rzero = <0x7>;
                adi,cpole1 = <0x2>;
                adi,status-mon-pin0-function-select = <0x1>;
                adi,status-mon-pin1-function-select = <0x7>;
                reset-gpios = <0x4 0x71 0x0>;
                linux,phandle = <0x8>;
                phandle = <0x8>;

 

                channel@13 {
                    reg = <0xd>;
                    adi,extended-name = "DEV_CLK";
                    adi,driver-mode = <0x0>;
                    adi,divider-phase = <0x0>;
                    adi,channel-divider = <0xa>;
                    adi,signal-source = <0x0>;
                };

 

                channel@1 {
                    reg = <0x1>;
                    adi,extended-name = "FMC_CLK";
                    adi,driver-mode = <0x0>;
                    adi,divider-phase = <0x0>;
                    adi,channel-divider = <0xa>;
                    adi,signal-source = <0x0>;
                };

 

                channel@12 {
                    reg = <0xc>;
                    adi,extended-name = "DEV_SYSREF";
                    adi,driver-mode = <0x0>;
                    adi,divider-phase = <0x0>;
                    adi,channel-divider = <0xa>;
                    adi,signal-source = <0x2>;
                };

 

                channel@3 {
                    reg = <0x3>;
                    adi,extended-name = "FMC_SYSREF";
                    adi,driver-mode = <0x0>;
                    adi,divider-phase = <0x0>;
                    adi,channel-divider = <0xa>;
                    adi,signal-source = <0x2>;
                };
            };

 

            ad9371-phy@1 {
                #address-cells = <0x1>;
                #size-cells = <0x0>;
                #clock-cells = <0x1>;
                compatible = "ad9371";
                reg = <0x1>;
                spi-max-frequency = <0x17d7840>;
                clocks = <0x5 0x6 0x7 0x8 0xd>;
                clock-names = "jesd_rx_clk", "jesd_tx_clk", "jesd_rx_os_clk", "dev_clk";
                clock-output-names = "rx_sampl_clk", "rx_os_sampl_clk", "tx_sampl_clk";
                adi,clocks-clk-pll-vco-freq_khz = <0x960000>;
                adi,clocks-device-clock_khz = <0x1e000>;
                adi,clocks-clk-pll-hs-div = <0x4>;
                adi,clocks-clk-pll-vco-div = <0x2>;
                adi,jesd204-obs-framer-over-sample = <0x0>;
                adi,rx-profile-adc-div = <0x1>;
                adi,rx-profile-en-high-rej-dec5 = <0x1>;
                adi,rx-profile-iq-rate_khz = <0x1e000>;
                adi,rx-profile-rf-bandwidth_hz = <0x5f5e100>;
                adi,rx-profile-rhb1-decimation = <0x1>;
                adi,rx-profile-rx-bbf-3db-corner_khz = <0x186a0>;
                adi,rx-profile-rx-dec5-decimation = <0x5>;
                adi,rx-profile-rx-fir-decimation = <0x2>;
                adi,obs-profile-adc-div = <0x1>;
                adi,obs-profile-en-high-rej-dec5 = <0x0>;
                adi,obs-profile-iq-rate_khz = <0x3c000>;
                adi,obs-profile-rf-bandwidth_hz = <0xbebc200>;
                adi,obs-profile-rhb1-decimation = <0x1>;
                adi,obs-profile-rx-bbf-3db-corner_khz = <0x186a0>;
                adi,obs-profile-rx-dec5-decimation = <0x5>;
                adi,obs-profile-rx-fir-decimation = <0x1>;
                adi,tx-profile-dac-div = <0x1>;
                adi,tx-profile-iq-rate_khz = <0x3c000>;
                adi,tx-profile-primary-sig-bandwidth_hz = <0x47868c0>;
                adi,tx-profile-rf-bandwidth_hz = <0xbebc200>;
                adi,tx-profile-thb1-interpolation = <0x2>;
                adi,tx-profile-thb2-interpolation = <0x1>;
                adi,tx-profile-tx-bbf-3db-corner_khz = <0x186a0>;
                adi,tx-profile-tx-dac-3db-corner_khz = <0x2e425>;
                adi,tx-profile-tx-fir-interpolation = <0x1>;
                adi,tx-profile-tx-input-hb-interpolation = <0x1>;
                adi,sniffer-profile-adc-div = <0x1>;
                adi,sniffer-profile-en-high-rej-dec5 = <0x0>;
                adi,sniffer-profile-iq-rate_khz = <0x7800>;
                adi,sniffer-profile-rf-bandwidth_hz = <0x1312d00>;
                adi,sniffer-profile-rhb1-decimation = <0x2>;
                adi,sniffer-profile-rx-bbf-3db-corner_khz = <0x186a0>;
                adi,sniffer-profile-rx-dec5-decimation = <0x5>;
                adi,sniffer-profile-rx-fir-decimation = <0x4>;
                reset-gpios = <0x4 0x6a 0x0>;
                test-gpios = <0x4 0x6b 0x0>;
                sysref_req-gpios = <0x4 0x70 0x0>;
                rx2_enable-gpios = <0x4 0x6c 0x0>;
                rx1_enable-gpios = <0x4 0x6d 0x0>;
                tx2_enable-gpios = <0x4 0x6e 0x0>;
                tx1_enable-gpios = <0x4 0x6f 0x0>;
                linux,phandle = <0x14>;
                phandle = <0x14>;
            };
        };

 

 

I understand that between PS and PL we have AXI bus for communication, then why is that AD9371 and AD9528 are not connected under axi as slaves?

 

What is the significnace of amba?

 

Thanks,

Asmaitha

Outcomes