Linux Drivers
...
Component | Platform/IP Core | Link | In Mainline | Location | Comment |
Analog to Digital Converter | Zynq-7000 SoC, axi_xadc, xadc_wiz | Yes | drivers/iio/adc/xilinx-xadc-core.c | ||
AI Engine Driver | Versal | Yes | drivers/misc/xilinx-ai-engine/ | AI Engine SSW Driver | |
System Monitor | Ultrascale+ MPSoC | No | drivers/iio/adc/xilinx-ams.c | ||
CAN Controller | Zynq-7000 SoC , axi_can | Yes | drivers/net/can/xilinx_can.c | Alternative CAN4Linux project: can4linux | |
CANFD Controller | axi_canfd | No | drivers/net/can/xilinx_can.c | ||
Common Clock Framework | Zynq-7000 SoC | Yes | drivers/clk/zynq/ | ||
cpufreq | Zynq-7000 SoC and | Yes | drivers/cpufreq/cpufreq-dt.c | ||
cpuidle | Zynq-7000 SoC and | Yes | drivers/cpuidle/cpuidle-zynq.c | ||
Devcfg | Zynq-7000 SoC | No | drivers/char/xilinx_devcfg.c | xilinx_devcfg.c driver got deprecated in 2018.1 release. So this driver is not part of mainline tree. | |
DFX Decoupler DFX Axi Shutdown manager | Zynq Ultrascale+ MPSoC, Versal | Yes | drivers/fpga/xilinx-pr-decoupler.c | ||
DMA Controller | Zynq-7000 SoC (PL330) | N/A | Yes | drivers/dma/pl330.c | PL330 driver is owned/maintained by linux open source community. |
DMA Controller | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal | Yes | drivers/dma/xilinx/xilinx_dma.c | ||
DMA Controller | Platform:Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze | Yes | drivers/dma/xilinx/xilinx_dma.c | ||
DMA Controller | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze | Yes | drivers/dma/xilinx/xilinx_dma.c | ||
DMA Controller | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze | Yes | drivers/dma/xilinx/xilinx_dma.c | ||
DMA Controller | Platform: Zynq Ultrascale+ MPSoC, Versal | Yes | drivers/dma/xilinx/zynqmp_dma.c | ||
DMA Controller | Platform: Zynq Ultrascale+ MPSoC | No | drivers/dma/xilinx/xilinx_frmbuf.c | ||
DRM KMS | Ultrascale+ MPSoC | DRM KMS Driver | Yes | drivers/gpu/drm/xilinx/* | Including subdevice drivers -DP Tx Subsystem - HDMI 2.1 Tx driver |
No | drivers/gpu/drm/xlnx/xlnx_mixer.c | ||||
No | drivers/gpu/drm/xlnx/xlnx_sdi.c | ||||
No | drivers/gpu/drm/xlnx/xlnx_dsi.c | ||||
No | |||||
No | drivers/gpu/drm/xlnx/xlnx_dptx.c | ||||
No | drivers/gpu/drm/xlnx/xlnx_scaler.c | ||||
No | drivers/gpu/drm/xlnx/xlnx_hdmi.c | ||||
EDAC | Zynq-7000 SoC and | Yes | drivers/edac/synopsys_edac.c | ||
Ethernet MAC | Platform: Zynq, Zynq Ultrascale+ MPSoC, Versal | Yes | drivers/net/ethernet/cadence/macb.c | ||
Ethernet MAC | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC, Versal | Yes | drivers/net/ethernet/xilinx/xilinx_axienet_main.c | Uses AXI DMA and AXI MCDMA | |
Ethernetlite | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC | Yes | drivers/net/ethernet/xilinx/xilinx_emaclite.c | ||
FPGA Manager | Ultrascale+ MPSoC | Yes | drivers/fpga/zynqmp-fpga.c | ||
FPGA Manager | Zynq-7000 SoC | Yes | drivers/fpga/zynq-fpga.c | ||
FPGA Manager | Versal | No | drivers/fpga/versal.c | ||
GPIO | Zynq-7000 SoC, | Yes | drivers/gpio/gpio-zynq.c | ||
GPIO | axi_gpio | Yes | drivers/gpio/gpio-xilinx.c | ||
HDMI Clocks | SI5324 Clock | No | drivers/clk/clk-si5324.c | ||
HDMI Clocks | Multiplier/Jitter Attenuator | No | hdmi-modules/misc/dp159.c | ||
HDMI PHY | Video PHY Controller LogiCORE™ IP | No | /hdmi-modules/hdmi/phy-xilinx-vphy/xvphy_hdmi.c | ||
pinctrl | Ultrascale+ MPSoC | No | drivers/pinctrl/pinctrl-zynqmp.c | ||
I2C Controller | Zynq-7000 SoC and | Yes | drivers/i2c/busses/i2c-cadence.c | ||
I2C Controller | axi_iic | Yes | drivers/i2c/busses/i2c-xiic.c | ||
Interrupt Controller | Zynq-7000 SoC and | Yes | drivers/irqchip/irq-gic.c | ||
Interrupt Controller | MicroBlaze (axi_intc) | Yes | drivers/irqchip/irq-xilinx-intc.c | INTC as module feature is in experimental form and yet to be upstreamed | |
MALI | Ultrascale+ MPSoC | No | drivers/staging/mali/* | ||
NAND | Ultrascale+ MPSoC | Yes | drivers/mtd/nand/raw/arasan-nand-controller.c | ||
Nvmem- | Ultrascale+ MPSoC | No | drivers/nvmem/zynqmp_nvmem.c | ||
PCIe | axi_pcie (Zynq-7000 SoC) | Yes | drivers/pci/controller/pcie-xilinx.c | ||
PCIe | Ultrascale+ MPSoC | Yes | drivers/pci/controller/pcie-xilinx-nwl.c | ||
PL PCIe | Ultrascale+ MPSoC | No | drivers/pci/controller/pcie-xdma-pl.c | ||
CPM4 PCIe RC | Versal | Versal Adaptive SoC CCIX-PCIe Module (CPM) Root port Linux driver | Yes | drivers/pci/controller/pcie-xilinx-cpm.c | |
PCIe | axi_pcie (MicroBlaze) | Yes | drivers/pci/controller/pcie-xilinx.c | ||
Pinctrl | Zynq-7000 SoC | Yes | drivers/pinctrl/pinctrl-zynq.c | ||
Zynq QSPI | Zynq-7000 SoC | Yes | drivers/spi/spi-zynq-qspi.c | EAR support, Dual parallel and stacked mode support is pending | |
Zynq Ultrascale + MPSoC QSPI | Ultrascale+ MPSoC, Versal | drivers/spi/spi-zynqmp-gqspi.c | Dual parallel and stacked mode support is pending | ||
Reset-Controller | Ultrascale+ MPSoC Versal | Yes | drivers/reset/reset-zynqmp.c | ||
remoteproc | Zynq-7000 SoC Zynq Ultrascale+ MPSoC | No | drivers/remoteproc/zynq_remoteproc.c drivers/remoteproc/zynqmp_r5*.c | ||
RTC | Ultrascale+ MPSoC, Versal | Yes | drivers/rtc/rtc-zynqmp.c | ||
SATA | Ultrascale+ MPSoC | Yes | drivers/ata/ahci_ceva.c | ||
SD Controller | Zynq-7000 SoC, | Yes | drivers/mmc/host/sdhci-of-arasan.c | ||
SD-FEC | Zynq Ultrascale+ RFSoC | Yes | drivers/misc/xilinx_sdfec.c | ||
SDIO WiFi | Yes | drivers/net/wireless/ath/ath6kl/sdio.c | |||
SMC Controller | Zynq-7000 SoC | Yes | drivers/memory/pl353-smc.c | PL353 SMC controller driver | |
SPIPS Controller | Zynq-7000 SoC, | Yes | drivers/spi/spi-cadence.c | ||
SPI/QSPI Controller | axi_spi/axi_quad_spi | No | drivers/spi/spi-xilinx.c | ||
System ACE | axi_sysace | Yes | drivers/block/xsysace.c | ||
TFT | axi_tft | Yes | drivers/video/fbdev/xilinxfb.c | ||
Timer | axi_timer | Yes | arch/microblaze/kernel/timer.c | Timer Counter | |
TSN | Zynq-7000 SoC, Zynq Ultrascale+ MPSoC | Yes | drivers/ethernet/net/ethernet/xilinx/* | ||
SHA | Ultrascale+ MPSoC | No | drivers/crypto/zynqmp-sha.c | ||
RSA | Ultrascale+ MPSoC | No | drivers/crypto/zynqmp-rsa.c | ||
UART | Zynq-7000 SoC and | Yes | drivers/tty/serial/xilinx_uartps.c | ||
UART | axi_uartlite | Yes | drivers/tty/serial/uartlite.c | ||
UART | Versal | Yes | drivers/tty/serial/amba-pl011.c | ||
USB (host) | Zynq-7000 SoC |
Yes |
drivers/usb/chipidea/host.c | Zynq PS USB Dual role driver | |
USB (device) | Zynq-7000 SoC | Yes Yes | drivers/usb/chipidea/udc.c drivers/usb/chipidea/core.c | Zynq PS usb gadget controller driver | |
USB (OTG) | Zynq-7000 SoC | Yes Yes | drivers/usb/phy/phy-ulpi.c | Zynq PS OTG driver | |
USB (device) | axi_usb2_device | Yes | drivers/usb/gadget/udc/udc-xilinx.c | AXI USB device soft IP linux driver. | |
USB | Ultrascale+ MPSoC, Versal | Yes | drivers/usb/dwc3/dwc3-xilinx.c | dwc3 - xilinx driver | |
V4L2 | UltraScale+ MPSoC | Yes | drivers/media/platform/xilinx/xilinx-vipp.c and xilinx-vip.c and xilinx-dma.c | ||
No | drivers/media/platform/xilinx/xilinx-multi-scaler.c | ||||
No | drivers/media/platform/xilinx/xilinx-cfa.c | ||||
No | drivers/media/platform/xilinx/xilinx-cresample.c | ||||
Yes | drivers/media/platform/xilinx/xilinx-csi2rxss.c | ||||
No | drivers/media/platform/xilinx/xilinx-remapper.c | ||||
No | drivers/media/platform/xilinx/xilinx-rgb2yuv.c | ||||
No | drivers/media/platform/xilinx/xilinx-scaler.c | ||||
No | drivers/media/platform/xilinx/xilinx-switch.c | ||||
TPG (including VTC) | Yes | drivers/media/platform/xilinx/xilinx-tpg.c + xilinx-vtc.c | |||
No | drivers/media/platform/xilinx/xilinx-vpss-csc.c | ||||
No | drivers/media/platform/xilinx/xilinx-vpss-scaler.c | ||||
No | drivers/media/platform/xilinx/xilinx-demosaic.c | ||||
No | drivers/media/platform/xilinx/xilinx-gamma.c | ||||
No | hdmi-modules/hdmi/xilinx-hdmirx.c | ||||
No | drivers/media/platform/xilinx/xilinx-sdirxss.c | ||||
No | drivers/media/platform/xilinx/xilinx-dprxss.c | ||||
No | drivers/media/platform/xilinx/xilinx-hdmirxss.c | ||||
Video Codec Unit (VCU) | Zynq UltraScale+ MPSoC | No | https://github.com/Xilinx/vcu-modules/ | ||
Watchdog | Zynq and | Yes | drivers/watchdog/cadence_wdt.c | ||
Watchdog | axi_timebase_wdt, Zynq UltraScale+ MPSoC, Versal | Yes | drivers/watchdog/of_xilinx_wdt.c | ||
Window Watchdog | Versal | Yes | drivers/watchdog/xilinx_wwdt.c | ||
APM | axi Performance monitor | No | drivers/uio/uio_xilinx_apm.c | ||
SERDES/SIOU | Ultrascale+ MPSoC | No | drivers/phy/phy-zynqmp.c | serdes/siou linux device driver | |
Clock Framework Zynqmp | Ultrascale+ MPSoC | Yes | drivers/clk/zynqmp | ||
GMII2RGMII converter | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC | Yes | drivers/net/phy/xilinx_gmii2rgmii.c | ||
ALSA SoC | Ultrascale+ MPSoC | Yes No No | sound/soc/xilinx/xlnx_formatter_pcm.c sound/soc/xilinx/xlnx_pl_snd_card.c hdmi-modules/hdmi/xlnx_hdmirx_audio.c hdmi-modules/hdmi/xlnx_hdmitx_audio.c | Linux PL audio drivers based on ALSA SoC (ASoC) framework. | |
ZynqMP firmware driver | Ultrascale+ MPSoC | Yes | drivers/firmware/xilinx/zynqmp/ | ||
RFdc wrapper | Zynq Ultrascale+ RFSoC | No | Linux user space driver | ||
ZynqMP AES driver | Ultrascale+ MPSoC | No | drivers/crypto/zynqmp-aes.c | ||
ZynqMp Secure driver | Ultrascale+ MPSoC | No | drivers/firmware/xilinx/zynqmp-secure.c | ||
OSPI | Versal | No | drivers/mtd/spi-nor/cadence-quadspi.c | ||
Clock Wizard | Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC , Versal | Yes | drivers/clk/xilinx/clk-xlnx-clock-wizard.c | ||
Xilinx EDAC | Versal | Yes | drivers/edac/xilinx_ddrmc_edac.c | ||
Versal Sysmon Driver | Versal | No | drivers/iio/adc/versal-sysmon.c | ||
Microblaze Triple Modular Redundancy (TMR) Subsystem | Microblaze | No | drivers/misc/xilinx_tmr_manager.c drivers/misc/xilinx_tmr_inject.c |
...