ok &= eeprom_read(I2C_ADDR_MBOARD, MBOARD_REV_MSB, &u2_hw_rev_major, 1);
}
-
/*
* We ought to arrange for this to be called before main, but for now,
* we require that the user's main call u2_init as the first thing...
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;
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