Forked repository for pushing changes to EVAL-AD4696

Dependencies:   platform_drivers

Committer:
pmallick
Date:
Thu Sep 30 11:01:05 2021 +0530
Revision:
1:8792acb5a039
AD4696 IIO Application- Initial Revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmallick 1:8792acb5a039 1 /*************************************************************************//**
pmallick 1:8792acb5a039 2 * @file ad4696_support.c
pmallick 1:8792acb5a039 3 * @brief AD469x device No-OS driver supports
pmallick 1:8792acb5a039 4 ******************************************************************************
pmallick 1:8792acb5a039 5 * Copyright (c) 2021 Analog Devices, Inc.
pmallick 1:8792acb5a039 6 *
pmallick 1:8792acb5a039 7 * All rights reserved.
pmallick 1:8792acb5a039 8 *
pmallick 1:8792acb5a039 9 * This software is proprietary to Analog Devices, Inc. and its licensors.
pmallick 1:8792acb5a039 10 * By using this software you agree to the terms of the associated
pmallick 1:8792acb5a039 11 * Analog Devices Software License Agreement.
pmallick 1:8792acb5a039 12 *****************************************************************************/
pmallick 1:8792acb5a039 13
pmallick 1:8792acb5a039 14 /******************************************************************************/
pmallick 1:8792acb5a039 15 /***************************** Include Files **********************************/
pmallick 1:8792acb5a039 16 /******************************************************************************/
pmallick 1:8792acb5a039 17
pmallick 1:8792acb5a039 18 #include <stdint.h>
pmallick 1:8792acb5a039 19
pmallick 1:8792acb5a039 20 #include "app_config.h"
pmallick 1:8792acb5a039 21 #include "ad4696_support.h"
pmallick 1:8792acb5a039 22 #include "error.h"
pmallick 1:8792acb5a039 23
pmallick 1:8792acb5a039 24 /******************************************************************************/
pmallick 1:8792acb5a039 25 /********************** Macros and Constants Definition ***********************/
pmallick 1:8792acb5a039 26 /******************************************************************************/
pmallick 1:8792acb5a039 27
pmallick 1:8792acb5a039 28 /******************************************************************************/
pmallick 1:8792acb5a039 29 /********************** Variables and User Defined Data Types *****************/
pmallick 1:8792acb5a039 30 /******************************************************************************/
pmallick 1:8792acb5a039 31
pmallick 1:8792acb5a039 32 /******************************************************************************/
pmallick 1:8792acb5a039 33 /************************ Functions Definitions *******************************/
pmallick 1:8792acb5a039 34 /******************************************************************************/
pmallick 1:8792acb5a039 35 /*!
pmallick 1:8792acb5a039 36 * @brief Enter Manual Trigger mode
pmallick 1:8792acb5a039 37 * @param device[in] - device instance
pmallick 1:8792acb5a039 38 * @return SUCCESS in case of success, negative error code otherwise.
pmallick 1:8792acb5a039 39 */
pmallick 1:8792acb5a039 40 int32_t ad4696_enable_manual_trigger_mode(struct ad469x_dev *device)
pmallick 1:8792acb5a039 41 {
pmallick 1:8792acb5a039 42 do
pmallick 1:8792acb5a039 43 {
pmallick 1:8792acb5a039 44 if (ad469x_spi_reg_write(device,
pmallick 1:8792acb5a039 45 AD469x_REG_SETUP,
pmallick 1:8792acb5a039 46 AD469x_REG_SETUP_RESET) != SUCCESS) {
pmallick 1:8792acb5a039 47 break;
pmallick 1:8792acb5a039 48 }
pmallick 1:8792acb5a039 49
pmallick 1:8792acb5a039 50 if (ad469x_spi_reg_write(device,
pmallick 1:8792acb5a039 51 AD469x_REG_SEQ_CTRL,
pmallick 1:8792acb5a039 52 AD469x_REG_SEQ_CTRL_RESET) != SUCCESS) {
pmallick 1:8792acb5a039 53 break;
pmallick 1:8792acb5a039 54 }
pmallick 1:8792acb5a039 55
pmallick 1:8792acb5a039 56 return SUCCESS;
pmallick 1:8792acb5a039 57 } while (0);
pmallick 1:8792acb5a039 58
pmallick 1:8792acb5a039 59 return FAILURE;
pmallick 1:8792acb5a039 60 }
pmallick 1:8792acb5a039 61
pmallick 1:8792acb5a039 62 /*!
pmallick 1:8792acb5a039 63 * @brief Select between polarity modes
pmallick 1:8792acb5a039 64 * @param device[in] - device instance
pmallick 1:8792acb5a039 65 * @return SUCCESS in case of success, negative error code otherwise.
pmallick 1:8792acb5a039 66 */
pmallick 1:8792acb5a039 67 int32_t ad4696_polarity_mode_select(struct ad469x_dev *device)
pmallick 1:8792acb5a039 68 {
pmallick 1:8792acb5a039 69 uint8_t data = 0;
pmallick 1:8792acb5a039 70
pmallick 1:8792acb5a039 71 for (uint8_t i = 0; i < AD469x_CHANNEL_NO;i++)
pmallick 1:8792acb5a039 72 {
pmallick 1:8792acb5a039 73 if (ad469x_spi_reg_read(device,
pmallick 1:8792acb5a039 74 AD469x_REG_CONFIG_IN(i),
pmallick 1:8792acb5a039 75 &data) != SUCCESS) {
pmallick 1:8792acb5a039 76 return FAILURE;
pmallick 1:8792acb5a039 77 }
pmallick 1:8792acb5a039 78
pmallick 1:8792acb5a039 79 #if defined(PSEUDO_BIPOLAR_MODE)
pmallick 1:8792acb5a039 80 data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_PSEUDO_BIPOLAR_MODE)
pmallick 1:8792acb5a039 81 | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_COM));
pmallick 1:8792acb5a039 82 #else
pmallick 1:8792acb5a039 83 data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_UNIPOLAR_MODE)
pmallick 1:8792acb5a039 84 | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_REF_GND));
pmallick 1:8792acb5a039 85 #endif
pmallick 1:8792acb5a039 86
pmallick 1:8792acb5a039 87 if (ad469x_spi_reg_write(device,
pmallick 1:8792acb5a039 88 AD469x_REG_CONFIG_IN(i),
pmallick 1:8792acb5a039 89 data) != SUCCESS) {
pmallick 1:8792acb5a039 90 return FAILURE;
pmallick 1:8792acb5a039 91 }
pmallick 1:8792acb5a039 92 }
pmallick 1:8792acb5a039 93 return SUCCESS;
pmallick 1:8792acb5a039 94 }