Lines Matching +full:fpga +full:- +full:region

1 FPGA Region
5 --------
7 This document is meant to be a brief overview of the FPGA region API usage. A
11 For the purposes of this API document, let's just say that a region associates
12 an FPGA Manager and a bridge (or bridges) with a reprogrammable region of an
13 FPGA or the whole FPGA. The API provides a way to register a region and to
14 program a region.
16 Currently the only layer above fpga-region.c in the kernel is the Device Tree
17 support (of-fpga-region.c) described in [#f1]_. The DT support layer uses regions
18 to program the FPGA and then DT to handle enumeration. The common region code
22 An fpga-region can be set up to know the following things:
24 * which FPGA manager to use to do the programming
28 Additional info needed to program the FPGA image is passed in the struct
31 * pointers to the image as either a scatter-gather buffer, a contiguous
37 How to add a new FPGA region
38 ----------------------------
42 .. [#f1] ../devicetree/bindings/fpga/fpga-region.txt
43 .. [#f2] ../../drivers/fpga/of-fpga-region.c
45 API to add a new FPGA region
46 ----------------------------
48 * struct fpga_region - The FPGA region struct
49 * struct fpga_region_info - Parameter structure for __fpga_region_register_full()
50 * __fpga_region_register_full() - Create and register an FPGA region using the
52 * __fpga_region_register() - Create and register an FPGA region using standard
54 * fpga_region_unregister() - Unregister an FPGA region
57 automatically set the module that registers the FPGA region as the owner.
59 The FPGA region's probe function will need to get a reference to the FPGA
61 during the region's probe function.
63 * fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count
64 * of_fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count,
66 * fpga_mgr_put() - Put an FPGA manager
68 The FPGA region will need to specify which bridges to control while programming
69 the FPGA. The region driver can build a list of bridges during probe time
70 (:c:expr:`fpga_region->bridge_list`) or it can have a function that creates
72 (:c:expr:`fpga_region->get_bridges`). The FPGA bridge framework supplies the
75 * fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
77 * of_fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
79 * fpga_bridges_put() - Given a list of bridges, put them
81 .. kernel-doc:: include/linux/fpga/fpga-region.h
84 .. kernel-doc:: include/linux/fpga/fpga-region.h
87 .. kernel-doc:: drivers/fpga/fpga-region.c
90 .. kernel-doc:: drivers/fpga/fpga-region.c
93 .. kernel-doc:: drivers/fpga/fpga-region.c
96 .. kernel-doc:: drivers/fpga/fpga-mgr.c
99 .. kernel-doc:: drivers/fpga/fpga-mgr.c
102 .. kernel-doc:: drivers/fpga/fpga-mgr.c
105 .. kernel-doc:: drivers/fpga/fpga-bridge.c
108 .. kernel-doc:: drivers/fpga/fpga-bridge.c
111 .. kernel-doc:: drivers/fpga/fpga-bridge.c