mirror_qemu/hw/arm
Guenter Roeck 74fcbd22d2 hw/misc: Add support for ADC controller in Xilinx Zynq 7000
Add support for the Xilinx XADC core used in Zynq 7000.

References:
- Zynq-7000 All Programmable SoC Technical Reference Manual
- 7 Series FPGAs and Zynq-7000 All Programmable SoC XADC
  Dual 12-Bit 1 MSPS Analog-to-Digital Converter

Tested with Linux using QEMU machine xilinx-zynq-a9 with devicetree
files zynq-zc702.dtb and zynq-zc706.dtb, and kernel configuration
multi_v7_defconfig.

Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
[ PC changes:
  * Changed macro names to match TRM where possible
  * Made programmers model macro scheme consistent
  * Dropped XADC_ZYNQ_ prefix on local macros
  * Fix ALM field width
  * Update threshold-comparison interrupts in _update_ints()
  * factored out DFIFO pushes into helper. Renamed to "push/pop"
  * Changed xadc_reg to 10 bits and added OOB check.
  * Reduced scope of MCTL reset to just stop channel coms.
  * Added dummy read data to write commands
  * Changed _ to - seperators in string names and filenames
  * Dropped ------------ in header comment
  * Catchall'ed _update_ints() in _write handler.
  * Minor whitespace changes.
  * Use ZYNQ_XADC_FIFO_DEPTH instead of ARRAY_SIZE()
]
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-11-12 21:30:42 +00:00
..
Makefile.objs i.MX: Add the i.MX25 PDK platform 2015-09-07 10:39:31 +01:00
allwinner-a10.c arm: allwinner-a10: Add SATA 2015-11-06 14:09:01 -05:00
armv7m.c armv7-m: Return DeviceState* from armv7m_init() 2015-11-03 13:49:41 +00:00
boot.c arm: boot: Add secure_board_setup flag 2015-11-10 13:37:33 +00:00
collie.c target-arm: Provide model numbers for Sharp PDAs 2015-10-16 11:14:53 +01:00
cubieboard.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
digic.c qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
digic_boards.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
exynos4_boards.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
exynos4210.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
fsl-imx25.c qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
fsl-imx31.c qdev: Protect device-list-properties against broken devices 2015-10-09 15:25:57 +02:00
gumstix.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
highbank.c arm: highbank: Implement PSCI and dummy monitor 2015-11-10 13:37:33 +00:00
imx25_pdk.c arm: imx25-pdk: Fix machine name 2015-10-16 11:14:53 +01:00
integratorcp.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
kzm.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
mainstone.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
musicpal.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
netduino2.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
nseries.c osdep: Rename qemu_{get, set}_version() to qemu_{, set_}hw_version() 2015-11-04 15:02:31 +01:00
omap1.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
omap2.c Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
omap_sx1.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
palm.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
pxa2xx.c hw: do not pass NULL to memory_region_init from instance_init 2015-10-09 15:25:56 +02:00
pxa2xx_gpio.c Convert (ffs(val) - 1) to ctz32(val) 2015-04-28 15:36:08 +02:00
pxa2xx_pic.c hw/arm/pxa2xx: Mark coprocessor registers as ARM_CP_IO 2015-06-15 18:06:09 +01:00
realview.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
spitz.c target-arm: Provide model numbers for Sharp PDAs 2015-10-16 11:14:53 +01:00
stellaris.c arm: stellaris: exit on external reset request 2015-11-03 13:49:41 +00:00
stm32f205_soc.c armv7-m: Return DeviceState* from armv7m_init() 2015-11-03 13:49:41 +00:00
strongarm.c arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
strongarm.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
sysbus-fdt.c hw/arm/sysbus-fdt: enable vfio-calxeda-xgmac dynamic instantiation 2015-06-19 14:17:44 +01:00
tosa.c target-arm: Provide model numbers for Sharp PDAs 2015-10-16 11:14:53 +01:00
versatilepb.c Revert use of DEFINE_MACHINE() for registrations of multiple machines 2015-09-19 16:40:27 +02:00
vexpress.c machine: Set MachineClass::name automatically 2015-09-19 16:39:28 +02:00
virt-acpi-build.c ARM: ACPI: Fix MPIDR value in ACPI table 2015-11-03 13:49:42 +00:00
virt.c hw/arm/virt: error_report cleanups 2015-11-10 13:37:33 +00:00
xilinx_zynq.c hw/misc: Add support for ADC controller in Xilinx Zynq 7000 2015-11-12 21:30:42 +00:00
xlnx-ep108.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
xlnx-zynqmp.c target-arm: xlnx-zynqmp: Add sdhci support. 2015-10-29 17:59:27 +00:00
z2.c Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00