mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 11:56:45 +07:00
60c1f31fc5
This patch adds support for ads1115 device to ads1015 driver. Based on work of Emiliano Carnati <carnatiatebneuro.com>. Tested on ARM CPU based board. Signed-off-by: Evgeniy A. Dushistov <dushistov@mail.ru> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
77 lines
2.0 KiB
Plaintext
77 lines
2.0 KiB
Plaintext
Kernel driver ads1015
|
|
=====================
|
|
|
|
Supported chips:
|
|
* Texas Instruments ADS1015
|
|
Prefix: 'ads1015'
|
|
Datasheet: Publicly available at the Texas Instruments website :
|
|
http://focus.ti.com/lit/ds/symlink/ads1015.pdf
|
|
* Texas Instruments ADS1115
|
|
Prefix: 'ads1115'
|
|
Datasheet: Publicly available at the Texas Instruments website :
|
|
http://focus.ti.com/lit/ds/symlink/ads1115.pdf
|
|
|
|
Authors:
|
|
Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de>
|
|
|
|
Description
|
|
-----------
|
|
|
|
This driver implements support for the Texas Instruments ADS1015/ADS1115.
|
|
|
|
This device is a 12/16-bit A-D converter with 4 inputs.
|
|
|
|
The inputs can be used single ended or in certain differential combinations.
|
|
|
|
The inputs can be made available by 8 sysfs input files in0_input - in7_input:
|
|
in0: Voltage over AIN0 and AIN1.
|
|
in1: Voltage over AIN0 and AIN3.
|
|
in2: Voltage over AIN1 and AIN3.
|
|
in3: Voltage over AIN2 and AIN3.
|
|
in4: Voltage over AIN0 and GND.
|
|
in5: Voltage over AIN1 and GND.
|
|
in6: Voltage over AIN2 and GND.
|
|
in7: Voltage over AIN3 and GND.
|
|
|
|
Which inputs are available can be configured using platform data or devicetree.
|
|
|
|
By default all inputs are exported.
|
|
|
|
Platform Data
|
|
-------------
|
|
|
|
In linux/i2c/ads1015.h platform data is defined, channel_data contains
|
|
configuration data for the used input combinations:
|
|
- pga is the programmable gain amplifier (values are full scale)
|
|
0: +/- 6.144 V
|
|
1: +/- 4.096 V
|
|
2: +/- 2.048 V
|
|
3: +/- 1.024 V
|
|
4: +/- 0.512 V
|
|
5: +/- 0.256 V
|
|
- data_rate in samples per second
|
|
0: 128
|
|
1: 250
|
|
2: 490
|
|
3: 920
|
|
4: 1600
|
|
5: 2400
|
|
6: 3300
|
|
|
|
Example:
|
|
struct ads1015_platform_data data = {
|
|
.channel_data = {
|
|
[2] = { .enabled = true, .pga = 1, .data_rate = 0 },
|
|
[4] = { .enabled = true, .pga = 4, .data_rate = 5 },
|
|
}
|
|
};
|
|
|
|
In this case only in2_input (FS +/- 4.096 V, 128 SPS) and in4_input
|
|
(FS +/- 0.512 V, 2400 SPS) would be created.
|
|
|
|
Devicetree
|
|
----------
|
|
|
|
Configuration is also possible via devicetree:
|
|
Documentation/devicetree/bindings/hwmon/ads1015.txt
|