| Vivien Didelot | 6c1fe72 | 2012-08-30 21:42:57 -0400 | [diff] [blame] | 1 | Maxim MAX197 driver | 
 | 2 | =================== | 
 | 3 |  | 
 | 4 | Author: | 
 | 5 |   * Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 
 | 6 |  | 
 | 7 | Supported chips: | 
 | 8 |   * Maxim MAX197 | 
 | 9 |     Prefix: 'max197' | 
 | 10 |     Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX197.pdf | 
 | 11 |  | 
 | 12 |   * Maxim MAX199 | 
 | 13 |     Prefix: 'max199' | 
 | 14 |     Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX199.pdf | 
 | 15 |  | 
 | 16 | Description | 
 | 17 | ----------- | 
 | 18 |  | 
 | 19 | The A/D converters MAX197, and MAX199 are both 8-Channel, Multi-Range, 5V, | 
 | 20 | 12-Bit DAS with 8+4 Bus Interface and Fault Protection. | 
 | 21 |  | 
 | 22 | The available ranges for the MAX197 are {0,-5V} to 5V, and {0,-10V} to 10V, | 
 | 23 | while they are {0,-2V} to 2V, and {0,-4V} to 4V on the MAX199. | 
 | 24 |  | 
 | 25 | Platform data | 
 | 26 | ------------- | 
 | 27 |  | 
 | 28 | The MAX197 platform data (defined in linux/platform_data/max197.h) should be | 
 | 29 | filled with a pointer to a conversion function, defined like: | 
 | 30 |  | 
 | 31 |     int convert(u8 ctrl); | 
 | 32 |  | 
 | 33 | ctrl is the control byte to write to start a new conversion. | 
 | 34 | On success, the function must return the 12-bit raw value read from the chip, | 
 | 35 | or a negative error code otherwise. | 
 | 36 |  | 
 | 37 | Control byte format: | 
 | 38 |  | 
 | 39 | Bit     Name       Description | 
 | 40 | 7,6     PD1,PD0    Clock and Power-Down modes | 
 | 41 | 5       ACQMOD     Internal or External Controlled Acquisition | 
 | 42 | 4       RNG        Full-scale voltage magnitude at the input | 
 | 43 | 3       BIP        Unipolar or Bipolar conversion mode | 
 | 44 | 2,1,0   A2,A1,A0   Channel | 
 | 45 |  | 
 | 46 | Sysfs interface | 
 | 47 | --------------- | 
 | 48 |  | 
 | 49 | * in[0-7]_input: The conversion value for the corresponding channel. | 
 | 50 |                  RO | 
 | 51 |  | 
 | 52 | * in[0-7]_min:   The lower limit (in mV) for the corresponding channel. | 
 | 53 |                  For the MAX197, it will be adjusted to -10000, -5000, or 0. | 
 | 54 |                  For the MAX199, it will be adjusted to -4000, -2000, or 0. | 
 | 55 |                  RW | 
 | 56 |  | 
 | 57 | * in[0-7]_max:   The higher limit (in mV) for the corresponding channel. | 
 | 58 |                  For the MAX197, it will be adjusted to 0, 5000, or 10000. | 
 | 59 |                  For the MAX199, it will be adjusted to 0, 2000, or 4000. | 
 | 60 |                  RW |