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

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.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent eca6e2d4
...@@ -1288,4 +1288,19 @@ config XILINX_XADC ...@@ -1288,4 +1288,19 @@ config XILINX_XADC
The driver can also be build as a module. If so, the module will be called The driver can also be build as a module. If so, the module will be called
xilinx-xadc. 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 endmenu
...@@ -115,4 +115,5 @@ obj-$(CONFIG_VF610_ADC) += vf610_adc.o ...@@ -115,4 +115,5 @@ obj-$(CONFIG_VF610_ADC) += vf610_adc.o
obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o xilinx-xadc-y := xilinx-xadc-core.o xilinx-xadc-events.o
obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o obj-$(CONFIG_XILINX_XADC) += xilinx-xadc.o
obj-$(CONFIG_XILINX_AMS) += xilinx-ams.o
obj-$(CONFIG_SD_ADC_MODULATOR) += sd_adc_modulator.o obj-$(CONFIG_SD_ADC_MODULATOR) += sd_adc_modulator.o
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment