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 |