@@ -45,7 +45,7 @@ class SDFSConfig : public FSConfig {
4545public:
4646 static constexpr uint32_t FSId = 0x53444653 ;
4747
48- SDFSConfig (uint8_t csPin = 4 , uint32_t spi = SD_SCK_MHZ(10 )) : FSConfig(FSId, false ), _csPin(csPin), _part(0 ), _spiSettings(spi) { }
48+ SDFSConfig (uint8_t csPin = 4 , uint32_t spi = SD_SCK_MHZ(10 ), HardwareSPI &port = SPI ) : FSConfig(FSId, false ), _csPin(csPin), _part(0 ), _spiSettings(spi), _spi(&port ) { }
4949
5050 SDFSConfig setAutoFormat (bool val = true ) {
5151 _autoFormat = val;
@@ -55,10 +55,14 @@ class SDFSConfig : public FSConfig {
5555 _csPin = pin;
5656 return *this ;
5757 }
58- SDFSConfig setSPI (uint32_t spi) {
58+ SDFSConfig setSPISpeed (uint32_t spi) {
5959 _spiSettings = spi;
6060 return *this ;
6161 }
62+ SDFSConfig setSPI (HardwareSPI &spi) {
63+ _spi = &spi;
64+ return true ;
65+ }
6266 SDFSConfig setPart (uint8_t part) {
6367 _part = part;
6468 return *this ;
@@ -68,6 +72,7 @@ class SDFSConfig : public FSConfig {
6872 uint8_t _csPin;
6973 uint8_t _part;
7074 uint32_t _spiSettings;
75+ HardwareSPI *_spi;
7176};
7277
7378class SDFSImpl : public FSImpl {
@@ -146,10 +151,11 @@ class SDFSImpl : public FSImpl {
146151 if (_mounted) {
147152 return true ;
148153 }
149- _mounted = _fs.begin (_cfg._csPin , _cfg._spiSettings );
154+ SdSpiConfig ssc (_cfg._csPin , SHARED_SPI, _cfg._spiSettings , _cfg._spi );
155+ _mounted = _fs.begin (ssc);
150156 if (!_mounted && _cfg._autoFormat ) {
151157 format ();
152- _mounted = _fs.begin (_cfg. _csPin , _cfg. _spiSettings );
158+ _mounted = _fs.begin (ssc );
153159 }
154160 FsDateTime::setCallback (dateTimeCB);
155161 return _mounted;
0 commit comments