@@ -352,6 +352,81 @@ Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, SPIClass *spiClass,
352352}
353353#endif // end !ESP8266
354354
355+ #if defined(ARDUINO_ARDUINO_NESSO_N1)
356+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, SPIClass *spiClass,
357+ int8_t cs, ExpanderPin *dc, ExpanderPin *rst)
358+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(cs), _dc(-1 ) {
359+ hwspi._spi = spiClass;
360+ #if !defined(SPI_HAS_TRANSACTION)
361+ hwspi._freq = 0 ;
362+ hwspi._mode = SPI_MODE0;
363+ #endif
364+ _dcExp = dc;
365+ _rstExp = rst;
366+ }
367+
368+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, SPIClass *spiClass,
369+ int8_t cs, int8_t dc, ExpanderPin *rst)
370+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(cs), _dc(dc) {
371+ hwspi._spi = spiClass;
372+ #if !defined(SPI_HAS_TRANSACTION)
373+ hwspi._freq = 0 ;
374+ hwspi._mode = SPI_MODE0;
375+ #endif
376+ _rstExp = rst;
377+ }
378+
379+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, SPIClass *spiClass,
380+ ExpanderPin *cs, ExpanderPin *dc,
381+ ExpanderPin *rst)
382+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(-1 ), _dc(-1 ) {
383+ hwspi._spi = spiClass;
384+ #if !defined(SPI_HAS_TRANSACTION)
385+ hwspi._freq = 0 ;
386+ hwspi._mode = SPI_MODE0;
387+ #endif
388+ _csExp = cs;
389+ _dcExp = dc;
390+ _rstExp = rst;
391+ }
392+
393+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, int8_t cs,
394+ ExpanderPin *dc, ExpanderPin *rst)
395+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(cs), _dc(-1 ) {
396+ hwspi._spi = &SPI;
397+ #if !defined(SPI_HAS_TRANSACTION)
398+ hwspi._freq = 0 ;
399+ hwspi._mode = SPI_MODE0;
400+ #endif
401+ _dcExp = dc;
402+ _rstExp = rst;
403+ }
404+
405+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, int8_t cs, int8_t dc,
406+ ExpanderPin *rst)
407+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(cs), _dc(dc) {
408+ hwspi._spi = &SPI;
409+ #if !defined(SPI_HAS_TRANSACTION)
410+ hwspi._freq = 0 ;
411+ hwspi._mode = SPI_MODE0;
412+ #endif
413+ _rstExp = rst;
414+ }
415+
416+ Adafruit_SPITFT::Adafruit_SPITFT (uint16_t w, uint16_t h, ExpanderPin *cs,
417+ ExpanderPin *dc, ExpanderPin *rst)
418+ : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(-1 ), _cs(-1 ), _dc(-1 ) {
419+ hwspi._spi = &SPI;
420+ #if !defined(SPI_HAS_TRANSACTION)
421+ hwspi._freq = 0 ;
422+ hwspi._mode = SPI_MODE0;
423+ #endif
424+ _csExp = cs;
425+ _dcExp = dc;
426+ _rstExp = rst;
427+ }
428+ #endif
429+
355430/* !
356431 @brief Adafruit_SPITFT constructor for parallel display connection.
357432 @param w Display width in pixels at default rotation (0).
@@ -543,8 +618,23 @@ void Adafruit_SPITFT::initSPI(uint32_t freq, uint8_t spiMode) {
543618 pinMode (_cs, OUTPUT);
544619 digitalWrite (_cs, HIGH); // Deselect
545620 }
546- pinMode (_dc, OUTPUT);
547- digitalWrite (_dc, HIGH); // Data mode
621+ #if defined(ARDUINO_ARDUINO_NESSO_N1)
622+ if (_csExp) {
623+ pinMode (*_csExp, OUTPUT);
624+ digitalWrite (*_csExp, HIGH);
625+ }
626+ #endif
627+
628+ if (_dc >= 0 ) {
629+ pinMode (_dc, OUTPUT);
630+ digitalWrite (_dc, HIGH); // Data mode
631+ }
632+ #if defined(ARDUINO_ARDUINO_NESSO_N1)
633+ if (_dcExp) {
634+ pinMode (*_dcExp, OUTPUT);
635+ digitalWrite (*_dcExp, HIGH);
636+ }
637+ #endif
548638
549639 if (connection == TFT_HARD_SPI) {
550640
@@ -657,6 +747,17 @@ void Adafruit_SPITFT::initSPI(uint32_t freq, uint8_t spiMode) {
657747 digitalWrite (_rst, HIGH);
658748 delay (200 );
659749 }
750+ #if defined(ARDUINO_ARDUINO_NESSO_N1)
751+ if (_rstExp) {
752+ pinMode (*_rstExp, OUTPUT);
753+ digitalWrite (*_rstExp, HIGH);
754+ delay (100 );
755+ digitalWrite (*_rstExp, LOW);
756+ delay (100 );
757+ digitalWrite (*_rstExp, HIGH);
758+ delay (200 );
759+ }
760+ #endif
660761
661762#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
662763 if (((connection == TFT_HARD_SPI) || (connection == TFT_PARALLEL)) &&
0 commit comments