AD7768
Recommended for New Designs
The AD7768/AD7768-4 are 8-channel and 4-channel 24-bit, simultaneous sampling, sigma-delta (Σ-Δ) analog-to-digital converters (ADCs) with power scaling...
Datasheet
AD7768 on Analog.com
Hello, my hardware is ad7768 and 7020.
I'm building a vivado project using hdl 2022_R2 version of ad7768evb, and I'm able to get the data through vitis using the bare metal project, but I'm not able to get the data through Linux!
The kernel is using version 2022_R2
Here is my device tree
/ { amba_pl: amba_pl { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; ranges ; vref: regulator-vref { compatible = "regulator-fixed"; regulator-name = "fixed-supply"; regulator-min-microvolt = <4096000>; regulator-max-microvolt = <4096000>; regulator-always-on; }; clocks { ad7768_mclk: clock@0 { #clock-cells = <0>; clock-frequency = <32768000>; compatible = "fixed-clock"; }; }; // rx_dma: rx-dmac@7c400000 { // clocks = <&clkc 16>; // compatible = "adi,axi-dmac-1.00.a"; // interrupt-parent = <&intc>; // interrupts = <0 29 4>; // reg = <0x7c400000 0x1000>; // #dma-cells = <1>; // // adi,channels { // // #size-cells = <0>; // // #address-cells = <1>; // // dma-channel@0 { // // reg = <0>; // // adi,source-bus-width = <32>; // // adi,source-bus-type = <2>; // // adi,destination-bus-width = <64>; // // adi,destination-bus-type = <0>; // // }; // // }; // }; ad7768_dma_2: axi_dmac@7c480000 { /* This is a place holder node for a custom IP, user may need to update the entries */ clocks = <&clkc 16>; compatible = "adi,axi-dmac-1.00.a"; interrupt-parent = <&intc>; interrupts = <0 30 4>; reg = <0x7c480000 0x1000>; #dma-cells = <1>; adi,channels { #size-cells = <0>; #address-cells = <1>; dma-channel@0 { reg = <0>; adi,source-bus-width = <256>; adi,source-bus-type = <2>; adi,destination-bus-width = <64>; adi,destination-bus-type = <0>; }; }; }; axi_ad7768_adc: cf_axi_adc@43c00000 { compatible = "adi,axi-adc-10.0.a"; reg = <0x43c00000 0x10000>; dmas = <&ad7768_dma_2 0>; dma-names = "rx"; spibus-connected = <&ad7768>; // adi,adc-dev = <&ad7768>; }; }; }; &spi0 { status = "okay"; ad7768: adc@0 { compatible = "adi,ad7768"; reg = <0>; spi-max-frequency = <1000000>; // dmas = <&rx_dma 0>; // dma-names = "rx"; vref-supply = <&vref>; clocks = <&ad7768_mclk>; clock-names = "mclk"; adi,data-lines = <8>; reset-gpios = <&gpio0 86 GPIO_ACTIVE_LOW>; }; };
Here is my startup log, some register prints can be ignored (I added some print logs in debugging)
U-Boot 2020.01-dirty (Jan 16 2025 - 16:07:58 +0000) CPU: Zynq 7z020 Silicon: v3.1 DRAM: ECC disabled 1 GiB myir_board_init MMC: mmc@e0100000: 0, mmc@e0101000: 1 Loading Environment from SPI Flash... SF: Detected n25q256a with page size 256 Bytes, erase size 4 KiB, total 32 MiB *** Warning - bad CRC, using default environment In: serial@e0001000 Out: serial@e0001000 Err: serial@e0001000 Net: ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr -1, interface rgmii-id Warning: ethernet@e000b000 using MAC address from DT eth0: ethernet@e000b000 Hit any key to stop autoboot: 0 SF: Detected n25q256a with page size 256 Bytes, erase size 4 KiB, total 32 MiB device 0 offset 0x520000, size 0xa00000 SF: 10485760 bytes @ 0x520000 Read: OK ## Loading kernel from FIT Image at 10000000 ... Using 'conf@system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'kernel@1' kernel subimage Description: Linux kernel Type: Kernel Image Compression: uncompressed Data Start: 0x100000e8 Data Size: 4069584 Bytes = 3.9 MiB Architecture: ARM OS: Linux Load Address: 0x00200000 Entry Point: 0x00200000 Hash algo: sha256 Hash value: 910830340a0c74d6f08256c2d05e905bb3428f5149f2848b368b9e426607aba6 Verifying Hash Integrity ... sha256+ OK ## Loading fdt from FIT Image at 10000000 ... Using 'conf@system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'fdt@system-top.dtb' fdt subimage Description: Flattened Device Tree blob Type: Flat Device Tree Compression: uncompressed Data Start: 0x103e1ac4 Data Size: 13905 Bytes = 13.6 KiB Architecture: ARM Hash algo: sha256 Hash value: 68102965b22da17a2a16320e3f36fafc05de1379b67472288a4c2fa14e0748c2 Verifying Hash Integrity ... sha256+ OK Booting using the fdt blob at 0x103e1ac4 Loading Kernel Image Loading Device Tree to 07ff9000, end 07fff650 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.15.36-glj-182069-gcd0ab2574b23-dirty (u@ubuntu) (arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609, GNU ld (GNU Binutils for Ubuntu) 2.26.1) #81 SMP PREEMPT Mon Jan 20 01:14:42 CST 2025 [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: xlnx,zynq-7000 [ 0.000000] printk: bootconsole [earlycon0] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 16 MiB at 0x3f000000 [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x000000002fffffff] [ 0.000000] HighMem [mem 0x0000000030000000-0x000000003fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000003fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff] [ 0.000000] percpu: Embedded 11 pages/cpu s16204 r8192 d20660 u45056 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260608 [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk1p1 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1 myir_encoder.display_type=HDMI [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 1012924K/1048576K available (6144K kernel code, 273K rwdata, 1664K rodata, 1024K init, 120K bss, 19268K reserved, 16384K cma-reserved, 245760K highmem) [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] efuse mapped to (ptrval) [ 0.000000] slcr mapped to (ptrval) [ 0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 [ 0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 [ 0.000000] L2C-310 enabling early BRESP for Cortex-A9 [ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9 [ 0.000000] L2C-310 ID prefetch enabled, offset 1 lines [ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled [ 0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB [ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 [ 0.000000] random: get_random_bytes called from start_kernel+0x3f0/0x5e0 with crng_init=0 [ 0.000000] zynq_clock_init: clkc starts at (ptrval) [ 0.000000] Zynq clock init [ 0.000001] sched_clock: 64 bits at 166MHz, resolution 6ns, wraps every 4398046511103ns [ 0.007777] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns [ 0.018713] Switching to timer-based delay loop, resolution 6ns [ 0.024635] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns [ 0.033604] timer #0 at (ptrval), irq=25 [ 0.038180] Console: colour dummy device 80x30 [ 0.042448] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666) [ 0.052841] pid_max: default: 32768 minimum: 301 [ 0.057627] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.064716] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.073164] CPU: Testing write buffer coherency: ok [ 0.077879] CPU0: Spectre v2: using BPIALL workaround [ 0.083033] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.089219] Setting up static identity map for 0x100000 - 0x100060 [ 0.095337] rcu: Hierarchical SRCU implementation. [ 0.100675] smp: Bringing up secondary CPUs ... [ 0.105858] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.105879] CPU1: Spectre v2: using BPIALL workaround [ 0.116469] smp: Brought up 1 node, 2 CPUs [ 0.120417] SMP: Total of 2 processors activated (666.66 BogoMIPS). [ 0.126563] CPU: All CPU(s) started in SVC mode. [ 0.131844] devtmpfs: initialized [ 0.139593] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 [ 0.147255] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.156875] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.164547] pinctrl core: initialized pinctrl subsystem [ 0.170604] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.178842] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.186698] thermal_sys: Registered thermal governor 'step_wise' [ 0.186850] cpuidle: using governor menu [ 0.206830] amba f8801000.etb: Fixing up cyclic dependency with replicator [ 0.213914] amba f8803000.tpiu: Fixing up cyclic dependency with replicator [ 0.221098] amba f8804000.funnel: Fixing up cyclic dependency with replicator [ 0.228437] amba f889c000.ptm: Fixing up cyclic dependency with f8804000.funnel [ 0.235918] amba f889d000.ptm: Fixing up cyclic dependency with f8804000.funnel [ 0.245259] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. [ 0.253048] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.259393] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 32, base_baud = 3125000) is a xuartps [ 0.268863] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 33, base_baud = 3125000) is a xuartps [ 0.277886] printk: console [ttyPS0] enabled [ 0.277886] printk: console [ttyPS0] enabled [ 0.286244] printk: bootconsole [earlycon0] disabled [ 0.286244] printk: bootconsole [earlycon0] disabled [ 0.305232] ------- regulator-fixed [ 0.310207] SCSI subsystem initialized [ 0.314241] usbcore: registered new interface driver usbfs [ 0.319803] usbcore: registered new interface driver hub [ 0.325160] usbcore: registered new device driver usb [ 0.330497] pps_core: LinuxPPS API ver. 1 registered [ 0.335460] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.344629] PTP clock support registered [ 0.348952] jesd204: found 0 devices and 0 topologies [ 0.354043] FPGA manager framework [ 0.358829] clocksource: Switched to clocksource arm_global_timer [ 0.376061] NET: Registered PF_INET protocol family [ 0.381153] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.389958] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) [ 0.398425] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.406269] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.413606] TCP: Hash tables configured (established 8192 bind 8192) [ 0.420108] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.426770] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.434046] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.440361] RPC: Registered named UNIX socket transport module. [ 0.446287] RPC: Registered udp transport module. [ 0.451027] RPC: Registered tcp transport module. [ 0.455730] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.462614] armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing. [ 0.471303] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available [ 0.480831] workingset: timestamp_bits=30 max_order=18 bucket_order=0 [ 0.488313] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 0.495704] bounce: pool size: 64 pages [ 0.499625] io scheduler mq-deadline registered [ 0.504157] io scheduler kyber registered [ 0.509398] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized [ 0.517085] --- irq number: 55 [ 0.520378] --- axi_dmac_read: reg: 0x0 val: 0x40461 [ 0.525430] --- version: 0x40461 [ 0.528737] --- axi_dmac_read: reg: 0x10 val: 0x72503 [ 0.533896] --chan->src_width: 32 [ 0.537295] --chan->dest_width: 8 [ 0.540706] --chan->direction: 2 [ 0.544015] --- axi_dmac_read: reg: 0x40c val: 0x2 [ 0.548899] --- axi_dmac_write: reg: 0x40c val: 0x1 [ 0.553857] --- axi_dmac_read: reg: 0x40c val: 0x0 [ 0.558726] --- axi_dmac_write: reg: 0x40c val: 0x2 [ 0.563701] --- axi_dmac_read: reg: 0x41c val: 0x0 [ 0.568569] --- axi_dmac_write: reg: 0x41c val: 0x1 [ 0.573541] --- axi_dmac_read: reg: 0x41c val: 0x0 [ 0.578413] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 0.583383] --- axi_dmac_write: reg: 0x418 val: 0xffffffff [ 0.588988] --- axi_dmac_read: reg: 0x418 val: 0xffffff [ 0.594297] --- axi_dmac_write: reg: 0x410 val: 0xffffffff [ 0.599879] --- axi_dmac_read: reg: 0x410 val: 0x1ffffff8 [ 0.605355] --- axi_dmac_write: reg: 0x414 val: 0xffffffff [ 0.610942] --- axi_dmac_read: reg: 0x414 val: 0x0 [ 0.615815] --- axi_dmac_write: reg: 0x80 val: 0x0 [ 0.632067] brd: module loaded [ 0.642782] loop: module loaded [ 0.649346] spi-nor spi0.0: SPI-NOR-UniqueID 10400096161300190400240045d673ff2d [ 0.656666] spi-nor spi0.0: found n25q256a, expected n25q512a [ 0.662649] spi-nor spi0.0: n25q256a (32768 Kbytes) [ 0.667569] 3 fixed-partitions partitions found on MTD device spi0.0 [ 0.673941] Creating 3 MTD partitions on "spi0.0": [ 0.678735] 0x000000000000-0x000000500000 : "boot" [ 0.685216] 0x000000500000-0x000000520000 : "bootenv" [ 0.691910] 0x000000520000-0x000000f20000 : "kernel" [ 0.700718] CAN device driver interface [ 0.709635] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 36 (00:0a:35:00:00:00) [ 0.720534] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.727151] usbcore: registered new interface driver usb-storage [ 0.734588] i2c_dev: i2c /dev entries driver [ 0.739647] Xilinx Zynq CpuIdle Driver started [ 0.744579] sdhci: Secure Digital Host Controller Interface driver [ 0.750775] sdhci: Copyright(c) Pierre Ossman [ 0.755129] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.762220] ledtrig-cpu: registered to indicate activity on CPUs [ 0.768472] usbcore: registered new interface driver usbhid [ 0.774092] usbhid: USB HID core driver [ 0.778163] -- ad7768_probe [ 0.781088] -- iio_priv [ 0.783798] -- devm_add_action_or_reset [ 0.787715] -- devm_clk_get [ 0.788025] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA [ 0.790684] -- clk_prepare_enable [ 0.797770] mmc1: SDHCI controller on e0101000.mmc [e0101000.mmc] using ADMA [ 0.801147] -- devm_add_action_or_reset [ 0.812140] -- devm_gpiod_get_optional [ 0.816079] -- gpio_reset [ 0.822256] --- ad7768_spi_reg_read: addr: 0xa val: 0x6 [ 0.827670] -- ad7768 Rev ID 0x6. [ 0.831162] -- ad7768_datalines_from_dt [ 0.835141] -- ad7768_set_available_sampl_freq [ 0.839786] -- ad7768_set_power_mode [ 0.843624] --- ad7768_spi_reg_read: addr: 0x4 val: 0x0 [ 0.849010] --- ad7768_spi_reg_write: addr: 0x4 val: 0x30 [ 0.854773] --- ad7768_spi_reg_read: addr: 0x4 val: 0x30 [ 0.860227] --- ad7768_spi_reg_write: addr: 0x4 val: 0x33 [ 0.865813] -- mclk: 32768000 [ 0.868909] -- freq: 256000 f_cfg.freq: 256000 [ 0.873485] -- i: 5 [ 0.875707] -- dclk: 8192000 [ 0.878837] --- ad7768_spi_reg_read: addr: 0x7 val: 0x0 [ 0.884171] --- ad7768_spi_reg_write: addr: 0x7 val: 0x1 [ 0.889687] -- ad7768_spi_write_mask: 0 [ 0.893818] --- ad7768_spi_reg_read: addr: 0x1 val: 0xd [ 0.899233] --- ad7768_spi_reg_write: addr: 0x1 val: 0x8 [ 0.904883] --- ad7768_spi_reg_read: addr: 0x6 val: 0x80 [ 0.910377] --- ad7768_spi_reg_write: addr: 0x6 val: 0x0 [ 0.916014] --- ad7768_spi_reg_read: addr: 0x6 val: 0x0 [ 0.921441] --- ad7768_spi_reg_write: addr: 0x6 val: 0x80 [ 0.927063] -- ad7768_spi_write_mask [ 0.930852] --- ad7768_spi_reg_read: addr: 0x7 val: 0x1 [ 0.936174] --- ad7768_spi_reg_write: addr: 0x7 val: 0x1 [ 0.941665] -- ad7768_gpio_setup [ 0.944993] --- ad7768_spi_reg_write: addr: 0xe val: 0x80 [ 0.950924] -- device_property_present [ 0.954852] -- -- ad7768_register_axi_adc [ 0.959040] -- -- spi_set_drvdata [ 0.962409] -- ret: 0 [ 0.965345] -- Device Tree Probing: cf_axi_adc [ 0.969984] -- axiadc_probe [ 0.972961] -- devm_kzalloc [ 0.975924] -- spibus-connected [ 0.979266] -- bus_for_each_dev [ 0.982588] -- try_module_get [ 0.985730] -- get_device [ 0.988543] -- devm_add_action_or_reset [ 0.988580] mmc1: new high speed MMC card at address 0001 [ 0.992565] -- devm_iio_device_alloc [ 0.998572] mmcblk1: mmc1:0001 Y1Y256 233 GiB [ 1.001672] -- iio_priv [ 1.008623] -- devm_jesd204_dev_register [ 1.012750] -- platform_get_resource [ 1.012771] mmcblk1: p1 [ 1.016439] -- platform_set_drvdata [ 1.019584] mmcblk1boot0: mmc1:0001 Y1Y256 4.00 MiB [ 1.022517] -- axiadc_read 0xc: 0x0 [ 1.022526] -- iio_device_set_drvdata [ 1.022532] -- axiadc_write 0x40: 0x0 [ 1.032542] -- axiadc_write 0x40: 0x3 [ 1.036547] mmcblk1boot1: mmc1:0001 Y1Y256 4.00 MiB [ 1.038540] -- axiadc_read 0x0: 0xa0300 [ 1.043873] mmcblk1rpmb: mmc1:0001 Y1Y256 16.0 MiB, chardev (246:0) [ 1.047280] -- axiadc_read version: 656128 [ 1.061757] -- axiadc_read 0xa0: 0x8 [ 1.065505] --------------- num_channels: 8 [ 1.069807] -- ad7768 conv->post_set_up [ 1.073790] --- ad7768_post_setup: 0x8 [ 1.077693] -- axiadc_write 0x400: 0x51 [ 1.081704] -- axiadc_write 0x440: 0x51 [ 1.085696] -- axiadc_write 0x480: 0x51 [ 1.089719] -- axiadc_write 0x4c0: 0x51 [ 1.093710] -- axiadc_write 0x500: 0x51 [ 1.097702] -- axiadc_write 0x540: 0x51 [ 1.101711] -- axiadc_write 0x580: 0x51 [ 1.105695] -- axiadc_write 0x5c0: 0x51 [ 1.228852] -- axiadc_write 0x4c: 0x100 [ 1.232773] -- axiadc_write 0x44: 0x800 [ 1.236687] -- st->dp_disable: 0 axiadc_read [ 1.241061] -- axiadc_read 0x4: 0x0 [ 1.244677] -- st->dp_disable: 0 of_property_read_bool [ 1.249918] -- axiadc_append_attrs [ 1.253399] -- devm_iio_device_register [ 1.258126] -- jesd204_fsm_start [ 1.261464] -- jesd204_fsm_start end [ 1.265122] -- axiadc_read 0x4: 0x0 [ 1.268694] cf_axi_adc 43c00000.cf_axi_adc: ADI AIM (10.03.) at 0x43C00000 mapped to 0x(ptrval) probed ADC ad7768_axi_adc as MASTER [ 1.282091] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered [ 1.289280] NET: Registered PF_INET6 protocol family [ 1.295598] Segment Routing with IPv6 [ 1.299325] In-situ OAM (IOAM) with IPv6 [ 1.303354] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 1.310039] NET: Registered PF_PACKET protocol family [ 1.315110] can: controller area network core [ 1.319536] NET: Registered PF_CAN protocol family [ 1.324322] can: raw protocol [ 1.327284] can: broadcast manager protocol [ 1.331491] can: netlink gateway - max_hops=1 [ 1.336247] zynq_pm_remap_ocm: OCM pool is not available [ 1.341597] zynq_pm_suspend_init: Unable to map OCM. [ 1.346575] Registering SWP/SWPB emulation handler [ 1.361902] of-fpga-region fpga-full: FPGA Region probed [ 1.368597] input: gpio-keys as /devices/soc0/gpio-keys/input/input0 [ 1.375692] of_cfs_init [ 1.378166] of_cfs_init: OK [ 1.470523] EXT4-fs (mmcblk1p1): recovery complete [ 1.475335] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled. [ 1.485525] VFS: Mounted root (ext4 filesystem) on device 179:1. [ 1.494638] devtmpfs: mounted [ 1.498996] Freeing unused kernel image (initmem) memory: 1024K [ 1.505178] Run /sbin/init as init process [ 1.582819] random: fast init done INIT: version 2.88 booting Starting udev [ 2.122994] udevd[76]: starting version 3.2.8 [ 2.137346] random: udevd: uninitialized urandom read (16 bytes read) [ 2.144635] random: udevd: uninitialized urandom read (16 bytes read) [ 2.152035] random: udevd: uninitialized urandom read (16 bytes read) [ 2.234895] udevd[77]: starting eudev-3.2.8 [ 3.744571] EXT4-fs (mmcblk1p1): re-mounted. Opts: (null). Quota mode: disabled. hwclock: Cannot access the Hardware Clock via any known method. hwclock: Use the --verbose option to see the details of our search for an access method. Thu Jan 9 17:07:37 UTC 2025 hwclock: Cannot access the Hardware Clock via any known method. hwclock: Use the --verbose option to see the details of our search for an access method. [ 4.380653] urandom_read: 2 callbacks suppressed [ 4.380671] random: dd: uninitialized urandom read (512 bytes read) INIT: Entering runlevel: 5 Configuring network interfaces... [ 4.643230] macb e000b000.ethernet eth0: PHY [e000b000.ethernet-ffffffff:00] driver [Generic PHY] (irq=POLL) [ 4.653129] macb e000b000.ethernet eth0: configuring for phy/rgmii-id link mode udhcpc: started, v1.31.0 udhcpc: sending discover udhcpc: sending discover [ 8.821294] macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx [ 8.828941] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Here are my logs when I get the data via iio_readdev
root@myir:~# cat /proc/interrupts CPU0 CPU1 24: 1 0 GIC-0 27 Edge gt 25: 0 0 GIC-0 43 Level ttc_clockevent 26: 1267 1307 GIC-0 29 Edge twd 27: 0 0 GIC-0 37 Level arm-pmu 28: 0 0 GIC-0 38 Level arm-pmu 33: 133 0 GIC-0 82 Level xuartps 34: 24 0 GIC-0 58 Level e0006000.spi 35: 19 0 GIC-0 51 Level e000d000.spi 36: 52 0 GIC-0 54 Level eth0 37: 52 0 GIC-0 56 Level mmc0 38: 3037 0 GIC-0 79 Level mmc1 48: 0 0 GIC-0 40 Level f8007000.devcfg 55: 0 0 GIC-0 62 Level 7c480000.axi_dmac 56: 0 0 zynq-gpio 47 Edge K1 IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 745 1358 Rescheduling interrupts IPI3: 42 27 Function call interrupts IPI4: 0 0 CPU stop interrupts IPI5: 0 0 IRQ work interrupts IPI6: 0 0 completion interrupts Err: 0 root@myir:~# iio_readdev -u local: -b 256 -s 1024 cf_axi_adc [ 48.983479] -- axiadc_read 0x400: 0x51 [ 48.987322] -- axiadc_write 0x400: 0x51 [ 48.991290] -- axiadc_read 0x440: 0x51 [ 48.995141] -- axiadc_write 0x440: 0x51 [ 48.999087] -- axiadc_read 0x480: 0x51 [ 49.002919] -- axiadc_write 0x480: 0x51 [ 49.006833] -- axiadc_read 0x4c0: 0x51 [ 49.010682] -- axiadc_write 0x4c0: 0x51 [ 49.014602] -- axiadc_read 0x500: 0x51 [ 49.018429] -- axiadc_write 0x500: 0x51 [ 49.022365] -- axiadc_read 0x540: 0x51 [ 49.026198] -- axiadc_write 0x540: 0x51 [ 49.030132] -- axiadc_read 0x580: 0x51 [ 49.033967] -- axiadc_write 0x580: 0x51 [ 49.037882] -- axiadc_read 0x5c0: 0x51 [ 49.041728] -- axiadc_write 0x5c0: 0x51 [ 49.045677] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 49.050662] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.055537] --- axi_dmac_read: reg: 0x404 val: 0x0 [ 49.060406] --- axi_dmac_write: reg: 0x410 val: 0x3f046000 [ 49.065970] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 49.070926] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 49.076142] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 49.081099] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 49.086055] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 49.091036] --- irq: 55 [ 49.093651] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 49.098433] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 49.103303] --- axi_dmac_read: reg: 0x428 val: 0x1 [ 49.108194] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.113126] -- axiadc_write 0x5c: 0xffffffff [ 49.117478] -- axiadc_write 0x88: 0xffffffff [ 49.121817] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 49.126774] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.131643] --- axi_dmac_read: reg: 0x404 val: 0x1 [ 49.136512] --- axi_dmac_write: reg: 0x410 val: 0x3f048000 [ 49.142076] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 49.147032] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 49.152249] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 49.157205] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 49.162161] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 49.167142] --- irq: 55 [ 49.169757] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 49.174539] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 49.179409] --- axi_dmac_read: reg: 0x428 val: 0x3 [ 49.184297] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.189168] -- axiadc_write 0x5c: 0xffffffff [ 49.193523] -- axiadc_write 0x88: 0xffffffff [ 49.197897] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 49.202898] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.207776] --- axi_dmac_read: reg: 0x404 val: 0x2 [ 49.212644] --- axi_dmac_write: reg: 0x410 val: 0x3f04a000 [ 49.218208] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 49.223086] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 49.228372] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 49.233328] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 49.238285] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 49.243271] --- irq: 55 [ 49.245890] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 49.250671] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 49.255541] --- axi_dmac_read: reg: 0x428 val: 0x7 [ 49.260430] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.265354] -- axiadc_write 0x5c: 0xffffffff [ 49.269726] -- axiadc_write 0x88: 0xffffffff [ 49.274108] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 49.279090] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.283969] --- axi_dmac_read: reg: 0x404 val: 0x3 [ 49.288837] --- axi_dmac_write: reg: 0x410 val: 0x3f04c000 [ 49.294401] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 49.299357] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 49.304574] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 49.309530] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 49.314408] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 49.319463] --- irq: 55 [ 49.322074] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 49.326856] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 49.331725] --- axi_dmac_read: reg: 0x428 val: 0xf [ 49.336613] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 49.341544] -- axiadc_write 0x5c: 0xffffffff [ 49.345901] -- axiadc_write 0x88: 0xffffffff [ 50.017348] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 50.027897] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 50.038270] --- axi_dmac_read: reg: 0x404 val: 0x0 [ 50.043138] --- axi_dmac_write: reg: 0x410 val: 0x3f046000 [ 50.048702] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 50.053658] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 50.058875] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 50.063831] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 50.068787] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 50.073774] --- irq: 55 [ 50.076392] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 50.081174] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 50.086043] --- axi_dmac_read: reg: 0x428 val: 0xf [ 50.090934] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 50.095908] -- axiadc_write 0x5c: 0xffffffff [ 50.105894] -- axiadc_write 0x88: 0xffffffff [ 50.782682] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 50.793224] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 50.803603] --- axi_dmac_read: reg: 0x404 val: 0x1 [ 50.808471] --- axi_dmac_write: reg: 0x410 val: 0x3f048000 [ 50.814035] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 50.818991] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 50.824208] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 50.829164] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 50.834120] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 50.839108] --- irq: 55 [ 50.841725] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 50.846506] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 50.851376] --- axi_dmac_read: reg: 0x428 val: 0xf [ 50.856268] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 50.861234] -- axiadc_write 0x5c: 0xffffffff [ 50.871193] -- axiadc_write 0x88: 0xffffffff [ 51.548011] --- axi_dmac_write: reg: 0x400 val: 0x1 [ 51.558532] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 51.568918] --- axi_dmac_read: reg: 0x404 val: 0x2 [ 51.573786] --- axi_dmac_write: reg: 0x410 val: 0x3f04a000 [ 51.579350] --- axi_dmac_write: reg: 0x420 val: 0x0 [ 51.584307] --- axi_dmac_write: reg: 0x418 val: 0x1fff [ 51.589523] --- axi_dmac_write: reg: 0x41c val: 0x0 [ 51.594479] --- axi_dmac_write: reg: 0x40c val: 0x6 [ 51.599436] --- axi_dmac_write: reg: 0x408 val: 0x1 [ 51.604426] --- irq: 55 [ 51.607041] --- axi_dmac_read: reg: 0x84 val: 0x3 [ 51.611822] --- axi_dmac_write: reg: 0x84 val: 0x3 [ 51.616692] --- axi_dmac_read: reg: 0x428 val: 0xf [ 51.621582] --- axi_dmac_read: reg: 0x408 val: 0x0 [ 51.626560] -- axiadc_write 0x5c: 0xffffffff [ 51.636425] -- axiadc_write 0x88: 0xffffffff [ 52.313609] ---iio_dmaengine_buffer_abort [ 52.323130] --- axi_dmac_write: reg: 0x400 val: 0x0 root@myir:~# root@myir:~# root@myir:~# cat /proc/interrupts CPU0 CPU1 24: 1 0 GIC-0 27 Edge gt 25: 0 0 GIC-0 43 Level ttc_clockevent 26: 2057 2095 GIC-0 29 Edge twd 27: 0 0 GIC-0 37 Level arm-pmu 28: 0 0 GIC-0 38 Level arm-pmu 33: 883 0 GIC-0 82 Level xuartps 34: 24 0 GIC-0 58 Level e0006000.spi 35: 19 0 GIC-0 51 Level e000d000.spi 36: 118 0 GIC-0 54 Level eth0 37: 52 0 GIC-0 56 Level mmc0 38: 3234 0 GIC-0 79 Level mmc1 48: 0 0 GIC-0 40 Level f8007000.devcfg 55: 7 0 GIC-0 62 Level 7c480000.axi_dmac 56: 0 0 zynq-gpio 47 Edge K1 IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 869 1661 Rescheduling interrupts IPI3: 45 28 Function call interrupts IPI4: 0 0 CPU stop interrupts IPI5: 0 0 IRQ work interrupts IPI6: 0 0 completion interrupts Err: 0 root@myir:~#
Can you help me, thanks!
Hi,
Sorry for the very late reply - we missed replying to your question somehow.
Please have a look at: https://github.com/analogdevicesinc/linux/blob/main/arch/arm/boot/dts/xilinx/zynq-zed-adv7511-ad7768-axi-adc.dts and https://github.com/analogdevicesinc/linux/blob/main/arch/arm/boot/dts/xilinx/zynq-zed-adv7511-ad7768-4-axi-adc.dts. They correspond to: https://github.com/analogdevicesinc/hdl/tree/main/projects/ad7768evb/zed.
They should work.
Thanks,
Dragos