在前两篇中我们了解了DTS的背景基础知识以及发挥作用的流程,这篇文章我们以高通的MSM8953平台为例来添加一个基础的i2c设备(包含一个gpio中断)。
首先我们在该i2c设备的驱动中找到了匹配设备与驱动程序的compatible
static const struct of_device_id iqs263_of_match[] = {
{ .compatible = “azopteq,iqs263”, },
{ },
}
由此compatible可以找到dts中对应的设备
kernel\arch\arm64\boot\dts\qcom\msm8953-mtp.dts
&i2c_8 { /* BLSP2 QUP4 */
iqs263@44 { //Capacitive Touch Controller Driver
compatible = “azopteq,iqs263”;
reg = <0x44>;
pinctrl-names = "default";
pinctrl-0 = <&iqs263_irq_config>;
vdd-supply = <&pm8953_l5>;
vio-supply = <&pm8953_l5>;
interrupt-parent = <&tlmm>;
interrupts = <48 0x2>;
azopteq,irq-gpio =<&tlmm 48 0x2>;
};
};
其中compatible属性标识的名字是与驱动程序中名字相匹配的
其中reg属性及@符号后的十六进制数字标识了该设备iqs263的i2c地址为