File indexing completed on 2025-05-11 08:23:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #ifndef __B1553BRM_H__
0035 #define __B1553BRM_H__
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 #include <drvmgr/drvmgr.h>
0048
0049 #ifdef __cplusplus
0050 extern "C" {
0051 #endif
0052
0053 struct brm_reg {
0054 volatile unsigned int ctrl;
0055 volatile unsigned int oper;
0056 volatile unsigned int cur_cmd;
0057 volatile unsigned int imask;
0058 volatile unsigned int ipend;
0059 volatile unsigned int ipoint;
0060 volatile unsigned int bit_reg;
0061 volatile unsigned int ttag;
0062 volatile unsigned int dpoint;
0063 volatile unsigned int sw;
0064 volatile unsigned int initcount;
0065 volatile unsigned int mcpoint;
0066 volatile unsigned int mdpoint;
0067 volatile unsigned int mbc;
0068 volatile unsigned int mfilta;
0069 volatile unsigned int mfiltb;
0070 volatile unsigned int rt_cmd_leg[16];
0071 volatile unsigned int enhanced;
0072
0073 volatile unsigned int dummy[31];
0074
0075 volatile unsigned int w_ctrl;
0076 volatile unsigned int w_irqctrl;
0077 volatile unsigned int w_ahbaddr;
0078 };
0079
0080 struct bm_msg {
0081 unsigned short miw;
0082 unsigned short cw1;
0083 unsigned short cw2;
0084 unsigned short sw1;
0085 unsigned short sw2;
0086 unsigned short time;
0087 unsigned short data[32];
0088 };
0089
0090 struct rt_msg {
0091 unsigned short miw;
0092 unsigned short time;
0093 unsigned short data[32];
0094 unsigned short desc;
0095 };
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116 struct bc_msg {
0117 unsigned char rtaddr[2];
0118 unsigned char subaddr[2];
0119 unsigned short wc;
0120 unsigned short ctrl;
0121 unsigned short tsw[2];
0122 unsigned short data[32];
0123 };
0124
0125
0126 #define BC_TR 0x0001
0127 #define BC_RTRT 0x0002
0128 #define BC_BUSA 0x0004
0129 #define BC_EOL 0x0020
0130 #define BC_SKIP 0x0040
0131 #define BC_BAME 0x8000
0132
0133 #define BRM_MBC_IRQ 1
0134 #define BRM_CBA_IRQ 2
0135 #define BRM_RTF_IRQ 4
0136 #define BRM_ILLOP_IRQ 8
0137 #define BRM_BC_ILLCMD_IRQ 16
0138 #define BRM_EOL_IRQ 32
0139 #define BRM_RT_ILLCMD_IRQ 128
0140 #define BRM_IXEQ0_IRQ 256
0141 #define BRM_BDRCV_IRQ 512
0142 #define BRM_SUBAD_IRQ 1024
0143 #define BRM_MERR_IRQ 2048
0144 #define BRM_TAPF_IRQ 8192
0145 #define BRM_WRAPF_IRQ 16384
0146 #define BRM_DMAF_IRQ 32768
0147
0148
0149 #define BRM_SET_MODE 0
0150 #define BRM_SET_BUS 1
0151 #define BRM_SET_MSGTO 2
0152 #define BRM_SET_RT_ADDR 3
0153 #define BRM_SET_STD 4
0154 #define BRM_SET_BCE 5
0155 #define BRM_TX_BLOCK 7
0156 #define BRM_RX_BLOCK 8
0157
0158 #define BRM_DO_LIST 10
0159 #define BRM_LIST_DONE 11
0160
0161 #define BRM_CLR_STATUS 12
0162 #define BRM_GET_STATUS 13
0163 #define BRM_SET_EVENTID 14
0164
0165 #define GET_ERROR_DESCRIPTOR(event_in) (event_in>>16)
0166
0167
0168 #define BRM_MODE_BC 0x0
0169 #define BRM_MODE_RT 0x1
0170 #define BRM_MODE_BM 0x2
0171 #define BRM_MODE_BM_RT 0x3
0172
0173 #define BRM_FREQ_12MHZ 0
0174 #define BRM_FREQ_16MHZ 1
0175 #define BRM_FREQ_20MHZ 2
0176 #define BRM_FREQ_24MHZ 3
0177 #define BRM_FREQ_MASK 0x3
0178
0179 #define CLKDIV_MASK 0xf
0180
0181 #define CLKSEL_MASK 0x7
0182
0183 void b1553brm_register_drv(void);
0184
0185
0186
0187
0188
0189
0190
0191 extern unsigned short b1553brm_rt_cmd_legalize[16];
0192
0193
0194 void b1553brm_print(int options);
0195
0196
0197 void b1553brm_print_dev(struct drvmgr_dev *dev, int options);
0198
0199 #ifdef __cplusplus
0200 }
0201 #endif
0202
0203
0204
0205 #endif
0206