/// # GPIO Register pub mod GPPUD { const ADDR: u32 = 0x3F200094; pub fn set(v: u32) { use crate::cpu::store32; store32(ADDR, v) } pub fn clear() { set(0) } } /// # GPIO Clock 0 Register pub mod GPPUDCLK0 { const ADDR: u32 = 0x3F200098; const MASK: u32 = (1 << 14) | (1 << 15); pub fn set(v: u32) { use crate::cpu::store32; store32(ADDR, v) } pub fn init() { use crate::cpu::spin_for_n_cycles; super::GPPUD::clear(); spin_for_n_cycles(150); set(MASK); spin_for_n_cycles(150); set(0); } }