aboutsummaryrefslogtreecommitdiff
path: root/firmwares/wifishield/wifiHD/src/ard_spi.h
blob: 628f1155b9bbcf729614b221b1a8d39d7e568775 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
 * ard_spi.h
 *
 *  Created on: May 27, 2010
 *      Author: mlf by Metodo2 srl
 */

#ifndef ARD_SPI_H_
#define ARD_SPI_H_

#include "lwip/netif.h"
#include "console.h"
#include "wl_definitions.h"


typedef enum {
		SPI_CMD_IDLE,
		SPI_CMD_INPUT,
        SPI_CMD_DONE,
        SPI_CMD_INPROGRESS,
        SPI_CMD_REPLING,
        SPI_CMD_FAIL,
} cmd_spi_state_t;

typedef enum {
		REPLY_ERR_GET,
		REPLY_ERR_SET,
		REPLY_ERR_CMD,
		REPLY_ERR_MSG,
        REPLY_NO_ERR,
} reply_err_t;


typedef enum {
	CMD_GET_FLAG = 0x01,
	CMD_SET_FLAG = 0x02,
	CMD_IMM_SET_FLAG = 0x04,
}cmd_flags;

#define TIMEOUT_SPI  		200
#define SPI_ALIGN_ERROR		0xF0
#define SPI_OVERRIDE_ERROR	0xF1
#define DUMMY_DATA			0xFF

typedef int (*cmd_spi_cb_t)(int numParam, char* buf, void* ctx);
typedef cmd_spi_state_t (*cmd_spi_rcb_t)(char* recv, char* reply, void* ctx, uint16_t* _count);

void set_result_cmd(int err) ;

void set_result(wl_status_t _status);

int initSpi(void);

void initExtInt();

void spi_poll(struct netif* netif);

int spi_slaveReceive(volatile avr32_spi_t *spi);

void showTTCPstatus();

int getSock(void * _ttcp);

void* getTTCP(uint8_t sock);

void clearMapSockTcp(uint8_t sock);

int start_server_tcp(uint16_t port, uint8_t sock);

#endif /* ARD_SPI_H_ */