mirror of https://github.com/ARMmbed/mbed-os.git
QSPI STM32: add QSPI_x support to pinnames
parent
b6e0de36bf
commit
7de6aba0ee
|
@ -92,6 +92,10 @@ typedef enum {
|
||||||
CAN_2 = (int)CAN2_BASE
|
CAN_2 = (int)CAN2_BASE
|
||||||
} CANName;
|
} CANName;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
QSPI_1 = (int)QSPI_R_BASE,
|
||||||
|
} QSPIName;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -347,21 +347,21 @@ MBED_WEAK const PinMap PinMap_CAN_TD[] = {
|
||||||
|
|
||||||
|
|
||||||
const PinMap PinMap_QSPI_DATA[] = {
|
const PinMap PinMap_QSPI_DATA[] = {
|
||||||
{PF_6, 0, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_QSPI)},
|
{PF_6, QSPI_1, 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_7, QSPI_1, 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_8, QSPI_1, 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_9, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_QSPI)},
|
||||||
|
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
const PinMap PinMap_QSPI_SCLK[] = {
|
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}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
const PinMap PinMap_QSPI_SSEL[] = {
|
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}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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.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)
|
// TODO pinmap here for pins (enable clock)
|
||||||
pinmap_pinout(io0, PinMap_QSPI_DATA);
|
pinmap_pinout(io0, PinMap_QSPI_DATA);
|
||||||
|
|
Loading…
Reference in New Issue