IIO firmware for the AD717x and AD411x family of devices.

Dependencies:   sdp_k1_sdram

app/ad717x_user_config.c

Committer:
Janani Sunil
Date:
22 months ago
Revision:
3:0dcba3253ec1
Parent:
0:5ad86d8d396a

File content as of revision 3:0dcba3253ec1:

/***************************************************************************//**
 * @file    ad717x_user_config.c
 * @brief   User Configuration source for AD717x-AD411x IIO Application
********************************************************************************
* Copyright (c) 2021-22 Analog Devices, Inc.
* All rights reserved.
*
* This software is proprietary to Analog Devices, Inc. and its licensors.
* By using this software you agree to the terms of the associated
* Analog Devices Software License Agreement.
*******************************************************************************/

/******************************************************************************/
/***************************** Include Files **********************************/
/******************************************************************************/

#include <stdio.h>
#include "ad717x_user_config.h"
#include "ad717x.h"
#include "ad717x_iio.h"
#include "no_os_util.h"

/******************************************************************************/
/********************* Macros and Constants Definition ************************/
/******************************************************************************/

/******************************************************************************/
/******************** Variables and User Defined Data Types *******************/
/******************************************************************************/

#if defined(DEV_AD4111) || defined(DEV_AD4112) || defined(DEV_AD4114) || \
	defined(DEV_AD4115) || defined (DEV_AD4116)
#include <ad411x_regs.h>
#define AD717X_DEVICE_MAP ad4111_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad4111_regs)
#elif defined(DEV_AD7172_2)
#include <ad7172_2_regs.h>
#define AD717X_DEVICE_MAP ad7172_2_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7172_2_regs)
#elif defined(DEV_AD7172_4)
#include <ad7172_4_regs.h>
#define AD717X_DEVICE_MAP ad7172_4_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7172_4_regs)
#elif defined(DEV_AD7173_8)
#include <ad7173_8_regs.h>
#define AD717X_DEVICE_MAP ad7173_8_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7173_8_regs)
#elif defined(DEV_AD7175_2)
#include <ad7175_2_regs.h>
#define AD717X_DEVICE_MAP ad7175_2_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7175_2_regs)
#elif defined(DEV_AD7175_8)
#include <ad7175_8_regs.h>
#define AD717X_DEVICE_MAP ad7175_8_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7175_8_regs)
#elif defined(DEV_AD7176_2)
#include <ad7176_2_regs.h>
#define AD717X_DEVICE_MAP ad7176_2_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad7176_2_regs)
#else
#include <ad411x_regs.h>
#define AD717X_DEVICE_MAP ad4111_regs
#define AD717x_NUM_REGS NO_OS_ARRAY_SIZE(ad4111_regs)
#endif

/* AD717x Init Parameters */
ad717x_init_param ad717x_init_params = {
	.spi_init = {
		.max_speed_hz = 20000000,
		.chip_select = SPI_CSB,
		.mode = NO_OS_SPI_MODE_3,
		.platform_ops = &spi_platform_ops,
		.extra = &spi_extra_init_params
	},
	.num_regs = AD717x_NUM_REGS,
	.regs = AD717X_DEVICE_MAP,
	.ref_en = true,
	.active_device = ACTIVE_DEVICE_ID,
	.num_channels = NUMBER_OF_CHANNELS,
	.num_setups = NUMBER_OF_SETUPS,
	.mode =  CONTINUOUS,
	.setups = {
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
#if (NUMBER_OF_SETUPS != 4)
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
		{ .bi_unipolar = true, .ref_buff = false, .input_buff = true, .ref_source = INTERNAL_REF },
#endif
	},
	.chan_map = {
#if defined (DEV_AD4111) || defined (DEV_AD4112) || defined (DEV_AD4114) || defined (DEV_AD4115) || defined (DEV_AD4116)
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 1, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
#if (NUMBER_OF_CHANNELS != 4)
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
#if (NUMBER_OF_CHANNELS != 4) && (NUMBER_OF_CHANNELS != 8)
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.analog_input_pairs = VIN0_VIN1 },
#endif
#endif
#else // AD717x Family
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
#if (NUMBER_OF_CHANNELS != 4)
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
#if (NUMBER_OF_CHANNELS != 4) && (NUMBER_OF_CHANNELS != 8)
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
		{ .channel_enable = false, .setup_sel = 0, .analog_inputs.ainp.pos_analog_input = AIN0, .analog_inputs.ainp.neg_analog_input = AIN1 },
#endif // (NUMBER_OF_CHANNELS != 4) && (NUMBER_OF_CHANNELS != 8)
#endif // (NUMBER_OF_CHANNELS != 4)
#endif // (DEV_AD4111),(DEV_AD4112),(DEV_AD4114),(DEV_AD4115), (DEV_AD4116)
	},
	.filter_configuration = {
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
#if (NUMBER_OF_SETUPS != 4)
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
		{.odr = AD717x_ODR_SEL},
#endif // (NUMBER_OF_SETUPS!= 4)
	}
};

/******************************************************************************/
/************************** Functions Declaration *****************************/
/******************************************************************************/

/******************************************************************************/
/************************** Functions Definition ******************************/
/******************************************************************************/