问题描述及复现步骤:
官方设备树kernel/arch/arm64/boot/dts/rockchip/rk3568j-firefly-itxq.dtsi中关于led的引脚配置:
led_user: led-user {
rockchip,pins = <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
};
...
user_led: user {
label = "firefly:yellow:user";
linux,default-trigger = "ir-user-click";
default-state = "off";
gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&led_user>;
};加载固件之后查看实际的pin脚配置,发现该pin脚是下拉的,对比TRM应该是默认状态未进行配置,使用io命令查看了对应寄存器确认了该情况。
$ cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinconf-pins
...
pin 148 (gpio4-20): input bias pull down, output drive strength (12 mA), input schmitt enabled, pin output (1 level), slew rate (1)
...在kernel/drivers/pinctrl/pinctrl-rockchip.c中加入DEBUG宏查看dmesg也未发现对该pin脚的配置。
该问题是我在自己配置了一些pin脚但不生效之后发现的,为了排除我配置错误的情况,采用了官方的设备树进行实验,发现也有这个情况。