Commit d5c70627 authored by Anand Ashok Dumbre's avatar Anand Ashok Dumbre Committed by Jonathan Cameron
Browse files

iio: adc: Add Xilinx AMS driver



The AMS includes an ADC as well as on-chip sensors that can be used to
sample external voltages and monitor on-die operating conditions, such
as temperature and supply voltage levels. The AMS has two SYSMON blocks.
PL-SYSMON block is capable of monitoring off chip voltage and
temperature.

PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring
from an external master. Out of these interfaces currently only DRP is
supported. Other block PS-SYSMON is memory mapped to PS.

The AMS can use internal channels to monitor voltage and temperature as
well as one primary and up to 16 auxiliary channels for measuring
external voltages.

The voltage and temperature monitoring channels also have event capability
which allows to generate an interrupt when their value falls below or
raises above a set threshold.

Co-developed-by: default avatarManish Narani <manish.narani@xilinx.com>
Signed-off-by: default avatarManish Narani <manish.narani@xilinx.com>
Signed-off-by: default avatarAnand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>
Link: https://lore.kernel.org/r/20211203212358.31444-4-anand.ashok.dumbre@xilinx.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent eca6e2d4
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1288,4 +1288,19 @@ config XILINX_XADC
	  The driver can also be build as a module. If so, the module will be called
	  xilinx-xadc.

config XILINX_AMS
	tristate "Xilinx AMS driver"
	depends on ARCH_ZYNQMP || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say yes here to have support for the Xilinx AMS for Ultrascale/Ultrascale+
	  System Monitor. With this you can measure and monitor the Voltages and
	  Temperature values on the SOC.

	  The driver supports Voltage and Temperature monitoring on Xilinx Ultrascale
	  devices.

	  The driver can also be built as a module. If so, the module will be called
	  xilinx-ams.

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -115,4 +115,5 @@ obj-$(CONFIG_VF610_ADC) += vf610_adc.o
obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o
obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o
obj-$(CONFIG_XILINX_AMS) += xilinx-ams.o
obj-$(CONFIG_SD_ADC_MODULATOR) += sd_adc_modulator.o
+1451 −0

File added.

Preview size limit exceeded, changes collapsed.