forked from M-Labs/artiq
ad9154: retry initialization (#727)
This commit is contained in:
parent
6e0288e568
commit
a897d82324
|
@ -473,6 +473,17 @@ fn dac_cfg(dacno: u8) -> Result<(), &'static str> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn dac_cfg_retry(dacno: u8) -> Result<(), &'static str> {
|
||||||
|
for i in 0..99 {
|
||||||
|
let outcome = dac_cfg(dacno);
|
||||||
|
match outcome {
|
||||||
|
Ok(_) => return outcome,
|
||||||
|
Err(e) => warn!("AD9154-{} config attempt #{} failed ({}), retrying", dacno, i, e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dac_cfg(dacno)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn init() -> Result<(), &'static str> {
|
pub fn init() -> Result<(), &'static str> {
|
||||||
// Release the JESD clock domain reset late, as we need to
|
// Release the JESD clock domain reset late, as we need to
|
||||||
// set up clock chips before.
|
// set up clock chips before.
|
||||||
|
@ -481,7 +492,7 @@ pub fn init() -> Result<(), &'static str> {
|
||||||
for dacno in 0..csr::AD9154.len() {
|
for dacno in 0..csr::AD9154.len() {
|
||||||
let dacno = dacno as u8;
|
let dacno = dacno as u8;
|
||||||
debug!("setting up AD9154-{} DAC...", dacno);
|
debug!("setting up AD9154-{} DAC...", dacno);
|
||||||
dac_cfg(dacno)?;
|
dac_cfg_retry(dacno)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue