什么样的设备会挂到platform总线下
1.platform 总线不是硬件总线而是软件抽象I2C、SPI、PCI、USB 都可以对应真实硬件总线。但 platform bus 不是一根真实的硬件线。它更像是 Linux 设备模型里的一个软件分类platform bus 用来管理那些“固定存在、无法自动枚举、通常由设备树/ACPI/板级代码描述”的设备典型 platform device 包括UART 控制器 GPIO 控制器 I2C 控制器本身 SPI 控制器本身 PWM 控制器 看门狗 RTC 控制器 自定义 FPGA/寄存器设备 自定义内存映射 IP注意这里有个容易混淆的地方I2C 控制器本身通常是 platform_device I2C 控制器下面的传感器通常是 i2c_client2.设备树中的位置决定了设备怎么被创建可以这样记顶层普通节点 /simple-bus 下面的普通节点 SoC 内存映射外设节点 ↓ 通常创建成 platform_device而I2C 控制器节点下面的子节点 ↓ 通常创建成 i2c_clientSPI 控制器节点下面的子节点 ↓ 通常创建成 spi_deviceMDIO 总线下面的 PHY 节点 ↓通常创建成 phy_device / mdio_devicePCI/USB 设备 ↓ 通常由硬件枚举或专用框架管理所以不是 Linux 看到 compatible 就一定创建成 platform_device而是要看这个节点处于什么父总线下面。设备树普通节点 非可枚举硬件 不属于专用子总线 platform_device再压缩一点不知道挂哪条真实总线但又是板上固定存在的设备 platform 总线