reshub.h) (PNP_SERIAL_BUS_DESCRIPTOR 结构
PNP_SERIAL_BUS_DESCRIPTOR 结构描述目标设备与串行总线的物理连接, (I2C、SPI 或 UART) 。
语法
typedef struct _PNP_SERIAL_BUS_DESCRIPTOR {
UCHAR Tag;
USHORT Length;
UCHAR RevisionId;
UCHAR ResourceSourceIndex;
UCHAR SerialBusType;
UCHAR GeneralFlags;
USHORT TypeSpecificFlags;
UCHAR TypeSpecificRevisionId;
USHORT TypeDataLength;
} PNP_SERIAL_BUS_DESCRIPTOR, *PPNP_SERIAL_BUS_DESCRIPTOR;
成员
Tag
串行总线类型。 对于串行总线 (I2C、SPI 或 UART) 连接,此成员设置为0x8e。 有关详细信息,请参阅 ACPI 5.0 规范中串行总线连接描述符的说明。
Length
串行总线连接描述符的长度(以字节为单位)。 为了与 ACPI 5.0 规范一致,PNP_SERIAL_BUS_DESCRIPTOR 结构的 Length 成员中的字节计数等于结构大小,减去结构开头的 Tag 和 Length 成员中的三个字节,加上结构后面的特定于总线类型的数据和 Resource Source 字符串的字节数。 资源源字符串是必填字段, (一个字符的资源源名称和终止 null) 的最小大小为两个字节。 因此,最小有效 长度 值为 11。 有关详细信息,请参阅 ACPI 5.0 规范。
RevisionId
串行总线连接描述符的修订 ID。 此成员设置为 reshub.h 头文件中定义的SERIAL_BUS_DESCRIPTOR_REVISION常量。
ResourceSourceIndex
保留供将来使用。 此成员未使用,并且设置为零。
SerialBusType
串行总线类型。 对于 I2C) ,此成员设置为 1 (,对于 SPI) 设置为 2 (,对于 UART) 设置为 3 (。 其他值要么保留供将来使用,要么由硬件供应商定义。 有关详细信息,请参阅 ACPI 5.0 规范。
GeneralFlags
所有串行总线类型通用的标志。 位 0 是从属模式标志。 如果此位设置为 1,则此连接的通信由总线控制器启动;否则,通信由目标设备启动。 位 1 是使用者/生成者标志,始终设置为 1。 当前未定义其他标志位。 有关详细信息,请参阅 ACPI 5.0 规范。
TypeSpecificFlags
特定于串行总线类型的标志。 对于 I2C 总线,如果连接使用 10 位地址,则设置位 0;否则,连接使用 7 位地址。 当前没有为 I2C 定义其他标志位。 有关详细信息,请参阅 ACPI 5.0 规范。
TypeSpecificRevisionId
此结构的变体的修订 ID,用于由 Tag 成员指定的串行总线类型 (I2C、SPI 和 UART) 。 每个串行总线类型通过添加特定于 总线 类型的字段来扩展PNP_SERIAL_BUS_DESCRIPTOR结构。 有关详细信息,请参阅 ACPI 5.0 规范。
TypeDataLength
遵循 PNP_SERIAL_BUS_DESCRIPTOR 结构的特定于总线类型的数据的长度(以字节为单位)。 此长度值包括 TypeDataLength 成员末尾和资源源字符串开头之间的数据,但不包括资源源字符串。 有关详细信息,请参阅 ACPI 5.0 规范。
注解
此结构定义串行总线连接描述符中的数据字段,如 ACPI 5.0 规范的第 6.4.3.8.2 节中所述。 此描述符描述与连接到串行总线的目标设备的总线连接 (I2C、SPI 或 UART) 。
例如,对于 I2C 总线上的设备, PNP_SERIAL_BUS_DESCRIPTOR 结构 (及其特定于总线类型的扩展) 指定设备的总线地址、地址模式 (7 位或 10 位) ,以及访问设备时运行总线时钟的频率。 有关显示 I2C 控制器驱动程序如何从 结构中提取此信息的代码示例,请参阅 如何获取设备的连接设置。
Reshub.h 头文件中 PNP_SERIAL_BUS_DESCRIPTOR 结构定义前面是 Pshpack1.h 头文件的 include 语句,该语句将编译器配置为将相邻结构成员打包到字节边界,而不会造成间隙。 然后,软件可以将打包结构覆盖在串行总线连接描述符的内存映像上,以访问此描述符的各个字段。 结构的 USHORT 成员可能与内存中的字节边界不对齐。 对于 x86、x64 和 ARM 处理器体系结构,USHORT 成员中的字节以 little-endian 顺序存储。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 8 开始支持。 |
标头 | reshub.h |