XCORE SDK
XCORE Software Development Kit
Classes | Macros | Enumerations | Functions
qspi_io.h File Reference

API for QSPI I/O. More...

#include <stdlib.h>
#include <stdint.h>
#include <xclib.h>
#include <xcore/port.h>
#include <xcore/clock.h>

Go to the source code of this file.

Classes

struct  qspi_io_ctx_t
 

Macros

#define QSPI_IO_BYTE_TO_MOSI(x)
 
#define QSPI_IO_SETC_PAD_DELAY(n)   (0x7007 | ((n) << 3))
 
#define QSPI_IO_RESOURCE_SETCI(res, c)   asm volatile( "setc res[%0], %1" :: "r" (res), "n" (c))
 
#define QSPI_IO_RESOURCE_SETC(res, r)   asm volatile( "setc res[%0], %1" :: "r" (res), "r" (r))
 
#define QSPI_IO_SETSR(c)   asm volatile("setsr %0" : : "n"(c));
 
#define QSPI_IO_CLRSR(c)   asm volatile("clrsr %0" : : "n"(c));
 

Enumerations

enum  qspi_io_sample_edge_t { qspi_io_sample_edge_rising = 0 , qspi_io_sample_edge_falling }
 
enum  qspi_io_source_clock_t { qspi_io_source_clock_ref = 0 , qspi_io_source_clock_xcore }
 
enum  qspi_io_transfer_mode_t { qspi_io_transfer_normal = 0 , qspi_io_transfer_nibble_swap }
 
enum  qspi_io_transaction_type_t { qspi_io_full_speed = 0 , qspi_io_spi_read }
 

Functions

uint32_t qspi_io_byte_to_mosi (uint32_t x)
 
uint32_t qspi_io_miso_to_byte (uint32_t x)
 
uint32_t qspi_io_nibble_swap (uint32_t word)
 
void qspi_io_start_transaction (qspi_io_ctx_t *ctx, uint32_t first_word, size_t len, qspi_io_transaction_type_t transaction_type)
 
void qspi_io_bytes_out (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, const uint8_t *data, size_t len)
 
void qspi_io_words_out (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, const uint32_t *data, size_t len)
 
void qspi_io_mosi_out (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, const uint8_t *data, size_t len)
 
void qspi_io_sio_direction_input (qspi_io_ctx_t *ctx)
 
void qspi_io_bytes_in (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, uint8_t *data, uint32_t start_time, size_t len)
 
void qspi_io_words_in (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, uint32_t *data, uint32_t start_time, size_t len)
 
void qspi_io_miso_in (const qspi_io_ctx_t *ctx, const qspi_io_transfer_mode_t transfer_mode, uint8_t *data, uint32_t start_time, size_t len)
 
void qspi_io_miso_poll (const qspi_io_ctx_t *ctx, const uint8_t mask, const uint8_t val, uint32_t start_time)
 
void qspi_io_end_transaction (const qspi_io_ctx_t *ctx)
 
void qspi_io_deinit (const qspi_io_ctx_t *ctx)
 
void qspi_io_init (const qspi_io_ctx_t *ctx, qspi_io_source_clock_t source_clock)
 

Detailed Description

API for QSPI I/O.