Adafruit Library
Classes | Enumerations | Variables
seesaw_spi.h File Reference
#include "Adafruit_seesaw.h"

Go to the source code of this file.

Classes

class  seesaw_SPI
 

Enumerations

enum  {
  SEESAW_SPI_STATUS = 0x00, SEESAW_SPI_CONFIG = 0x01, SEESAW_SPI_TRANSFER = 0x02, SEESAW_SPI_READ = 0x03,
  SEESAW_SPI_ABORT = 0x04, SEESAW_SPI_CLOCK = 0x05
}
 
enum  { SEESAW_SPI_BEGIN = 0x01, SEESAW_SPI_END = 0x02, SEESAW_SPI_DISCARD_RX = 0x04 }
 
enum  {
  SEESAW_SPI_BUSY = 0x01, SEESAW_SPI_READY = 0x02, SEESAW_SPI_SELECTED = 0x04, SEESAW_SPI_RX_READY = 0x08,
  SEESAW_SPI_ERROR = 0x80
}
 
enum  {
  SEESAW_SPI_OK = 0, SEESAW_SPI_BAD_CONFIG = 1, SEESAW_SPI_BAD_STATE = 2, SEESAW_SPI_QUEUE_OVERFLOW = 3,
  SEESAW_SPI_UNREAD_DATA = 4, SEESAW_SPI_TRANSFER_FAILED = 5, SEESAW_SPI_INVALID_COMMAND = 6, SEESAW_SPI_PIN_CONFLICT = 7,
  SEESAW_SPI_HOST_PROTOCOL = 0xFD, SEESAW_SPI_HOST_TIMEOUT = 0xFE, SEESAW_SPI_HOST_IO = 0xFF
}
 

Variables

const uint16_t SEESAW_SPI_TIMEOUT_MS
 Per-command completion deadline. More...
 
const uint8_t SEESAW_SPI_CHUNK_SIZE
 Payload fitting a classic Wire packet. More...
 

Detailed Description

Experimental seesaw SPI-controller bridge for chunked I2C transfers.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

SPI controller registers.

Enumerator
SEESAW_SPI_STATUS 

Flags, error, RX length, completion sequence.

SEESAW_SPI_CONFIG 

Mode, order, requested frequency (six bytes).

SEESAW_SPI_TRANSFER 

Flags and up to 29 transmit bytes.

SEESAW_SPI_READ 

Consume the completed receive buffer.

SEESAW_SPI_ABORT 

Abort transaction; optionally release pins.

SEESAW_SPI_CLOCK 

Read actual SPI clock frequency in hertz.

◆ anonymous enum

anonymous enum

SPI transfer controls.

Enumerator
SEESAW_SPI_BEGIN 

Assert chip-select before this chunk.

SEESAW_SPI_END 

Release chip-select after this chunk.

SEESAW_SPI_DISCARD_RX 

Do not retain receive data.

◆ anonymous enum

anonymous enum

SPI status flag bits.

Enumerator
SEESAW_SPI_BUSY 

Queued or executing work.

SEESAW_SPI_READY 

Controller configured.

SEESAW_SPI_SELECTED 

Chip-select is low.

SEESAW_SPI_RX_READY 

Receive data available.

SEESAW_SPI_ERROR 

Sticky device error.

◆ anonymous enum

anonymous enum

SPI errors, including host-side transport failures.

Enumerator
SEESAW_SPI_OK 

No error.

SEESAW_SPI_BAD_CONFIG 

Unsupported configuration.

SEESAW_SPI_BAD_STATE 

Disabled controller or invalid CS sequence.

SEESAW_SPI_QUEUE_OVERFLOW 

Firmware command queue filled.

SEESAW_SPI_UNREAD_DATA 

Previous receive data was not consumed.

SEESAW_SPI_TRANSFER_FAILED 

Hardware SPI failure or timeout.

SEESAW_SPI_INVALID_COMMAND 

Invalid register/flags/payload.

SEESAW_SPI_PIN_CONFLICT 

Pins reserved by another feature.

SEESAW_SPI_HOST_PROTOCOL 

Unexpected response length or sequence.

SEESAW_SPI_HOST_TIMEOUT 

Completion deadline expired.

SEESAW_SPI_HOST_IO 

I2C read/write failed.

Variable Documentation

◆ SEESAW_SPI_TIMEOUT_MS

const uint16_t SEESAW_SPI_TIMEOUT_MS
Initial value:
=
250

Per-command completion deadline.

◆ SEESAW_SPI_CHUNK_SIZE

const uint8_t SEESAW_SPI_CHUNK_SIZE
Initial value:
=
29

Payload fitting a classic Wire packet.