Zynq PS native peripherals
Quad SPI (NOR) flash controller
Handled by: Linux kernel driver, compatible string “xlnx,zynq-qspi-1.0”
QSPI and NAND flash share some wires, so only one can be enabled at a time.
Quad SPI (NOR) flash array
Handled by: Linux kernel driver, compatible string “micron,n25q128”
The electrical interface runs at 2.5V; hence, the clock is limited to 66 MHz although it runs fine, but out of spec, at 125 MHz.
Parallel (NAND) flash controller
Handled by: Linux kernel driver, compatible string “arm,pl353-nand-r2p1” and Linux kernel driver, compatible string “arm,pl353-smc-r2p1”
QSPI and NAND flash share some wires, so only one can be enabled at a time.
Parallel (NAND) flash array
Handled by: Linux kernel driver, compatible string “spansion,s25fl512s”
CEb (Chip enable, active low) connected to MIO0 with pull-up, defaults to disabled state
The electrical interface runs at 2.5V. The flash chip is a single supply device, thus it runs at 2.9V to be compatible with 2.5V and 3.3V I/O voltage.
Gigabit Ethernet MAC
Handled by: Linux kernel driver, compatible string “xlnx,ps7-ethernet-1.00.a” (Petalinux 2014.4) or “cdns,gem” (Petalinux 2015.2)
The electrical interface to the PHY runs at 2.5V.
Gigabit Ethernet Twisted Pair PHY
Connected to the MAC via RGMII interface. MDIO address is 3.
Handled by: Linux kernel driver, compatible string “micrel,ksz9031”
USB 2.0 controller
Handled by: Linux kernel driver, compatible string “xlnx,zynq-usb-1.00.a” (Petalinux 2014.4) or “chipidea,usb2” (Petalinux 2015.2)
The USB controller can either run in host or device mode. Switching between these modes can be done at firmware build time by modification of the device tree, or at runtime if the gadget mode is selected. Then, the operation mode depends on shorting the USB_MODE to GND by connecting a special cable.
USB 2.0 PHY
Handled by: Linux kernel driver, compatible string “usb-nop-xceiv” (Petalinux 2015.2)
The electrical interface to the PHY runs at 2.5V.
SD controller
Handled by: Linux kernel driver, compatible string “arasan,sdhci-8.9a”
The electrical interface runs at 3.3V by a level shifter (the SD core runs at 2.5V).
UART
Handled by: Linux kernel driver, compatible string “xlnx,xuartps”
Used as serial boot console with the following connection parameters:
115200 bps baud rate
1 start bit, 8 data bits, 1 stop bit
no parity
no hardware/software flow control
The electrical interface runs at 2.5V but can accept 3.3V signalling voltage.
I2C controller
Handled by: Linux kernel driver, compatible string “cdns,i2c-r1p10”
The electrical interface runs at 3.3V.
CAN controller
Handled by: Linux kernel driver, compatible string “xlnx,zynq-can-1.0”
XADC
Handled by: Linux kernel driver, compatible string “xlnx,zynq-xadc-1.00.a”
GPIO
Some pins are handled by specialized drivers, like LED or Button.
Handled by: Linux kernel driver, compatible string “xlnx,zynq-gpio-1.0”
SPI controller
Handled by: Linux kernel driver, compatible string “xlnx,zynq-spi-r1p6”
Device configuration port
Handled by: Linux kernel driver, compatible string “xlnx,zynq-devcfg-1.0”
Zynq PS GPIO peripherals
LED
Handled by: Linux kernel driver, compatible string “gpio-leds”
Device access: /sys/devices/soc0/gpio_leds/leds/led_mio049
Button
Handled by: Linux kernel driver, compatible string “gpio-keys”
Device access: /sys/devices/soc0/gpio_keys/input/input0
I2C peripherals
See the dedicated I2C peripherals page.