Loading...
Searching...
No Matches
L4vbus::Gpio_module Class Reference
L4Re C++ Interface » Vbus API

A Gpio_module groups multiple GPIO pins together. More...

`#include <vbus_gpio>`

Inheritance diagram for L4vbus::Gpio_module:
Collaboration diagram for L4vbus::Gpio_module:

## Data Structures

struct | Pin_slice
| A slice of the pins provided by this module. More...

## Public Member Functions

int | setup (Pin_slice const &mask, unsigned mode, unsigned value) const
| Configure function of multiple GPIO pins at once.
int | config_pad (Pin_slice const &mask, unsigned func, unsigned value) const
| Hardware specific configuration function for multiple GPIO pins.
int | get (unsigned offset, unsigned *data) const
| Read values of multiple GPIO pins at once.
int | set (Pin_slice const &mask, unsigned data)
| Set multiple GPIO output pins at once.
Gpio_pin | pin (unsigned pin) const
| Get Gpio_pin for a specific pin of this Gpio_module.
Public Member Functions inherited from L4vbus::Device
| Device ()
| Construct a new vbus device using the NULL device L4VBUS_NULL.
| Device (L4::Cap< Vbus > bus, l4vbus_device_handle_t dev)
| Construct a new vbus device using a device handle.
L4::Cap< Vbus > | bus_cap () const
| Access the Vbus capability of the underlying virtual bus.
l4vbus_device_handle_t | dev_handle () const
| Access the device handle of this device.
int | device_by_hid (Device *child, char const *hid, int depth=L4VBUS_MAX_DEPTH, l4vbus_device_t *devinfo=0) const
| Find a device by the hardware interface identifier (HID).
int | next_device (Device *child, int depth=L4VBUS_MAX_DEPTH, l4vbus_device_t *devinfo=0) const
| Find next child following child.
int | device (l4vbus_device_t *devinfo) const
| Obtain detailed information about a Vbus device.
int | get_resource (unsigned res_idx, l4vbus_resource_t *res) const
| Obtain the resource description of an individual device resource.
int | is_compatible (char const *cid) const
| Check if the given device has a compatibility ID (CID) or HID that matches cid.
bool | operator== (Device const &o) const
| Test if two devices are the same Vbus device.
bool | operator!= (Device const &o) const
| Test if two Vbus devices are not the same.
Public Member Functions inherited from L4vbus::Pm< Device >
int | pm_suspend () const
| Suspend the device.
int | pm_resume () const
| Resume the device.

## Additional Inherited Members

Protected Attributes inherited from L4vbus::Device
L4::Cap< Vbus > | _bus
| The Vbus capability where this device is located on.
l4vbus_device_handle_t | _dev
| The device handle for this device.

## Detailed Description

A Gpio_module groups multiple GPIO pins together.

Definition at line 133 of file vbus_gpio.

## Member Function Documentation

## config_pad()

int L4vbus::Gpio_module::config_pad | ( | Pin_slice const & | mask,
|  | unsigned | func,
|  | unsigned | value ) const

inline

Hardware specific configuration function for multiple GPIO pins.

Parameters

  mask | Mask of GPIO pins to configure. A bit set to 1 configures this pin. A maximum of 32 pins can be configured at once. The real number depends on the hardware and the driver implementation.
  func | Hardware specific configuration register, usually offset to the GPIO chip's base address.
  value | Value which is written into the hardware specific configuration register for the specified pins

Returns
  0 if OK, error code otherwise

Definition at line 185 of file vbus_gpio.

References L4vbus::Device::_bus, L4vbus::Device::_dev, and l4vbus_gpio_multi_config_pad().

Here is the call graph for this function:

## get()

int L4vbus::Gpio_module::get | ( | unsigned | offset,
|  | unsigned * | data ) const

inline

Read values of multiple GPIO pins at once.

Parameters

  | offset | Pin corresponding to the LSB in data. Note: allowed may be hardware specific.
  [out] | data | Each bit returns the value (0 or 1) for the corresponding GPIO pin. The value of pins that are not accessible is undefined.

Returns
  0 if OK, error code otherwise

Definition at line 201 of file vbus_gpio.

References L4vbus::Device::_bus, L4vbus::Device::_dev, and l4vbus_gpio_multi_get().

Here is the call graph for this function:

## pin()

Gpio_pin L4vbus::Gpio_module::pin | ( | unsigned | pin | ) | const

inline

Get Gpio_pin for a specific pin of this Gpio_module.

Parameters

  pin | GPIO pin number to get Gpio_pin for.

Returns
  Gpio_pin

Definition at line 229 of file vbus_gpio.

References pin().

Referenced by pin().

Here is the call graph for this function:
Here is the caller graph for this function:

## set()

int L4vbus::Gpio_module::set | ( | Pin_slice const & | mask,
|  | unsigned | data )

inline

Set multiple GPIO output pins at once.

Parameters

  mask | Mask of GPIO pins to set. A bit set to 1 selects this pin. A maximum of 32 pins can be set at once. The real number depends on the hardware and the driver implementation.
  data | Each bit corresponds to the GPIO pin in mask. The value of each bit is written to the GPIO pin if its bit in mask is set.

Returns
  0 if OK, error code otherwise

Definition at line 217 of file vbus_gpio.

References L4vbus::Device::_bus, L4vbus::Device::_dev, and l4vbus_gpio_multi_set().

Here is the call graph for this function:

## setup()

int L4vbus::Gpio_module::setup | ( | Pin_slice const & | mask,
|  | unsigned | mode,
|  | unsigned | value ) const

inline

Configure function of multiple GPIO pins at once.

Parameters

  mask | Mask of GPIO pins to configure. A bit set to 1 configures this pin. A maximum of 32 pins can be configured at once. The real number depends on the hardware and the driver implementation.
  mode | GPIO function, see L4vbus_gpio_generic_func for generic functions. Hardware specific functions must be provided in the lower 8 bits.
  value | Optional value to set the GPIO pins to if they are configured as output pins

Returns
  0 if OK, error code otherwise

Definition at line 166 of file vbus_gpio.

References L4vbus::Device::_bus, L4vbus::Device::_dev, and l4vbus_gpio_multi_setup().

Here is the call graph for this function:

The documentation for this class was generated from the following file:

- l4/vbus/vbus_gpio