设备树与sys/bus/platform/devices
sysfs文件系统中/sys/bus/platform/devices下的设备是由设备树生成,
根节点下有compatible的子节点都会在/bus/platform/devices生成节点
总线 I2C、SPI 等控制器会在/bus/platform/devices生成节点
总线 I2C、SPI 节点下的子节点,不会在/bus/platform/devices生成节点
以在设备树下新建一个led和spi子节点为例
atkstm32mp1-led{status ="ok";compatible = "atkstm32mp1-led";reg = < 0X50000A28 0x040X5000A000 0x040X5000A004 0x040X5000A008 0x040X5000A00C 0x040X5000A018 0x04>;
};&spi1 {pinctrl-names = "default", "sleep";pinctrl-0 = <&spi1_pins_a>;pinctrl-1 = <&spi1_sleep_pins_a>;cs-gpios = <&gpioz 3 GPIO_ACTIVE_LOW>;status = "okay";icm20608@0 {compatible = "atk,icm20608";reg = <0>; /* CS #0 */spi-max-frequency = <8000000>;};
};
在/sys/bus/platform/devices会生成led与spi控制器节点
在spi控制器节点bus总线上生成的device就是设备树添加的icm20608节点
/sys/devices与sys/bus/platform/devices
由设备树添加的在sys/bus/platform/devices中的节点对应/sys/devices/platform下的设备(spi控制器、led)
与设备树的compatible相匹配的驱动文件会在/dev与/sys/devices/virtual添加具体的设备,至于为什么会在/sys/devices/virtual在另一篇文章有介绍。