在开发gpio之前,先了接一下dts的入口先,因为该dts非常重要,找到入口后面任何节点相关信息都是通过此来include进来的,对dts有所研究的都应该能理解此点。
在xavier-nx-8GB 开机内核dmesg打印log找到关键地方:
[0.459570]DTSFileName: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts
[ 0.459627] DTB Build time: Apr 17 2022 02:42:31
通过上面那句打印,直接在sdk中找到tegra194-p3668-all-p3509-0000.dts,后面添加任何的节点,都是基于此来开发。
我在这里初略给大家看看该dts引入的相关,直接标记重点:
hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts
//入口分析:
//tegra194-p3668-all-p3509-0000.dts
/dts-v1/;
#include "common/tegra194-p3668-common.dtsi"
#include "common/tegra194-p3509-0000-a00.dtsi" //gpio compatible = "gpio-keys";
//进入
//vim #include "common/tegra194-p3668-common.dtsi"
#include "dt-bindings/extcon-ids.h"
#include "dt-bindings/gpio/tegra194-gpio.h"
#include <dt-bindings/pwm/pwm.h>
#include <tegra194-soc/tegra194-soc-cvm.dtsi>
#include "tegra194-fixed-regulator-p3668.dtsi