use crate::ral;
pub fn restart_pll<const N: u8>(usbphy: &mut ral::usbphy::Instance<N>) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_CLR,
PLL_POWER: 1,
PLL_REG_ENABLE: 1,
PLL_ENABLE: 1,
PLL_EN_USB_CLKS: 1);
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_SET, PLL_BYPASS: 1);
loop {
if ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_REG_ENABLE == 0) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_SET, PLL_REG_ENABLE: 1);
continue;
}
if ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_POWER == 0) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_SET, PLL_POWER: 1);
continue;
}
if ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_BYPASS == 1) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_CLR, PLL_BYPASS: 1);
continue;
}
if ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_ENABLE == 0) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_SET, PLL_ENABLE: 1);
continue;
}
if ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_EN_USB_CLKS == 0) {
ral::write_reg!(ral::usbphy, usbphy, PLL_SIC_SET, PLL_EN_USB_CLKS: 1);
continue;
}
break;
}
while ral::read_reg!(ral::usbphy, usbphy, PLL_SIC, PLL_LOCK == 0) {}
}