From 9d9a9371b84bd82e72dad38ebbba16be5c841248 Mon Sep 17 00:00:00 2001 From: Cristian Mihai Popa Date: Mon, 15 Dec 2025 13:47:02 +0200 Subject: [PATCH] Added Corundum support for ADRV9009ZU11EG - Added three new build params. for ZynqMp defconfig to support the Corundum features - As of now, Corundum support is only available for ADRV9009ZU11EG/ADRV2CRR variant of the project - arch: arm64: dts: xilinx: zynqmp-adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts : added the settings for Corundum to work (they also work with the default project) - arch: arm64: dts: xilixn: zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts: the corresponding devicetree Corundum on ADRV9009ZU11EG Signed-off-by: Cristian Mihai Popa --- ...adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts | 14 ++++---- ...adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts | 35 +++++++++++++++++++ arch/arm64/configs/adi_zynqmp_defconfig | 3 ++ 3 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts b/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts index 581c32385ebec1..43dcc3b8ce163d 100644 --- a/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts +++ b/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-reva-adrv2crr-fmc-reva.dts @@ -347,9 +347,9 @@ #clock-cells = <2>; assigned-clocks = <&ad9545_clock AD9545_CLK_NCO AD9545_NCO0>, - <&ad9545_clock AD9545_CLK_PLL AD9545_PLL0>, - <&ad9545_clock AD9545_CLK_OUT AD9545_Q0A>; - assigned-clock-rates = <10000>, <1413120000>, <30720000>; + <&ad9545_clock AD9545_CLK_PLL AD9545_PLL1>, + <&ad9545_clock AD9545_CLK_OUT AD9545_Q1B>; + assigned-clock-rates = <10000>, <1562500000>, <156250000>; assigned-clock-phases = <0>, <0>, <0>, <180>; aux-nco-clk@AD9545_NCO0 { @@ -374,8 +374,8 @@ adi,phase-lock-drain-rate = <20>; }; - ad9545_apll0: pll-clk@AD9545_PLL0 { - reg = ; + ad9545_apll1: pll-clk@AD9545_PLL1 { + reg = ; #address-cells = <1>; #size-cells = <0>; @@ -395,8 +395,8 @@ }; }; - output-clk@AD9545_Q0A { - reg = ; + output-clk@AD9545_Q1B { + reg = ; adi,output-mode = ; adi,current-source-microamp = <15000>; }; diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts b/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts new file mode 100644 index 00000000000000..b0d17b3450c017 --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * ADRV2CRR-FMC using ADRV9009-ZU11EG Rev.B System on Module + * + * https://wiki.analog.com/resources/eval/user-guides/adrv9009 + * https://wiki.analog.com/resources/tools-software/linux-drivers/iio-transceiver/adrv9009 + * https://wiki.analog.com/resources/tools-software/linux-software/adrv9009_advanced_plugin + * https://wiki.analog.com/resources/eval/user-guides/adrv9009-zu11eg/adrv2crr-fmc_carrier_board + * + * hdl_project: + * board_revision: + * + * Copyright (C) 2025 Analog Devices Inc. + */ + +#include "zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm.dts" + +/ { + model = "Analog Devices ADRV9009ZU11EG Corundum support"; + /delete-node/ leds; +}; + +&fpga_axi { + mqnic0: ethernet@a0000000 { + compatible = "corundum,mqnic"; + reg = <0x0 0xa0000000 0x1000000>; + reg-names = "csr"; + interrupt-parent = <&gic>; + interrupts = <0 93 1>; + assigned-clocks = <&zynqmp_clk 72>; // PL1_REF + assigned-clock-rates = <250000000>; + resets = <&zynqmp_reset 117>; // ZYNQMP_RESET_PS_PL1 + reset-names = "reset"; + }; +}; \ No newline at end of file diff --git a/arch/arm64/configs/adi_zynqmp_defconfig b/arch/arm64/configs/adi_zynqmp_defconfig index 33a94605c6216b..486f9b4a3094fe 100644 --- a/arch/arm64/configs/adi_zynqmp_defconfig +++ b/arch/arm64/configs/adi_zynqmp_defconfig @@ -23,6 +23,9 @@ CONFIG_ARMV8_DEPRECATED=y CONFIG_SWP_EMULATION=y CONFIG_CP15_BARRIER_EMULATION=y CONFIG_SETEND_EMULATION=y +CONFIG_CORUNDUM_MQNIC=y +CONFIG_AUXILIARY_BUS=y +CONFIG_I2C_ALGOBIT=y # CONFIG_DMI is not set CONFIG_CPU_IDLE=y CONFIG_CPU_FREQ=y