3 * @file spi_resp_transl.h
5 * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
7 * @author Michal Horn <hornmich@fel.cvut.cz>
10 #ifndef SPI_RESP_TRANSL_H_
11 #define SPI_RESP_TRANSL_H_
13 //#include "hal_port_def.h"
14 //#include "cmdproc_utils.h"
17 #define NUM_SPI_DEVICES 7
18 #define DIN_NUM_GLOB_FD 24
19 #define LOUT_NUM_GLOB_FD 28
20 #define DAC_NUM_GLOB_FD 1
21 #define FRAY_NUM_GLOB_FD 12
22 #define HBR_NUM_STATREG_FD 14
23 #define HBR_NUM_APPLREG1_FD 15
24 #define HBR_NUM_APPLREG2_FD 13
25 #define HBR_NUM_APPLREG3_FD 16
26 #define HBR_NUM_DIADDR0_FD 10
27 #define HBR_NUM_DIADDR1_FD 9
28 #define HBR_NUM_DIADDR2_FD 9
29 #define HBR_NUM_DIADDR3_FD 16
31 #define DIN_NUM_CMD_D 1
32 #define LOUT_NUM_CMD_D 1
33 #define DAC_NUM_CMD_D 1
34 #define FRAY_NUM_CMD_D 1
35 #define HBR_NUM_CMD_D 12
37 #define MAX_NUM_ROWS 32
39 /*masked fields macros*/
40 //#define __val2mfld(mask,val) (((mask)&~((mask)<<1))*(val)&(mask))
41 //#define __mfld2val(mask,val) (((val)&(mask))/((mask)&~((mask)<<1)))
44 typedef struct spitr_field_desc_st {
45 const char *field_name;
49 typedef struct spitr_cmd_map_st {
52 const spitr_field_desc_t *field_desc;
56 typedef struct spitr_name_map_st {
58 const spitr_cmd_map_t *cmd_map;
62 typedef struct spitr_reg_translate_table_row_st {
63 const char *field_name;
65 } spitr_reg_translate_table_row_t;
67 typedef struct spitr_reg_translate_table_st {
68 spitr_reg_translate_table_row_t row[MAX_NUM_ROWS];
70 } spitr_reg_translate_table_t;
73 const spitr_cmd_map_t *get_spi_cmd_map(const char *spi_port_name, int len, uint32_t *num_cmdDesc);
74 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);
75 int spitr_fill_tr_table(const spitr_field_desc_t *fd, uint32_t num_fields, uint32_t value, spitr_reg_translate_table_t *table);
77 #endif /* SPI_RESP_TRANSL_H_ */