ad7793.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * AD7792/AD7793 SPI ADC driver
  4. *
  5. * Copyright 2011 Analog Devices Inc.
  6. */
  7. #ifndef __LINUX_PLATFORM_DATA_AD7793_H__
  8. #define __LINUX_PLATFORM_DATA_AD7793_H__
  9. /**
  10. * enum ad7793_clock_source - AD7793 clock source selection
  11. * @AD7793_CLK_SRC_INT: Internal 64 kHz clock, not available at the CLK pin.
  12. * @AD7793_CLK_SRC_INT_CO: Internal 64 kHz clock, available at the CLK pin.
  13. * @AD7793_CLK_SRC_EXT: Use external clock.
  14. * @AD7793_CLK_SRC_EXT_DIV2: Use external clock divided by 2.
  15. */
  16. enum ad7793_clock_source {
  17. AD7793_CLK_SRC_INT,
  18. AD7793_CLK_SRC_INT_CO,
  19. AD7793_CLK_SRC_EXT,
  20. AD7793_CLK_SRC_EXT_DIV2,
  21. };
  22. /**
  23. * enum ad7793_bias_voltage - AD7793 bias voltage selection
  24. * @AD7793_BIAS_VOLTAGE_DISABLED: Bias voltage generator disabled
  25. * @AD7793_BIAS_VOLTAGE_AIN1: Bias voltage connected to AIN1(-).
  26. * @AD7793_BIAS_VOLTAGE_AIN2: Bias voltage connected to AIN2(-).
  27. * @AD7793_BIAS_VOLTAGE_AIN3: Bias voltage connected to AIN3(-).
  28. * Only valid for AD7795/AD7796.
  29. */
  30. enum ad7793_bias_voltage {
  31. AD7793_BIAS_VOLTAGE_DISABLED,
  32. AD7793_BIAS_VOLTAGE_AIN1,
  33. AD7793_BIAS_VOLTAGE_AIN2,
  34. AD7793_BIAS_VOLTAGE_AIN3,
  35. };
  36. /**
  37. * enum ad7793_refsel - AD7793 reference voltage selection
  38. * @AD7793_REFSEL_REFIN1: External reference applied between REFIN1(+)
  39. * and REFIN1(-).
  40. * @AD7793_REFSEL_REFIN2: External reference applied between REFIN2(+)
  41. * and REFIN1(-). Only valid for AD7795/AD7796.
  42. * @AD7793_REFSEL_INTERNAL: Internal 1.17 V reference.
  43. */
  44. enum ad7793_refsel {
  45. AD7793_REFSEL_REFIN1 = 0,
  46. AD7793_REFSEL_REFIN2 = 1,
  47. AD7793_REFSEL_INTERNAL = 2,
  48. };
  49. /**
  50. * enum ad7793_current_source_direction - AD7793 excitation current direction
  51. * @AD7793_IEXEC1_IOUT1_IEXEC2_IOUT2: Current source IEXC1 connected to pin
  52. * IOUT1, current source IEXC2 connected to pin IOUT2.
  53. * @AD7793_IEXEC1_IOUT2_IEXEC2_IOUT1: Current source IEXC2 connected to pin
  54. * IOUT1, current source IEXC1 connected to pin IOUT2.
  55. * @AD7793_IEXEC1_IEXEC2_IOUT1: Both current sources connected to pin IOUT1.
  56. * Only valid when the current sources are set to 10 uA or 210 uA.
  57. * @AD7793_IEXEC1_IEXEC2_IOUT2: Both current sources connected to Pin IOUT2.
  58. * Only valid when the current ources are set to 10 uA or 210 uA.
  59. */
  60. enum ad7793_current_source_direction {
  61. AD7793_IEXEC1_IOUT1_IEXEC2_IOUT2 = 0,
  62. AD7793_IEXEC1_IOUT2_IEXEC2_IOUT1 = 1,
  63. AD7793_IEXEC1_IEXEC2_IOUT1 = 2,
  64. AD7793_IEXEC1_IEXEC2_IOUT2 = 3,
  65. };
  66. /**
  67. * enum ad7793_excitation_current - AD7793 excitation current selection
  68. * @AD7793_IX_DISABLED: Excitation current Disabled.
  69. * @AD7793_IX_10uA: Enable 10 micro-ampere excitation current.
  70. * @AD7793_IX_210uA: Enable 210 micro-ampere excitation current.
  71. * @AD7793_IX_1mA: Enable 1 milli-Ampere excitation current.
  72. */
  73. enum ad7793_excitation_current {
  74. AD7793_IX_DISABLED = 0,
  75. AD7793_IX_10uA = 1,
  76. AD7793_IX_210uA = 2,
  77. AD7793_IX_1mA = 3,
  78. };
  79. /**
  80. * struct ad7793_platform_data - AD7793 platform data
  81. * @clock_src: Clock source selection
  82. * @burnout_current: If set to true the 100nA burnout current is enabled.
  83. * @boost_enable: Enable boost for the bias voltage generator.
  84. * @buffered: If set to true configure the device for buffered input mode.
  85. * @unipolar: If set to true sample in unipolar mode, if set to false sample in
  86. * bipolar mode.
  87. * @refsel: Reference voltage selection
  88. * @bias_voltage: Bias voltage selection
  89. * @exitation_current: Excitation current selection
  90. * @current_source_direction: Excitation current direction selection
  91. */
  92. struct ad7793_platform_data {
  93. enum ad7793_clock_source clock_src;
  94. bool burnout_current;
  95. bool boost_enable;
  96. bool buffered;
  97. bool unipolar;
  98. enum ad7793_refsel refsel;
  99. enum ad7793_bias_voltage bias_voltage;
  100. enum ad7793_excitation_current exitation_current;
  101. enum ad7793_current_source_direction current_source_direction;
  102. };
  103. #endif /* IIO_ADC_AD7793_H_ */