Skip to content

Commit 28c908f

Browse files
committed
STM32 QSPI: Use defines for setting address size
1 parent e7d95f5 commit 28c908f

File tree

1 file changed

+31
-17
lines changed

1 file changed

+31
-17
lines changed

targets/TARGET_STM/qspi_api.c

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)