协议
控制器
在 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 的 IO 操作将相对于此处指定的偏移量和大小。 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
|
频道 |