nrf_qspi.h error in nrf_qspi_cinstr_long_transfer_continue() function

Hi,

The below code I believe is in error.  The below write operation overwrites the LIO2, LIO3, WIPWAIT, and WREN settings in the CINSTRCONF register by only writing the length, LFEN and LFSTOP fields.  Do you know if there are new updates to the drivers?  We did a pull from the repo a week ago.

 


NRF_STATIC_INLINE void nrf_qspi_cinstr_long_transfer_continue(NRF_QSPI_Type *       p_reg,

                                                              nrf_qspi_cinstr_len_t length,

                                                              bool                  finalize)

{

    uint32_t mask = (((uint32_t)length << QSPI_CINSTRCONF_LENGTH_Pos) | (QSPI_CINSTRCONF_LFEN_Msk));

    mask |= (finalize ? QSPI_CINSTRCONF_LFSTOP_Msk : 0);

 

    p_reg->CINSTRCONF = mask;

}

Kurt

Parents
  • Hi Kurt

    There hasn't been any recent changes to this function, and this is by design. 

    A long transfer sequence will start by a call to nrf_qspi_cinstr_long_transfer_start(..), where all these fields are set. 

    To continue a transfer it is not necessary to write to these fields, and it is OK to only set the length, LFEN and LFSTOP fields. 

    Are you having any issues getting custom long transfers to work?

    Best regards
    Torbjørn

Reply
  • Hi Kurt

    There hasn't been any recent changes to this function, and this is by design. 

    A long transfer sequence will start by a call to nrf_qspi_cinstr_long_transfer_start(..), where all these fields are set. 

    To continue a transfer it is not necessary to write to these fields, and it is OK to only set the length, LFEN and LFSTOP fields. 

    Are you having any issues getting custom long transfers to work?

    Best regards
    Torbjørn

Children
No Data
Related