Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-adrv9025-nls.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Analog Devices ADRV9025
* https://wiki.analog.com/resources/eval/user-guides/adrv9025
* https://wiki.analog.com/resources/tools-software/linux-drivers/iio-transceiver/adrv9025
*
* hdl_project: <adrv9026/zcu102>
* board_revision: <>
*
* Copyright (C) 2020-2025 Analog Devices Inc.
*/
#include "zynqmp-zcu102-rev10-adrv9025.dts"

&trx0_adrv9025 {

clock-output-names = "rx_sampl_clk", "tx_sampl_clk", "rx_os_sampl_clk";

adi,device-profile-name = "ActiveUseCase_NLS.profile";

jesd204-device;
#jesd204-cells = <2>;
jesd204-top-device = <0>; /* This is the TOP device */
jesd204-link-ids = <DEFRAMER0_LINK_TX FRAMER0_LINK_RX FRAMER1_LINK_RX>;

jesd204-inputs =
<&axi_adrv9025_rx_jesd 0 FRAMER0_LINK_RX>,
<&axi_adrv9025_rx_os_jesd 0 FRAMER1_LINK_RX>,
<&axi_adrv9025_core_tx 0 DEFRAMER0_LINK_TX>;
};

&fpga_axi {
rx_os_dma: dma@9c800000 {
compatible = "adi,axi-dmac-1.00.a";
reg = <0x9c800000 0x10000>;
#dma-cells = <1>;
#clock-cells = <0>;
dma-coherent;
interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&zynqmp_clk 73>;
};

axi_rx_os_clkgen: axi-clkgen@83c20000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x83c20000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&zynqmp_clk 71>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_rx_os_clkgen";
};

axi_adrv9025_core_rx_os: axi-adrv9025-rx-os-hpc@84a08000 {
compatible = "adi,axi-adrv9025-obs-1.0";
reg = <0x84a08000 0x8000>;
dmas = <&rx_os_dma 0>;
dma-names = "rx";
clocks = <&trx0_adrv9025 2>;
clock-names = "sampl_clk";
spibus-connected=<&trx0_adrv9025>;
label="axi-adrv9025-rx-os-hpc";
};

axi_adrv9025_rx_os_jesd: axi-jesd204-rx-os@85aa0000 {
compatible = "adi,axi-jesd204-rx-1.0";
reg = <0x85aa0000 0x1000>;

interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&zynqmp_clk 71>, <&axi_rx_os_clkgen>, <&axi_adrv9025_adxcvr_rx_os 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
clock-output-names = "jesd_rx_os_lane_clk";

adi,octets-per-frame = <4>;
adi,frames-per-multiframe = <32>;

jesd204-device;
#jesd204-cells = <2>;
jesd204-inputs = <&axi_adrv9025_adxcvr_rx_os 0 FRAMER1_LINK_RX>;
};

axi_adrv9025_adxcvr_rx_os: axi-adxcvr-rx-os@85a60000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,axi-adxcvr-1.0";
reg = <0x85a60000 0x1000>;

clocks = <&clk0_ad9528 13>;
clock-names = "conv";

#clock-cells = <1>;
clock-output-names = "rx_os_gt_clk", "rx_os_out_clk";

adi,sys-clk-select = <XCVR_CPLL>;
adi,out-clk-select = <XCVR_REFCLK>;
adi,use-lpm-enable;
adi,use-cpll-enable;

jesd204-device;
#jesd204-cells = <2>;
jesd204-inputs = <&clk0_ad9528 0 FRAMER1_LINK_RX>;
};
};
25 changes: 20 additions & 5 deletions arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-adrv9025.dts
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,24 @@
clocks = <&zynqmp_clk 73>;
};

axi_rx_clkgen: axi-clkgen@83c10000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x83c10000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&zynqmp_clk 71>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_rx_clkgen";
};

axi_tx_clkgen: axi-clkgen@83c00000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x83c00000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&zynqmp_clk 71>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_tx_clkgen";
};

axi_adrv9025_core_rx: axi-adrv9025-rx-hpc@84a00000 {
compatible = "adi,axi-adc-10.0.a";
reg = <0x84a00000 0x8000>;
Expand Down Expand Up @@ -300,7 +318,7 @@

interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&zynqmp_clk 71>, <&clk0_ad9528 3>, <&axi_adrv9025_adxcvr_rx 0>;
clocks = <&zynqmp_clk 71>, <&axi_rx_clkgen>, <&axi_adrv9025_adxcvr_rx 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
Expand All @@ -320,7 +338,7 @@

interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&zynqmp_clk 71>, <&clk0_ad9528 3>, <&axi_adrv9025_adxcvr_tx 0>;
clocks = <&zynqmp_clk 71>, <&axi_tx_clkgen>, <&axi_adrv9025_adxcvr_tx 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
Expand Down Expand Up @@ -352,7 +370,6 @@
jesd204-device;
#jesd204-cells = <2>;
jesd204-inputs = <&clk0_ad9528 0 FRAMER0_LINK_RX>;

};

axi_adrv9025_adxcvr_tx: axi-adxcvr-tx@84a80000 {
Expand Down Expand Up @@ -383,8 +400,6 @@
};
};



// ad9528_reset_b, // 68
// ad9528_sysref_req, // 67
// adrv9025_tx1_enable, // 66
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/configs/adi_zynqmp_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
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"
CONFIG_EXTRA_FIRMWARE_DIR="./firmware"
CONFIG_CONNECTOR=y
CONFIG_MTD=y
Expand Down
31 changes: 25 additions & 6 deletions arch/microblaze/boot/dts/vcu118_adrv9025.dts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
#dma-cells = <1>;
#clock-cells = <0>;
interrupt-parent = <&axi_intc>;
interrupts = <12 2>;
interrupts = <13 2>;
clocks = <&clk_bus_0>;
};

Expand All @@ -50,10 +50,28 @@
#dma-cells = <1>;
#clock-cells = <0>;
interrupt-parent = <&axi_intc>;
interrupts = <13 2>;
interrupts = <12 2>;
clocks = <&clk_bus_0>;
};

axi_rx_clkgen: axi-clkgen@43c10000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x43c10000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&clk_bus_0>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_rx_clkgen";
};

axi_tx_clkgen: axi-clkgen@43c00000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x43c00000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&clk_bus_0>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_tx_clkgen";
};

axi_adrv9025_core_rx: axi-adrv9025-rx-hpc@44a00000 {
compatible = "adi,axi-adc-10.0.a";
reg = <0x44a00000 0x8000>;
Expand Down Expand Up @@ -83,9 +101,9 @@
reg = <0x44aa0000 0x1000>;

interrupt-parent = <&axi_intc>;
interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&clk_bus_0>, <&clk0_ad9528 3>, <&axi_adrv9025_adxcvr_rx 0>;
clocks = <&clk_bus_0>, <&axi_rx_clkgen>, <&axi_adrv9025_adxcvr_rx 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
Expand All @@ -101,8 +119,8 @@
reg = <0x44a90000 0x1000>;

interrupt-parent = <&axi_intc>;
interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk_bus_0>, <&clk0_ad9528 3>, <&axi_adrv9025_adxcvr_tx 0>;
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk_bus_0>, <&axi_tx_clkgen>, <&axi_adrv9025_adxcvr_tx 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
Expand Down Expand Up @@ -133,6 +151,7 @@
#jesd204-cells = <2>;
jesd204-inputs = <&clk0_ad9528 0 FRAMER0_LINK_RX>;
};

axi_adrv9025_adxcvr_tx: axi-adxcvr-tx@44a80000 {
#address-cells = <1>;
#size-cells = <0>;
Expand Down
102 changes: 102 additions & 0 deletions arch/microblaze/boot/dts/vcu118_adrv9025_nls.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Analog Devices ADRV9025
* https://wiki.analog.com/resources/eval/user-guides/adrv9025
* https://wiki.analog.com/resources/tools-software/linux-drivers/iio-transceiver/adrv9025
*
* hdl_project: <adrv9026/zcu102>
* board_revision: <>
*
* Copyright (C) 2020-2025 Analog Devices Inc.
*/
#include "vcu118_adrv9025.dts"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I failed to realize this... Being nitpicky, the microblaze DT should be in a separate patch. Anyways, just a hint for the future. No need to change it if there isn't a stronger reason for you to re-spin.


&trx0_adrv9025 {

clock-output-names = "rx_sampl_clk", "tx_sampl_clk", "rx_os_sampl_clk";

jesd204-device;
#jesd204-cells = <2>;
jesd204-top-device = <0>; /* This is the TOP device */
jesd204-link-ids = <DEFRAMER0_LINK_TX FRAMER0_LINK_RX FRAMER1_LINK_RX>;

jesd204-inputs =
<&axi_adrv9025_rx_jesd 0 FRAMER0_LINK_RX>,
<&axi_adrv9025_rx_os_jesd 0 FRAMER1_LINK_RX>,
<&axi_adrv9025_core_tx 0 DEFRAMER0_LINK_TX>;
};

&amba_pl {
rx_os_dma: dma@7c800000 {
compatible = "adi,axi-dmac-1.00.a";
reg = <0x7c800000 0x10000>;
#dma-cells = <1>;
#clock-cells = <0>;
interrupt-parent = <&axi_intc>;
interrupts = <14 2>;
clocks = <&clk_bus_0>;
};

axi_rx_os_clkgen: axi-clkgen@43c20000 {
compatible = "adi,axi-clkgen-2.00.a";
reg = <0x43c20000 0x10000>;
#clock-cells = <0>;
clocks = <&clk0_ad9528 3>, <&clk_bus_0>;
clock-names = "clkin1", "s_axi_aclk";
clock-output-names = "axi_rx_os_clkgen";
};

axi_adrv9025_core_rx_os: axi-adrv9025-rx-os-hpc@44a08000 {
compatible = "adi,axi-adrv9025-obs-1.0";
reg = <0x44a08000 0x8000>;
dmas = <&rx_os_dma 0>;
dma-names = "rx";
clocks = <&trx0_adrv9025 2>;
clock-names = "sampl_clk";
spibus-connected=<&trx0_adrv9025>;
label="axi-adrv9025-rx-os-hpc";
};

axi_adrv9025_rx_os_jesd: axi-jesd204-rx-os@45aa0000 {
compatible = "adi,axi-jesd204-rx-1.0";
reg = <0x45aa0000 0x1000>;

interrupt-parent = <&axi_intc>;
interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&clk_bus_0>, <&axi_rx_os_clkgen>, <&axi_adrv9025_adxcvr_rx_os 0>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk";

#clock-cells = <0>;
clock-output-names = "jesd_rx_os_lane_clk";

adi,octets-per-frame = <4>;
adi,frames-per-multiframe = <32>;

jesd204-device;
#jesd204-cells = <2>;
jesd204-inputs = <&axi_adrv9025_adxcvr_rx_os 0 FRAMER1_LINK_RX>;
};

axi_adrv9025_adxcvr_rx_os: axi-adxcvr-rx-os@45a60000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,axi-adxcvr-1.0";
reg = <0x45a60000 0x1000>;

clocks = <&clk0_ad9528 13>;
clock-names = "conv";

#clock-cells = <1>;
clock-output-names = "rx_os_gt_clk", "rx_os_out_clk";

adi,sys-clk-select = <XCVR_CPLL>;
adi,out-clk-select = <XCVR_REFCLK>;
adi,use-lpm-enable;
adi,use-cpll-enable;

jesd204-device;
#jesd204-cells = <2>;
jesd204-inputs = <&clk0_ad9528 0 FRAMER1_LINK_RX>;
};
};
2 changes: 1 addition & 1 deletion arch/microblaze/configs/adi_mb_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ CONFIG_NET_DSA=y
CONFIG_PCI=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_EXTRA_FIRMWARE="ad9467_intbypass_ad9517.stp ad9517.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin ADRV9025_DPDCORE_FW.bin ADRV9025_FW.bin ADRV9025_RxGainTable.csv ADRV9025_TxAttenTable.csv stream_image_6E3E00EFB74FE7D465FA88A171B81B8F.bin ActiveUseCase.profile ActiveUtilInit.profile"
CONFIG_EXTRA_FIRMWARE="ad9467_intbypass_ad9517.stp ad9517.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin ADRV9025_DPDCORE_FW.bin ADRV9025_FW.bin ADRV9025_RxGainTable.csv ADRV9025_TxAttenTable.csv stream_image_6E3E00EFB74FE7D465FA88A171B81B8F.bin ActiveUseCase.profile ActiveUtilInit.profile ActiveUseCase_NLS.profile"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would also be a different patch

CONFIG_EXTRA_FIRMWARE_DIR="./firmware"
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
Expand Down
2 changes: 2 additions & 0 deletions drivers/iio/adc/ad_adc.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@
}

val64 = (unsigned long long)val2 * 0x4000UL + (1000000UL / 2);
do_div(val64, 1000000UL);

Check warning on line 412 in drivers/iio/adc/ad_adc.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_smatch: inconsistent indenting

if (i & 0x4000 && val64 == 0x4000)
val64 = 0x3fff;
Expand Down Expand Up @@ -627,6 +627,8 @@
.data = &obs_rx_chip_info },
{ .compatible = "adi,axi-adrv9009-obs-single-1.0",
.data = &obs_rx_chip_info },
{ .compatible = "adi,axi-adrv9025-obs-1.0",
.data = &obs_rx_chip_info },
{ .compatible = "adi,axi-adrv9002-rx2-1.0",
.data = &adrv9002_rx_chip_info },
{ .compatible = "adi,axi-adrv9003-rx2-1.0",
Expand Down
Loading
Loading