+/**
+ *
+ * @file spi.h
+ *
+ * @copyright Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
+ *
+ */
+
#ifndef _SPI_DRV_H_
#define _SPI_DRV_H_
-//#include "sys_common.h"
-//#include "string.h"
-//#include "cpu_def.h"
-#include "drv/drv.h"
-
-//#define SPI_MSG_FINISHED 0x040
-//#define SPI_MSG_ABORT 0x020
-//#define SPI_MSG_FAIL 0x010
-
-/*
-struct spi_drv;
-
-typedef struct spi_msg_head {
- uint16_t flags; // message flags
- uint16_t addr; // message destination address -- used as index into the "address translation table"
-
- //uint16_t size_mode; // message frame len and mode
- uint16_t rq_len; // requested transfer length
- const uint8_t *tx_buf; // pointer to TX data
- uint8_t *rx_buf; // pointer to RX data
-
- ul_list_node_t node;
- //struct spi_drv *ifc;
- int (*callback) (struct spi_drv * ifc, int code, struct spi_msg_head * msg); // Called when whole transfer is finished
- long private; // If set -- msg is processed by HW
-} spi_msg_head_t;
-*/
-
-//typedef int (spi_ctrl_fnc_t) (struct spi_drv * ifc, int ctrl, void *p);
-
-/*
-typedef struct spi_drv {
- uint16_t flags; // Flags
- //uint16_t self_addr;
- ul_list_head_t rq_queue; // Queue containing MSG requests to process
- spi_msg_head_t *msg_act; // MSG being actually processed
- spi_ctrl_fnc_t *ctrl_fnc; // Device dependent function responsible for sending data
- //long private;
-} spi_drv_t; */
+#include "drv/spi_tms570.h"
+#include "drv/port.h"
UL_LIST_CUST_DEC(spi_rq_queue, spi_drv_t, spi_msg_head_t, rq_queue, node)
-/* ------------------------------------------------------------------------- */
-
-//typedef unsigned long spi_isr_lock_level_t;
-//#define spi_isr_lock save_and_cli
-//#define spi_isr_unlock restore_flags
-
-/* ------------------------------------------------------------------------- */
int spi_transfer(spi_drv_t *ifc, int addr, int rq_len, const void *tx_buf, void *rx_buf);
-spi_drv_t *spi_find_drv(char *name, int number);
int spi_msg_rq_ins(spi_drv_t *ifc, spi_msg_head_t *msg);
+int8_t port_spi_set(const struct port_desc *port, void *values, size_t size);
#endif /* _SPI_DRV_H_ */