在为x86和ARM编写平台设备驱动程序方面有所不同

我以前曾经从事ARM特定平台驱动,最近转向基于Intel Atom的平台。 在ARM上,它曾经有用于添加平台设备的arch/arm/boot/dts/xx.dtsarch/arm/mach-xx/ 。 我没有在x86上看到这些文件或文件夹。 当我进入arch/x86/...没有dts文件或平台文件。

如何添加我的平台设备信息,如果我想将我的平台设备添加到英特尔Atom平台? 我在哪里可以得到特定于x86的dts文件(假设即使dts不是特定的任何体系结构)?

有两个新功能可以让您同时为x86和ARM世界提供一个驱动程序。 首先是ACPI中的_DSD方法,它允许供应商提供他们所需的任何设备属性,以使IP正常工作。 第二部分是Linux内核中统一的设备属性接口(请参阅drivers / base / property.c )。 因此,如果你的设备需要让我们说clock-frequency属性,你只需要在驱动程序中写这样的东西:

 u32 clock_freq; int err; err = device_property_read_u32(…, &clock_freq); if (err) dev_err(…, "A mandatory property not found!\n");