| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 1 | Kernel driver ads1015 | 
 | 2 | ===================== | 
 | 3 |  | 
 | 4 | Supported chips: | 
 | 5 |   * Texas Instruments ADS1015 | 
 | 6 |     Prefix: 'ads1015' | 
 | 7 |     Datasheet: Publicly available at the Texas Instruments website : | 
 | 8 |                http://focus.ti.com/lit/ds/symlink/ads1015.pdf | 
 | 9 |  | 
 | 10 | Authors: | 
 | 11 |         Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de> | 
 | 12 |  | 
 | 13 | Description | 
 | 14 | ----------- | 
 | 15 |  | 
 | 16 | This driver implements support for the Texas Instruments ADS1015. | 
 | 17 |  | 
 | 18 | This device is a 12-bit A-D converter with 4 inputs. | 
 | 19 |  | 
 | 20 | The inputs can be used single ended or in certain differential combinations. | 
 | 21 |  | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 22 | The inputs can be made available by 8 sysfs input files in0_input - in7_input: | 
| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 23 | in0: Voltage over AIN0 and AIN1. | 
 | 24 | in1: Voltage over AIN0 and AIN3. | 
 | 25 | in2: Voltage over AIN1 and AIN3. | 
 | 26 | in3: Voltage over AIN2 and AIN3. | 
 | 27 | in4: Voltage over AIN0 and GND. | 
 | 28 | in5: Voltage over AIN1 and GND. | 
 | 29 | in6: Voltage over AIN2 and GND. | 
 | 30 | in7: Voltage over AIN3 and GND. | 
 | 31 |  | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 32 | Which inputs are available can be configured using platform data or devicetree. | 
| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 33 |  | 
 | 34 | By default all inputs are exported. | 
 | 35 |  | 
 | 36 | Platform Data | 
 | 37 | ------------- | 
 | 38 |  | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 39 | In linux/i2c/ads1015.h platform data is defined, channel_data contains | 
 | 40 | configuration data for the used input combinations: | 
 | 41 | - pga is the programmable gain amplifier (values are full scale) | 
 | 42 |   0: +/- 6.144 V | 
 | 43 |   1: +/- 4.096 V | 
 | 44 |   2: +/- 2.048 V | 
 | 45 |   3: +/- 1.024 V | 
 | 46 |   4: +/- 0.512 V | 
 | 47 |   5: +/- 0.256 V | 
 | 48 | - data_rate in samples per second | 
 | 49 |   0: 128 | 
 | 50 |   1: 250 | 
 | 51 |   2: 490 | 
 | 52 |   3: 920 | 
 | 53 |   4: 1600 | 
 | 54 |   5: 2400 | 
 | 55 |   6: 3300 | 
| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 56 |  | 
 | 57 | Example: | 
 | 58 | struct ads1015_platform_data data = { | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 59 | 	.channel_data = { | 
 | 60 | 		[2] = { .enabled = true, .pga = 1, .data_rate = 0 }, | 
 | 61 | 		[4] = { .enabled = true, .pga = 4, .data_rate = 5 }, | 
 | 62 | 	} | 
| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 63 | }; | 
 | 64 |  | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 65 | In this case only in2_input (FS +/- 4.096 V, 128 SPS) and in4_input | 
 | 66 | (FS +/- 0.512 V, 2400 SPS) would be created. | 
| Dirk Eibach | 8c22a8f | 2011-03-21 17:59:36 +0100 | [diff] [blame] | 67 |  | 
 | 68 | Devicetree | 
 | 69 | ---------- | 
 | 70 |  | 
| Dirk Eibach | c004686 | 2011-03-21 17:59:37 +0100 | [diff] [blame] | 71 | Configuration is also possible via devicetree: | 
 | 72 | Documentation/devicetree/bindings/hwmon/ads1015.txt |