Go to the documentation of this file.
39 #ifndef AD5766_CORE_H_
40 #define AD5766_CORE_H_
const char * name
Definition: clk_axi_clkgen.h:57
uint8_t offload_config
Definition: spi_engine.h:153
@ NO_OS_SPI_MODE_1
Definition: no_os_spi.h:68
@ ID_AD4696
Definition: ad469x.h:201
int32_t ad469x_init(struct ad469x_dev **device, struct ad469x_init_param *init_param)
Definition: ad469x.c:874
Definition: ad77681.h:496
int main()
Definition: ad400x_fmcz.c:28
#define IIO_APP_DEVICE(_name, _dev, _dev_descriptor, _read_buff, _write_buff)
Definition: iio_app.h:46
struct ad5758_init_param ad5758_default_init_param
Definition: ad5758_sdz.c:88
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:85
uint32_t no_commands
Definition: spi_engine.h:167
Structure containing the init parameters needed by the PWM generator.
Definition: no_os_pwm.h:66
Struct describing the scan type.
Definition: iio_types.h:172
char sign
Definition: iio_types.h:157
uint32_t dma_baseaddr
Definition: ad5766_core.h:47
#define AD400X_SPI_ENGINE_BASEADDR
Definition: ad400x_fmcz.c:20
struct no_os_spi_init_param * spi_init
Definition: ad463x.h:182
struct no_os_pwm_init_param * trigger_pwm_init
Definition: ad469x.h:237
struct axi_clkgen_init clkgen_init
Definition: ad77681evb.c:100
#define GPIO_RESETN_1
Definition: parameters.h:56
int32_t ad469x_adv_sequence_set_num_slots(struct ad469x_dev *dev, uint8_t num_slots)
Configure advanced sequencer number of slots, temp channel not included.
Definition: ad469x.c:472
#define NO_OS_GENMASK(h, l)
Definition: no_os_util.h:86
const struct xil_spi_init_param spi_extra
Definition: ad5758_sdz.c:59
uint32_t size
Definition: iio_app.h:61
int32_t ad469x_sequence_disable_temp(struct ad469x_dev *dev)
Disable temperature read at the end of the sequence, for standard and advanced sequencer.
Definition: ad469x.c:571
#define SPI_ENGINE_CMD_ASSERT(delay, cs)
Definition: spi_engine_private.h:119
#define AD5758_SPI_CS
Definition: parameters.h:48
#define AD463x_SPI_ENGINE_BASEADDR
Definition: parameters.h:51
int32_t ad5766_core_setup(struct spi_engine_desc *eng_desc, ad5766_core **ad_core, ad5766_core_init_param init_param)
ad5766_core_setup
Definition: ad5766_core.c:168
#define CS_LOW
Definition: spi_engine.h:79
uint32_t dma_source_addr
Definition: ad5766_core.h:56
Header file of SPI Interface.
no_os_spi_desc * spi_desc
Definition: ad400x.h:68
Structure representing an SPI engine device.
Definition: spi_engine.h:107
Definition: ad5766_core.h:53
int32_t spi_engine_offload_init(struct no_os_spi_desc *desc, const struct spi_engine_offload_init_param *param)
Initialize the SPI engine's offload module.
Definition: spi_engine.c:757
int32_t ad469x_set_channel_sequence(struct ad469x_dev *dev, enum ad469x_channel_sequencing seq)
Set channel sequence.
Definition: ad469x.c:367
int32_t ad5758_dac_input_write(struct ad5758_dev *dev, uint16_t code)
Definition: ad5758.c:492
Driver for the Analog Devices AXI CLKGEN.
#define pr_err(fmt, args...)
Definition: no_os_print_log.h:80
ad400x_supported_dev_ids
Definition: ad400x.h:57
uint32_t * commands_data
Definition: spi_engine.h:169
void * buff
Definition: iio_app.h:62
uint32_t period_ns
Definition: no_os_pwm.h:70
uint8_t output_mode
Definition: ad463x.h:206
Header file of Delay functions.
const struct no_os_spi_init_param spi_ip
Definition: ad5758_sdz.c:63
Definition: clk_axi_clkgen.h:56
#define SPI_ENGINE_CONFIG_CPHA
Definition: spi_engine_private.h:90
#define pr_info(fmt, args...)
Definition: no_os_print_log.h:99
const uint16_t ad400x_device_resol[]
Device resolution.
Definition: ad400x.c:53
int32_t ad469x_enter_conversion_mode(struct ad469x_dev *dev)
Enter conversion mode. To exit conversion mode send a 5 bit conversion mode command AD469x_CMD_REG_CO...
Definition: ad469x.c:624
Structure representing an offload message.
Definition: spi_engine.h:160
uint32_t spi_clk_hz
Definition: ad5766_core.h:50
#define AD400X_DMA_BASEADDR
Definition: ad400x_fmcz.c:19
int32_t number
Definition: no_os_gpio.h:89
int32_t ad5766_core_setup(struct spi_engine_desc *eng_desc, ad5766_core **ad_core, ad5766_core_init_param init_param)
ad5766_core_setup
Definition: ad5766_core.c:168
#define AD463X_OUT_DATA_PAT
Definition: ad463x.h:145
@ AD469x_advanced_seq
Definition: ad469x.h:172
uint32_t device_id
Definition: gpio_extra.h:74
#define AD463X_TWO_LANES_PER_CH
Definition: ad463x.h:122
#define AD463x_EVB_SAMPLE_NO
Definition: ad463x_fmc.c:64
void ad5766_core_read(ad5766_core *core, uint32_t reg_addr, uint32_t *reg_data)
ad5766_core_read
Definition: ad5766_core.c:136
@ RANGE_0V_10V
Definition: ad5758.h:338
#define NO_OS_ARRAY_SIZE(x)
Definition: no_os_util.h:53
int32_t ad469x_std_sequence_ch(struct ad469x_dev *dev, uint16_t ch_mask)
Configure standard sequencer channels.
Definition: ad469x.c:522
#define AD469x_CHANNEL(x)
Definition: ad469x.h:152
int32_t ad400x_spi_single_conversion(struct ad400x_dev *dev, uint32_t *adc_data)
Definition: ad400x.c:121
#define SPI_ENGINE_REG_OFFLOAD_CMD_MEM(x)
Definition: spi_engine_private.h:108
#define SPI_ENGINE_OFFLOAD_EXAMPLE
Definition: ad400x_fmcz.c:25
uint32_t rate_hz
Definition: ad5766_core.h:57
@ NO_OS_SPI_MODE_3
Definition: no_os_spi.h:72
uint32_t device_id
Definition: no_os_spi.h:114
#define AD463X_32_PATTERN
Definition: ad463x.h:107
struct no_os_pwm_init_param * trigger_pwm_init
Definition: ad463x.h:186
Header file for ad5758 Driver.
uint8_t chip_select
Definition: no_os_spi.h:118
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: delay.c:130
struct iio_data_buffer * read_buff
Definition: iio_app.h:69
uint32_t core_baseaddr
Definition: ad7616.h:178
#define CS_HIGH
Definition: spi_engine.h:78
int32_t ad469x_read_data(struct ad469x_dev *dev, uint8_t channel, uint32_t *buf, uint16_t samples)
Read from device. Enter register mode to read/write registers.
Definition: ad469x.c:752
struct spi_engine_offload_init_param spi_engine_offload_init_param
Definition: ad7616_sdz.c:65
#define SPI_ENGINE_CMD_TRANSFER(readwrite, n)
Definition: spi_engine_private.h:115
@ DPC_VOLTAGE_MODE
Definition: ad5758.h:274
uint32_t dma_source_addr
Definition: ad5766_core.h:48
Header file of AD5766 Core Driver.
uint32_t rate_hz
Definition: ad5766_core.h:49
Header file of AD463x Driver.
void ad5766_dma_read(ad5766_core *core, uint32_t reg_addr, uint32_t *reg_data)
ad5766_core_read
Definition: ad5766_core.c:158
#define SPI_ENGINE_REG_OFFLOAD_CTRL(x)
Definition: spi_engine_private.h:105
#define AD469x_DMA_BASEADDR
Definition: parameters.h:51
#define SPI_ENGINE_REG_OFFLOAD_RESET(x)
Definition: spi_engine_private.h:107
#define SPI_ENGINE_CMD_CONFIG(reg, val)
Definition: spi_engine_private.h:123
@ AD469x_single_cycle
Definition: ad469x.h:166
#define AXI_PWMGEN_BASEADDR
Definition: parameters.h:53
int32_t ad463x_read_data(struct ad463x_dev *dev, uint32_t *buf, uint16_t samples)
Read from device. Enter register mode to read/write registers.
Definition: ad463x.c:321
#define AD463X_24_DIFF
Definition: ad463x.h:103
#define AD400x_EVB_SAMPLE_NO
Definition: ad400x_fmcz.c:18
int32_t ad469x_adv_seq_osr(struct ad469x_dev *dev, uint16_t ch, enum ad469x_osr_ratios ratio)
Configure over sampling ratio in advanced sequencer mode.
Definition: ad469x.c:266
@ CLKOUT_DISABLE
Definition: ad5758.h:293
#define TOTAL_CH
Definition: ad469x_fmcz.c:68
const struct xil_gpio_init_param gpio_extra
Definition: ad5758_sdz.c:73
uint32_t tx_addr
Definition: spi_engine.h:171
Header file for ad469x Driver.
int32_t ad469x_seq_read_data(struct ad469x_dev *dev, uint32_t *buf, uint16_t samples)
Read from device when converter has the channel sequencer activated. Enter register mode to read/writ...
Definition: ad469x.c:718
int32_t ad469x_adv_sequence_set_slot(struct ad469x_dev *dev, uint8_t slot, uint8_t channel)
Advanced sequencer, assign channel to a slot.
Definition: ad469x.c:500
int32_t ad5758_init(struct ad5758_dev **device, struct ad5758_init_param *init_param)
Definition: ad5758.c:772
int32_t ad463x_remove(struct ad463x_dev *dev)
Free the memory allocated by ad463x_init().
Definition: ad463x.c:517
enum xil_spi_type type
Definition: spi_extra.h:80
uint32_t * commands
Definition: spi_engine.h:165
@ NO_OS_PWM_POLARITY_HIGH
Definition: no_os_pwm.h:57
Structure representing an ad469x device.
Definition: ad469x.h:275
@ ID_AD4020
Definition: ad400x.h:61
struct spi_engine_init_param spi_eng_init_param
Definition: ad7616_sdz.c:70
@ CLKOUT_FREQ_500_KHZ
Definition: ad5758.h:302
Structure holding the initialization parameters for axi PWM.
Definition: axi_pwm_extra.h:55
#define RX_CLKGEN_BASEADDR
Definition: parameters.h:52
#define SPI_ENGINE_CMD_SYNC(id)
Definition: spi_engine_private.h:132
@ ID_AD4630_24
Definition: ad463x.h:157
int32_t ad400x_init(struct ad400x_dev **device, struct ad400x_init_param *init_param)
Definition: ad400x.c:141
Structure holding the initialization parameters for Xilinx platform specific SPI parameters when usin...
Definition: spi_extra.h:78
uint32_t core_baseaddr
Definition: ad5766_core.h:54
Header file for ad400x Driver.
struct no_os_spi_init_param spi_init
Definition: ad5758.h:395
int32_t ad5766_core_write(ad5766_core *core, uint32_t reg_addr, uint32_t reg_data)
ad5766_core_write
Definition: ad5766_core.c:124
Header file of PWM Interface.
#define OFFLOAD_RX_EN
Definition: spi_engine.h:59
int32_t ad469x_std_seq_osr(struct ad469x_dev *dev, enum ad469x_osr_ratios ratio)
Configure over sampling ratio in standard sequencer mode.
Definition: ad469x.c:323
int32_t ad469x_sequence_enable_temp(struct ad469x_dev *dev)
Enable temperature read at the end of the sequence, for standard and advanced sequencer.
Definition: ad469x.c:549
@ AD469x_OSR_16
Definition: ad469x.h:212
Header file of iio_ad463x.
#define SPI_DEVICE_ID
Definition: parameters.h:76
#define AD463x_SPI_CS
Definition: parameters.h:54
Header file for iio_types.
uint16_t num_ch
Definition: iio_types.h:247
#define NO_OS_BIT(x)
Definition: no_os_util.h:51
#define AD469x_SPI_CS
Definition: parameters.h:56
Definition: ad5766_core.h:45
@ NO_OS_SPI_BIT_ORDER_MSB_FIRST
Definition: no_os_spi.h:81
@ ILIMIT_200_mA
Definition: ad5758.h:329
int32_t ad5766_dma_write(ad5766_core *core, uint32_t reg_addr, uint32_t reg_data)
ad5766_core_write
Definition: ad5766_core.c:146
#define SPI_ENGINE_CMD_REG_CONFIG
Definition: spi_engine_private.h:78
const uint16_t sine_lut[512]
Definition: ad5766_core.c:54
@ AD469x_OSR_4
Definition: ad469x.h:211
uint32_t dma_baseaddr
Definition: ad5766_core.h:55
#define AD469x_SPI_ENGINE_BASEADDR
Definition: parameters.h:52
int main()
Definition: ad5758_sdz.c:104
#define NULL
Definition: wrapper.h:64
void * dev
Definition: iio_app.h:67
const struct no_os_spi_platform_ops xil_spi_ops
Spi engine platform specific SPI platform ops structure.
Definition: xilinx_spi.c:456
Structure containing the init parameters needed by the SPI engine.
Definition: spi_engine.h:89
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:96
Structure holding channels and attributes of a device.
Definition: iio_types.h:242
Device initialization parameters.
Definition: ad463x.h:215
uint32_t spi_clk_hz
Definition: ad5766_core.h:58
const struct no_os_spi_platform_ops spi_eng_platform_ops
Spi engine platform specific SPI platform ops structure.
Definition: spi_engine.c:63
#define AD463X_SDR_MODE
Definition: ad463x.h:100
int main()
Definition: ad469x_fmcz.c:132
#define GPIO_DEVICE_ID
Definition: parameters.h:77
int32_t spi_engine_offload_transfer(struct no_os_spi_desc *desc, struct spi_engine_offload_message msg, uint32_t no_samples)
Initiate a SPI transfer in offload mode.
Definition: spi_engine.c:803
#define AD400x_SPI_ENG_REF_CLK_FREQ_HZ
Definition: ad400x_fmcz.c:22
int32_t ad463x_init(struct ad463x_dev **device, struct ad463x_init_param *init_param)
Initialize the device.
Definition: ad463x.c:364
Structure holding the initialization parameters for Xilinx platform specific GPIO parameters.
Definition: gpio_extra.h:70
#define AD400x_SPI_CS
Definition: ad400x_fmcz.c:21
Structure containing the init parameters needed by the offload module.
Definition: spi_engine.h:145
Header file of GPIO Interface.
@ SR_CLOCK_240_KHZ
Definition: ad5758.h:309
int32_t iio_app_run(struct iio_app_device *devices, uint32_t len)
Register devices and start an iio application.
const struct no_os_gpio_init_param ldac_ip
Definition: ad5758_sdz.c:82
#define AD469x_EVB_SAMPLE_NO
Definition: ad469x_fmcz.c:67
Definition: iio_types.h:155
const struct no_os_gpio_init_param reset_ip
Definition: ad5758_sdz.c:77
#define AD463X_TRIGGER_PULSE_WIDTH_NS
Definition: ad463x.h:147
uint32_t base_addr
Definition: axi_pwm_extra.h:57
no_os_spi_init_param * spi_init
Definition: ad469x.h:232
#define SPI_ENGINE_CMD_REG_CLK_DIV
Definition: spi_engine_private.h:77
uint32_t ref_clk_hz
Definition: spi_engine.h:91
no_os_spi_init_param spi_init
Definition: ad400x.h:77
@ NO_OS_SPI_MODE_0
Definition: no_os_spi.h:66
uint32_t rx_addr
Definition: spi_engine.h:173
uint32_t core_baseaddr
Definition: ad5766_core.h:46
int32_t ad469x_exit_conversion_mode(struct ad469x_dev *dev)
Exit conversion mode. Enter register mode to read/write registers.
Definition: ad469x.c:638
dev_id
Definition: ad9361.h:3334
Structure containing the init parameters needed by the ad469x device.
Definition: ad469x.h:230
@ AD469x_standard_seq
Definition: ad469x.h:170
enum xil_gpio_type type
Definition: gpio_extra.h:72
#define READ(no_bytes)
Definition: spi_engine.h:68
#define AD463X_SPI_COMPATIBLE_MODE
Definition: ad463x.h:126
int32_t ad463x_exit_reg_cfg_mode(struct ad463x_dev *dev)
Exit register configuration mode.
Definition: ad463x.c:201
#define AD469x_SPI_ENG_REF_CLK_FREQ_HZ
Definition: parameters.h:55
int32_t spi_engine_write(struct spi_engine_desc *desc, uint32_t reg_addr, uint32_t reg_data)
Write SPI Engine's axi registers.
Definition: spi_engine.c:92
#define GPIO_DAC_LDAC_N
Definition: parameters.h:53
#define GPIO_DAC_RESET_N
Definition: parameters.h:52
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:112
#define AD463x_DMA_BASEADDR
Definition: parameters.h:50
int main()
Definition: ad463x_fmc.c:67