Example Program for EVAL-AD7606
Dependencies: platform_drivers
app/iio_ad7606_attr.h@1:819ac9aa5667, 2020-10-05 (annotated)
- Committer:
- mahphalke
- Date:
- Mon Oct 05 13:45:15 2020 +0530
- Revision:
- 1:819ac9aa5667
- Child:
- 3:83b3133f544a
AD7606 IIO Application- Initial Revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mahphalke |
1:819ac9aa5667 | 1 | /***************************************************************************//** |
mahphalke |
1:819ac9aa5667 | 2 | * @file iio_ad7606_attr.h |
mahphalke |
1:819ac9aa5667 | 3 | * @brief File for AD7606 IIO Attributes |
mahphalke |
1:819ac9aa5667 | 4 | ******************************************************************************** |
mahphalke |
1:819ac9aa5667 | 5 | * Copyright (c) 2020 Analog Devices, Inc. |
mahphalke |
1:819ac9aa5667 | 6 | * |
mahphalke |
1:819ac9aa5667 | 7 | * All rights reserved. |
mahphalke |
1:819ac9aa5667 | 8 | * This software is proprietary to Analog Devices, Inc. and its licensors. |
mahphalke |
1:819ac9aa5667 | 9 | * By using this software you agree to the terms of the associated |
mahphalke |
1:819ac9aa5667 | 10 | * Analog Devices Software License Agreement. |
mahphalke |
1:819ac9aa5667 | 11 | *******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 12 | #ifndef IIO_AD7606_ATTR_H_ |
mahphalke |
1:819ac9aa5667 | 13 | #define IIO_AD7606_ATTR_H_ |
mahphalke |
1:819ac9aa5667 | 14 | |
mahphalke |
1:819ac9aa5667 | 15 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 16 | /***************************** Include Files **********************************/ |
mahphalke |
1:819ac9aa5667 | 17 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 18 | |
mahphalke |
1:819ac9aa5667 | 19 | #include <stdio.h> |
mahphalke |
1:819ac9aa5667 | 20 | #include <stdbool.h> |
mahphalke |
1:819ac9aa5667 | 21 | |
mahphalke |
1:819ac9aa5667 | 22 | #include "app_config.h" |
mahphalke |
1:819ac9aa5667 | 23 | #include "iio.h" |
mahphalke |
1:819ac9aa5667 | 24 | #include "iio_types.h" |
mahphalke |
1:819ac9aa5667 | 25 | |
mahphalke |
1:819ac9aa5667 | 26 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 27 | /****************************** Macros ****************************************/ |
mahphalke |
1:819ac9aa5667 | 28 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 29 | |
mahphalke |
1:819ac9aa5667 | 30 | extern ssize_t get_chn_scale(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 31 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 32 | extern ssize_t set_chn_scale(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 33 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 34 | |
mahphalke |
1:819ac9aa5667 | 35 | extern ssize_t get_chn_range(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 36 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 37 | extern ssize_t set_chn_range(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 38 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 39 | |
mahphalke |
1:819ac9aa5667 | 40 | extern ssize_t get_chn_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 41 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 42 | extern ssize_t set_chn_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 43 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 44 | |
mahphalke |
1:819ac9aa5667 | 45 | extern ssize_t get_chn_phase_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 46 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 47 | extern ssize_t set_chn_phase_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 48 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 49 | |
mahphalke |
1:819ac9aa5667 | 50 | extern ssize_t get_chn_temperature(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 51 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 52 | extern ssize_t set_chn_temperature(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 53 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 54 | |
mahphalke |
1:819ac9aa5667 | 55 | extern ssize_t get_chn_vref(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 56 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 57 | extern ssize_t set_chn_vref(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 58 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 59 | |
mahphalke |
1:819ac9aa5667 | 60 | extern ssize_t get_chn_vdrive(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 61 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 62 | extern ssize_t set_chn_vdrive(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 63 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 64 | |
mahphalke |
1:819ac9aa5667 | 65 | extern ssize_t get_chn_aldo(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 66 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 67 | extern ssize_t set_chn_aldo(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 68 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 69 | |
mahphalke |
1:819ac9aa5667 | 70 | extern ssize_t get_chn_dldo(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 71 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 72 | extern ssize_t set_chn_dldo(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 73 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 74 | |
mahphalke |
1:819ac9aa5667 | 75 | extern ssize_t get_bandwidth(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 76 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 77 | extern ssize_t set_bandwidth(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 78 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 79 | |
mahphalke |
1:819ac9aa5667 | 80 | extern ssize_t get_chn_open_wire_detect_manual(void *device, char *buf, |
mahphalke |
1:819ac9aa5667 | 81 | size_t len, |
mahphalke |
1:819ac9aa5667 | 82 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 83 | extern ssize_t set_chn_open_wire_detect_manual(void *device, char *buf, |
mahphalke |
1:819ac9aa5667 | 84 | size_t len, |
mahphalke |
1:819ac9aa5667 | 85 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 86 | |
mahphalke |
1:819ac9aa5667 | 87 | extern ssize_t get_chn_open_wire_detect_auto(void *device, char *buf, |
mahphalke |
1:819ac9aa5667 | 88 | size_t len, |
mahphalke |
1:819ac9aa5667 | 89 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 90 | extern ssize_t set_chn_open_wire_detect_auto(void *device, char *buf, |
mahphalke |
1:819ac9aa5667 | 91 | size_t len, |
mahphalke |
1:819ac9aa5667 | 92 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 93 | |
mahphalke |
1:819ac9aa5667 | 94 | extern ssize_t get_chn_calibrate_adc_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 95 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 96 | extern ssize_t set_chn_calibrate_adc_offset(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 97 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 98 | |
mahphalke |
1:819ac9aa5667 | 99 | extern ssize_t get_chn_calibrate_adc_gain(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 100 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 101 | extern ssize_t set_chn_calibrate_adc_gain(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 102 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 103 | |
mahphalke |
1:819ac9aa5667 | 104 | extern ssize_t get_chn_raw(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 105 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 106 | extern ssize_t set_chn_raw(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 107 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 108 | |
mahphalke |
1:819ac9aa5667 | 109 | extern ssize_t get_operating_mode(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 110 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 111 | extern ssize_t set_operating_mode(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 112 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 113 | |
mahphalke |
1:819ac9aa5667 | 114 | extern ssize_t get_power_down_mode(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 115 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 116 | extern ssize_t set_power_down_mode(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 117 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 118 | |
mahphalke |
1:819ac9aa5667 | 119 | extern ssize_t get_range(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 120 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 121 | extern ssize_t set_range(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 122 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 123 | |
mahphalke |
1:819ac9aa5667 | 124 | extern ssize_t get_oversampling(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 125 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 126 | extern ssize_t set_oversampling(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 127 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 128 | |
mahphalke |
1:819ac9aa5667 | 129 | extern ssize_t get_direct_reg_access(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 130 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 131 | extern ssize_t set_direct_reg_access(void *device, char *buf, size_t len, |
mahphalke |
1:819ac9aa5667 | 132 | const struct iio_ch_info *channel); |
mahphalke |
1:819ac9aa5667 | 133 | |
mahphalke |
1:819ac9aa5667 | 134 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 135 | /*************************** Types Declarations *******************************/ |
mahphalke |
1:819ac9aa5667 | 136 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 137 | |
mahphalke |
1:819ac9aa5667 | 138 | #if defined(DEV_AD7605_4) |
mahphalke |
1:819ac9aa5667 | 139 | #define AD7606X_DEVICE_ID "<device id=\"AD7605-4-phy\" name=\"ID_AD7605-4-phy\" >" |
mahphalke |
1:819ac9aa5667 | 140 | #elif defined(DEV_AD7606_4) |
mahphalke |
1:819ac9aa5667 | 141 | #define AD7606X_DEVICE_ID "<device id=\"AD7606-4-phy\" name=\"AD7606-4-phy\" >" |
mahphalke |
1:819ac9aa5667 | 142 | #elif defined(DEV_AD7606_6) |
mahphalke |
1:819ac9aa5667 | 143 | #define AD7606X_DEVICE_ID "<device id=\"AD7606-6-phy\" name=\"AD7606-6-phy\" >" |
mahphalke |
1:819ac9aa5667 | 144 | #elif defined(DEV_AD7606_8) |
mahphalke |
1:819ac9aa5667 | 145 | #define AD7606X_DEVICE_ID "<device id=\"AD7606-8-phy\" name=\"AD7606-8-phy\" >" |
mahphalke |
1:819ac9aa5667 | 146 | #elif defined(DEV_AD7606B) |
mahphalke |
1:819ac9aa5667 | 147 | #define AD7606X_DEVICE_ID "<device id=\"AD7606B-phy\" name=\"AD7606B-phy\" >" |
mahphalke |
1:819ac9aa5667 | 148 | #elif defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 149 | #define AD7606X_DEVICE_ID "<device id=\"AD7606C-phy\" name=\"AD7606C-16-phy\" >" |
mahphalke |
1:819ac9aa5667 | 150 | #elif defined(DEV_AD7606C_18) |
mahphalke |
1:819ac9aa5667 | 151 | #define AD7606X_DEVICE_ID "<device id=\"AD7606C-phy\" name=\"AD7606C-18-phy\" >" |
mahphalke |
1:819ac9aa5667 | 152 | #elif defined(DEV_AD7608) |
mahphalke |
1:819ac9aa5667 | 153 | #define AD7606X_DEVICE_ID "<device id=\"AD7608-phy\" name=\"AD7608-phy\" >" |
mahphalke |
1:819ac9aa5667 | 154 | #elif defined(DEV_AD7609) |
mahphalke |
1:819ac9aa5667 | 155 | #define AD7606X_DEVICE_ID "<device id=\"AD7609-phy\" name=\"AD7609-phy\" >" |
mahphalke |
1:819ac9aa5667 | 156 | #else |
mahphalke |
1:819ac9aa5667 | 157 | #endif |
mahphalke |
1:819ac9aa5667 | 158 | |
mahphalke |
1:819ac9aa5667 | 159 | #define AD7606X_COMMON_ATTRB "<attribute name=\"raw\" />" \ |
mahphalke |
1:819ac9aa5667 | 160 | "<attribute name=\"scale\" />" |
mahphalke |
1:819ac9aa5667 | 161 | |
mahphalke |
1:819ac9aa5667 | 162 | #if defined(DEV_AD7606B) |
mahphalke |
1:819ac9aa5667 | 163 | #define AD7606X_CHANNELS_ATTRB "<attribute name=\"chn_range\" />" \ |
mahphalke |
1:819ac9aa5667 | 164 | "<attribute name=\"chn_offset\" />" \ |
mahphalke |
1:819ac9aa5667 | 165 | "<attribute name=\"Temperature\" />" \ |
mahphalke |
1:819ac9aa5667 | 166 | "<attribute name=\"Vref\" />" \ |
mahphalke |
1:819ac9aa5667 | 167 | "<attribute name=\"Vdrive\" />" \ |
mahphalke |
1:819ac9aa5667 | 168 | "<attribute name=\"ALDO\" />" \ |
mahphalke |
1:819ac9aa5667 | 169 | "<attribute name=\"DLDO\" />" \ |
mahphalke |
1:819ac9aa5667 | 170 | "<attribute name=\"open_wire_detect_manual\" />" \ |
mahphalke |
1:819ac9aa5667 | 171 | "<attribute name=\"open_wire_detect_auto\" />" \ |
mahphalke |
1:819ac9aa5667 | 172 | "<attribute name=\"calibrate_adc_offset\" />" \ |
mahphalke |
1:819ac9aa5667 | 173 | "<attribute name=\"calibrate_adc_gain\" />" |
mahphalke |
1:819ac9aa5667 | 174 | #elif defined(DEV_AD7606C_18) || defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 175 | #define AD7606X_CHANNELS_ATTRB "<attribute name=\"chn_range\" />" \ |
mahphalke |
1:819ac9aa5667 | 176 | "<attribute name=\"chn_offset\" />" \ |
mahphalke |
1:819ac9aa5667 | 177 | "<attribute name=\"Temperature\" />" \ |
mahphalke |
1:819ac9aa5667 | 178 | "<attribute name=\"Vref\" />" \ |
mahphalke |
1:819ac9aa5667 | 179 | "<attribute name=\"Vdrive\" />" \ |
mahphalke |
1:819ac9aa5667 | 180 | "<attribute name=\"ALDO\" />" \ |
mahphalke |
1:819ac9aa5667 | 181 | "<attribute name=\"DLDO\" />" \ |
mahphalke |
1:819ac9aa5667 | 182 | "<attribute name=\"open_wire_detect_manual\" />" \ |
mahphalke |
1:819ac9aa5667 | 183 | "<attribute name=\"open_wire_detect_auto\" />" \ |
mahphalke |
1:819ac9aa5667 | 184 | "<attribute name=\"calibrate_adc_offset\" />" \ |
mahphalke |
1:819ac9aa5667 | 185 | "<attribute name=\"calibrate_adc_gain\" />" \ |
mahphalke |
1:819ac9aa5667 | 186 | "<attribute name=\"bandwidth\" />" |
mahphalke |
1:819ac9aa5667 | 187 | #endif |
mahphalke |
1:819ac9aa5667 | 188 | |
mahphalke |
1:819ac9aa5667 | 189 | #if defined(DEV_AD7606B) || defined(DEV_AD7606C_18) || defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 190 | #define AD7606X_GLOBAL_ATTRB "<attribute name=\"operating_mode\" />" \ |
mahphalke |
1:819ac9aa5667 | 191 | "<attribute name=\"oversampling\" />" \ |
mahphalke |
1:819ac9aa5667 | 192 | "<debug-attribute name =\"direct_reg_access\" />" |
mahphalke |
1:819ac9aa5667 | 193 | #else |
mahphalke |
1:819ac9aa5667 | 194 | #define AD7606X_GLOBAL_ATTRB "<attribute name=\"power_down_mode\" />" \ |
mahphalke |
1:819ac9aa5667 | 195 | "<attribute name=\"range\" />" |
mahphalke |
1:819ac9aa5667 | 196 | #endif |
mahphalke |
1:819ac9aa5667 | 197 | |
mahphalke |
1:819ac9aa5667 | 198 | |
mahphalke |
1:819ac9aa5667 | 199 | // XML describes the IIO context hierarchy for AD7606 family devices |
mahphalke |
1:819ac9aa5667 | 200 | static const char * const ad7606_phy_xml = |
mahphalke |
1:819ac9aa5667 | 201 | AD7606X_DEVICE_ID |
mahphalke |
1:819ac9aa5667 | 202 | "<channel id=\"voltage1\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 203 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 204 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"0\" />" |
mahphalke |
1:819ac9aa5667 | 205 | #else |
mahphalke |
1:819ac9aa5667 | 206 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"0\" />" |
mahphalke |
1:819ac9aa5667 | 207 | #endif |
mahphalke |
1:819ac9aa5667 | 208 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 209 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 210 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 211 | "<channel id=\"voltage2\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 212 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 213 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"1\" />" |
mahphalke |
1:819ac9aa5667 | 214 | #else |
mahphalke |
1:819ac9aa5667 | 215 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"1\" />" |
mahphalke |
1:819ac9aa5667 | 216 | #endif |
mahphalke |
1:819ac9aa5667 | 217 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 218 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 219 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 220 | "<channel id=\"voltage3\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 221 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 222 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"2\" />" |
mahphalke |
1:819ac9aa5667 | 223 | #else |
mahphalke |
1:819ac9aa5667 | 224 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"2\" />" |
mahphalke |
1:819ac9aa5667 | 225 | #endif |
mahphalke |
1:819ac9aa5667 | 226 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 227 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 228 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 229 | "<channel id=\"voltage4\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 230 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 231 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"3\" />" |
mahphalke |
1:819ac9aa5667 | 232 | #else |
mahphalke |
1:819ac9aa5667 | 233 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"3\" />" |
mahphalke |
1:819ac9aa5667 | 234 | #endif |
mahphalke |
1:819ac9aa5667 | 235 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 236 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 237 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 238 | #if (AD7606X_ADC_CHANNELS > 4) |
mahphalke |
1:819ac9aa5667 | 239 | "<channel id=\"voltage5\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 240 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 241 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"4\" />" |
mahphalke |
1:819ac9aa5667 | 242 | #else |
mahphalke |
1:819ac9aa5667 | 243 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"4\" />" |
mahphalke |
1:819ac9aa5667 | 244 | #endif |
mahphalke |
1:819ac9aa5667 | 245 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 246 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 247 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 248 | "<channel id=\"voltage6\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 249 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 250 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"5\" />" |
mahphalke |
1:819ac9aa5667 | 251 | #else |
mahphalke |
1:819ac9aa5667 | 252 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"5\" />" |
mahphalke |
1:819ac9aa5667 | 253 | #endif |
mahphalke |
1:819ac9aa5667 | 254 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 255 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 256 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 257 | #endif |
mahphalke |
1:819ac9aa5667 | 258 | #if (AD7606X_ADC_CHANNELS > 6) |
mahphalke |
1:819ac9aa5667 | 259 | "<channel id=\"voltage7\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 260 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 261 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"6\" />" |
mahphalke |
1:819ac9aa5667 | 262 | #else |
mahphalke |
1:819ac9aa5667 | 263 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"6\" />" |
mahphalke |
1:819ac9aa5667 | 264 | #endif |
mahphalke |
1:819ac9aa5667 | 265 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 266 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 267 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 268 | "<channel id=\"voltage8\" type=\"input\" >" |
mahphalke |
1:819ac9aa5667 | 269 | #if (AD7606X_ADC_RESOLUTION == 18) |
mahphalke |
1:819ac9aa5667 | 270 | "<scan-element scale=\"0.1525\" format=\"le:s18/18>>0\" index = \"7\" />" |
mahphalke |
1:819ac9aa5667 | 271 | #else |
mahphalke |
1:819ac9aa5667 | 272 | "<scan-element scale=\"0.1525\" format=\"le:s16/16>>0\" index = \"7\" />" |
mahphalke |
1:819ac9aa5667 | 273 | #endif |
mahphalke |
1:819ac9aa5667 | 274 | AD7606X_COMMON_ATTRB |
mahphalke |
1:819ac9aa5667 | 275 | AD7606X_CHANNELS_ATTRB |
mahphalke |
1:819ac9aa5667 | 276 | "</channel>" |
mahphalke |
1:819ac9aa5667 | 277 | #endif |
mahphalke |
1:819ac9aa5667 | 278 | AD7606X_GLOBAL_ATTRB |
mahphalke |
1:819ac9aa5667 | 279 | "</device>"; |
mahphalke |
1:819ac9aa5667 | 280 | |
mahphalke |
1:819ac9aa5667 | 281 | |
mahphalke |
1:819ac9aa5667 | 282 | /* Channels IIO attribute structures */ |
mahphalke |
1:819ac9aa5667 | 283 | |
mahphalke |
1:819ac9aa5667 | 284 | static struct iio_attribute iio_attr_chn_scale = { |
mahphalke |
1:819ac9aa5667 | 285 | .name = "scale", |
mahphalke |
1:819ac9aa5667 | 286 | .show = get_chn_scale, |
mahphalke |
1:819ac9aa5667 | 287 | .store = set_chn_scale, |
mahphalke |
1:819ac9aa5667 | 288 | }; |
mahphalke |
1:819ac9aa5667 | 289 | |
mahphalke |
1:819ac9aa5667 | 290 | static struct iio_attribute iio_attr_chn_raw = { |
mahphalke |
1:819ac9aa5667 | 291 | .name = "raw", |
mahphalke |
1:819ac9aa5667 | 292 | .show = get_chn_raw, |
mahphalke |
1:819ac9aa5667 | 293 | .store = set_chn_raw, |
mahphalke |
1:819ac9aa5667 | 294 | }; |
mahphalke |
1:819ac9aa5667 | 295 | |
mahphalke |
1:819ac9aa5667 | 296 | static struct iio_attribute iio_attr_chn_range = { |
mahphalke |
1:819ac9aa5667 | 297 | .name = "chn_range", |
mahphalke |
1:819ac9aa5667 | 298 | .show = get_chn_range, |
mahphalke |
1:819ac9aa5667 | 299 | .store = set_chn_range, |
mahphalke |
1:819ac9aa5667 | 300 | }; |
mahphalke |
1:819ac9aa5667 | 301 | |
mahphalke |
1:819ac9aa5667 | 302 | static struct iio_attribute iio_attr_chn_offset = { |
mahphalke |
1:819ac9aa5667 | 303 | .name = "chn_offset", |
mahphalke |
1:819ac9aa5667 | 304 | .show = get_chn_offset, |
mahphalke |
1:819ac9aa5667 | 305 | .store = set_chn_offset, |
mahphalke |
1:819ac9aa5667 | 306 | }; |
mahphalke |
1:819ac9aa5667 | 307 | |
mahphalke |
1:819ac9aa5667 | 308 | static struct iio_attribute iio_attr_chn_phase_offset = { |
mahphalke |
1:819ac9aa5667 | 309 | .name = "chn_phase offset", |
mahphalke |
1:819ac9aa5667 | 310 | .show = get_chn_phase_offset, |
mahphalke |
1:819ac9aa5667 | 311 | .store = set_chn_phase_offset, |
mahphalke |
1:819ac9aa5667 | 312 | }; |
mahphalke |
1:819ac9aa5667 | 313 | |
mahphalke |
1:819ac9aa5667 | 314 | static struct iio_attribute iio_attr_chn_temperature = { |
mahphalke |
1:819ac9aa5667 | 315 | .name = "Temperature", |
mahphalke |
1:819ac9aa5667 | 316 | .show = get_chn_temperature, |
mahphalke |
1:819ac9aa5667 | 317 | .store = set_chn_temperature, |
mahphalke |
1:819ac9aa5667 | 318 | }; |
mahphalke |
1:819ac9aa5667 | 319 | |
mahphalke |
1:819ac9aa5667 | 320 | static struct iio_attribute iio_attr_chn_vref = { |
mahphalke |
1:819ac9aa5667 | 321 | .name = "Vref", |
mahphalke |
1:819ac9aa5667 | 322 | .show = get_chn_vref, |
mahphalke |
1:819ac9aa5667 | 323 | .store = set_chn_vref, |
mahphalke |
1:819ac9aa5667 | 324 | }; |
mahphalke |
1:819ac9aa5667 | 325 | |
mahphalke |
1:819ac9aa5667 | 326 | static struct iio_attribute iio_attr_chn_vdrive = { |
mahphalke |
1:819ac9aa5667 | 327 | .name = "Vdrive", |
mahphalke |
1:819ac9aa5667 | 328 | .show = get_chn_vdrive, |
mahphalke |
1:819ac9aa5667 | 329 | .store = set_chn_vdrive, |
mahphalke |
1:819ac9aa5667 | 330 | }; |
mahphalke |
1:819ac9aa5667 | 331 | |
mahphalke |
1:819ac9aa5667 | 332 | static struct iio_attribute iio_attr_chn_aldo = { |
mahphalke |
1:819ac9aa5667 | 333 | .name = "ALDO", |
mahphalke |
1:819ac9aa5667 | 334 | .show = get_chn_aldo, |
mahphalke |
1:819ac9aa5667 | 335 | .store = set_chn_aldo, |
mahphalke |
1:819ac9aa5667 | 336 | }; |
mahphalke |
1:819ac9aa5667 | 337 | |
mahphalke |
1:819ac9aa5667 | 338 | static struct iio_attribute iio_attr_chn_dldo = { |
mahphalke |
1:819ac9aa5667 | 339 | .name = "DLDO", |
mahphalke |
1:819ac9aa5667 | 340 | .show = get_chn_dldo, |
mahphalke |
1:819ac9aa5667 | 341 | .store = set_chn_dldo, |
mahphalke |
1:819ac9aa5667 | 342 | }; |
mahphalke |
1:819ac9aa5667 | 343 | |
mahphalke |
1:819ac9aa5667 | 344 | static struct iio_attribute iio_attr_bandwidth = { |
mahphalke |
1:819ac9aa5667 | 345 | .name = "bandwidth", |
mahphalke |
1:819ac9aa5667 | 346 | .show = get_bandwidth, |
mahphalke |
1:819ac9aa5667 | 347 | .store = set_bandwidth, |
mahphalke |
1:819ac9aa5667 | 348 | }; |
mahphalke |
1:819ac9aa5667 | 349 | |
mahphalke |
1:819ac9aa5667 | 350 | static struct iio_attribute iio_attr_chn_open_wire_detect_manual = { |
mahphalke |
1:819ac9aa5667 | 351 | .name = "open_wire_detect_manual", |
mahphalke |
1:819ac9aa5667 | 352 | .show = get_chn_open_wire_detect_manual, |
mahphalke |
1:819ac9aa5667 | 353 | .store = set_chn_open_wire_detect_manual, |
mahphalke |
1:819ac9aa5667 | 354 | }; |
mahphalke |
1:819ac9aa5667 | 355 | |
mahphalke |
1:819ac9aa5667 | 356 | static struct iio_attribute iio_attr_chn_open_wire_detect_auto = { |
mahphalke |
1:819ac9aa5667 | 357 | .name = "open_wire_detect_auto", |
mahphalke |
1:819ac9aa5667 | 358 | .show = get_chn_open_wire_detect_auto, |
mahphalke |
1:819ac9aa5667 | 359 | .store = set_chn_open_wire_detect_auto, |
mahphalke |
1:819ac9aa5667 | 360 | }; |
mahphalke |
1:819ac9aa5667 | 361 | |
mahphalke |
1:819ac9aa5667 | 362 | static struct iio_attribute iio_attr_calibrate_adc_offset= { |
mahphalke |
1:819ac9aa5667 | 363 | .name = "calibrate_adc_offset", |
mahphalke |
1:819ac9aa5667 | 364 | .show = get_chn_calibrate_adc_offset, |
mahphalke |
1:819ac9aa5667 | 365 | .store = set_chn_calibrate_adc_offset, |
mahphalke |
1:819ac9aa5667 | 366 | }; |
mahphalke |
1:819ac9aa5667 | 367 | |
mahphalke |
1:819ac9aa5667 | 368 | static struct iio_attribute iio_attr_calibrate_adc_gain = { |
mahphalke |
1:819ac9aa5667 | 369 | .name = "calibrate_adc_gain", |
mahphalke |
1:819ac9aa5667 | 370 | .show = get_chn_calibrate_adc_gain, |
mahphalke |
1:819ac9aa5667 | 371 | .store = set_chn_calibrate_adc_gain, |
mahphalke |
1:819ac9aa5667 | 372 | }; |
mahphalke |
1:819ac9aa5667 | 373 | |
mahphalke |
1:819ac9aa5667 | 374 | |
mahphalke |
1:819ac9aa5667 | 375 | struct iio_attribute *channel_input_attributes[] = { |
mahphalke |
1:819ac9aa5667 | 376 | &iio_attr_chn_raw, |
mahphalke |
1:819ac9aa5667 | 377 | &iio_attr_chn_scale, |
mahphalke |
1:819ac9aa5667 | 378 | #if defined(DEV_AD7606B) || defined(DEV_AD7606C_18) || defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 379 | &iio_attr_chn_range, |
mahphalke |
1:819ac9aa5667 | 380 | &iio_attr_chn_offset, |
mahphalke |
1:819ac9aa5667 | 381 | &iio_attr_chn_phase_offset, |
mahphalke |
1:819ac9aa5667 | 382 | &iio_attr_chn_temperature, |
mahphalke |
1:819ac9aa5667 | 383 | &iio_attr_chn_vref, |
mahphalke |
1:819ac9aa5667 | 384 | &iio_attr_chn_vdrive, |
mahphalke |
1:819ac9aa5667 | 385 | &iio_attr_chn_aldo, |
mahphalke |
1:819ac9aa5667 | 386 | &iio_attr_chn_dldo, |
mahphalke |
1:819ac9aa5667 | 387 | &iio_attr_chn_open_wire_detect_manual, |
mahphalke |
1:819ac9aa5667 | 388 | &iio_attr_chn_open_wire_detect_auto, |
mahphalke |
1:819ac9aa5667 | 389 | &iio_attr_calibrate_adc_offset, |
mahphalke |
1:819ac9aa5667 | 390 | &iio_attr_calibrate_adc_gain, |
mahphalke |
1:819ac9aa5667 | 391 | #if defined(DEV_AD7606C_18) || defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 392 | &iio_attr_bandwidth |
mahphalke |
1:819ac9aa5667 | 393 | #endif |
mahphalke |
1:819ac9aa5667 | 394 | #endif |
mahphalke |
1:819ac9aa5667 | 395 | }; |
mahphalke |
1:819ac9aa5667 | 396 | |
mahphalke |
1:819ac9aa5667 | 397 | |
mahphalke |
1:819ac9aa5667 | 398 | /* Device IIO attribute structures */ |
mahphalke |
1:819ac9aa5667 | 399 | |
mahphalke |
1:819ac9aa5667 | 400 | static struct iio_attribute iio_attr_operating_mode = { |
mahphalke |
1:819ac9aa5667 | 401 | .name = "operating_mode", |
mahphalke |
1:819ac9aa5667 | 402 | .show = get_operating_mode, |
mahphalke |
1:819ac9aa5667 | 403 | .store = set_operating_mode, |
mahphalke |
1:819ac9aa5667 | 404 | }; |
mahphalke |
1:819ac9aa5667 | 405 | |
mahphalke |
1:819ac9aa5667 | 406 | static struct iio_attribute iio_attr_power_down_mode = { |
mahphalke |
1:819ac9aa5667 | 407 | .name = "power_down_mode", |
mahphalke |
1:819ac9aa5667 | 408 | .show = get_power_down_mode, |
mahphalke |
1:819ac9aa5667 | 409 | .store = set_power_down_mode, |
mahphalke |
1:819ac9aa5667 | 410 | }; |
mahphalke |
1:819ac9aa5667 | 411 | |
mahphalke |
1:819ac9aa5667 | 412 | static struct iio_attribute iio_attr_range = { |
mahphalke |
1:819ac9aa5667 | 413 | .name = "range", |
mahphalke |
1:819ac9aa5667 | 414 | .show = get_range, |
mahphalke |
1:819ac9aa5667 | 415 | .store = set_range, |
mahphalke |
1:819ac9aa5667 | 416 | }; |
mahphalke |
1:819ac9aa5667 | 417 | |
mahphalke |
1:819ac9aa5667 | 418 | static struct iio_attribute iio_attr_oversampling = { |
mahphalke |
1:819ac9aa5667 | 419 | .name = "oversampling", |
mahphalke |
1:819ac9aa5667 | 420 | .show = get_oversampling, |
mahphalke |
1:819ac9aa5667 | 421 | .store = set_oversampling, |
mahphalke |
1:819ac9aa5667 | 422 | }; |
mahphalke |
1:819ac9aa5667 | 423 | |
mahphalke |
1:819ac9aa5667 | 424 | static struct iio_attribute iio_attr_direct_reg_access = { |
mahphalke |
1:819ac9aa5667 | 425 | .name = "direct_reg_access", |
mahphalke |
1:819ac9aa5667 | 426 | .show = get_direct_reg_access, |
mahphalke |
1:819ac9aa5667 | 427 | .store = set_direct_reg_access, |
mahphalke |
1:819ac9aa5667 | 428 | }; |
mahphalke |
1:819ac9aa5667 | 429 | |
mahphalke |
1:819ac9aa5667 | 430 | static struct iio_attribute *global_attributes[] = { |
mahphalke |
1:819ac9aa5667 | 431 | #if defined(DEV_AD7606B) || defined(DEV_AD7606C_18) || defined(DEV_AD7606C_16) |
mahphalke |
1:819ac9aa5667 | 432 | &iio_attr_operating_mode, |
mahphalke |
1:819ac9aa5667 | 433 | &iio_attr_oversampling, |
mahphalke |
1:819ac9aa5667 | 434 | &iio_attr_direct_reg_access, |
mahphalke |
1:819ac9aa5667 | 435 | #else |
mahphalke |
1:819ac9aa5667 | 436 | &iio_attr_power_down_mode, |
mahphalke |
1:819ac9aa5667 | 437 | &iio_attr_range, |
mahphalke |
1:819ac9aa5667 | 438 | #endif |
mahphalke |
1:819ac9aa5667 | 439 | }; |
mahphalke |
1:819ac9aa5667 | 440 | |
mahphalke |
1:819ac9aa5667 | 441 | |
mahphalke |
1:819ac9aa5667 | 442 | static struct iio_channel iio_channel_ch1_in = { |
mahphalke |
1:819ac9aa5667 | 443 | .name = "voltage1", |
mahphalke |
1:819ac9aa5667 | 444 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 445 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 446 | }; |
mahphalke |
1:819ac9aa5667 | 447 | |
mahphalke |
1:819ac9aa5667 | 448 | static struct iio_channel iio_channel_ch2_in = { |
mahphalke |
1:819ac9aa5667 | 449 | .name = "voltage2", |
mahphalke |
1:819ac9aa5667 | 450 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 451 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 452 | }; |
mahphalke |
1:819ac9aa5667 | 453 | |
mahphalke |
1:819ac9aa5667 | 454 | static struct iio_channel iio_channel_ch3_in = { |
mahphalke |
1:819ac9aa5667 | 455 | .name = "voltage3", |
mahphalke |
1:819ac9aa5667 | 456 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 457 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 458 | }; |
mahphalke |
1:819ac9aa5667 | 459 | |
mahphalke |
1:819ac9aa5667 | 460 | static struct iio_channel iio_channel_ch4_in = { |
mahphalke |
1:819ac9aa5667 | 461 | .name = "voltage4", |
mahphalke |
1:819ac9aa5667 | 462 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 463 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 464 | }; |
mahphalke |
1:819ac9aa5667 | 465 | |
mahphalke |
1:819ac9aa5667 | 466 | static struct iio_channel iio_channel_ch5_in = { |
mahphalke |
1:819ac9aa5667 | 467 | .name = "voltage5", |
mahphalke |
1:819ac9aa5667 | 468 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 469 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 470 | }; |
mahphalke |
1:819ac9aa5667 | 471 | |
mahphalke |
1:819ac9aa5667 | 472 | static struct iio_channel iio_channel_ch6_in = { |
mahphalke |
1:819ac9aa5667 | 473 | .name = "voltage6", |
mahphalke |
1:819ac9aa5667 | 474 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 475 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 476 | }; |
mahphalke |
1:819ac9aa5667 | 477 | |
mahphalke |
1:819ac9aa5667 | 478 | static struct iio_channel iio_channel_ch7_in = { |
mahphalke |
1:819ac9aa5667 | 479 | .name = "voltage7", |
mahphalke |
1:819ac9aa5667 | 480 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 481 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 482 | }; |
mahphalke |
1:819ac9aa5667 | 483 | |
mahphalke |
1:819ac9aa5667 | 484 | static struct iio_channel iio_channel_ch8_in = { |
mahphalke |
1:819ac9aa5667 | 485 | .name = "voltage8", |
mahphalke |
1:819ac9aa5667 | 486 | .attributes = channel_input_attributes, |
mahphalke |
1:819ac9aa5667 | 487 | .ch_out = false, |
mahphalke |
1:819ac9aa5667 | 488 | }; |
mahphalke |
1:819ac9aa5667 | 489 | |
mahphalke |
1:819ac9aa5667 | 490 | |
mahphalke |
1:819ac9aa5667 | 491 | static struct iio_channel *iio_ad7606_channels[] = { |
mahphalke |
1:819ac9aa5667 | 492 | &iio_channel_ch1_in, |
mahphalke |
1:819ac9aa5667 | 493 | &iio_channel_ch2_in, |
mahphalke |
1:819ac9aa5667 | 494 | &iio_channel_ch3_in, |
mahphalke |
1:819ac9aa5667 | 495 | &iio_channel_ch4_in, |
mahphalke |
1:819ac9aa5667 | 496 | #if (AD7606X_ADC_CHANNELS > 4) |
mahphalke |
1:819ac9aa5667 | 497 | &iio_channel_ch5_in, |
mahphalke |
1:819ac9aa5667 | 498 | &iio_channel_ch6_in, |
mahphalke |
1:819ac9aa5667 | 499 | #endif |
mahphalke |
1:819ac9aa5667 | 500 | #if (AD7606X_ADC_CHANNELS > 6) |
mahphalke |
1:819ac9aa5667 | 501 | &iio_channel_ch7_in, |
mahphalke |
1:819ac9aa5667 | 502 | &iio_channel_ch8_in, |
mahphalke |
1:819ac9aa5667 | 503 | #endif |
mahphalke |
1:819ac9aa5667 | 504 | }; |
mahphalke |
1:819ac9aa5667 | 505 | |
mahphalke |
1:819ac9aa5667 | 506 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 507 | /************************ Functions Declarations ******************************/ |
mahphalke |
1:819ac9aa5667 | 508 | /******************************************************************************/ |
mahphalke |
1:819ac9aa5667 | 509 | |
mahphalke |
1:819ac9aa5667 | 510 | #endif /* IIO_AD7606_ATTR_H_ */ |