FPGA Bridge

API to implement a new FPGA bridge

struct fpga_bridge

FPGA bridge structure

Definition

struct fpga_bridge {
  const char *name;
  struct device dev;
  struct mutex mutex;
  const struct fpga_bridge_ops *br_ops;
  struct fpga_image_info *info;
  struct list_head node;
  void *priv;
};

Members

name

name of low level FPGA bridge

dev

FPGA bridge device

mutex

enforces exclusive reference to bridge

br_ops

pointer to struct of FPGA bridge ops

info

fpga image specific information

node

FPGA bridge list node

priv

low level driver private date

struct fpga_bridge_ops

ops for low level FPGA bridge drivers

Definition

struct fpga_bridge_ops {
  int (*enable_show)(struct fpga_bridge *bridge);
  int (*enable_set)(struct fpga_bridge *bridge, bool enable);
  void (*fpga_bridge_remove)(struct fpga_bridge *bridge);
  const struct attribute_group **groups;
};

Members

enable_show

returns the FPGA bridge's status

enable_set

set a FPGA bridge as enabled or disabled

fpga_bridge_remove

set FPGA into a specific state during driver remove

groups

optional attribute groups.

struct fpga_bridge * devm_fpga_bridge_create(struct device * dev, const char * name, const struct fpga_bridge_ops * br_ops, void * priv)

create and init a managed struct fpga_bridge

Parameters

struct device * dev

FPGA bridge device from pdev

const char * name

FPGA bridge name

const struct fpga_bridge_ops * br_ops

pointer to structure of fpga bridge ops

void * priv

FPGA bridge private data

Description

This function is intended for use in a FPGA bridge driver's probe function. After the bridge driver creates the struct with devm_fpga_bridge_create(), it should register the bridge with fpga_bridge_register(). The bridge driver's remove function should call fpga_bridge_unregister(). The bridge struct allocated with this function will be freed automatically on driver detach. This includes the case of a probe function returning error before calling fpga_bridge_register(), the struct will still get cleaned up.

Return

struct fpga_bridge or NULL

int fpga_bridge_register(struct fpga_bridge * bridge)

register a FPGA bridge

Parameters

struct fpga_bridge * bridge

FPGA bridge struct

Return

0 for success, error code otherwise.

void fpga_bridge_unregister(struct fpga_bridge * bridge)

unregister a FPGA bridge

Parameters

struct fpga_bridge * bridge

FPGA bridge struct

Description

This function is intended for use in a FPGA bridge driver's remove function.