Commit 33ec3e5f authored by Marius Cristea's avatar Marius Cristea Committed by Jonathan Cameron
Browse files

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: default avatarMarius Cristea <marius.cristea@microchip.com>
Link: https://lore.kernel.org/r/20230829154133.40716-3-marius.cristea@microchip.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent df2ece7a
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
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.
+7 −0
Original line number Diff line number Diff line
@@ -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>
+13 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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 −0

File added.

Preview size limit exceeded, changes collapsed.