@@ -262,42 +262,28 @@ qspi_status_t qspi_prepare_command(const qspi_command_t *command, QSPI_CommandTy
262
262
st_command -> DdrMode = QSPI_DDR_MODE_DISABLE ;
263
263
st_command -> DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY ;
264
264
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
+
265
280
if (command -> address .disabled == true) {
266
281
st_command -> AddressMode = QSPI_ADDRESS_NONE ;
267
282
st_command -> AddressSize = 0 ;
268
283
} else {
269
284
st_command -> Address = command -> address .value ;
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
- }
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 ;
301
287
}
302
288
303
289
uint8_t alt_lines = 0 ;
0 commit comments