@@ -262,28 +262,42 @@ qspi_status_t qspi_prepare_command(const qspi_command_t *command, QSPI_CommandTy
262262 st_command -> DdrMode = QSPI_DDR_MODE_DISABLE ;
263263 st_command -> DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY ;
264264
265- switch (command -> address .bus_width ) {
266- case QSPI_CFG_BUS_SINGLE :
267- st_command -> AddressMode = QSPI_ADDRESS_1_LINE ;
268- break ;
269- case QSPI_CFG_BUS_DUAL :
270- st_command -> AddressMode = QSPI_ADDRESS_2_LINES ;
271- break ;
272- case QSPI_CFG_BUS_QUAD :
273- st_command -> AddressMode = QSPI_ADDRESS_4_LINES ;
274- break ;
275- default :
276- st_command -> AddressMode = QSPI_ADDRESS_NONE ;
277- break ;
278- }
279-
280265 if (command -> address .disabled == true) {
281266 st_command -> AddressMode = QSPI_ADDRESS_NONE ;
282267 st_command -> AddressSize = 0 ;
283268 } else {
284269 st_command -> Address = command -> address .value ;
285- /* command->address.size needs to be shifted by QUADSPI_CCR_ADSIZE_Pos */
286- st_command -> AddressSize = (command -> address .size << QUADSPI_CCR_ADSIZE_Pos ) & QUADSPI_CCR_ADSIZE_Msk ;
270+ switch (command -> address .bus_width ) {
271+ case QSPI_CFG_BUS_SINGLE :
272+ st_command -> AddressMode = QSPI_ADDRESS_1_LINE ;
273+ break ;
274+ case QSPI_CFG_BUS_DUAL :
275+ st_command -> AddressMode = QSPI_ADDRESS_2_LINES ;
276+ break ;
277+ case QSPI_CFG_BUS_QUAD :
278+ st_command -> AddressMode = QSPI_ADDRESS_4_LINES ;
279+ break ;
280+ default :
281+ error ("Command param error: wrong address size\n" );
282+ return QSPI_STATUS_ERROR ;
283+ }
284+ switch (command -> address .size ) {
285+ case QSPI_CFG_ADDR_SIZE_8 :
286+ st_command -> AddressSize = QSPI_ADDRESS_8_BITS ;
287+ break ;
288+ case QSPI_CFG_ADDR_SIZE_16 :
289+ st_command -> AddressSize = QSPI_ADDRESS_16_BITS ;
290+ break ;
291+ case QSPI_CFG_ADDR_SIZE_24 :
292+ st_command -> AddressSize = QSPI_ADDRESS_24_BITS ;
293+ break ;
294+ case QSPI_CFG_ADDR_SIZE_32 :
295+ st_command -> AddressSize = QSPI_ADDRESS_32_BITS ;
296+ break ;
297+ default :
298+ error ("Command param error: wrong address size\n" );
299+ return QSPI_STATUS_ERROR ;
300+ }
287301 }
288302
289303 uint8_t alt_lines = 0 ;
0 commit comments