]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - rpp-test-sw/commands/spi_resp_transl.h
Update library
[pes-rpp/rpp-test-sw.git] / rpp-test-sw / commands / spi_resp_transl.h
1 /**
2  *
3  * @file spi_resp_transl.h
4  *
5  * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
6  *
7  * @author Michal Horn <hornmich@fel.cvut.cz>
8  */
9
10 #ifndef SPI_RESP_TRANSL_H_
11 #define SPI_RESP_TRANSL_H_
12
13 #define NUM_SPI_DEVICES 7
14 #define DIN_NUM_GLOB_FD     24
15 #define LOUT_NUM_GLOB_FD    28
16 #define DAC_NUM_GLOB_FD     1
17 #define FRAY_NUM_GLOB_FD    12
18 #define HBR_NUM_STATREG_FD  14
19 #define HBR_NUM_APPLREG1_FD 15
20 #define HBR_NUM_APPLREG2_FD 13
21 #define HBR_NUM_APPLREG3_FD 16
22 #define HBR_NUM_DIADDR0_FD 10
23 #define HBR_NUM_DIADDR1_FD 9
24 #define HBR_NUM_DIADDR2_FD 9
25 #define HBR_NUM_DIADDR3_FD 16
26
27 #define DIN_NUM_CMD_D   1
28 #define LOUT_NUM_CMD_D  1
29 #define DAC_NUM_CMD_D   1
30 #define FRAY_NUM_CMD_D  1
31 #define HBR_NUM_CMD_D   12
32
33 #define MAX_NUM_ROWS    32
34
35 /*masked fields macros*/
36 //#define __val2mfld(mask,val) (((mask)&~((mask)<<1))*(val)&(mask))
37 //#define __mfld2val(mask,val) (((val)&(mask))/((mask)&~((mask)<<1)))
38
39
40 typedef struct spitr_field_desc_st {
41         const char *field_name;
42         uint32_t mask;
43 } spitr_field_desc_t;
44
45 typedef struct spitr_cmd_map_st {
46         uint32_t cmd_msk;
47         uint32_t command;
48         const spitr_field_desc_t *field_desc;
49         uint32_t num_fields;
50 } spitr_cmd_map_t;
51
52 typedef struct spitr_name_map_st {
53         const char *spi_name;
54         const spitr_cmd_map_t *cmd_map;
55         uint32_t num_cmd;
56 } spitr_name_map_t;
57
58 typedef struct spitr_reg_translate_table_row_st {
59         const char *field_name;
60         uint32_t value;
61 } spitr_reg_translate_table_row_t;
62
63 typedef struct spitr_reg_translate_table_st {
64         spitr_reg_translate_table_row_t row[MAX_NUM_ROWS];
65         uint32_t num_rows;
66 } spitr_reg_translate_table_t;
67
68
69 const spitr_cmd_map_t *get_spi_cmd_map(const char *spi_port_name, int len, uint32_t *num_cmdDesc);
70 const spitr_field_desc_t *get_spi_field_desc(const spitr_cmd_map_t *cmd_map, uint32_t num_cmd, uint32_t cmd, uint32_t *num_fdDesc);
71 int spitr_fill_tr_table(const spitr_field_desc_t *fd, uint32_t num_fields, uint32_t value, spitr_reg_translate_table_t *table);
72
73 #endif /* SPI_RESP_TRANSL_H_ */