fuchsia.hardware.spi

新增:HEAD

PROTOCOLS

控場

定義於 fuchsia.hardware.spi/spi.fidl

OpenSession

在裝置上開啟新的工作階段。

一次最多允許一個工作階段;如果已存在工作階段,伺服器端會以 ZX_ERR_ALREADY_BOUND 關閉。

要求

名稱類型
session server_end:Device

裝置

定義於 fuchsia.hardware.spi/spi.fidl

AssertCs

為這部裝置斷言 CS。如果匯流排上有多部裝置,就會傳回 ZX_ERR_NOT_SUPPORTED。

要求

<EMPTY>

回應

名稱類型
status zx/Status

CanAssertCs

如果裝置可以呼叫 |AssertCs()| 和 |DeassertCs()|,則傳回 true。

要求

<EMPTY>

回應

名稱類型
can bool

DeassertCs

為此裝置取消斷言 CS。如果 CS 已取消斷言,則會傳回 ZX_ERR_BAD_STATE。如果匯流排上有多部裝置,就會傳回 ZX_ERR_NOT_SUPPORTED。

要求

<EMPTY>

回應

名稱類型
status zx/Status

Exchange

同時傳送及接收資料。tx_buffer 和 rx_buffer 的大小欄位必須相同。

要求

名稱類型
tx_buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer
rx_buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

回應

名稱類型
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Exchange_Result

ExchangeVector

全雙工 SPI 交易。接收的資料會與傳輸緩衝區的長度完全相同。

要求

名稱類型
txdata vector<uint8>:8196

回應

名稱類型
status zx/Status
rxdata vector<uint8>:8196

接收

接收裝置傳來的資料並放入緩衝區。

要求

名稱類型
buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

回應

名稱類型
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Receive_Result

ReceiveVector

從 SPI 裝置接收半雙工資料,一律讀取要求的完整大小。

要求

名稱類型
size uint32

回應

名稱類型
status zx/Status
data vector<uint8>:8196

RegisterVmo

註冊 VMO 並將擁有權轉移至驅動程式庫 vmo_id:用戶端選擇的 ID,用於對此 VMO 執行的作業。 vmo:此 VMO 的句柄、偏移量和大小。這個 VMO 的 I/O 作業會相對於此處指定的偏移量和大小。 rights:SharedVmoRight 值的位元欄位,表示這個 VMO 的使用方式。呼叫端應假設驅動程式庫會使用這些權限對應及/或固定 VMO。

要求

名稱類型
vmo_id uint32
vmo fuchsia.mem/Range
rights fuchsia.hardware.sharedmemory/SharedVmoRight

回應

名稱類型
payload fuchsia.hardware.sharedmemory/SharedVmoRegister_RegisterVmo_Result

傳輸

將緩衝區中的資料傳送至裝置。

要求

名稱類型
buffer fuchsia.hardware.sharedmemory/SharedVmoBuffer

回應

名稱類型
payload fuchsia.hardware.sharedmemory/SharedVmoIo_Transmit_Result

TransmitVector

半雙工傳輸資料至 SPI 裝置;成功時一律會傳輸整個緩衝區。

要求

名稱類型
data vector<uint8>:8196

回應

名稱類型
status zx/Status

UnregisterVmo

取消對應和/或取消固定 VMO,並將句柄傳回給呼叫端。

要求

名稱類型
vmo_id uint32

回應

名稱類型
payload fuchsia.hardware.sharedmemory/SharedVmoRegister_UnregisterVmo_Result

常數

名稱類型說明
MAX_TRANSFER_SIZE 8196 uint32

服務

ControllerService

定義於 fuchsia.hardware.spi/spi.fidl

名稱類型傳輸
device fuchsia.hardware.spi/Controller 頻道

服務

定義於 fuchsia.hardware.spi/spi.fidl

名稱類型傳輸
device fuchsia.hardware.spi/Device 頻道