#ifndef _ADRV9009_H_ #define _ADRV9009_H_ #define USR_AD9009_FPGA_WR 1 //#define FPGA_NODE "/dev/zynq_axi0" //#define FPGA_NODE "/dev/spidev1.0" #define FPGA_ADRV9009_NODE "/dev/zynq_axi0" #include "fcntl.h" #define RETRY_GET_STATUS_COUNT_MAX 100 // 使用fpga作为转发时使用以下结构体 //分开寄存器控制 #if 1 struct ad9009_init { u32 write_en_reg; //写使能寄存器 u32 write_en_bit; //写使能寄存器的控制位 u32 read_en_reg; //读使能寄存器 u32 read_en_bit; //读使能寄存器的控制位 u32 addr_reg; //操作寄存器 u32 write_data_reg; //写数据寄存器 u32 read_data_reg; //读数据寄存器 u32 write_status_reg; //写数据状态寄存器 u32 write_status_bit; //写数据状态寄存器的标志位 u32 read_status_reg; //读数据状态寄存器 u32 read_status_bit; //读数据状态寄存器的标志位 u32 reset_reg; //复位寄存器 u32 reset_bit; //复位寄存器的标志位 u32 reset_level; //reset level u32 sleep_time; //每次发送休眠时间 }; struct ad9009_chip_init { u32 chip_count; struct ad9009_init data[4]; }; //int write_ad9009(u32 num, u32 addr, u32 data); //int read_ad9009(u32 num, u32 addr, u32 count); //int read_ad9009_value(int num,int addr, unsigned int *value); //int ad9009_read(int num, u32 addr, u32 *pdata, u32 count); int ad9009_reset(int num); #define ad9009_write_spi ad9009_write_hw_spi #define ad9009_read_spi ad9009_read_hw_spi //#define ad9009_write_spi ad9009_write_sim_spi //#define ad9009_read_spi ad9009_read_sim_spi int ad9009_write_spi(int num, u32 addr, u32 *pdata, u32 count); int ad9009_read_spi(int num, u32 addr, u32 *pdata, u32 count); void spi_9009_init(void); #endif #endif