pynq.gpio Module
The pynq.gpio module is a driver for reading and writing PS GPIO pins on a board. PS GPIO pins are not connected to the PL.
- class pynq.gpio.GPIO(gpio_index, direction)[source]
Bases:
objectClass to wrap Linux’s GPIO Sysfs API.
This GPIO class does not handle PL I/O without the use of device tree overlays.
- index
The index of the GPIO, starting from the GPIO base.
- Type:
int
- direction
Input/output direction of the GPIO.
- Type:
str
- path
The path of the GPIO device in the linux system.
- Type:
str
- property direction
- static get_gpio_base(target_label=None)[source]
This method returns the GPIO base using Linux’s GPIO Sysfs API.
This is a static method. To use:
>>> from pynq import GPIO
>>> gpio = GPIO.get_gpio_base()
Note
For path ‘/sys/class/gpio/gpiochip138/’, this method returns 138.
- Parameters:
target_label (str) – The label of the GPIO driver to look for, as defined in a device tree entry.
- Returns:
The GPIO index of the base.
- Return type:
int
- static get_gpio_base_path(target_label=None)[source]
This method returns the path to the GPIO base using Linux’s GPIO Sysfs API.
This is a static method. To use:
>>> from pynq import GPIO
>>> gpio = GPIO.get_gpio_base_path()
- Parameters:
target_label (str) – The label of the GPIO driver to look for, as defined in a device tree entry.
- Returns:
The path to the GPIO base.
- Return type:
str
- static get_gpio_npins(target_label=None)[source]
This method returns the number of GPIO pins for the GPIO base using Linux’s GPIO Sysfs API.
This is a static method. To use:
>>> from pynq import GPIO
>>> gpio = GPIO.get_gpio_npins()
- Parameters:
target_label (str) – The label of the GPIO driver to look for, as defined in a device tree entry.
- Returns:
The number of GPIO pins for the GPIO base.
- Return type:
int
- static get_gpio_pin(gpio_user_index, target_label=None)[source]
This method returns a GPIO instance for PS GPIO pins.
Users only need to specify an index starting from 0; this static method will map this index to the correct Linux GPIO pin number.
Note
The GPIO pin number can be calculated using: GPIO pin number = GPIO base + GPIO offset + user index e.g. The GPIO base is 138, and pin 54 is the base GPIO offset. Then the Linux GPIO pin would be (138 + 54 + 0) = 192.
- Parameters:
gpio_user_index (int) – The index specified by users, starting from 0.
target_label (str) – The label of the GPIO driver to look for, as defined in a device tree entry.
- Returns:
The Linux Sysfs GPIO pin number.
- Return type:
int
- property index
- property path