void SYSCFG::init() { // Configure number of waitstates correctly bool old = clockgate_enable(STM32_SYSCFG_CLOCKGATE, true); union STM32_SYSCFG_REG_TYPE::MEMRMP MEMRMP = { 0 }; MEMRMP.b.MEM_MODE = 0; STM32_SYSCFG_REGS.MEMRMP.d32 = MEMRMP.d32; clockgate_enable(STM32_SYSCFG_CLOCKGATE, old); }
static void i2c_off(int bus) { /* serial output off */ wait_rdy(bus); IICSTAT(bus) = 0; /* disable I2C clock */ wait_rdy(bus); clockgate_enable(I2CCLKGATE(bus), false); }
void SYSCFG::setMIIMode(bool rmii) { bool old = clockgate_enable(STM32_SYSCFG_CLOCKGATE, true); STM32_SYSCFG_REGS.PMC.b.MII_RMII = (typeof(STM32_SYSCFG_REGS.PMC.b.MII_RMII))rmii; clockgate_enable(STM32_SYSCFG_CLOCKGATE, old); }
void SPI::deselect() const { clockgate_enable(spi_clocks[index], false); }
static void i2c_on(int bus) { /* enable I2C clock */ clockgate_enable(I2CCLKGATE(bus), true); }