forked from Imagelibrary/rtems
bsp/atsam: Hide details of SPI driver
This commit is contained in:
@@ -16,37 +16,11 @@
|
|||||||
#define LIBBSP_ARM_ATSAM_ATSAM_SPI_H
|
#define LIBBSP_ARM_ATSAM_ATSAM_SPI_H
|
||||||
|
|
||||||
#include <libchip/chip.h>
|
#include <libchip/chip.h>
|
||||||
#include <libchip/include/pio.h>
|
|
||||||
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <dev/spi/spi.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
#define DEFAULT_SPI0_CS 0
|
|
||||||
#define DEFAULT_SPI_CLOCK 500000
|
|
||||||
|
|
||||||
#define REGISTER_COMMAND_LENGTH 2
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
spi_bus base;
|
|
||||||
Spi *regs;
|
|
||||||
rtems_vector_number irq;
|
|
||||||
uint32_t board_id;
|
|
||||||
uint32_t msg_todo;
|
|
||||||
const spi_ioc_transfer *msgs;
|
|
||||||
rtems_id task_id;
|
|
||||||
sXdmad Dma;
|
|
||||||
Spid SpiDma;
|
|
||||||
uint32_t dma_tx_channel;
|
|
||||||
uint32_t dma_rx_channel;
|
|
||||||
bool rx_transfer_done;
|
|
||||||
bool tx_transfer_done;
|
|
||||||
bool chip_select_active;
|
|
||||||
} atsam_spi_bus;
|
|
||||||
|
|
||||||
int spi_bus_register_atsam(
|
int spi_bus_register_atsam(
|
||||||
const char *bus_path,
|
const char *bus_path,
|
||||||
Spi *register_base,
|
Spi *register_base,
|
||||||
|
|||||||
@@ -32,8 +32,27 @@
|
|||||||
|
|
||||||
#include <rtems/irq-extension.h>
|
#include <rtems/irq-extension.h>
|
||||||
|
|
||||||
|
#include <dev/spi/spi.h>
|
||||||
|
|
||||||
#define MAX_SPI_FREQUENCY 50000000
|
#define MAX_SPI_FREQUENCY 50000000
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
spi_bus base;
|
||||||
|
Spi *regs;
|
||||||
|
rtems_vector_number irq;
|
||||||
|
uint32_t board_id;
|
||||||
|
uint32_t msg_todo;
|
||||||
|
const spi_ioc_transfer *msgs;
|
||||||
|
rtems_id task_id;
|
||||||
|
sXdmad Dma;
|
||||||
|
Spid SpiDma;
|
||||||
|
uint32_t dma_tx_channel;
|
||||||
|
uint32_t dma_rx_channel;
|
||||||
|
bool rx_transfer_done;
|
||||||
|
bool tx_transfer_done;
|
||||||
|
bool chip_select_active;
|
||||||
|
} atsam_spi_bus;
|
||||||
|
|
||||||
static void atsam_interrupt_handler(void *arg)
|
static void atsam_interrupt_handler(void *arg)
|
||||||
{
|
{
|
||||||
atsam_spi_bus *bus = (atsam_spi_bus *)arg;
|
atsam_spi_bus *bus = (atsam_spi_bus *)arg;
|
||||||
|
|||||||
Reference in New Issue
Block a user