@@ -25,7 +25,7 @@ namespace mbed {
25
25
QSPI* QSPI::_owner = NULL ;
26
26
SingletonPtr<PlatformMutex> QSPI::_mutex;
27
27
28
- QSPI::QSPI (PinName io0, PinName io1, PinName io2, PinName io3, PinName sclk, PinName ssel) : _qspi()
28
+ QSPI::QSPI (PinName io0, PinName io1, PinName io2, PinName io3, PinName sclk, PinName ssel, int mode ) : _qspi()
29
29
{
30
30
_qspi_io0 = io0;
31
31
_qspi_io1 = io1;
@@ -39,34 +39,26 @@ QSPI::QSPI(PinName io0, PinName io1, PinName io2, PinName io3, PinName sclk, Pin
39
39
_alt_width = QSPI_CFG_BUS_SINGLE;
40
40
_alt_size = QSPI_CFG_ALT_SIZE_8;
41
41
_data_width = QSPI_CFG_BUS_SINGLE;
42
- _mode = 0 ;
42
+ _mode = mode ;
43
43
_hz = ONE_MHZ;
44
44
_initialized = false ;
45
45
46
46
// Go ahead init the device here with the default config
47
47
_initialize ();
48
48
}
49
49
50
- qspi_status_t QSPI::configure_format (qspi_bus_width_t inst_width, qspi_bus_width_t address_width, qspi_address_size_t address_size, qspi_bus_width_t alt_width, qspi_alt_size_t alt_size, qspi_bus_width_t data_width, int dummy_cycles, int mode )
50
+ qspi_status_t QSPI::configure_format (qspi_bus_width_t inst_width, qspi_bus_width_t address_width, qspi_address_size_t address_size, qspi_bus_width_t alt_width, qspi_alt_size_t alt_size, qspi_bus_width_t data_width, int dummy_cycles)
51
51
{
52
52
qspi_status_t ret_status = QSPI_STATUS_OK;
53
53
54
- if (mode != 0 && mode != 1 )
55
- return QSPI_STATUS_INVALID_PARAMETER;
56
-
57
54
lock ();
58
55
_inst_width = inst_width;
59
56
_address_width = address_width;
60
57
_address_size = address_size;
61
58
_alt_width = alt_width;
62
59
_alt_size = alt_size;
63
60
_data_width = data_width;
64
- _mode = mode;
65
61
66
- // Re-init the device, as the mode might have changed
67
- if ( !_initialize () ) {
68
- ret_status = QSPI_STATUS_ERROR;
69
- }
70
62
unlock ();
71
63
72
64
return ret_status;
@@ -223,6 +215,9 @@ void QSPI::unlock()
223
215
// Note: Private helper function to initialize qspi HAL
224
216
bool QSPI::_initialize ()
225
217
{
218
+ if (_mode != 0 && _mode != 1 )
219
+ return QSPI_STATUS_INVALID_PARAMETER;
220
+
226
221
qspi_status_t ret = qspi_init (&_qspi, _qspi_io0, _qspi_io1, _qspi_io2, _qspi_io3, _qspi_clk, _qspi_cs, _hz, _mode );
227
222
if (QSPI_STATUS_OK == ret) {
228
223
_initialized = true ;
0 commit comments