Lines Matching +full:fpga +full:- +full:mgr

1 // SPDX-License-Identifier: GPL-2.0
3 * Lattice FPGA sysCONFIG interface functions independent of port type.
7 #include <linux/fpga/fpga-mgr.h>
11 #include "lattice-sysconfig.h"
16 return priv->command_transfer(priv, buf, buf_len, NULL, 0); in sysconfig_cmd_write()
22 return priv->command_transfer(priv, tx_buf, tx_len, rx_buf, rx_len); in sysconfig_cmd_read()
91 struct gpio_desc *program = priv->program; in sysconfig_gpio_refresh()
92 struct gpio_desc *init = priv->init; in sysconfig_gpio_refresh()
93 struct gpio_desc *done = priv->done; in sysconfig_gpio_refresh()
128 struct gpio_desc *program = priv->program; in sysconfig_refresh()
129 struct gpio_desc *init = priv->init; in sysconfig_refresh()
130 struct gpio_desc *done = priv->done; in sysconfig_refresh()
153 return -EFAULT; in sysconfig_isc_enable()
173 return -EFAULT; in sysconfig_isc_erase()
197 return priv->bitstream_burst_write_init(priv); in sysconfig_burst_write_init()
202 return priv->bitstream_burst_write_complete(priv); in sysconfig_burst_write_complete()
208 int ret = priv->bitstream_burst_write(priv, buf, count); in sysconfig_bitstream_burst_write()
231 struct gpio_desc *done_gpio = priv->done; in sysconfig_isc_finish()
252 return -EFAULT; in sysconfig_isc_finish()
255 static enum fpga_mgr_states sysconfig_ops_state(struct fpga_manager *mgr) in sysconfig_ops_state() argument
257 struct sysconfig_priv *priv = mgr->priv; in sysconfig_ops_state()
258 struct gpio_desc *done = priv->done; in sysconfig_ops_state()
272 static int sysconfig_ops_write_init(struct fpga_manager *mgr, in sysconfig_ops_write_init() argument
276 struct sysconfig_priv *priv = mgr->priv; in sysconfig_ops_write_init()
277 struct device *dev = &mgr->dev; in sysconfig_ops_write_init()
280 if (info->flags & FPGA_MGR_PARTIAL_RECONFIG) { in sysconfig_ops_write_init()
282 return -EOPNOTSUPP; in sysconfig_ops_write_init()
315 static int sysconfig_ops_write(struct fpga_manager *mgr, const char *buf, in sysconfig_ops_write() argument
318 return sysconfig_bitstream_burst_write(mgr->priv, buf, count); in sysconfig_ops_write()
321 static int sysconfig_ops_write_complete(struct fpga_manager *mgr, in sysconfig_ops_write_complete() argument
324 struct sysconfig_priv *priv = mgr->priv; in sysconfig_ops_write_complete()
325 struct device *dev = &mgr->dev; in sysconfig_ops_write_complete()
356 struct device *dev = priv->dev; in sysconfig_probe()
357 struct fpga_manager *mgr; in sysconfig_probe() local
360 return -ENODEV; in sysconfig_probe()
362 if (!priv->command_transfer || in sysconfig_probe()
363 !priv->bitstream_burst_write_init || in sysconfig_probe()
364 !priv->bitstream_burst_write || in sysconfig_probe()
365 !priv->bitstream_burst_write_complete) { in sysconfig_probe()
367 return -EINVAL; in sysconfig_probe()
385 priv->program = program; in sysconfig_probe()
386 priv->init = init; in sysconfig_probe()
387 priv->done = done; in sysconfig_probe()
389 mgr = devm_fpga_mgr_register(dev, "Lattice sysCONFIG FPGA Manager", in sysconfig_probe()
392 return PTR_ERR_OR_ZERO(mgr); in sysconfig_probe()
396 MODULE_DESCRIPTION("Lattice sysCONFIG FPGA Manager Core");