0%

平台设备驱动程序

平台设备驱动程序

在linux驱动中,平台设备是用于描述那些不挂载在物理总线上(如USB,PCI 等)上的设备。平台设备是指没有物理总线,直接集成在soc或者主板上的设备如:

  • 串口(UART)
  • GPIO 控制器
  • I2C 控制器
  • SPI 控制器
  • 定时器
  • 看门狗
  • DMA 控制器

这些设备不会出现在 PCI 或 USB 总线上,因此内核无法用传统的总线枚举机制来发现它们。

(“总线枚举”指的是内核发现总线上“现在到底插了哪些设备”的全过程。主要分为:

  • 冷枚举:开机上电或 insmod host-controller 驱动时,由主机控制器一次性扫描整条总线。
  • 热枚举:运行期用户插拔(USB、PCIe、Thunderbolt 等)产生中断,内核再“补扫”。

主机控制器按总线协议把‘线上有谁’读出来 → 内核实例化 device → 与已注册的 driver 配对 → probe 生效。

伪平台总线并不是一个真正的物理总线,而是内核为了统一管理这些“平台设备”而虚拟出的一条总线。所有的平台设备都会挂在这个总线上,平台驱动(platform_driver)和设备(platform_device)通过这条总线匹配。

-------------本文结束感谢您的阅读-------------