fuchsia.hardware.spi

Added: HEAD

PROTOCOLS

Controller

Defined in fuchsia.hardware.spi/spi.fidl

OpenSession

Opens a new session on the device.

At most one session is permitted at one time; the server end will be closed with ZX_ERR_ALREADY_BOUND if a session already exists.

Request

NameType
session server_end:Device

Device

Defined in fuchsia.hardware.spi/spi.fidl

AssertCs

Assert CS for this device. Returns ZX_ERR_NOT_SUPPORTED if there is more than one device on the bus.

Request

<EMPTY>

Response

NameType
status zx/Status

CanAssertCs

Returns true if the device can call |AssertCs()| and |DeassertCs()|.

Request

<EMPTY>

Response

NameType
can bool

DeassertCs

Deassert CS for this device. Returns ZX_ERR_BAD_STATE if CS is already deasserted. Returns ZX_ERR_NOT_SUPPORTED if there is more than one device on the bus.

Request

<EMPTY>

Response

NameType
status zx/Status

Exchange

Simultaneously transmits and receives data. The size fields of tx_buffer and rx_buffer must be the same.

Request

NameType
tx_buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer
rx_buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

Response

NameType
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Exchange_Result

ExchangeVector

Full-duplex SPI transaction. Received data will exactly equal the length of the transmit buffer.

Request

NameType
txdata vector<uint8>:8196

Response

NameType
status zx/Status
rxdata vector<uint8>:8196

Receive

Receives data from the device into buffer.

Request

NameType
buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

Response

NameType
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Receive_Result

ReceiveVector

Half-duplex receive data from a SPI device; always reads the full size requested.

Request

NameType
size uint32

Response

NameType
status zx/Status
data vector<uint8>:8196

RegisterVmo

Registers a VMO and transfers ownership to the driver. vmo_id: The ID chosen by the client that will be used in operations on this VMO. vmo: The handle, offset, and size of this VMO. IO operations on this VMO will be relative to the offset and size specified here. rights: A bit field of SharedVmoRight values indicating how this VMO may be used. Callers should assume that the driver will map and/or pin the VMO using these rights.

Request

NameType
vmo_id uint32
vmo fuchsia.mem/Range
rights fuchsia.hardware.sharedmemory/SharedVmoRight

Response

NameType
payload fuchsia.hardware.sharedmemory/SharedVmoRegister_RegisterVmo_Result

Transmit

Sends the data in buffer to the device.

Request

NameType
buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

Response

NameType
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Transmit_Result

TransmitVector

Half-duplex transmit data to a SPI device; always transmits the entire buffer on success.

Request

NameType
data vector<uint8>:8196

Response

NameType
status zx/Status

UnregisterVmo

Unmaps and/or unpins the VMO and returns the handle to the caller.

Request

NameType
vmo_id uint32

Response

NameType
payload fuchsia.hardware.sharedmemory/SharedVmoRegister_UnregisterVmo_Result

CONSTANTS

NameValueTypeDescription
MAX_TRANSFER_SIZE 8196 uint32

SERVICES

Service

Defined in fuchsia.hardware.spi/spi.fidl

NameTypeTransport
device fuchsia.hardware.spi/Device Channel