drivers: adc: Add support for TI ADS1112 ADCs

This PR adds a custom driver for the ADS1112 ADCs. Unlike ADS1113/4/5
family served by the ADS1x1x driver, the ADS1112 does not use an address
pointer to address config registers. Instead, there is only one writable
register and all i2c writes will set it. The registers resemble the
ADS1119 device, but config bitmap is different, include a distinct data
rate table, gain table, and input multiplexing table. There is also not a
status register to be monitored with the ADS1112, as it uses config bit 7
for the same purpose instead of a separate register.

The driver was tested on hardware using the ADC shell interface. Manual
probing validated the voltages for the MUX_SINGLE configs at datarate 15
in CM_SINGLE. Higher gains were not tested and CM_CONTINUOUS is not
supported in this initial implementation.

The new driver has also been added to the existing ADC test using adc_emul
for completeness.

Origin: original
License: Apache 2.0
Purpose: Adding support for ADS1112 ADCs

Signed-off-by: Jordan Montgomery <jordan.montgomery@getcruise.com>
This commit is contained in:
Jordan Montgomery 2023-04-11 15:06:10 -07:00 committed by Anas Nashif
commit a7014d01da
7 changed files with 424 additions and 0 deletions

View file

@ -0,0 +1,5 @@
description: Texas Instrument ADS1112 I2C ADC
compatible: "ti,ads1112"
include: ti,ads1x1x-base.yaml