void deinit_hardware(void)
{
    // Restore MPU to default state (enabled)
    MPU->CESR |= (uint32_t)MPU_CESR_VLD_MASK;

// Restore configuration for Secondary I2C slave address section pin
#if BL_FEATURE_SECONDARY_I2C_SLAVE_ADDRESS
    secondary_i2c_slave_address_select_pin_deinit();
#endif // BL_FEATURE_SECONDARY_I2C_SLAVE_ADDRESS

#if BL_ENABLE_CRC_CHECK && BL_FEATURE_CRC_ASSERT
    restore_crc_check_failure_pin();
#endif

    // Keep enabling PORTE clock since it is needed for QSPI module
    if (is_quadspi_configured())
    {
        SIM->SCGC5 &= (uint32_t) ~(SIM_SCGC5_PTA_MASK | SIM_SCGC5_PTB_MASK | SIM_SCGC5_PTC_MASK | SIM_SCGC5_PTD_MASK);
    }
    else
    {
        SIM->SCGC5 = (uint32_t) ~(SIM_SCGC5_PTA_MASK | SIM_SCGC5_PTB_MASK | SIM_SCGC5_PTC_MASK | SIM_SCGC5_PTD_MASK |
                                  SIM_SCGC5_PTE_MASK);
    }

    // Restore SIM_SOPTx related bits being changed
    SIM->SOPT2 &= (uint32_t) ~(SIM_SOPT2_LPUARTSRC_MASK | SIM_SOPT2_USBSRC_MASK | SIM_SOPT2_PLLFLLSEL_MASK);

    // Restore Intmux
    INTMUX_Deinit((INTMUX_Type *)s_intmuxBase[0]);
}
예제 #2
0
// See bootloader_common.h for documentation on this function
bool is_qspi_present(void)
{
#if BL_FEATURE_QSPI_MODULE
    return is_quadspi_configured();
#else
    return false;
#endif // BL_FEATURE_QSPI_MODULE
}