mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
iio: adc: adding support for MCP3564 ADC
This is the iio driver for Microchip family of 153.6 ksps, Low-Noise 16/24-Bit Delta-Sigma ADCs with an SPI interface (Microchip's MCP3461, MCP3462, MCP3464, MCP3461R, MCP3462R, MCP3464R, MCP3561, MCP3562, MCP3564, MCP3561R, MCP3562R and MCP3564R analog to digital converters). Signed-off-by: Marius Cristea <marius.cristea@microchip.com> Link: https://lore.kernel.org/r/20230829154133.40716-3-marius.cristea@microchip.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
df2ece7aec
commit
33ec3e5fc1
53
Documentation/ABI/testing/sysfs-bus-iio-adc-mcp3564
Normal file
53
Documentation/ABI/testing/sysfs-bus-iio-adc-mcp3564
Normal file
@ -0,0 +1,53 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/boost_current_gain
|
||||
KernelVersion: 6.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute is used to set the gain of the biasing current
|
||||
circuit of the Delta-Sigma modulator. The different BOOST
|
||||
settings are applied to the entire modulator circuit, including
|
||||
the voltage reference buffers.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/boost_current_gain_available
|
||||
KernelVersion: 6.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Reading returns a list with the possible gain values for
|
||||
the current biasing circuit of the Delta-Sigma modulator.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/auto_zeroing_mux_enable
|
||||
KernelVersion: 6.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute is used to enable the analog input multiplexer
|
||||
auto-zeroing algorithm (the input multiplexer and the ADC
|
||||
include an offset cancellation algorithm that cancels the offset
|
||||
contribution of the ADC). When the offset cancellation algorithm
|
||||
is enabled, ADC takes two conversions, one with the differential
|
||||
input as VIN+/VIN-, one with VIN+/VIN- inverted. In this case the
|
||||
conversion time is multiplied by two compared to the default
|
||||
case where the algorithm is disabled. This technique allows the
|
||||
cancellation of the ADC offset error and the achievement of
|
||||
ultra-low offset without any digital calibration. The resulting
|
||||
offset is the residue of the difference between the two
|
||||
conversions, which is on the order of magnitude of the noise
|
||||
floor. This offset is effectively canceled at every conversion,
|
||||
so the residual offset error temperature drift is extremely low.
|
||||
Write '1' to enable it, write '0' to disable it.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/auto_zeroing_ref_enable
|
||||
KernelVersion: 6.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute is used to enable the chopping algorithm for the
|
||||
internal voltage reference buffer. This setting has no effect
|
||||
when external voltage reference is selected.
|
||||
Internal voltage reference buffer injects a certain quantity of
|
||||
1/f noise into the system that can be modulated with the
|
||||
incoming input signals and can limit the SNR performance at
|
||||
higher Oversampling Ratio values (over 256). To overcome this
|
||||
limitation, the buffer includes an auto-zeroing algorithm that
|
||||
greatly reduces (cancels out) the 1/f noise and cancels the
|
||||
offset value of the reference buffer. As a result, the SNR of
|
||||
the system is not affected by this 1/f noise component of the
|
||||
reference buffer, even at maximum oversampling ratio values.
|
||||
Write '1' to enable it, write '0' to disable it.
|
@ -14019,6 +14019,13 @@ S: Supported
|
||||
F: Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt
|
||||
F: drivers/regulator/mcp16502.c
|
||||
|
||||
MICROCHIP MCP3564 ADC DRIVER
|
||||
M: Marius Cristea <marius.cristea@microchip.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/iio/adc/microchip,mcp3564.yaml
|
||||
F: drivers/iio/adc/mcp3564.c
|
||||
|
||||
MICROCHIP MCP3911 ADC DRIVER
|
||||
M: Marcus Folkesson <marcus.folkesson@gmail.com>
|
||||
M: Kent Gustavsson <kent@minoris.se>
|
||||
|
@ -789,6 +789,19 @@ config MCP3422
|
||||
This driver can also be built as a module. If so, the module will be
|
||||
called mcp3422.
|
||||
|
||||
config MCP3564
|
||||
tristate "Microchip Technology MCP3461/2/4/R, MCP3561/2/4/R driver"
|
||||
depends on SPI
|
||||
depends on IIO
|
||||
help
|
||||
Say yes here to build support for Microchip Technology's MCP3461,
|
||||
MCP3462, MCP3464, MCP3461R, MCP3462R, MCP3464R, MCP3561, MCP3562,
|
||||
MCP3564, MCP3561R, MCP3562R and MCP3564R analog to digital
|
||||
converters.
|
||||
|
||||
This driver can also be built as a module. If so, the module will be
|
||||
called mcp3564.
|
||||
|
||||
config MCP3911
|
||||
tristate "Microchip Technology MCP3911 driver"
|
||||
depends on SPI
|
||||
|
@ -72,6 +72,7 @@ obj-$(CONFIG_MAX77541_ADC) += max77541-adc.o
|
||||
obj-$(CONFIG_MAX9611) += max9611.o
|
||||
obj-$(CONFIG_MCP320X) += mcp320x.o
|
||||
obj-$(CONFIG_MCP3422) += mcp3422.o
|
||||
obj-$(CONFIG_MCP3564) += mcp3564.o
|
||||
obj-$(CONFIG_MCP3911) += mcp3911.o
|
||||
obj-$(CONFIG_MEDIATEK_MT6360_ADC) += mt6360-adc.o
|
||||
obj-$(CONFIG_MEDIATEK_MT6370_ADC) += mt6370-adc.o
|
||||
|
1516
drivers/iio/adc/mcp3564.c
Normal file
1516
drivers/iio/adc/mcp3564.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user