协议
PinImpl
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
该协议结合了 fuchsia.hardware.gpio.Gpio 和 fuchsia.hardware.pin.Pin,表示要对其执行操作的 PIN 码。请参阅这些协议 了解特定方法的详细信息。
PinImpl 服务器必须支持至少一个客户端连接。服务器应该释放
如果请求中断的客户端断开连接,则 GetInterrupt()
返回的中断。
常见错误代码:
ZX_ERR_NOT_FOUND
:不存在编号为pin
的 PIN 码。ZX_ERR_NOT_SUPPORTED
:此控制器不支持请求的操作。ZX_ERR_WRONG_TYPE
:如果引脚不支持 GPIO。
配置
请求
名称 | 类型 |
---|---|
pin |
uint32
|
config |
fuchsia.hardware.pin/Configuration
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_Configure_Result
|
ConfigureInterrupt
请求
名称 | 类型 |
---|---|
pin |
uint32
|
config |
fuchsia.hardware.gpio/InterruptConfiguration
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_ConfigureInterrupt_Result
|
GetInterrupt
PinImpl 服务器应为每个 GetInterrupt()
调用创建一个新的中断对象。
请求
名称 | 类型 |
---|---|
pin |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_GetInterrupt_Result
|
已读
请求
名称 | 类型 |
---|---|
pin |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_Read_Result
|
ReleaseInterrupt
请求
名称 | 类型 |
---|---|
pin |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_ReleaseInterrupt_Result
|
SetBufferMode
请求
名称 | 类型 |
---|---|
pin |
uint32
|
mode |
fuchsia.hardware.gpio/BufferMode
|
响应
名称 | 类型 |
---|---|
payload |
PinImpl_SetBufferMode_Result
|
结构体
呼叫
在 fuchsia.hardware.pinimpl/metadata.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
pin |
uint32
|
执行此调用的平台专用 PIN 码。 |
无默认设置 |
call |
InitCall
|
make 的调用和传递给它的参数。 |
无默认设置 |
ControllerMetadata
在 fuchsia.hardware.pinimpl/metadata.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
id |
uint32
|
控制器的 ID,在所有 GPIO 控制器中具有唯一性。 |
无默认设置 |
PinImpl_ConfigureInterrupt_Response
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
<空>
PinImpl_Configure_Response
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
new_config |
fuchsia.hardware.pin/Configuration
|
无默认设置 |
PinImpl_GetInterrupt_Response 资源
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
interrupt |
handle<interrupt>
|
无默认设置 |
PinImpl_Read_Response
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
bool
|
无默认设置 |
PinImpl_ReleaseInterrupt_Response
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
<空>
PinImpl_SetBufferMode_Response
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
<空>
表
元数据
在 fuchsia.hardware.pinimpl/metadata.fidl 中定义
作为 DEVICE_METADATA_GPIO_INIT 传递给元数据中的 GPIO 核心驱动程序。处理步数 它们在向量中出现的顺序依序呈现。在 GPIO 期间处理一次 核心驱动程序的绑定钩子。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
init_steps |
vector<InitStep>
|
联合体
InitCall 柔性环境
在 fuchsia.hardware.pinimpl/metadata.fidl 中定义
作为 InitStep
的一部分进行的 fuchsia.hardware.pinimpl.PinImpl 调用的参数。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
pin_config |
fuchsia.hardware.pin/Configuration
|
如果已设置,GPIO 核心驱动程序将调用“Configure”具有指定配置的实体。 |
2 |
buffer_mode |
fuchsia.hardware.gpio/BufferMode
|
如果设置了此字段,GPIO 核心驱动程序将以给定模式调用 |
InitStep 柔性环境
在 fuchsia.hardware.pinimpl/metadata.fidl 中定义
由 GPIO 核心驱动程序执行的单个 init 步骤。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
call |
Call
|
如果设置,GPIO 核心驱动程序将使用给定引脚调用 PinImpl 驱动程序,并且 参数。 |
2 |
delay |
zx/Duration
|
如果已设置,GPIO 核心驱动程序将延迟这么长的时间,之后再处理下一步。 |
PinImpl_ConfigureInterrupt_Result 严格
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_ConfigureInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_Configure_Result 严格
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_Configure_Response
|
|
2 |
err |
zx/Status
|
PinImpl_GetInterrupt_Result 严格 资源
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_GetInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_Read_Result 严格
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_Read_Response
|
|
2 |
err |
zx/Status
|
PinImpl_ReleaseInterrupt_Result 严格
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_ReleaseInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_SetBufferMode_Result 严格
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PinImpl_SetBufferMode_Response
|
|
2 |
err |
zx/Status
|
服务
服务
在 fuchsia.hardware.pinimpl/pin-impl.fidl 中定义
名称 | 类型 | 传输 |
---|---|---|
设备 |
fuchsia.hardware.pinimpl/PinImpl
|
驱动程序 |