mirror of https://github.com/ARMmbed/mbed-os.git
Implement qspi_free function
parent
893cf2a5f5
commit
7dda4e4fc6
|
@ -46,6 +46,12 @@ struct trng_s {
|
||||||
|
|
||||||
struct qspi_s {
|
struct qspi_s {
|
||||||
QSPI_HandleTypeDef handle;
|
QSPI_HandleTypeDef handle;
|
||||||
|
PinName io0;
|
||||||
|
PinName io1;
|
||||||
|
PinName io2;
|
||||||
|
PinName io3;
|
||||||
|
PinName sclk;
|
||||||
|
PinName ssel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
|
|
|
@ -60,6 +60,12 @@ struct trng_s {
|
||||||
|
|
||||||
struct qspi_s {
|
struct qspi_s {
|
||||||
QSPI_HandleTypeDef handle;
|
QSPI_HandleTypeDef handle;
|
||||||
|
PinName io0;
|
||||||
|
PinName io1;
|
||||||
|
PinName io2;
|
||||||
|
PinName io3;
|
||||||
|
PinName sclk;
|
||||||
|
PinName ssel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
|
|
|
@ -60,6 +60,12 @@ struct trng_s {
|
||||||
|
|
||||||
struct qspi_s {
|
struct qspi_s {
|
||||||
QSPI_HandleTypeDef handle;
|
QSPI_HandleTypeDef handle;
|
||||||
|
PinName io0;
|
||||||
|
PinName io1;
|
||||||
|
PinName io2;
|
||||||
|
PinName io3;
|
||||||
|
PinName sclk;
|
||||||
|
PinName ssel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
|
|
|
@ -60,6 +60,12 @@ struct trng_s {
|
||||||
|
|
||||||
struct qspi_s {
|
struct qspi_s {
|
||||||
QSPI_HandleTypeDef handle;
|
QSPI_HandleTypeDef handle;
|
||||||
|
PinName io0;
|
||||||
|
PinName io1;
|
||||||
|
PinName io2;
|
||||||
|
PinName io3;
|
||||||
|
PinName sclk;
|
||||||
|
PinName ssel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
|
|
|
@ -60,6 +60,12 @@ struct trng_s {
|
||||||
|
|
||||||
struct qspi_s {
|
struct qspi_s {
|
||||||
QSPI_HandleTypeDef handle;
|
QSPI_HandleTypeDef handle;
|
||||||
|
PinName io0;
|
||||||
|
PinName io1;
|
||||||
|
PinName io2;
|
||||||
|
PinName io3;
|
||||||
|
PinName sclk;
|
||||||
|
PinName ssel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
|
|
|
@ -173,13 +173,19 @@ qspi_status_t qspi_init(qspi_t *obj, PinName io0, PinName io1, PinName io2, PinN
|
||||||
// tested all combinations, take first
|
// tested all combinations, take first
|
||||||
obj->handle.Instance = (QUADSPI_TypeDef *)qspi_data_first;
|
obj->handle.Instance = (QUADSPI_TypeDef *)qspi_data_first;
|
||||||
|
|
||||||
// TODO pinmap here for pins (enable clock)
|
// pinmap for pins (enable clock)
|
||||||
|
obj->io0 = io0;
|
||||||
pinmap_pinout(io0, PinMap_QSPI_DATA);
|
pinmap_pinout(io0, PinMap_QSPI_DATA);
|
||||||
|
obj->io1 = io1;
|
||||||
pinmap_pinout(io1, PinMap_QSPI_DATA);
|
pinmap_pinout(io1, PinMap_QSPI_DATA);
|
||||||
|
obj->io2 = io2;
|
||||||
pinmap_pinout(io2, PinMap_QSPI_DATA);
|
pinmap_pinout(io2, PinMap_QSPI_DATA);
|
||||||
|
obj->io3 = io3;
|
||||||
pinmap_pinout(io3, PinMap_QSPI_DATA);
|
pinmap_pinout(io3, PinMap_QSPI_DATA);
|
||||||
|
|
||||||
|
obj->sclk = sclk;
|
||||||
pinmap_pinout(sclk, PinMap_QSPI_SCLK);
|
pinmap_pinout(sclk, PinMap_QSPI_SCLK);
|
||||||
|
obj->ssel = ssel;
|
||||||
pinmap_pinout(ssel, PinMap_QSPI_SSEL);
|
pinmap_pinout(ssel, PinMap_QSPI_SSEL);
|
||||||
|
|
||||||
if (HAL_QSPI_Init(&obj->handle) != HAL_OK) {
|
if (HAL_QSPI_Init(&obj->handle) != HAL_OK) {
|
||||||
|
@ -191,8 +197,26 @@ qspi_status_t qspi_init(qspi_t *obj, PinName io0, PinName io1, PinName io2, PinN
|
||||||
|
|
||||||
qspi_status_t qspi_free(qspi_t *obj)
|
qspi_status_t qspi_free(qspi_t *obj)
|
||||||
{
|
{
|
||||||
// TODO
|
if(HAL_QSPI_DeInit(&obj->handle) != HAL_OK) {
|
||||||
//return QSPI_STATUS_ERROR;
|
return QSPI_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset QSPI
|
||||||
|
__HAL_RCC_QSPI_FORCE_RESET();
|
||||||
|
__HAL_RCC_QSPI_RELEASE_RESET();
|
||||||
|
|
||||||
|
// Disable interface clock for QSPI
|
||||||
|
__HAL_RCC_QSPI_CLK_DISABLE();
|
||||||
|
|
||||||
|
// Configure GPIOs
|
||||||
|
pin_function(obj->io0, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
pin_function(obj->io1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
pin_function(obj->io2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
pin_function(obj->io3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
pin_function(obj->sclk, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
pin_function(obj->ssel, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||||
|
|
||||||
|
(void)(obj);
|
||||||
return QSPI_STATUS_OK;
|
return QSPI_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue