FPGA Bridge

API to implement a new FPGA bridge

The helper macro fpga_bridge_register() automatically sets the module that registers the FPGA bridge as the owner.

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 module *br_ops_owner;
  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
br_ops_owner
module containing the br_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 an 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 * __fpga_bridge_register(struct device * parent, const char * name, const struct fpga_bridge_ops * br_ops, void * priv, struct module * owner)

create and register an FPGA Bridge device

Parameters

struct device * parent
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
struct module * owner
owner module containing the br_ops

Return

struct fpga_bridge pointer or ERR_PTR()

void fpga_bridge_unregister(struct fpga_bridge * bridge)

unregister an FPGA bridge

Parameters

struct fpga_bridge * bridge
FPGA bridge struct

Description

This function is intended for use in an FPGA bridge driver’s remove function.