QSPI STM32: add QSPI_x support to pinnames

pull/7783/head
Martin Kojtal 2017-12-05 11:38:47 +00:00 committed by Maciej Bocianski
parent 660d250e0d
commit 2766672f64
3 changed files with 21 additions and 7 deletions

View File

@ -92,6 +92,10 @@ typedef enum {
CAN_2 = (int)CAN2_BASE
} CANName;
typedef enum {
QSPI_1 = (int)QSPI_R_BASE,
} QSPIName;
#ifdef __cplusplus
}
#endif

View File

@ -391,21 +391,21 @@ MBED_WEAK const PinMap PinMap_CAN_TD[] = {
const PinMap PinMap_QSPI_DATA[] = {
{PF_6, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{PF_7, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{PF_8, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{PF_9, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{PF_6, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{PF_7, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{PF_8, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{PF_9, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{NC, NC, 0}
};
const PinMap PinMap_QSPI_SCLK[] = {
{PF_10, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{PF_10, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
{NC, NC, 0}
};
const PinMap PinMap_QSPI_SSEL[] = {
{PB_6, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{PB_6, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
{NC, NC, 0}
};

View File

@ -137,7 +137,17 @@ qspi_status_t qspi_init(qspi_t *obj, PinName io0, PinName io1, PinName io2, PinN
obj->handle.Init.ClockMode = mode == 0 ? QSPI_CLOCK_MODE_0 : QSPI_CLOCK_MODE_3;
obj->handle.Instance = QUADSPI;
QSPIName qspi_data_first = (SPIName)pinmap_merge(io0, io1);
QSPIName qspi_data_second = (SPIName)pinmap_merge(io1, io2);
QSPIName qspi_data_third = (SPIName)pinmap_merge(io2, io3);
if (qspi_data_first != qspi_data_second || qspi_data_second != qspi_data_third ||
qspi_data_first != qspi_data_third) {
return QSPI_STATUS_INVALID_PARAMETER;
}
// tested all combinations, take first
obj->handle.Instance = (QUADSPI_TypeDef *)qspi_data_first;
// TODO pinmap here for pins (enable clock)
pinmap_pinout(io0, PinMap_QSPI_DATA);