实体 USB 连接器(插口)的状态,由管理该连接器的端口控制器(例如 USB Type-C 端口控制器 [TCPC])报告。
端口控制器根据连接的设备(例如,Type-C CC 状态和 BC1.2 充电器检测)决定 USB 数据端应如何运行,而 PHY 和控制器等 USB 驱动程序则遵循该决定。电源相关状态(存在、电流限制)通过 fuchsia.hardware.power.usb 单独报告。
协议
连接线
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
用于查询静态功能和监控物理 USB 连接器动态状态变化的协议。
GetSpec
返回 USB 连接器的静态硬件特性,这些特性在运行期间不会发生变化。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
payload |
Connector_GetSpec_Result
|
观看
挂起获取连接器状态。在首次调用时立即返回,然后在状态自上次返回值以来发生更改时返回。状态转换会按顺序传送,并且不会在调用之间合并(例如,DEVICE -> NONE -> DEVICE 会在下一次调用时传送 NONE,并在随后的调用中传送 DEVICE)。
如果存在,setup_wake_lease 会在服务器处理调用时使系统保持唤醒状态。如果调用立即得到应答(第一个调用始终如此),服务器会将其作为 wake_lease 传回,除非它返回自己的唤醒租约。如果通话处于保持状态,服务器会将其挂断。
如果存在,wake_lease 是客户端在处理返回的状态时应持有的唤醒租约。在支持挂起的系统上,服务器必须在 Spec.wake_on 中的字段每次转换时返回唤醒租约(必须包含 data_role,包括转换为 NONE,以便下游驱动程序可以在挂起之前耗尽传输并关闭电源),或者在未附加服务器租约时立即回复 setup_wake_lease。
返回值:
ZX_ERR_BAD_STATE:此通道上已有待处理的Watch调用;现有待处理调用保持不变。
请求
| 名称 | 类型 |
|---|---|
setup_wake_lease |
fuchsia.power.system/LeaseToken
|
响应
| 名称 | 类型 |
|---|---|
payload |
Connector_Watch_Result
|
STRUCTS
Connector_GetSpec_Response
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
spec |
Spec
|
无默认应用 |
Connector_Watch_Response 资源
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
state |
ConnectorState
|
无默认应用 | |
wake_lease |
fuchsia.power.system/LeaseToken
|
无默认应用 |
枚举
DataRole 灵活
类型:uint32
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
连接器背后的控制器应在其中运行的 USB 数据角色。
| 名称 | 值 | 说明 |
|---|---|---|
无 |
0 |
无 USB 数据:未连接任何设备、合作伙伴未提供 USB 数据(例如专用充电器),或尚不允许传输数据(例如充电器检测仍在端口控制器的自有数据开关上运行;充电器检测器借用 SoC PHY 的平台需要未来的 |
设备 |
1 |
外围设备:数据线连接到 USB 主机。 |
HOST |
2 |
主机:数据线连接到 USB 设备。 |
方向灵活
类型:uint32
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
插头在 USB Type-C 插座中的方向,指示合作伙伴连接到哪个 CC 引脚,以便 Type-C 多路复用器可以根据活动模式路由通道。
| 名称 | 值 | 说明 |
|---|---|---|
中 |
1 |
合作伙伴已在 CC1 上关联。 |
REVERSE |
2 |
配对设备连接到 CC2(插头翻转)。 |
TABLES
ConnectorState
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
USB 连接器的动态状态。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
data_role |
DataRole
|
USB 控制器应在其中运行的数据角色。始终由服务器设置。 |
2 |
orientation |
Orientation
|
Type-C 插头方向,在合作伙伴的 CC 方向确定后设置(独立于 |
规格
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
实体 USB 连接器的静态硬件特性和驱动程序功能。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
supported_data_roles |
vector<DataRole>
|
此连接器支持的数据角色(例如 |
2 |
wake_on |
ConnectorState
|
|
UNIONS
Connector_GetSpec_Result strict
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Connector_GetSpec_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Connector_Watch_Result strict resource
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Connector_Watch_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
服务
服务
在 fuchsia.hardware.usb.connector/connector.fidl 中定义
| 名称 | 类型 | 传输 |
|---|---|---|
| connector |
fuchsia.hardware.usb.connector/Connector
|
渠道 |