Skip to content
Open
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
171 changes: 171 additions & 0 deletions arch/microblaze/boot/dts/adi-ad9083-fmc-ebz.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Analog Devices ADRV9083-EVB
*
* hdl_project: <ad9083_evb>
* board_revision: <>
*
* Copyright (C) 2026 Analog Devices Inc.
*/

#include <dt-bindings/iio/frequency/ad9528.h>
#include <dt-bindings/iio/adc/adi,ad9083.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

&fmc_spi {
status = "okay";

ad9528: ad9528@1 {
compatible = "adi,ad9528";
reg = <1>;

#address-cells = <1>;
#size-cells = <0>;

jesd204-device;
#jesd204-cells = <2>;
jesd204-sysref-provider;

spi-max-frequency = <1000000>;
adi,spi-3wire-enable;

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";
#clock-cells = <1>;

adi,vcxo-freq = <100000000>;

adi,refa-enable;
adi,refa-diff-rcv-enable;
adi,refa-r-div = <1>;
adi,osc-in-cmos-neg-inp-enable;

/* SYSREF config */
adi,sysref-src = <SYSREF_SRC_INTERNAL>;
adi,sysref-pattern-mode = <SYSREF_PATTERN_NSHOT>;
adi,sysref-k-div = <256>;
adi,sysref-nshot-mode = <SYSREF_NSHOT_4_PULSES>;
adi,sysref-request-trigger-mode = <SYSREF_LEVEL_HIGH>;
adi,jesd204-max-sysref-frequency-hz = <400000>;

/* PLL1 config */
adi,pll1-feedback-src-vcxo;
adi,pll1-feedback-div = <4>;
adi,pll1-charge-pump-current-nA = <5000>;
adi,osc-in-diff-enable;

/* PLL2 config */
/*
* Valid ranges based on VCO locking range:
* 1150.000 MHz - 1341.666 MHz
* 862.500 MHz - 1006.250 MHz
* 690.000 MHz - 805.000 MHz
*/

/* PLL2 config */
adi,pll2-m1-frequency = <750000000>;
adi,pll2-charge-pump-current-nA = <805000>;

adi,rpole2 = <RPOLE2_900_OHM>;
adi,rzero = <RZERO_1850_OHM>;
adi,cpole1 = <CPOLE1_16_PF>;

adi,status-mon-pin0-function-select = <0xFF>; /* No function */
adi,status-mon-pin1-function-select = <0xFF>; /* No function */

ad9528_0_c1: channel@1 {
reg = <1>;
adi,extended-name = "FPGA_GLBL_CLK";
adi,driver-mode = <DRIVER_MODE_LVDS>;
adi,divider-phase = <0>;
adi,channel-divider = <3>; /* 250 MHz */
adi,signal-source = <SOURCE_VCO>;
};

ad9528_0_c3: channel@3 {
reg = <3>;
adi,extended-name = "FPGA_REF_CLK";
adi,driver-mode = <DRIVER_MODE_LVDS>;
adi,divider-phase = <0>;
adi,channel-divider = <1>; /* 750 MHz */
adi,signal-source = <SOURCE_VCO>;
};

ad9528_0_c13: channel@13 {
reg = <13>;
adi,extended-name = "ADC_REF_CLK";
adi,driver-mode = <DRIVER_MODE_LVDS>;
adi,divider-phase = <0>;
adi,channel-divider = <3>; /* 250 MHz */
adi,signal-source = <SOURCE_VCO>;
};

ad9528_0_c12: channel@12 {
reg = <12>;
adi,extended-name = "DEV_SYSREF";
adi,driver-mode = <DRIVER_MODE_LVDS>;
adi,divider-phase = <0>;
adi,channel-divider = <5>;
adi,signal-source = <SOURCE_SYSREF_VCO>;
};

ad9528_0_c0: channel@0 {
reg = <0>;
adi,extended-name = "FMC_SYSREF";
adi,driver-mode = <DRIVER_MODE_LVDS>;
adi,divider-phase = <0>;
adi,channel-divider = <5>;
adi,signal-source = <SOURCE_SYSREF_VCO>;
};
};

adc0_ad9083: ad9083@0 {
compatible = "adi,ad9083";
reg = <0>;

jesd204-device;
#jesd204-cells = <2>;
jesd204-top-device = <0>;
jesd204-link-ids = <0>;
jesd204-inputs = <&axi_ad9083_core_rx 0 0>;

spi-max-frequency = <1000000>;
clocks = <&ad9528 13>;
clock-names = "adc_ref_clk";
adi,adc-frequency-hz= /bits/ 64 <2000000000>; /* 2 GHz */

/* software reset, resistor is not mounted */
/* reset-gpios = <&axi_gpio 33 0>; */
pwdn-gpios = <&axi_gpio 32 0>;

/* adi_ad9083 config */

adi,vmax-microvolt = <2000>;
adi,fc-hz = /bits/ 64 <800000000>;
adi,rterm-ohms = <100>;
adi,backoff = <0>;
adi,finmax-hz = /bits/ 64 <100000000>;
adi,nco0_freq-hz = /bits/ 64 <0>;
adi,nco1_freq-hz = /bits/ 64 <0>;
adi,nco2_freq-hz = /bits/ 64 <0>;
adi,cic_decimation = /bits/ 8 <0>;
adi,j_decimation = /bits/ 8 <AD9083_J_DEC_8>;
adi,g_decimation = /bits/ 8 <0>;
adi,h_decimation = /bits/ 8 <0>;
adi,nco0_datapath_mode = /bits/ 8 <AD9083_DATAPATH_ADC_J>;

/* JESD204 parameters */

adi,octets-per-frame = <6>;
adi,frames-per-multiframe = <32>;
adi,converter-resolution = <12>;
adi,bits-per-sample = <12>;
adi,converters-per-device = <16>;
adi,control-bits-per-sample = <0>;
adi,lanes-per-device = <4>;
adi,subclass = <0>;
};
};
96 changes: 96 additions & 0 deletions arch/microblaze/boot/dts/vcu118_ad9083.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Analog Devices AD9083-EVB
* Link: https://wiki.analog.com/resources/eval/ad9083
*
* Copyright (C) 2018-2026 Analog Devices Inc.
*/

/dts-v1/;

#include "vcu118.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/iio/adc/adi,ad9083.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/jesd204/adxcvr.h>

#define fmc_spi axi_spi

&axi_intc {
xlnx,kind-of-intr = <0xffff05f0>;
};

&axi_ethernet {
local-mac-address = [00 0a 35 00 90 81];
};

&amba_pl {

rx_dma: dma-controller@7c400000 {
compatible = "adi,axi-dmac-1.00.a";
reg = <0x7c400000 0x10000>;
#dma-cells = <1>;
#clock-cells = <0>;
interrupt-parent = <&axi_intc>;
interrupts = <12 2>;
clocks = <&clk_bus_0>;
};

axi_ad9083_core_rx: axi-ad9083-rx-hpc@44a00000 {
compatible = "adi,axi-ad9083-rx-1.0";
reg = <0x44a00000 0x8000>;
dmas = <&rx_dma 0>;
dma-names = "rx";
spibus-connected = <&adc0_ad9083>;

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

axi_ad9083_rx_jesd: axi-jesd204-rx@44AA0000 {
compatible = "adi,axi-jesd204-rx-1.0";
reg = <0x44AA0000 0x1000>;

interrupt-parent = <&axi_intc>;
interrupts = <13 2>;

clocks = <&clk_bus_0>, <&ad9528 1>, <&axi_ad9083_adxcvr_rx 0>, <&axi_ad9083_adxcvr_rx 1>;
clock-names = "s_axi_aclk", "device_clk", "lane_clk", "link_clk";

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

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

axi_ad9083_adxcvr_rx: axi-adxcvr-rx@44a60000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,axi-adxcvr-1.0";
reg = <0x44a60000 0x1000>;

clocks = <&ad9528 3>;
clock-names = "conv";

#clock-cells = <1>;
clock-output-names = "rx_gt_clk", "rx_out_clk";

adi,sys-clk-select = <XCVR_QPLL>;
adi,out-clk-select = <XCVR_REFCLK_DIV2>;
adi,use-lpm-enable;

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

axi_sysid_0: axi-sysid-0@45000000 {
compatible = "adi,axi-sysid-1.00.a";
reg = <0x45000000 0x10000>;
};
};

#include "adi-ad9083-fmc-ebz.dtsi"
15 changes: 15 additions & 0 deletions drivers/iio/adc/ad9083.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@
if (ret != 0)
return -EINVAL;

*data = outData[2];

Check warning on line 222 in drivers/iio/adc/ad9083.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: use of uninitialized value 'outData[2]' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 222 | *data = outData[2]; | ~~~~~~~^~~ 'ad9083_reg_access': events 1-4 | | 227 | static int ad9083_reg_access(struct iio_dev *indio_dev, unsigned int reg, | | ^~~~~~~~~~~~~~~~~ | | | | | (1) entry to 'ad9083_reg_access' |...... | 235 | if (!readval) | | ~ | | | | | (2) following 'false' branch (when 'readval' is non-NULL)... |...... | 238 | ret = ad9083_register_read(&phy->adi_ad9083, reg, &val); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (3) ...to here | | (4) calling 'ad9083_register_read' from 'ad9083_reg_access' | +--> 'ad9083_register_read': events 5-9 | | 206 | static int ad9083_register_read(adi_ad9083_device_t *h, | | ^~~~~~~~~~~~~~~~~~~~ | | | | | (5) entry to 'ad9083_register_read' |...... | 211 | u8 outData[IN_OUT_BUFF_SZ]; | | ~~~~~~~ | | | | | (6) region created on stack here | 212 | | 213 | if (address >= MAX_REG_ADDR) | | ~ | | | | | (7) following 'false' branch (when 'address <= 4095')... |...... | 216 | inData[0] = (address >> 8) | 0x80; | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) ...to here | 217 | inData[1] = address; | 218 | ret = ad9083_spi_xfer(h->hal_info.user_data, inData, outData, IN_OUT_BUFF_SZ); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (9) calling 'ad9083_spi_xfer' from 'ad9083_register_read' | +--> 'ad9083_spi_xfer': events 10-11 | | 169 | static int ad9083_spi_xfer(void *user_data, u8 *wbuf, | | ^~~~~~~~~~~~~~~ | | | | | (10) entry to 'ad9083_spi_xfer' |...... | 180 | ret = spi_sync_transfer(conv->spi, &t, 1); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (11) calling 'spi_sync_transfer' from 'ad9083_spi_xfer' | +--> 'spi_sync_transfer': events 12-13 | |/home/runner/_work/linux/linux/include/linux/spi/spi.h:1482:1: | 1482 | spi_sync_transfer(struct spi_device *spi, struct spi_transfer *xfers, | | ^~~~~~~~~~~~~~~~~ | | | | | (12) entry to 'spi_sync_transfer' |...... | 1487 | spi_message_init_with_transfers(&msg, xfers, num_xfers); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (13) calling 'spi_message_init_with_transfers' from 'spi_sync_transfer' | +--> 'spi_message_init_with_transfers': events 14-18 | | 1300 | spi_message_init_with_transfers(struct spi_message *m, | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (14) entry to 'spi_message_init_with_transfers' |...... | 1306 | for (i = 0; i < num_xfers; ++i) | | ~~~~~~~~~~~~~ | | | | | (15) following 'true' branch (when 'i < num_xfers')... | | (17) following 'true' branch (when 'i < num_xfers')... | 1307 | spi_message_add_tail(&xfers[i], m); | | ~ | | | | | (16) ...to here | | (18) ...to here | <------+ | 'spi_sync_transfer': event 19 | | 1487 | spi_message_init_with_transfers(&msg, xfers, num_xfers); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (19) returning to 'spi_sync_transfer' from 'spi_message_init_with_transfers' | <------+ | 'ad9083_spi_xfer': event 20 | |/home/runner/_work/linux/linux/drivers/iio/adc/ad9083.c:180:15: | 180 | ret = spi_sync_transfer(conv->spi, &t, 1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (20) returning to 'ad9083_spi_xfer' from 'spi_sync_transfer' | <------+ | 'ad9083_register_read': events 21-24 | | 218 | ret = ad9083_spi_xfer(h->hal_info.user_data, inData, outData, IN_OUT_BUFF_SZ); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (21) returning to 'ad9083_register_read' from 'ad9083_spi_xfer' | 219 | if (ret != 0) | | ~ | | | | | (22) following 'false' branch (when 'ret == 0')... |...... | 222 | *data = outData[2]; | | ~~~~~~~~~~ | | | | | (23) ...to here | | (24) use of uninitialized value 'outData[2]' here |

return 0;
}
Expand Down Expand Up @@ -285,7 +285,7 @@
enum jesd204_state_op_reason reason,
struct jesd204_link *lnk)
{
struct device *dev = jesd204_dev_to_device(jdev);

Check warning on line 288 in drivers/iio/adc/ad9083.c

View workflow job for this annotation

GitHub Actions / build_llvm_x86_64 / build

clang_analyzer: Value stored to 'dev' during its initialization is never read [deadcode.DeadStores] 288 | struct device *dev = jesd204_dev_to_device(jdev); | ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
struct ad9083_jesd204_priv *priv = jesd204_dev_priv(jdev);
struct ad9083_phy *phy = priv->phy;
struct jesd204_link *link;
Expand All @@ -312,7 +312,7 @@
enum jesd204_state_op_reason reason,
struct jesd204_link *lnk)
{
struct device *dev = jesd204_dev_to_device(jdev);

Check warning on line 315 in drivers/iio/adc/ad9083.c

View workflow job for this annotation

GitHub Actions / build_llvm_x86_64 / build

clang_analyzer: Value stored to 'dev' during its initialization is never read [deadcode.DeadStores] 315 | struct device *dev = jesd204_dev_to_device(jdev); | ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
struct ad9083_jesd204_priv *priv = jesd204_dev_priv(jdev);
struct ad9083_phy *phy = priv->phy;
int ret;
Expand Down Expand Up @@ -346,7 +346,7 @@
enum jesd204_state_op_reason reason,
struct jesd204_link *lnk)
{
struct device *dev = jesd204_dev_to_device(jdev);

Check warning on line 349 in drivers/iio/adc/ad9083.c

View workflow job for this annotation

GitHub Actions / build_llvm_x86_64 / build

clang_analyzer: Value stored to 'dev' during its initialization is never read [deadcode.DeadStores] 349 | struct device *dev = jesd204_dev_to_device(jdev); | ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

dev_dbg(dev, "%s:%d link_num %u reason %s\n", __func__,
__LINE__, lnk->link_id, jesd204_state_op_reason_str(reason));
Expand Down Expand Up @@ -944,6 +944,20 @@
return 0;
}

static int ad9083_post_setup(struct iio_dev *indio_dev)
{
struct axiadc_state *st = iio_priv(indio_dev);
struct axiadc_converter *conv = iio_device_get_drvdata(indio_dev);
struct ad9083_phy *phy = conv->phy;
int i;

for (i = 0; i < phy->jesd_param.jesd_m; i++)
axiadc_write(st, ADI_REG_CHAN_CNTRL(i),
ADI_FORMAT_SIGNEXT | ADI_FORMAT_ENABLE);

return 0;
}

static void ad9083_setup_chip_info_tbl(struct ad9083_phy *phy)
{
bool complex;
Expand Down Expand Up @@ -1024,6 +1038,7 @@
conv->reg_access = ad9083_reg_access;
conv->write_raw = ad9083_write_raw;
conv->read_raw = ad9083_read_raw;
conv->post_setup = ad9083_post_setup;
conv->attrs = &ad9083_phy_attribute_group;

if (jdev) {
Expand Down
5 changes: 3 additions & 2 deletions drivers/iio/adc/ad9083/adi_ad9083_hal.c
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,8 @@
for (deno_index = 2; deno_index < 32; deno_index++)
for (nume_index = 0; nume_index < deno_index; nume_index++) {
#ifdef __KERNEL__
diff = div_u64((frac * 1000 - (b * 1000 * nume_index)), deno_index);
diff = (int64_t)(frac * 1000) -
(int64_t)div_u64(b * 1000 * (uint64_t)nume_index, deno_index);
#else
diff = frac * 1000 - (b * 1000 * nume_index) / deno_index;
#endif
Expand All @@ -308,7 +309,7 @@
golden_nume = nume_index;
}
}
*nume = golden_nume;

Check warning on line 312 in drivers/iio/adc/ad9083/adi_ad9083_hal.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: use of uninitialized value 'golden_nume' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 312 | *nume = golden_nume; | ~~~~~~^~~~~~~~~~~~~ 'adi_ad9083_hal_div_nume_deno': events 1-3 | | 270 | int32_t adi_ad9083_hal_div_nume_deno(adi_ad9083_device_t *device, uint64_t a, | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (1) entry to 'adi_ad9083_hal_div_nume_deno' |...... | 276 | uint8_t golden_nume, golden_deno; | | ~~~~~~~~~~~ | | | | | (2) region created on stack here | | (3) capacity: 1 byte | 'adi_ad9083_hal_div_nume_deno': event 4 | |/home/runner/_work/linux/linux/drivers/iio/adc/ad9083/adi_ad9083_config.h:72:8: | 72 | if (p == NULL) { \ | | ^ | | | | | (4) following 'false' branch (when 'device' is non-NULL)...
*deno = golden_deno;
}
*integer = integer_temp;
Expand Down Expand Up @@ -393,4 +394,4 @@
*hi = result_hi;
}

/*! @} */
/*! @} */
5 changes: 3 additions & 2 deletions drivers/iio/adc/ad9083/adi_ad9083_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
((uint32_t)((((uint64_t)(x)) << ((resFb) + (yFb) - (xFb))) / (y)))

#endif
int32_t adi_ad9083_rx_cic_dec_rate_set(adi_ad9083_device_t *device,

Check warning on line 33 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_cic_dec_rate_set' [-Wmissing-prototypes] 33 | int32_t adi_ad9083_rx_cic_dec_rate_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 33 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_cic_dec_rate_set' [-Wmissing-prototypes] 33 | int32_t adi_ad9083_rx_cic_dec_rate_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
adi_ad9083_cic_dec_rate_e dec_rate) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand All @@ -41,7 +41,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_cic_acc_clear_set(adi_ad9083_device_t *device,

Check warning on line 44 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_cic_acc_clear_set' [-Wmissing-prototypes] 44 | int32_t adi_ad9083_rx_cic_acc_clear_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 44 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_cic_acc_clear_set' [-Wmissing-prototypes] 44 | int32_t adi_ad9083_rx_cic_acc_clear_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t enable) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand All @@ -52,7 +52,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_bypass_cic_set(adi_ad9083_device_t *device,

Check warning on line 55 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_bypass_cic_set' [-Wmissing-prototypes] 55 | int32_t adi_ad9083_rx_bypass_cic_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 55 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_bypass_cic_set' [-Wmissing-prototypes] 55 | int32_t adi_ad9083_rx_bypass_cic_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t enable) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand All @@ -63,7 +63,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_j_dec_rate_set(adi_ad9083_device_t *device,

Check warning on line 66 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_j_dec_rate_set' [-Wmissing-prototypes] 66 | int32_t adi_ad9083_rx_j_dec_rate_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 66 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_j_dec_rate_set' [-Wmissing-prototypes] 66 | int32_t adi_ad9083_rx_j_dec_rate_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
adi_ad9083_j_dec_rate_e dec_j) {
int32_t err;
/* Bypassing CIC decimation */
Expand Down Expand Up @@ -116,7 +116,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_g_value_set(adi_ad9083_device_t *device, uint8_t dec_g) {

Check warning on line 119 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_g_value_set' [-Wmissing-prototypes] 119 | int32_t adi_ad9083_rx_g_value_set(adi_ad9083_device_t *device, uint8_t dec_g) { | ^~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 119 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_g_value_set' [-Wmissing-prototypes] 119 | int32_t adi_ad9083_rx_g_value_set(adi_ad9083_device_t *device, uint8_t dec_g) { | ^~~~~~~~~~~~~~~~~~~~~~~~~
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
AD9083_LOG_FUNC();
Expand All @@ -126,7 +126,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_h_value_set(adi_ad9083_device_t *device, uint8_t dec_h) {

Check warning on line 129 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_h_value_set' [-Wmissing-prototypes] 129 | int32_t adi_ad9083_rx_h_value_set(adi_ad9083_device_t *device, uint8_t dec_h) { | ^~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 129 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_h_value_set' [-Wmissing-prototypes] 129 | int32_t adi_ad9083_rx_h_value_set(adi_ad9083_device_t *device, uint8_t dec_h) { | ^~~~~~~~~~~~~~~~~~~~~~~~~
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
AD9083_LOG_FUNC();
Expand Down Expand Up @@ -213,7 +213,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_nco_phase_offset_set(adi_ad9083_device_t *device,

Check warning on line 216 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_nco_phase_offset_set' [-Wmissing-prototypes] 216 | int32_t adi_ad9083_rx_nco_phase_offset_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 216 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_nco_phase_offset_set' [-Wmissing-prototypes] 216 | int32_t adi_ad9083_rx_nco_phase_offset_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t index,
uint8_t phase_offset) {
int32_t err;
Expand All @@ -239,7 +239,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_nco_adither_enable_set(adi_ad9083_device_t *device,

Check warning on line 242 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

gcc_fanalayzer: no previous prototype for 'adi_ad9083_rx_nco_adither_enable_set' [-Wmissing-prototypes] 242 | int32_t adi_ad9083_rx_nco_adither_enable_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Check warning on line 242 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_nco_adither_enable_set' [-Wmissing-prototypes] 242 | int32_t adi_ad9083_rx_nco_adither_enable_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t index, uint8_t enable) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand All @@ -264,7 +264,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_nco_6db_gain_enable_set(adi_ad9083_device_t *device,

Check warning on line 267 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_nco_6db_gain_enable_set' [-Wmissing-prototypes] 267 | int32_t adi_ad9083_rx_nco_6db_gain_enable_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t enable) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand All @@ -275,7 +275,7 @@
return API_CMS_ERROR_OK;
}

int32_t adi_ad9083_rx_bypass_mixer_set(adi_ad9083_device_t *device,

Check warning on line 278 in drivers/iio/adc/ad9083/adi_ad9083_rx.c

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

kernel_sparse: no previous prototype for 'adi_ad9083_rx_bypass_mixer_set' [-Wmissing-prototypes] 278 | int32_t adi_ad9083_rx_bypass_mixer_set(adi_ad9083_device_t *device, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
uint8_t enable) {
int32_t err;
AD9083_NULL_POINTER_RETURN(device);
Expand Down Expand Up @@ -831,7 +831,7 @@
temp = 2 * 314 * 2 * temp;
kcap_temp = (uint64_t)1000000000000000ul - temp * 700;
#ifdef __KERNEL__
kcap_temp = div_u64(kcap_temp + (temp / 2) * 115, temp * 115);
kcap_temp = div64_u64(kcap_temp + (temp / 2) * 115, temp * 115);
#else
kcap_temp = (kcap_temp + (temp / 2) * 115) / (temp * 115);
#endif
Expand Down Expand Up @@ -1110,6 +1110,7 @@
break;
case AD9083_DATAPATH_ADC_J:
deci_adc_data = 1;
no_ddc_mode = 1;
sample_order = 0;
break;
case AD9083_DATAPATH_ADC_CIC_NCO_G:
Expand Down Expand Up @@ -1216,4 +1217,4 @@
return API_CMS_ERROR_OK;
}

/*! @} */
/*! @} */
Loading