这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 为什么RK3568pinctrl的pin脚属性配置不生效呢

共4条 1/1 1 跳转至

为什么RK3568pinctrl的pin脚属性配置不生效呢

工程师
2024-02-04 18:58:00     打赏

1.jpg

问题描述及复现步骤:

  1. 官方设备树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>;
    };

  2. 加载固件之后查看实际的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)
    ...

  3. 在kernel/drivers/pinctrl/pinctrl-rockchip.c中加入DEBUG宏查看dmesg也未发现对该pin脚的配置。

  4. 该问题是我在自己配置了一些pin脚但不生效之后发现的,为了排除我配置错误的情况,采用了官方的设备树进行实验,发现也有这个情况。





关键词: RK3568     GPIO     寄存器    

助工
2024-02-04 18:58:19     打赏
2楼

IO指令读出的具体寄存器值是多少


工程师
2024-02-04 18:58:35     打赏
3楼

root@firefly:~# io -4 -r 0xFDC600B8
fdc600b8:  00001600

根据TRM,读取GRF_GPIO4C_P寄存器的值地址是0xFDC600B8,第[9:8]位代表上下拉情况,此时[9:8]为b'10,代表下拉,与配置的不符合,使用的是默认值,也就是设备树的配置未生效;


助工
2024-02-04 18:58:53     打赏
4楼

可能是pinctrl dts配置存在问题,导致pinctrl未生效


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]