dts中定义的设备属于/sys/bus/platform还是/sys/bus/amba

在设备树(Device Tree Source, DTS)中定义的设备最终会出现在 /sys/bus/platform 还是 /sys/bus/amba 目录下,取决于设备节点的 compatible 属性以及驱动程序如何处理这些设备。下面是确定设备属于哪个总线的一些步骤和方法:

  • 1. 检查 compatible 属性

Platform Bus:如果设备节点没有明确指定一个具体的总线类型,或者其 compatible 属性指向的是平台设备驱动程序支持的设备,那么该设备通常会被添加到平台总线,并在 /sys/bus/platform/devices/ 下出现。平台总线是一种虚拟的、通用的总线类型,用于表示那些直接挂载在 CPU 或 SoC 上的设备。这些设备通常不通过标准的 PCI、USB 或其他硬件总线连接,而是通过内存映射 I/O 或者特定的控制器接口进行通信
AMBA Bus:如果设备节点的 compatible 属性指定了 AMBA 总线上的设备,例如 compatible = "arm,pl011" 或者 compatible = "arm,amba-bus",那么该设备将被添加到 AMBA 总线,并在 /sys/bus/amba/devices/ 下出现。

  • 2. 设备树解析

当内核启动时,它会解析设备树并根据每个节点的 compatible 属性来查找匹配的驱动程序。

Platform Devices:对于平台设备,内核中的 platform_bus_type 会处理那些没有明确总线类型的设备。如果设备节点没有明确指出它属于哪种总线,它通常会被当作平台设备处理。
AMBA Devices:对于 AMBA 总线上的设备,内核中的 amba_bus_type 会处理这些设备。如果有 compatible = "arm,amba-bus" 的节点,内核会创建 AMBA 总线实例,并将相关的设备挂载到这个总线上。

  • 3. 驱动程序注册

Platform Drivers:平台设备驱动程序通过 platform_driver_register() 函数注册。一旦注册,它们就会尝试绑定到所有兼容的平台设备上。
AMBA Drivers:AMBA 设备驱动程序通过 driver_register() 函数注册,并且通常会在 of_match_table 中包含 compatible 字符串,以便与设备树中的设备节点匹配。

  • 4. sysfs 

Platform Bus:一旦平台设备被正确识别并绑定到平台驱动程序,设备信息将会出现在 /sys/bus/platform/devices/ 目录下。
AMBA Bus:同样地,一旦 AMBA 设备被正确识别并绑定到 AMBA 驱动程序,设备信息将会出现在 /sys/bus/amba/devices/ 目录下。

记录点滴,欢迎点赞关注收藏,共同进步 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值