Lines Matching refs:region

10 #include <linux/fpga/fpga-region.h>
20 { .compatible = "fpga-region", },
26 * of_fpga_region_find - find FPGA region
29 * Caller will need to put_device(&region->dev) when done.
40 * @np: device node of FPGA region
42 * Get FPGA Manager from "fpga-mgr" property or from ancestor region.
55 if (of_device_is_compatible(np, "fpga-region")) {
73 * @region: FPGA region
80 * Caller should call fpga_bridges_put(&region->bridge_list) when
86 static int of_fpga_region_get_bridges(struct fpga_region *region)
88 struct device *dev = &region->dev;
90 struct fpga_image_info *info = region->info;
96 &region->bridge_list);
128 &region->bridge_list);
133 fpga_bridges_put(&region->bridge_list);
148 * Return 0 for OK or -EINVAL if child FPGA region adds firmware-name.
172 pr_err("firmware-name not allowed in child FPGA region: %pOF",
179 * of_fpga_region_parse_ov - parse and check overlay applied to region
181 * @region: FPGA region
182 * @overlay: overlay applied to the FPGA region
184 * Given an overlay applied to a FPGA region, parse the FPGA image specific
193 struct fpga_region *region,
196 struct device *dev = &region->dev;
201 if (region->info) {
208 * firmware-name property (would mean that an FPGA region that has
221 /* Read FPGA region properties from the overlay */
239 of_property_read_u32(overlay, "region-unfreeze-timeout-us",
242 of_property_read_u32(overlay, "region-freeze-timeout-us",
273 * @region: FPGA region that the overlay was applied to
284 static int of_fpga_region_notify_pre_apply(struct fpga_region *region,
287 struct device *dev = &region->dev;
291 info = of_fpga_region_parse_ov(region, nd->overlay);
299 if (region->info) {
304 region->info = info;
305 ret = fpga_region_program_fpga(region);
309 region->info = NULL;
318 * @region: FPGA region that was targeted by the overlay that was removed
322 * FPGA region.
324 static void of_fpga_region_notify_post_remove(struct fpga_region *region,
327 fpga_bridges_disable(&region->bridge_list);
328 fpga_bridges_put(&region->bridge_list);
329 fpga_image_info_free(region->info);
330 region->info = NULL;
340 * added to a fpga-region.
348 struct fpga_region *region;
368 region = of_fpga_region_find(nd->target);
369 if (!region)
375 ret = of_fpga_region_notify_pre_apply(region, nd);
379 of_fpga_region_notify_post_remove(region, nd);
383 put_device(&region->dev);
399 struct fpga_region *region;
403 /* Find the FPGA mgr specified by region or parent region. */
408 region = devm_fpga_region_create(dev, mgr, of_fpga_region_get_bridges);
409 if (!region) {
414 ret = fpga_region_register(region);
418 of_platform_populate(np, fpga_region_of_match, NULL, &region->dev);
419 platform_set_drvdata(pdev, region);
432 struct fpga_region *region = platform_get_drvdata(pdev);
433 struct fpga_manager *mgr = region->mgr;
435 fpga_region_unregister(region);
445 .name = "of-fpga-region",