前面说过,在新版本的 Linux 中,ARM 相关的驱动全部采用了设备树(也有支持老式驱动的,比较少),最新出的 CPU 其驱动开发也基本都是基于设备树。所以,掌握设备树是 Linux 驱动开发人员必 备的技能!
本文学习一下 设备树源文件 即 dts文件,以及 dts文件的组织形式。
编译设备树文件的方法有几种。如下:
(1)? 方法一:直接编译内核源码,就同时编译了设备树文件。进入 Linux内核源码,输入如下命令:
make all
(2) 方法二:编译所有的设备树文件。进入 Linux内核源码中,输入如下命令编译:
make dtbs
(3) 方法三:如果只编译指定的一个设备树文件。
例如,只编译针对 imx6ull 的 EMMC开发板的设备树文件时,(假如 IMX6ULL的 EMMC开发板对应的设备树源文件为 imx6ull-alientek-emmc.dts)则运行 make imx6ull-alientek-emmc.dtb?命令来编译。输入如下命令:
make imx6ull-alientek-emmc.dtb
dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ul-14x14-ddr3-arm2.dtb \
imx6ul-14x14-ddr3-arm2-emmc.dtb \
imx6ul-14x14-ddr3-arm2-flexcan2.dtb \
imx6ul-9x9-evk-btwifi.dtb \
imx6ul-9x9-evk-csi.dtb \
imx6ul-9x9-evk-ldo.dtb
dtb-$(CONFIG_SOC_IMX6ULL) += \
imx6ull-14x14-ddr3-arm2.dtb \
imx6ull-14x14-ddr3-arm2-adc.dtb \
imx6ull-14x14-ddr3-arm2-cs42888.dtb \
imx6ull-14x14-ddr3-arm2-wm8958.dtb \
imx6ull-14x14-evk.dtb \
imx6ull-14x14-evk-btwifi.dtb \
imx6ull-14x14-evk-emmc.dtb \
imx6ull-14x14-evk-gpmi-weim.dtb \
imx6ull-alientek-nand.dtb \
imx6ull-14x14-evk-usb-certi.dtb \