summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/eve/eve.h
blob: e85ed7672904cd502fb4141df7e79e16c2ef4084 (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
#include <stdint.h>

#include "eve_def.h"
#include "eve_touch.h"
#include "eve_phy.h"
#include "eve_vtrack.h"
#include "eve_platform.h"

#define EVE_OK              0
#define EVE_ERR             -1

#define EVE_ERR_FULL        -10
#define EVE_ERR_EMPTY       -11

#define EVE_ERR_NOMEM       -100

#define EVE_PSTATE_ACTIVE   0
#define EVE_PSTATE_STANDBY  1
#define EVE_PSTATE_SLEEP    3

#define COLOR_RGBC(c)       ((4UL<<24)|((c)&16777215UL))
#define CLEAR_COLOR_RGBC(c) ((2UL<<24)|((c)&16777215UL))

typedef struct EVERect {
    int16_t x;
    int16_t y;
    uint16_t w;
    uint16_t h;
} EVERect;

void eve_command(uint8_t command, uint8_t parameter);

uint8_t eve_read8(uint32_t addr);
uint16_t eve_read16(uint32_t addr);
uint32_t eve_read32(uint32_t addr);
void eve_write8(uint32_t addr, uint8_t data);
void eve_write16(uint32_t addr, uint16_t data);
void eve_write32(uint32_t addr, uint32_t data);

void eve_readb(uint32_t addr, uint8_t *b, size_t size);
void eve_writeb(uint32_t addr, uint8_t *b, size_t size);

void eve_dl_start(uint32_t addr, char burst);
void eve_dl_write(uint32_t dl);
void eve_dl_end(void);
void eve_dl_swap(void);
uint32_t eve_dl_get_addr(void);

void eve_cmd(uint32_t cmd, const char *fmt, ...);
uint32_t eve_cmd_result(uint16_t offset);
void eve_cmd_dl(uint32_t dl);
int eve_cmd_done(void);
int eve_cmd_exec(int w);
void eve_cmd_burst_start(void);
void eve_cmd_burst_end(void);

void eve_active(void);
void eve_standby(void);
void eve_sleep(void);
void eve_wake(void);
void eve_brightness(uint8_t b);
void eve_set_touch_calibration(uint32_t *matrix);

int eve_init(int pwr_on);