clean now gets rid of unittest results. Passes distcheck.
[debian/gnuradio] / usrp2 / firmware / lib / u2_init.c
index 4313c9502a04b1dd971281f4b299ffe52b7db11e..9a1eb16512cb9ec9e2ab41b8a28b18795ee19ff4 100644 (file)
@@ -51,22 +51,28 @@ get_hw_rev(void)
 bool
 u2_init(void)
 {
-  // Set GPIOs to inputs
+  // Set GPIOs to inputs, disable GPIO streaming
   hal_gpio_set_ddr(GPIO_TX_BANK, 0x0000, 0xffff);
   hal_gpio_set_ddr(GPIO_RX_BANK, 0x0000, 0xffff);
 
   hal_gpio_write(GPIO_TX_BANK, 0x0000, 0xffff);        // init s/w output value to zero
   hal_gpio_write(GPIO_RX_BANK, 0x0000, 0xffff);
 
+  dsp_rx_regs->gpio_stream_enable = 0; // I, Q LSBs come from DSP
+
   hal_io_init();
 
   // init spi, so that we can switch over to the high-speed clock
   spi_init();
 
+  // init i2c so we can read our rev
+  i2c_init();
+  get_hw_rev();
+
   // set up the default clocks
   clocks_init();
 
-  // clocks_enable_test_clk(true);
+  // clocks_enable_test_clk(true,1);
 
   // Enable ADCs
   output_regs->adc_ctrl = ADC_CTRL_ON;
@@ -86,18 +92,19 @@ u2_init(void)
   ad9777_write_reg(11, 0);     // Q dac offset
   ad9777_write_reg(12, 0);
   
+  // Initial values for tx and rx mux registers
+  dsp_tx_regs->tx_mux = 0x10;
+  dsp_rx_regs->rx_mux = 0x44444444;
+
   // Set up serdes
   output_regs->serdes_ctrl = (SERDES_ENABLE | SERDES_RXEN);
 
   pic_init();  // progammable interrupt controller
   bp_init();   // buffer pool
-  i2c_init();
   lsadc_init();            // low-speed ADCs
   lsdac_init();            // low-speed DACs
   db_init();       // daughterboard init
   
-  get_hw_rev();
-
   hal_enable_ints();
 
   // flash all leds to let us know board is alive