Skip to content

Commit 3198f25

Browse files
zipijume-no-dev
authored andcommitted
Set HSPI ports by default when HSPI is selected (espressif#874)
When user selected HSPI with SPIClass name(HSPI) ESP was, by default, still using VSPI ports (the ones defined in pins_arduino.h). With this change when user selects HSPI then HSPI default ports will be used. If user won't specify HSPI then VSPI default ports will be used. If user will specify SCLK, MOSI, MISO and SS with SPI.begin() then user defined ports will be used no matter if VSPI or HSPI is selected. With this change fe. SD library can use default HSPI ports. It was possible to pass HSPI SPI instance to SD lib, however even then it was using VSPI ports which were (probably) GPIO matrixed to HSPI.
1 parent aa83fca commit 3198f25

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

libraries/SPI/src/SPI.cpp

+11-4
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,17 @@ void SPIClass::begin(int8_t sck, int8_t miso, int8_t mosi, int8_t ss)
4949
return;
5050
}
5151

52-
_sck = sck;
53-
_miso = miso;
54-
_mosi = mosi;
55-
_ss = ss;
52+
if(sck == -1 && miso == -1 && mosi == -1 && ss == -1) {
53+
_sck = (_spi_num == VSPI) ? SCK : 14;
54+
_miso = (_spi_num == VSPI) ? MISO : 12;
55+
_mosi = (_spi_num == VSPI) ? MOSI : 13;
56+
_ss = (_spi_num == VSPI) ? SS : 15;
57+
} else {
58+
_sck = sck;
59+
_miso = miso;
60+
_mosi = mosi;
61+
_ss = ss;
62+
}
5663

5764
spiAttachSCK(_spi, _sck);
5865
spiAttachMISO(_spi, _miso);

libraries/SPI/src/SPI.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class SPIClass
5252

5353
public:
5454
SPIClass(uint8_t spi_bus=HSPI);
55-
void begin(int8_t sck=SCK, int8_t miso=MISO, int8_t mosi=MOSI, int8_t ss=-1);
55+
void begin(int8_t sck=-1, int8_t miso=-1, int8_t mosi=-1, int8_t ss=-1);
5656
void end();
5757

5858
void setHwCs(bool use);

0 commit comments

Comments
 (0)