Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
cac4500
[SPI] Add support for multiple SPI buses
tonhuisman Aug 12, 2025
0c2f09d
[P095] Enable support for configurable SPI bus
tonhuisman Aug 12, 2025
a542281
[P104] Enable support for configurable SPI bus
tonhuisman Aug 12, 2025
2bedef4
[P116] Enable support for configurable SPI bus
tonhuisman Aug 12, 2025
a96d865
[P141] Enable support for configurable SPI bus
tonhuisman Aug 12, 2025
e59a630
[P172] Enable support for configurable SPI bus
tonhuisman Aug 12, 2025
2229b55
[P162] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
56f3369
[P162] Fix compilation for ESP8266
tonhuisman Aug 13, 2025
55fab58
[P125] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
9e560d2
[P118] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
b753fea
[P111] Enable support for configurable SPI bus (and reformat source)
tonhuisman Aug 13, 2025
7e13c7b
[P099] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
b61dcad
[P096] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
da93c14
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Aug 13, 2025
2e4e79f
[P039] Move (nearly) all code to PluginStrucs files
tonhuisman Aug 13, 2025
f00eed1
[P039] Enable support for configurable SPI bus
tonhuisman Aug 13, 2025
e775bd1
[SPI] Show SPI Bus selector also if only second bus enabled
tonhuisman Aug 13, 2025
a38c3c0
[SPI] Fix initialization for standard FSPI bus
tonhuisman Aug 13, 2025
a92dacc
[SPI] Improvements in cross-bus GPIO config validation
tonhuisman Aug 13, 2025
daeb189
[Storage] Add settings for External EEPROM
tonhuisman Aug 17, 2025
ba75ff9
[SPI] Rename SPI1 object to SPIe to avoid conflict for ESP32-Classic …
tonhuisman Aug 19, 2025
9a052d2
[SPI] Code improvements, separate SPI functions, re-init SPI when sav…
tonhuisman Aug 25, 2025
a84d1d0
[P039] Fix compiler warning (nested comments)
tonhuisman Aug 25, 2025
21fb340
[SPI] Disconnect SPI GPIO pins also when not using them
tonhuisman Aug 29, 2025
87a4493
[P116] Fix GPIO display on Devices page, no default GPIO pins for ESP32
tonhuisman Aug 29, 2025
749f5e2
[P095] Fix GPIO display on Devices page, fix typos, no default GPIO p…
tonhuisman Aug 29, 2025
cb7199a
[SPI] Rename settings variable for better usage indication (review co…
tonhuisman Aug 29, 2025
5654bdf
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Sep 10, 2025
d9a19bb
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Oct 28, 2025
ec46e84
Merge branch 'mega' into feature/SPI-add-support-for-multiple-buses
tonhuisman Oct 28, 2025
a8bbaab
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Nov 18, 2025
e05148a
[Build] Fix missing FEATURE_SD check
tonhuisman Nov 19, 2025
1a8e097
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Nov 26, 2025
9805062
Merge branch 'mega' into feature/SPI-add-support-for-multiple-buses
tonhuisman Dec 6, 2025
2d760c3
Merge branch 'mega' into feature/SPI-add-support-for-multiple-buses
tonhuisman Jan 8, 2026
d9cc351
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Jan 9, 2026
a9980c1
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into …
tonhuisman Jan 9, 2026
b7529e5
[SPI] Add SPI bus selector to SPI Ethernet plugin
tonhuisman Jan 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions lib/Adafruit_ILI9341/Adafruit_ILI9341.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@
@param cs Chip select pin # (OK to pass -1 if CS tied to GND).
@param dc Data/Command pin # (required).
@param rst Reset pin # (optional, pass -1 if unused).
@param model The display model to initiailize.
@param w Widht of the display in pixels.
@param h Height of the display in pixels.
*/

/**************************************************************************/
Expand All @@ -133,14 +136,20 @@ Adafruit_ILI9341::Adafruit_ILI9341(int8_t cs, int8_t dc, int8_t rst, uint8_t mod
@param cs Chip select pin # (optional, pass -1 if unused and
CS is tied to GND).
@param rst Reset pin # (optional, pass -1 if unused).
@param model The display model to initiailize.
@param w Widht of the display in pixels.
@param h Height of the display in pixels.
*/

/**************************************************************************/

// Adafruit_ILI9341::Adafruit_ILI9341(SPIClass *spiClass, int8_t dc, int8_t cs,
// int8_t rst)
// : Adafruit_SPITFT(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT, spiClass, cs, dc,
// rst) {}
Adafruit_ILI9341::Adafruit_ILI9341(SPIClass *spiClass, int8_t dc, int8_t cs,
int8_t rst, uint8_t model, uint16_t w, uint16_t h)
: Adafruit_SPITFT(w, h, spiClass, cs, dc, rst) {
_model = model;
_w = w;
_h = h;
}
#endif // end !ESP8266

/**************************************************************************/
Expand Down
4 changes: 2 additions & 2 deletions lib/Adafruit_ILI9341/Adafruit_ILI9341.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,8 @@ class Adafruit_ILI9341 : public Adafruit_SPITFT {

#if !defined(ESP8266)

// Adafruit_ILI9341(SPIClass *spiClass, int8_t dc, int8_t cs = -1,
// int8_t rst = -1);
Adafruit_ILI9341(SPIClass *spiClass, int8_t dc, int8_t cs = -1,
int8_t rst = -1, uint8_t model = 0, uint16_t w = 0, uint16_t h = 0);
#endif // end !ESP8266
// Adafruit_ILI9341(tftBusWidth busWidth, int8_t d0, int8_t wr, int8_t dc,
// int8_t cs = -1, int8_t rst = -1, int8_t rd = -1);
Expand Down
34 changes: 17 additions & 17 deletions lib/Itho/CC1101.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include "CC1101.h"

// default constructor
CC1101::CC1101(int8_t CSpin, int8_t MISOpin) : _CSpin(CSpin), _MISOpin(MISOpin)
CC1101::CC1101(int8_t CSpin, int8_t MISOpin, SPIClass& spi) : _CSpin(CSpin), _MISOpin(MISOpin), _spi(spi)
{
// SPI.begin(); // Done already by ESPEasy
pinMode(_CSpin, OUTPUT);
Expand Down Expand Up @@ -51,7 +51,7 @@ void CC1101::reset()
select();

spi_waitMiso();
SPI.transfer(CC1101_SRES);
_spi.transfer(CC1101_SRES);
delay(10);
spi_waitMiso();
deselect();
Expand All @@ -63,7 +63,7 @@ uint8_t CC1101::writeCommand(uint8_t command)

select();
spi_waitMiso();
result = SPI.transfer(command);
result = _spi.transfer(command);
deselect();

return result;
Expand All @@ -73,8 +73,8 @@ void CC1101::writeRegister(uint8_t address, uint8_t data)
{
select();
spi_waitMiso();
SPI.transfer(address);
SPI.transfer(data);
_spi.transfer(address);
_spi.transfer(data);
deselect();
}

Expand All @@ -84,8 +84,8 @@ uint8_t CC1101::readRegister(uint8_t address)

select();
spi_waitMiso();
SPI.transfer(address);
val = SPI.transfer(0);
_spi.transfer(address);
val = _spi.transfer(0);
deselect();

return val;
Expand All @@ -97,12 +97,12 @@ uint8_t CC1101::readRegisterMedian3(uint8_t address)

select();
spi_waitMiso();
SPI.transfer(address);
val1 = SPI.transfer(0);
SPI.transfer(address);
val2 = SPI.transfer(0);
SPI.transfer(address);
val3 = SPI.transfer(0);
_spi.transfer(address);
val1 = _spi.transfer(0);
_spi.transfer(address);
val2 = _spi.transfer(0);
_spi.transfer(address);
val3 = _spi.transfer(0);
deselect();

// reverse sort (largest in val1) because this is te expected order for TX_BUFFER
Expand Down Expand Up @@ -162,10 +162,10 @@ void CC1101::writeBurstRegister(uint8_t address, uint8_t *data, uint8_t length)

select();
spi_waitMiso();
SPI.transfer(address | CC1101_WRITE_BURST);
_spi.transfer(address | CC1101_WRITE_BURST);

for (i = 0; i < length; i++) {
SPI.transfer(pgm_read_byte(&(data[i])));
_spi.transfer(pgm_read_byte(&(data[i])));
}
deselect();
}
Expand All @@ -176,10 +176,10 @@ void CC1101::readBurstRegister(uint8_t *buffer, uint8_t address, uint8_t length)

select();
spi_waitMiso();
SPI.transfer(address | CC1101_READ_BURST);
_spi.transfer(address | CC1101_READ_BURST);

for (i = 0; i < length; i++) {
buffer[i] = SPI.transfer(0x00);
buffer[i] = _spi.transfer(0x00);
}

deselect();
Expand Down
6 changes: 4 additions & 2 deletions lib/Itho/CC1101.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,9 @@ class CC1101 {

public:

CC1101(int8_t CSpin = PIN_SPI_SS,
int8_t MISOpin = MISO);
CC1101(int8_t CSpin = PIN_SPI_SS,
int8_t MISOpin = MISO,
SPIClass& spi = SPI);
virtual ~CC1101();

// spi
Expand Down Expand Up @@ -230,6 +231,7 @@ class CC1101 {

int8_t _CSpin = PIN_SPI_SS;
int8_t _MISOpin;
SPIClass& _spi = SPI;

protected:

Expand Down
2 changes: 1 addition & 1 deletion lib/Itho/IthoCC1101.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
#define MDMCFG2 0x02 // 16bit sync word / 16bit specific

// default constructor
IthoCC1101::IthoCC1101(int8_t CSpin, int8_t MISOpin, uint8_t counter, uint8_t sendTries) : CC1101(CSpin, MISOpin)
IthoCC1101::IthoCC1101(int8_t CSpin, int8_t MISOpin, SPIClass& spi, uint8_t counter, uint8_t sendTries) : CC1101(CSpin, MISOpin, spi)
{
this->outIthoPacket.counter = counter;
this->sendTries = sendTries;
Expand Down
23 changes: 13 additions & 10 deletions lib/Itho/IthoCC1101.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,11 @@ class IthoCC1101 : protected CC1101 {

public:

IthoCC1101(int8_t CSpin = PIN_SPI_SS,
int8_t MISOpin = MISO,
uint8_t counter = 0,
uint8_t sendTries = 3); // set initial counter value
IthoCC1101(int8_t CSpin = PIN_SPI_SS,
int8_t MISOpin = MISO,
SPIClass& spi = SPI,
uint8_t counter = 0,
uint8_t sendTries = 3); // set initial counter value
~IthoCC1101();

// init
Expand All @@ -90,7 +91,8 @@ class IthoCC1101 : protected CC1101 {
initReceive();
} // init,reset CC1101

void initReceive();
void initReceive();

// uint8_t getLastCounter() const {
// return outIthoPacket.counter;
// } // counter is increased before sending a command
Expand All @@ -104,7 +106,7 @@ class IthoCC1101 : protected CC1101 {
}

// receive
bool checkForNewPacket(); // check RX fifo for new data
bool checkForNewPacket(); // check RX fifo for new data
// IthoPacket getLastPacket() const {
// return inIthoPacket;
// } // retrieve last received/parsed packet from remote
Expand All @@ -120,14 +122,15 @@ class IthoCC1101 : protected CC1101 {
// uint8_t ReadRSSI();
// bool checkID(const uint8_t *id) const;
// int* getLastID();
String getLastIDstr(bool ashex = true);
String getLastIDstr(bool ashex = true);

// String getLastMessagestr(bool ashex = true);
// String LastMessageDecoded() const;

// send
void sendCommand(IthoCommand command,
uint8_t srcId[3] = 0,
uint8_t destId[3] = 0);
void sendCommand(IthoCommand command,
uint8_t srcId[3] = 0,
uint8_t destId[3] = 0);

void enableOrcon(bool state);

Expand Down
18 changes: 10 additions & 8 deletions lib/LOLIN_EPD/src/LOLIN_EPD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#include "Adafruit_GFX.h"
#include "LOLIN_EPD.h"

LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t spi_mosi, int8_t spi_clock, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY):Adafruit_GFX(width, height)
LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t spi_mosi, int8_t spi_clock, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi):Adafruit_GFX(width, height)
{
cs = CS;
rst = RST;
Expand All @@ -26,9 +26,10 @@ LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t spi_mosi, int8_t spi_clock, i
busy = BUSY;
hwSPI = false;
singleByteTxns = false;
_spi = spi;
}

LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY):Adafruit_GFX(width, height)
LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi):Adafruit_GFX(width, height)
{

dc = DC;
Expand All @@ -37,6 +38,7 @@ LOLIN_EPD::LOLIN_EPD(int width, int height, int8_t DC, int8_t RST, int8_t CS, in
busy = BUSY;
hwSPI = true;
singleByteTxns = false;
_spi = spi;
}

/**************************************************************************/
Expand Down Expand Up @@ -90,9 +92,9 @@ void LOLIN_EPD::begin(bool reset)
}
else
{
SPI.begin();
// _spi.begin(); // Already done by ESPEasy
#ifndef SPI_HAS_TRANSACTION
SPI.setClockDivider(4);
_spi.setClockDivider(4);
#endif
}

Expand Down Expand Up @@ -194,12 +196,12 @@ uint8_t LOLIN_EPD::fastSPIwrite(uint8_t d)
{
uint8_t b;
csLow();
b = SPI.transfer(d);
b = _spi.transfer(d);
csHigh();
return b;
}
else
return SPI.transfer(d);
return _spi.transfer(d);
}
else
{
Expand Down Expand Up @@ -234,7 +236,7 @@ uint8_t LOLIN_EPD::fastSPIwrite(uint8_t d)
void LOLIN_EPD::csHigh()
{
#ifdef SPI_HAS_TRANSACTION
SPI.endTransaction();
_spi.endTransaction();
#endif
#ifdef HAVE_PORTREG
*csport |= cspinmask;
Expand All @@ -251,7 +253,7 @@ void LOLIN_EPD::csHigh()
void LOLIN_EPD::csLow()
{
#ifdef SPI_HAS_TRANSACTION
SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
_spi.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
#endif
#ifdef HAVE_PORTREG
*csport &= ~cspinmask;
Expand Down
5 changes: 3 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_EPD.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ enum
class LOLIN_EPD: public Adafruit_GFX
{
public:
LOLIN_EPD(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_EPD(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_EPD(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);
LOLIN_EPD(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);

virtual ~LOLIN_EPD();
virtual void begin(bool reset = true);
Expand Down Expand Up @@ -111,6 +111,7 @@ class LOLIN_EPD: public Adafruit_GFX
void dcLow();

private:
SPIClass& _spi = SPI;
};

#include "LOLIN_IL3897.h"
Expand Down
4 changes: 2 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_IL3897.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ const unsigned char LUT_DATA_part[] PROGMEM = {
@param BUSY the busy pin to use
*/
/**************************************************************************/
LOLIN_IL3897::LOLIN_IL3897(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY)
LOLIN_IL3897::LOLIN_IL3897(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand All @@ -202,7 +202,7 @@ LOLIN_IL3897::LOLIN_IL3897(int width, int height, int8_t SID, int8_t SCLK, int8_
red_bufsize = bw_bufsize;
}

LOLIN_IL3897::LOLIN_IL3897(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, DC, RST, CS, BUSY)
LOLIN_IL3897::LOLIN_IL3897(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand Down
4 changes: 2 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_IL3897.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
class LOLIN_IL3897 : public LOLIN_EPD {
public:

LOLIN_IL3897(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_IL3897(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_IL3897(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);
LOLIN_IL3897(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);

void begin(bool reset=true);

Expand Down
4 changes: 2 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_SSD1680.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@param BUSY the busy pin to use
*/
/**************************************************************************/
LOLIN_SSD1680::LOLIN_SSD1680(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY)
LOLIN_SSD1680::LOLIN_SSD1680(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand All @@ -39,7 +39,7 @@ LOLIN_SSD1680::LOLIN_SSD1680(int width, int height, int8_t SID, int8_t SCLK, int
red_bufsize = bw_bufsize;
}

LOLIN_SSD1680::LOLIN_SSD1680(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, DC, RST, CS, BUSY)
LOLIN_SSD1680::LOLIN_SSD1680(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand Down
4 changes: 2 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_SSD1680.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
class LOLIN_SSD1680 : public LOLIN_EPD
{
public:
LOLIN_SSD1680(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_SSD1680(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1);
LOLIN_SSD1680(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);
LOLIN_SSD1680(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY = -1, SPIClass& spi = SPI);

void begin(bool reset = true);

Expand Down
4 changes: 2 additions & 2 deletions lib/LOLIN_EPD/src/LOLIN_UC8151D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@param BUSY the busy pin to use
*/
/**************************************************************************/
LOLIN_UC8151D::LOLIN_UC8151D(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY)
LOLIN_UC8151D::LOLIN_UC8151D(int width, int height, int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, SID, SCLK, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand All @@ -39,7 +39,7 @@ LOLIN_UC8151D::LOLIN_UC8151D(int width, int height, int8_t SID, int8_t SCLK, int
red_bufsize = bw_bufsize;
}

LOLIN_UC8151D::LOLIN_UC8151D(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY) : LOLIN_EPD(width, height, DC, RST, CS, BUSY)
LOLIN_UC8151D::LOLIN_UC8151D(int width, int height, int8_t DC, int8_t RST, int8_t CS, int8_t BUSY, SPIClass& spi) : LOLIN_EPD(width, height, DC, RST, CS, BUSY, spi)
{

if ((height % 8) > 0)
Expand Down
Loading