FreeRTOS port on GAP8/RISC-V
|
Functions | |
static void | __pi_hyper_handler (void *arg) |
static void | __pi_hyper_handle_pending_transfer (struct hyper_driver_fifo_s *fifo) |
static void | __pi_hyper_handle_end_of_task (struct pi_task *task) |
static uint32_t | __pi_hyper_task_fifo_enqueue (struct hyper_driver_fifo_s *fifo, struct pi_task *task) |
static struct pi_task * | __pi_hyper_task_fifo_pop (struct hyper_driver_fifo_s *fifo) |
static void | __pi_hyper_copy_exec (struct hyper_driver_fifo_s *fifo, struct pi_task *task) |
static void | __pi_hyper_copy_2d_exec (struct hyper_driver_fifo_s *fifo, struct pi_task *task) |
static void | __pi_hyper_settings (struct hyper_driver_conf_s *conf, uint8_t hyper_type) |
void | __pi_hyper_handler_irq (void *arg) |
static uint8_t | __pi_hyper_clk_div_get (uint32_t baudrate) |
void | __pi_hyper_conf_init (struct pi_hyper_conf *conf) |
Init hyperbus configuration structure. More... | |
int32_t | __pi_hyper_open (struct pi_hyper_conf *conf, struct hyper_driver_conf_s **driver_conf) |
Open hyperbus device. More... | |
void | __pi_hyper_close (struct hyper_driver_conf_s *conf) |
Close hyperbus device. More... | |
void | __pi_hyper_copy_2d (struct hyper_driver_conf_s *conf, struct hyper_transfer_s *transfer, struct pi_task *task) |
Enqueue 2D transfer. More... | |
int32_t | __pi_hyper_ioctl (struct hyper_driver_conf_s *conf, uint32_t cmd, void *arg) |
Variables | |
struct hyper_driver_fifo_s * | g_hyper_driver_fifo [UDMA_NB_HYPER] |
|
inlinestatic |
References HYPER_TRACE, and pi_freq_get().
Referenced by __pi_hyper_open().
void __pi_hyper_close | ( | struct hyper_driver_conf_s * | conf | ) |
conf | Pointer to internal hyperbus conf. |
References hyper_driver_fifo_s::chan_id_rx, hyper_driver_fifo_s::chan_id_tx, hyper_driver_conf_s::device_id, hal_udma_core_2d_get(), hal_udma_core_2d_reset(), hal_udma_ctrl_cg_enable(), hal_udma_ctrl_reset_clear(), hal_udma_hyperbus_rx_dest_set(), hal_udma_hyperbus_tx_dest_set(), HYPER_TRACE, hyper_driver_fifo_s::nb_open, pi_fc_l1_free(), pi_udma_core_2d_free(), UDMA_CHAN_2D_ID, and UDMA_HYPER_ID.
Referenced by pi_hyper_close().
void __pi_hyper_conf_init | ( | struct pi_hyper_conf * | conf | ) |
conf | Pointer to hyperbus conf. |
Referenced by pi_hyper_conf_init().
void __pi_hyper_copy_2d | ( | struct hyper_driver_conf_s * | conf, |
struct hyper_transfer_s * | transfer, | ||
struct pi_task * | task | ||
) |
conf | Pointer to driver config struct. |
transfer | Pointer to transfer struct. |
task | Event task attached to the transfer. |
References __pi_hyper_copy_2d_exec(), __pi_hyper_task_fifo_enqueue(), hyper_transfer_s::buffer, hyper_transfer_s::channel, hyper_transfer_s::device_id, hyper_transfer_s::hyper_addr, HYPER_TRACE, hyper_transfer_s::length, RX_CHANNEL, hyper_transfer_s::size, and hyper_transfer_s::stride.
|
static |
References hyper_driver_conf_s::burst_cfg, hyper_driver_conf_s::clk_div, hyper_driver_fifo_s::device_id, hal_udma_hyperbus_transfer_2d_auto(), HYPER_2D_MODE_1D_1D, HYPER_2D_MODE_1D_2D, HYPER_TRACE, udma_hyper, and UDMA_HYPER_BURST_ENABLE_2D_MODE.
Referenced by __pi_hyper_copy_2d(), and __pi_hyper_handler_irq().
|
static |
|
static |
|
static |
|
static |
References hyper_driver_fifo_s::device_id, and HYPER_TRACE.
Referenced by __pi_hyper_open().
void __pi_hyper_handler_irq | ( | void * | arg | ) |
int32_t __pi_hyper_ioctl | ( | struct hyper_driver_conf_s * | conf, |
uint32_t | cmd, | ||
void * | arg | ||
) |
References hyper_driver_conf_s::device_id, and HYPER_TRACE_ERR.
Referenced by pi_hyper_ioctl().
int32_t __pi_hyper_open | ( | struct pi_hyper_conf * | conf, |
struct hyper_driver_conf_s ** | driver_conf | ||
) |
conf | Pointer to hyperbus conf. |
driver_conf | Pointer to internal hyperbus conf pointer. |
0 | Operation is successful. |
ERRNO | Error code. |
References __pi_hyper_clk_div_get(), __pi_hyper_handler(), __pi_hyper_settings(), hyper_driver_conf_s::burst_cfg, hyper_driver_conf_s::burst_size, hyper_driver_fifo_s::chan_id_rx, hyper_driver_fifo_s::chan_id_tx, hyper_driver_conf_s::clk_div, hyper_driver_conf_s::cs, hyper_driver_fifo_s::device_id, hyper_driver_conf_s::device_id, FC_IRQ_HYPER_0_EOT_IRQ, FC_IRQ_HYPER_1_EOT_IRQ, hyper_driver_fifo_s::fifo_head, hyper_driver_fifo_s::fifo_tail, hal_udma_ctrl_cg_disable(), hal_udma_ctrl_reset_set(), hal_udma_hyperbus_burst_cfg_set(), hal_udma_hyperbus_clk_div_set(), hal_udma_hyperbus_irq_enable(), hal_udma_hyperbus_rx_dest_set(), hal_udma_hyperbus_transfert_mode_set(), hal_udma_hyperbus_tx_dest_set(), HYPER_BURST_2D_ENABLE, HYPER_MODE_AUTO_ENABLE, HYPER_TRACE, HYPER_TRACE_ERR, hyper_driver_conf_s::hyper_type, HYPERRAM, hyper_driver_fifo_s::nb_open, NVIC_EnableIRQ, pi_fc_l1_free(), pi_fc_l1_malloc(), pi_freq_get(), pi_udma_core_2d_alloc(), pi_udma_core_2d_free(), UDMA_CHAN_LIN, udma_ctrl, udma_hyper, UDMA_HYPER_BURST_ENABLE_2D_ENABLE, UDMA_HYPER_BURST_ENABLE_CS0_AUTO_BURST_ENABLE, UDMA_HYPER_BURST_ENABLE_CS0_MAXIMUM_CHECK_ENABLE, UDMA_HYPER_BURST_ENABLE_CS1_AUTO_BURST_ENABLE, UDMA_HYPER_BURST_ENABLE_CS1_MAXIMUM_CHECK_ENABLE, and UDMA_HYPER_ID.
Referenced by pi_hyper_open().
|
static |
References hyper_driver_conf_s::burst_size, hyper_driver_conf_s::device_id, FLASH_ADDR, hal_udma_hyperbus_device_type_set(), hal_udma_hyperbus_mba0_set(), hal_udma_hyperbus_mba1_set(), hal_udma_hyperbus_timing_set(), HYPER_TRACE, HYPERFLASH, HYPERRAM, RAM_ADDR, TYPE_HYPERBUS, udma_hyper, udma_hyper_device_get(), udma_hyper_mba0_get(), udma_hyper_mba1_get(), and udma_hyper_timing_cfg_get().
|
static |
References hyper_driver_fifo_s::fifo_head, and hyper_driver_fifo_s::fifo_tail.
Referenced by __pi_hyper_copy_2d().
|
static |
References hyper_driver_fifo_s::device_id, hyper_driver_fifo_s::fifo_head, hyper_driver_fifo_s::fifo_tail, and HYPER_TRACE.
Referenced by __pi_hyper_handler_irq().
struct hyper_driver_fifo_s* g_hyper_driver_fifo[UDMA_NB_HYPER] |