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
|
頻道 |