diff --git a/arch/arm64/boot/dts/xilinx/adi-ad9467-fmc-250ebz.dtsi b/arch/arm64/boot/dts/xilinx/adi-ad9467-fmc-250ebz.dtsi new file mode 100644 index 00000000000000..210c0d08e85247 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/adi-ad9467-fmc-250ebz.dtsi @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (C) 2025 Analog Devices Inc. */ + +/ { + clocks { + ad9517_ref_clk: clock@0 { + compatible = "fixed-clock"; + + clock-frequency = <250000000>; + clock-output-names = "ad9517_refclk"; + #clock-cells = <0>; + }; + }; +}; + +&fmc_spi { + status = "okay"; + adc_ad9467: ad9467@0 { + compatible = "adi,ad9467"; + reg = <0>; + + spi-max-frequency = <10000000>; + adi,spi-3wire-enable; + + clocks = <&ad9517_ref_clk>; + clock-names = "adc_clk"; + + #address-cells = <1>; + #size-cells = <0>; + }; + + clk_ad9517: ad9517@1 { + compatible = "adi,ad9517-4"; + reg = <1>; + + spi-max-frequency = <10000000>; + adi,spi-3wire-enable; + + clocks = <&ad9517_ref_clk>, <&ad9517_ref_clk>; + clock-names = "refclk", "clkin"; + + clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7"; + #clock-cells = <1>; + + firmware = "ad9467_intbypass_ad9517.stp"; + + #address-cells = <1>; + #size-cells = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9467-fmc-250ebz.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9467-fmc-250ebz.dts new file mode 100644 index 00000000000000..7bbb3e9754cb85 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9467-fmc-250ebz.dts @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Analog Devices AD9467 + * https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/axi-adc-hdl + * https://wiki.analog.com/resources/eval/ad9467-fmc-250ebz + * https://wiki.analog.com/resources/fpga/xilinx/fmc/ad9467 + * + * hdl_project: + * board_revision: <> + * + * Copyright (C) 2025 Analog Devices Inc. + */ +/dts-v1/; + +#include "zynqmp-zcu102-rev1.0.dts" +#include + +/ { + fpga_axi: fpga-axi@0 { + interrupt-parent = <&gic>; + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges = <0 0 0 0xffffffff>; + + rx_dma: dma-controller@84A30000 { + compatible = "adi,axi-dmac-1.00.a"; + reg = <0x84A30000 0x10000>; + #dma-cells = <1>; + interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&zynqmp_clk 71>; + }; + + cf_ad9467_core_0: cf-ad9467-core-lpc@84A00000 { + compatible = "adi,axi-adc-10.0.a", "adi,axi-ad9467-1.0"; + reg = <0x84A00000 0x10000>; + dmas = <&rx_dma 0>; + dma-names = "rx"; + + spibus-connected = <&adc_ad9467>; + }; + + axi_sysid_0: axi-sysid-0@85000000 { + compatible = "adi,axi-sysid-1.00.a"; + reg = <0x85000000 0x10000>; + }; + }; +}; + +&spi0 { + status = "okay"; +}; + +&i2c1 { + i2c-mux@75 { + i2c@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + eeprom@50 { + compatible = "at24,24c02"; + reg = <0x50>; + }; + + }; + }; +}; + +#define fmc_spi spi0 + +#include "adi-ad9467-fmc-250ebz.dtsi" diff --git a/arch/arm64/configs/adi_zynqmp_defconfig b/arch/arm64/configs/adi_zynqmp_defconfig index ba37cea37873c9..33a94605c6216b 100644 --- a/arch/arm64/configs/adi_zynqmp_defconfig +++ b/arch/arm64/configs/adi_zynqmp_defconfig @@ -111,7 +111,7 @@ CONFIG_PCI=y CONFIG_PCIE_XILINX_NWL=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y -CONFIG_EXTRA_FIRMWARE="ad9144_fmc_ebz_ad9516.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin adau1761.bin Navassa_EvaluationFw.bin RxGainTable.csv RxGainTable_GainCompensated.csv ORxGainTable.csv TxAttenTable.csv Navassa_Stream.bin Navassa_CMOS_profile.json Navassa_LVDS_profile.json Navassa_CMOS_profile_adrv9003.json Navassa_LVDS_profile_adrv9003.json Navassa_LVDS_init_cals.bin Navassa_CMOS_init_cals.bin Navassa_CMOS_init_cals_adrv9003.bin Navassa_LVDS_init_cals_adrv9003.bin Navassa_CMOS_profile_adrv9004.json Navassa_LVDS_profile_adrv9004.json Navassa_CMOS_profile_adrv9005.json Navassa_LVDS_profile_adrv9005.json Navassa_CMOS_profile_adrv9006.json Navassa_LVDS_profile_adrv9006.json ADRV9025_DPDCORE_FW.bin ADRV9025_FW.bin ADRV9025_RxGainTable.csv ADRV9025_TxAttenTable.csv stream_image_6E3E00EFB74FE7D465FA88A171B81B8F.bin ActiveUseCase.profile ActiveUtilInit.profile ActiveUseCase_NLS.profile ActiveUseCase_204C.profile" +CONFIG_EXTRA_FIRMWARE="ad9467_intbypass_ad9517.stp ad9517.stp ad9144_fmc_ebz_ad9516.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin adau1761.bin Navassa_EvaluationFw.bin RxGainTable.csv RxGainTable_GainCompensated.csv ORxGainTable.csv TxAttenTable.csv Navassa_Stream.bin Navassa_CMOS_profile.json Navassa_LVDS_profile.json Navassa_CMOS_profile_adrv9003.json Navassa_LVDS_profile_adrv9003.json Navassa_LVDS_init_cals.bin Navassa_CMOS_init_cals.bin Navassa_CMOS_init_cals_adrv9003.bin Navassa_LVDS_init_cals_adrv9003.bin Navassa_CMOS_profile_adrv9004.json Navassa_LVDS_profile_adrv9004.json Navassa_CMOS_profile_adrv9005.json Navassa_LVDS_profile_adrv9005.json Navassa_CMOS_profile_adrv9006.json Navassa_LVDS_profile_adrv9006.json ADRV9025_DPDCORE_FW.bin ADRV9025_FW.bin ADRV9025_RxGainTable.csv ADRV9025_TxAttenTable.csv stream_image_6E3E00EFB74FE7D465FA88A171B81B8F.bin ActiveUseCase.profile ActiveUtilInit.profile ActiveUseCase_NLS.profile ActiveUseCase_204C.profile" CONFIG_EXTRA_FIRMWARE_DIR="./firmware" CONFIG_CONNECTOR=y CONFIG_MTD=y