aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/fx2/b100/usrp_regs.h
blob: 493a0c3dec16c8655658f4bdac3531372f05cedc (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
 * USRP - Universal Software Radio Peripheral
 *
 * Copyright (C) 2003 Free Software Foundation, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Boston, MA  02110-1301  USA
 */

/*
 * These are the register definitions for the Rev 1 USRP prototype
 * The Rev 1 is the version with the AD9862's and daughterboards
 */

#ifndef _B100_REGS_H_
#define _B100_REGS_H_

#include "fx2regs.h"

/*
 * Port A (bit addressable):
 */

#define USRP_PA			IOA		// Port A
#define	USRP_PA_OE		OEA		// Port A direction register

#define	USRP_ALTERA_CONFIG	USRP_PA   // Now on port A, not C

#define bmALTERA_DCLK		bmBIT0
#define bmALTERA_NCONFIG	bmBIT1
#define bmALTERA_DATA0		bmBIT3
#define bmALTERA_NSTATUS	bmBIT4
#define bmRESET_FPGA_FIFOS  bmBIT7


#define	bmALTERA_BITS		(bmALTERA_DCLK			\
				 | bmALTERA_NCONFIG		\
				 | bmALTERA_DATA0		\
				 | bmALTERA_NSTATUS		\
				)


#define	bmPORT_A_OUTPUTS	(bmALTERA_DCLK			\
			 	 | bmALTERA_NCONFIG		\
				 | bmALTERA_DATA0		\
				)

#define	bmPORT_A_INITIAL	0

#define PORT_A_ADDR 0x80
#define PORT_C_ADDR 0xA0

sbit at PORT_A_ADDR+0 bitALTERA_DCLK;	// 0x80 is the bit address of PORT A
sbit at PORT_A_ADDR+1 bitALTERA_NCONFIG;
sbit at PORT_A_ADDR+2 bitSHORT_PACKET_SIGNAL;
sbit at PORT_A_ADDR+3 bitALTERA_DATA0;
sbit at PORT_A_ADDR+4 bitALTERA_NSTATUS;

sbit at PORT_C_ADDR+7 bitALTERA_CONF_DONE;


/* Port B: GPIF	FD[7:0]			*/

/*
 * Port C (bit addressable):
 *    5:1 FPGA configuration
 */

#define	USRP_PC			IOC		// Port C
#define	USRP_PC_OE		OEC		// Port C direction register

#define	bmPC_nRESET		0 //bmBIT0		// reset line to codecs (active low)
#define	bmPC_LED0		bmBIT0		// active low
#define	bmPC_LED1		bmBIT1		// active low

#define	bmPORT_C_OUTPUTS	(bmPC_LED0 | bmPC_LED1)
#define	bmPORT_C_INITIAL	(bmPC_LED0 | bmPC_LED1)


#define	USRP_LED_REG		USRP_PC
#define	bmLED0			bmPC_LED0
#define	bmLED1			bmPC_LED1


/* Port D: GPIF	FD[15:8]		*/

/* Port E: not bit addressible		*/

#define	USRP_PE			IOE		// Port E
#define	USRP_PE_OE		OEE		// Port E direction register

#define	bmPORT_E_OUTPUTS	(0)
#define	bmPORT_E_INITIAL	(0)

/*
 * FPGA output lines that are tied to FX2 RDYx inputs.
 * These are readable using GPIFREADYSTAT.
 */
//#define	bmFPGA_HAS_SPACE		bmBIT0	// usbrdy[0] has room for 512 byte packet
//#define	bmFPGA_PKT_AVAIL		bmBIT1	// usbrdy[1] has >= 512 bytes available

#define bmDATA_EMPTY            bmBIT0 //data output FIFO has no data ready
#define bmDATA_FIFO_FULL        bmBIT1 //data input FIFO is full
#define bmCTRL_EMPTY            bmBIT2 //control output FIFO has no data ready
#define bmCTRL_FIFO_FULL        bmBIT3 //control input FIFO is full

// #define	bmTX_UNDERRUN			bmBIT2  // usbrdy[2] D/A ran out of data
// #define	bmRX_OVERRUN			bmBIT3	// usbrdy[3] A/D ran out of buffer

/*
 * FPGA input lines that are tied to the FX2 CTLx outputs.
 *
 * These are controlled by the GPIF microprogram...
 */
// WE					bmBIT0	// usbctl[0] write enable
// RE					bmBIT1	// usbctl[1] read enable
// OE					bmBIT2	// usbctl[2] output enable
// EP                   bmBIT3  // usbctl[3] endpoint select (data/ctrl)

#endif /* _USRP_REV1_REGS_H_ */