为x86和ARM编写平台设备驱动程序的区别

ani*_*han 9 linux linux-device-driver linux-kernel

我之前曾在ARM特定平台驱动程序上工作,最近转向基于Intel Atom.在ARM,它以前arch/arm/boot/dts/xx.dtsarch/arm/mach-xx/添加平台设备.我没有在x86上看到这些文件或文件夹.当我进入arch/x86/...那里没有dts文件或平台文件.

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

0an*_*riy 7

有两个新功能允许您同时拥有一个用于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");
Run Code Online (Sandbox Code Playgroud)