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