传统的设备驱动程序有何不同?

时间:2016-07-20 05:54:02

标签: linux-kernel linux-device-driver embedded-linux yocto device-tree

传统设备驱动程序与编写支持设备树设备驱动程序有何不同?

1 个答案:

答案 0 :(得分:0)

在引入设备树之前的Linux内核中,驱动程序所需的数据是通过电路板文件提供的,每个可能的电路板都有一个电路板文件。它是由称为平台数据的东西提供的,驱动程序是平台驱动程序,驱动程序基本上不能自动发现或枚举为USB或PCI。

上述方法导致了大量的混乱和重复,因为许多数据当然是常见的,或者在板之间可能是常见的。例如,特定SoC的GPIO控制器在电路板之间不会有所不同,或者至少不需要不同的信息,例如中断ID。

设备树方法具有SoC级别的dtsi文件,这是常见的,并且所有电路板或模块变体都继承它们,但指定要关闭或打开的任何差异或其他外围设备。

解析或读取其中任何一个的函数是不同的。设备树描述硬件,两者的主要区别在于如何提供和读取数据。