[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r8354 - usrp2/trunk/firmware/lib
From: |
eb |
Subject: |
[Commit-gnuradio] r8354 - usrp2/trunk/firmware/lib |
Date: |
Fri, 9 May 2008 17:37:39 -0600 (MDT) |
Author: eb
Date: 2008-05-09 17:37:35 -0600 (Fri, 09 May 2008)
New Revision: 8354
Modified:
usrp2/trunk/firmware/lib/db_init.c
usrp2/trunk/firmware/lib/db_rfx.c
usrp2/trunk/firmware/lib/hal_io.c
usrp2/trunk/firmware/lib/u2_init.c
Log:
fix for writing ATR regs
Modified: usrp2/trunk/firmware/lib/db_init.c
===================================================================
--- usrp2/trunk/firmware/lib/db_init.c 2008-05-09 23:34:54 UTC (rev 8353)
+++ usrp2/trunk/firmware/lib/db_init.c 2008-05-09 23:37:35 UTC (rev 8354)
@@ -126,18 +126,41 @@
}
static void
+set_atr_regs(int bank, struct db_base *db)
+{
+ uint32_t val[4];
+ int shift;
+ int mask;
+ int i;
+
+ val[ATR_IDLE] = db->atr_rxval;
+ val[ATR_RX] = db->atr_rxval;
+ //val[ATR_TX] = db->atr_txval;
+ val[ATR_TX] = 0xffff;
+ val[ATR_FULL] = db->atr_txval;
+
+ if (bank == GPIO_TX_BANK){
+ mask = 0xffff0000;
+ shift = 16;
+ }
+ else {
+ mask = 0x0000ffff;
+ shift = 0;
+ }
+
+ for (i = 0; i < 4; i++){
+ atr_regs->v[i] = (atr_regs->v[i] & ~mask) | ((val[i] << shift) & mask);
+ }
+}
+
+static void
set_gpio_mode(int bank, struct db_base *db)
{
int i;
hal_gpio_set_ddr(bank, db->output_enables, 0xffff);
+ set_atr_regs(bank, db);
- // Copy ATR values into controller
- atr_regs->v[ATR_IDLE] = db->atr_rxval; // Rx
- atr_regs->v[ATR_RX] = db->atr_rxval; // Rx
- atr_regs->v[ATR_TX] = db->atr_txval; // Tx
- atr_regs->v[ATR_FULL] = db->atr_rxval; // Rx
-
for (i = 0; i < 16; i++){
if (db->used_pins & (1 << i)){
// set to either GPIO_SEL_SW or GPIO_SEL_ATR
Modified: usrp2/trunk/firmware/lib/db_rfx.c
===================================================================
--- usrp2/trunk/firmware/lib/db_rfx.c 2008-05-09 23:34:54 UTC (rev 8353)
+++ usrp2/trunk/firmware/lib/db_rfx.c 2008-05-09 23:37:35 UTC (rev 8354)
@@ -115,7 +115,7 @@
.base.set_freq = rfx_set_freq,
.base.set_gain = rfx_set_gain,
.base.set_tx_enable = 0,
- // .base.atr_mask =
+ .base.atr_mask = 0x00E0,
.base.atr_txval = 0,
.base.atr_rxval = MIX_EN,
// .base.atr_tx_delay =
@@ -147,7 +147,7 @@
.base.set_freq = rfx_set_freq,
.base.set_gain = rfx_set_gain,
.base.set_tx_enable = rfx_set_tx_enable,
- // .base.atr_mask =
+ .base.atr_mask = 0x00E0,
.base.atr_txval = MIX_EN,
.base.atr_rxval = ANT_SW,
// .base.atr_tx_delay =
Modified: usrp2/trunk/firmware/lib/hal_io.c
===================================================================
--- usrp2/trunk/firmware/lib/hal_io.c 2008-05-09 23:34:54 UTC (rev 8353)
+++ usrp2/trunk/firmware/lib/hal_io.c 2008-05-09 23:37:35 UTC (rev 8354)
@@ -114,6 +114,8 @@
void
hal_gpio_write(int bank, int value, int mask)
{
+ static uint32_t _gpio_io_shadow;
+
bank &= 0x1;
if (bank == GPIO_TX_BANK){ // tx in top half
@@ -126,7 +128,8 @@
}
int ei = hal_disable_ints();
- gpio_base->io = (gpio_base->io & ~mask) | (value & mask);
+ _gpio_io_shadow = (_gpio_io_shadow & ~mask) | (value & mask);
+ gpio_base->io = _gpio_io_shadow;
hal_restore_ints(ei);
}
@@ -145,7 +148,6 @@
return r & 0xffff;
}
-
/*
* ========================================================================
* leds
Modified: usrp2/trunk/firmware/lib/u2_init.c
===================================================================
--- usrp2/trunk/firmware/lib/u2_init.c 2008-05-09 23:34:54 UTC (rev 8353)
+++ usrp2/trunk/firmware/lib/u2_init.c 2008-05-09 23:37:35 UTC (rev 8354)
@@ -44,8 +44,10 @@
// Set GPIOs to inputs
hal_gpio_set_ddr(GPIO_TX_BANK, 0x0000, 0xffff);
hal_gpio_set_ddr(GPIO_RX_BANK, 0x0000, 0xffff);
- gpio_base->io = 0x00000000;
+ hal_gpio_write(GPIO_TX_BANK, 0x0000, 0xffff); // init s/w output
value to zero
+ hal_gpio_write(GPIO_RX_BANK, 0x0000, 0xffff);
+
hal_io_init();
// init spi, so that we can switch over to the high-speed clock
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r8354 - usrp2/trunk/firmware/lib,
eb <=