您需要先 登录 才能评论/回答

全部评论(4)
需要用到Rockchip RK3568 TRM Part1 V1.1-20210301.pdf文档,
在第3章中,先找到SYS_GRF的地址是0xfdc60000,,
然后以gpio4B为例:pdf切换到3.7章,找到gpio4B的iomux对应寄存器偏移:是0x006c或0x0068:
切到3.7.2节,找到GRF_GPIO4B_IOMUX_H/L,gpio4 B4/5在H里main,所以IOMUX的地址是0xfdc6006c,然后B4B5要复用成I2C2,也就是11,(设置为0x3311,是因为在设置之前读取寄存器的值是33xx,15:8位的值不做修改,只修改后7:0,只改需要改的,不必要改的不动)

2025-01-08 15:15:17
gpio4B5的iomux寄存器地址是:SYS_GRF地址 + 偏移 (SYS_GRF的地址是基地址,基地址也能在TRM的pdf中查到) 也就是0xfdc6006c,先去调试串口,用devmem 0xfdc6006c命令,会输出目前寄存器中的值,只改你需要改的位,比方说gpio4b5的功能改为I2c2(我这里gpio4b5对应的 i2c clk )

rk3568 pin config中你框起来的两条不需要修改,对应的函数会判断,如果是瑞芯微的板子,直接返回success然后跳出函数,不会按照你写的寄存器地址设置值

2025-01-08 15:22:28
对应的驱动在://drivers/hdf_core/framework/model/input/driver/hdf_touch.c中InputPinMuxCfg函数 函数开头:#if defined(CONFIG_ARCH_SPRD) || defined(CONFIG_ARCH_ROCKCHIP) || defined(LOSCFG_PLATFORM_STM32MP157) || \ defined(CONFIG_ARCH_MESON) || defined(CONFIG_ARCH_NXP_TOUCH) return HDF_SUCCESS; #endif 直接退出了

