Exemple #1
0
void hw_qspi_set_wrapping_burst_instruction(uint8_t inst, HW_QSPI_WRAP_LEN len,
                                                                        HW_QSPI_WRAP_SIZE size)
{
        HW_QSPIC_REG_SETF(BURSTCMDA, INST_WB, inst);
        QSPIC->QSPIC_BURSTCMDB_REG =
                (QSPIC->QSPIC_BURSTCMDB_REG &
                        ~(REG_MSK(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_WRAP_SIZE) |
                                REG_MSK(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_WRAP_LEN))) |
                BITS32(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_WRAP_SIZE, size) |
                BITS32(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_WRAP_LEN, len) |
                BITS32(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_WRAP_MD, 1);
}
Exemple #2
0
void hw_qspi_set_dummy_bytes_count(uint8_t count)
{
        if (count == 3) {
                HW_QSPIC_REG_SETF(BURSTCMDB, DMY_FORCE, 1);
        } else {
                QSPIC->QSPIC_BURSTCMDB_REG =
                        (QSPIC->QSPIC_BURSTCMDB_REG &
                                ~(REG_MSK(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_DMY_FORCE) |
                                        REG_MSK(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_DMY_NUM))) |
                                        BITS32(QSPIC, QSPIC_BURSTCMDB_REG, QSPIC_DMY_NUM,
                                                dummy_num[count]);
        }
}
Exemple #3
0
void hw_qspi_set_bus_mode(HW_QSPI_BUS_MODE mode)
{
        switch (mode) {
        case HW_QSPI_BUS_MODE_SINGLE:
                QSPIC->QSPIC_CTRLBUS_REG = REG_MSK(QSPIC, QSPIC_CTRLBUS_REG, QSPIC_SET_SINGLE);
                break;
        case HW_QSPI_BUS_MODE_DUAL:
                QSPIC->QSPIC_CTRLBUS_REG = REG_MSK(QSPIC, QSPIC_CTRLBUS_REG, QSPIC_SET_DUAL);
                break;
        case HW_QSPI_BUS_MODE_QUAD:
                QSPIC->QSPIC_CTRLBUS_REG = REG_MSK(QSPIC, QSPIC_CTRLBUS_REG, QSPIC_SET_QUAD);
                hw_qspi_set_io2_output(false);
                hw_qspi_set_io3_output(false);
                break;
        }
}
Exemple #4
0
__RETAINED_CODE uint8_t hw_trng_get_fifo_level(void)
{
    return (TRNG->TRNG_FIFOLVL_REG) & (REG_MSK(TRNG, TRNG_FIFOLVL_REG, TRNG_FIFOLVL) |
                                       REG_MSK(TRNG, TRNG_FIFOLVL_REG, TRNG_FIFOFULL));
}