Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * AD7792/AD7793 SPI ADC driver
0004  *
0005  * Copyright 2011 Analog Devices Inc.
0006  */
0007 #ifndef __LINUX_PLATFORM_DATA_AD7793_H__
0008 #define __LINUX_PLATFORM_DATA_AD7793_H__
0009 
0010 /**
0011  * enum ad7793_clock_source - AD7793 clock source selection
0012  * @AD7793_CLK_SRC_INT: Internal 64 kHz clock, not available at the CLK pin.
0013  * @AD7793_CLK_SRC_INT_CO: Internal 64 kHz clock, available at the CLK pin.
0014  * @AD7793_CLK_SRC_EXT: Use external clock.
0015  * @AD7793_CLK_SRC_EXT_DIV2: Use external clock divided by 2.
0016  */
0017 enum ad7793_clock_source {
0018     AD7793_CLK_SRC_INT,
0019     AD7793_CLK_SRC_INT_CO,
0020     AD7793_CLK_SRC_EXT,
0021     AD7793_CLK_SRC_EXT_DIV2,
0022 };
0023 
0024 /**
0025  * enum ad7793_bias_voltage - AD7793 bias voltage selection
0026  * @AD7793_BIAS_VOLTAGE_DISABLED: Bias voltage generator disabled
0027  * @AD7793_BIAS_VOLTAGE_AIN1: Bias voltage connected to AIN1(-).
0028  * @AD7793_BIAS_VOLTAGE_AIN2: Bias voltage connected to AIN2(-).
0029  * @AD7793_BIAS_VOLTAGE_AIN3: Bias voltage connected to AIN3(-).
0030  *  Only valid for AD7795/AD7796.
0031  */
0032 enum ad7793_bias_voltage {
0033     AD7793_BIAS_VOLTAGE_DISABLED,
0034     AD7793_BIAS_VOLTAGE_AIN1,
0035     AD7793_BIAS_VOLTAGE_AIN2,
0036     AD7793_BIAS_VOLTAGE_AIN3,
0037 };
0038 
0039 /**
0040  * enum ad7793_refsel - AD7793 reference voltage selection
0041  * @AD7793_REFSEL_REFIN1: External reference applied between REFIN1(+)
0042  *  and REFIN1(-).
0043  * @AD7793_REFSEL_REFIN2: External reference applied between REFIN2(+)
0044  *  and REFIN1(-). Only valid for AD7795/AD7796.
0045  * @AD7793_REFSEL_INTERNAL: Internal 1.17 V reference.
0046  */
0047 enum ad7793_refsel {
0048     AD7793_REFSEL_REFIN1 = 0,
0049     AD7793_REFSEL_REFIN2 = 1,
0050     AD7793_REFSEL_INTERNAL = 2,
0051 };
0052 
0053 /**
0054  * enum ad7793_current_source_direction - AD7793 excitation current direction
0055  * @AD7793_IEXEC1_IOUT1_IEXEC2_IOUT2: Current source IEXC1 connected to pin
0056  *  IOUT1, current source IEXC2 connected to pin IOUT2.
0057  * @AD7793_IEXEC1_IOUT2_IEXEC2_IOUT1: Current source IEXC2 connected to pin
0058  *  IOUT1, current source IEXC1 connected to pin IOUT2.
0059  * @AD7793_IEXEC1_IEXEC2_IOUT1: Both current sources connected to pin IOUT1.
0060  *  Only valid when the current sources are set to 10 uA or 210 uA.
0061  * @AD7793_IEXEC1_IEXEC2_IOUT2: Both current sources connected to Pin IOUT2.
0062  *  Only valid when the current ources are set to 10 uA or 210 uA.
0063  */
0064 enum ad7793_current_source_direction {
0065     AD7793_IEXEC1_IOUT1_IEXEC2_IOUT2 = 0,
0066     AD7793_IEXEC1_IOUT2_IEXEC2_IOUT1 = 1,
0067     AD7793_IEXEC1_IEXEC2_IOUT1 = 2,
0068     AD7793_IEXEC1_IEXEC2_IOUT2 = 3,
0069 };
0070 
0071 /**
0072  * enum ad7793_excitation_current - AD7793 excitation current selection
0073  * @AD7793_IX_DISABLED: Excitation current Disabled.
0074  * @AD7793_IX_10uA: Enable 10 micro-ampere excitation current.
0075  * @AD7793_IX_210uA: Enable 210 micro-ampere excitation current.
0076  * @AD7793_IX_1mA: Enable 1 milli-Ampere excitation current.
0077  */
0078 enum ad7793_excitation_current {
0079     AD7793_IX_DISABLED = 0,
0080     AD7793_IX_10uA = 1,
0081     AD7793_IX_210uA = 2,
0082     AD7793_IX_1mA = 3,
0083 };
0084 
0085 /**
0086  * struct ad7793_platform_data - AD7793 platform data
0087  * @clock_src: Clock source selection
0088  * @burnout_current: If set to true the 100nA burnout current is enabled.
0089  * @boost_enable: Enable boost for the bias voltage generator.
0090  * @buffered: If set to true configure the device for buffered input mode.
0091  * @unipolar: If set to true sample in unipolar mode, if set to false sample in
0092  *      bipolar mode.
0093  * @refsel: Reference voltage selection
0094  * @bias_voltage: Bias voltage selection
0095  * @exitation_current: Excitation current selection
0096  * @current_source_direction: Excitation current direction selection
0097  */
0098 struct ad7793_platform_data {
0099     enum ad7793_clock_source clock_src;
0100     bool burnout_current;
0101     bool boost_enable;
0102     bool buffered;
0103     bool unipolar;
0104 
0105     enum ad7793_refsel refsel;
0106     enum ad7793_bias_voltage bias_voltage;
0107     enum ad7793_excitation_current exitation_current;
0108     enum ad7793_current_source_direction current_source_direction;
0109 };
0110 
0111 #endif /* IIO_ADC_AD7793_H_ */