公司动态

设备树节点之plateform_device

📅 2026/8/21 10:28:09
设备树节点之plateform_device
在Linux设备树Device Tree中将节点转换为platform_device有其特定的规则和条件。这些规则确保设备可以被内核正确地识别和驱动。根据你的描述以下是设备树中节点转换为platform_device的详细规则和条件语法格式‌[label:] node-name[unit-address] { property-list; child-nodes; }规则总结1‌.根节点下的子节点‌根节点通常是/下的子节点如果具有compatible属性这些节点会被转换为platform_device。/ { compatible vendor,soc; soc { compatible vendor,soc-device; reg 0x1000; }; };在这个例子中soc节点将被转换为platform_device。2‌.特定类型的总线和设备‌如果节点的compatible属性值是以下之一则该节点的子节点也必须有compatible属性会 被转换为platform_devicesimple-bussimple-mfd(Multi-Function Device)isa(Industry Standard Architecture)arm,amba-bus(ARM Advanced Microcontroller Bus Architecture)例如/ { amba { compatible arm,amba-bus; amba-device { compatible vendor,amba-device; reg 0x1000; }; }; };‌3.总线下的子节点‌对于I2C、SPI等总线节点下的子节点它们通常不会被直接转换为platform_device。相反这些子节点应该由相应的总线驱动程序处理。例如I2C设备应该由I2C总线驱动程序管理而不是直接作为platform_device。/ { i2c0 { #address-cells 1; #size-cells 0; i2c-device { compatible vendor,i2c-device; reg 0x50; // I2C address }; }; };