当前位置:首页>Linux>RK3506 Linux系统开发(十二):引脚复用的配置

RK3506 Linux系统开发(十二):引脚复用的配置

  • 2026-09-07 23:42:50
RK3506 Linux系统开发(十二):引脚复用的配置

概述

    本文我们讲述RK3506 Linux平台上在驱动适配的过程中,常常用到的引脚复用的配置方法。我第一次帮一个朋友解决RK3506 Linux上的引脚复用配置的时候,他写的引脚复用的配置信息跟我之前熟悉的RK3288、RK3399、RK3568、RK3588等平台都不一样,我当时就大言不惭的告诉他,写错了,后来,等我真正接触到RK3506的时候,才发现是我错了,是我用固有的经验去考虑问题了。这也反映出一个问题,作为一个技术人员,我们还是要不断的学习的,不断的提高自己的认识,这样才能不被这个社会淘汰;

引脚复用的配置

RK3506平台上IO引脚的复用配置,我们可以分为两种情况,通用IO引脚的复用配置和RM_IO引脚复用的配置。

通用IO复用的配置

通用IO的引脚配置,就是我们使用的IO引脚不是RM_IO类型的。比如:

在UART5的引脚复用配置中,它使用的GPIO3_B4和GPIO3_B3,我们添加uart5的引脚复用配置信息:
&uart5 {	pinctrl-0 = <&uart5m0_xfer_pins>;	status = "okay";};
我们使用的了uart5m0_xfer_pins 这组引脚配置。我们可以从:
RK3506_Linux/kernel/arch/arm/boot/dts/rk3506-pinctrl.dtsi文件中得到它的配置信息
[......]	uart5 {		/omit-if-no-ref/		uart5m0_xfer_pins: uart5m0-xfer-pins {			rockchip,pins =/* uart5_rx_m0 */				<3 RK_PB3 1 &pcfg_pull_up>, ---------------------(1)/* uart5_tx_m0 */				<3 RK_PB4 1 &pcfg_pull_up>; ----------------------(2)		};		[......]	};

(1)设置RK_PB3引脚作为UART5的RX引脚;

(2)设置RK_PB4引脚作为UART5的TX引脚;

我们可以总结一个小技巧,对于没有使用RM_IO引脚复用配置,我们直接在rk3506-pinctrl.dtsi中查找;

RM_IO引脚复用的配置

RM_IO这组io引脚,它的引脚复用功能非常多。因此RK单独用rk3506-pinctrl-rmio.dtsi文件进行管理,比如:

uart3我们使用了RM_IO15和RM_IO14引脚,因此它的IO引脚复用配置如下:
&uart3 {	pinctrl-0 = <&rm_io14_uart3_tx &rm_io15_uart3_rx>; ------------- (1)	status = "okay";                                   ------------- (2)};

(1)设置RM_IO14引脚作为UART3的TX引脚;

(2)设置RM_IO15引脚作为UART3的RX引脚;

rm_io14_uart3_tx和rm_io15_uart3_rx,我们可以从RK3506_Linux/kernel/arch/arm/boot/dts/rk3506-pinctrl-rmio.dtsi文件中得到它的配置信息

rm_io14 {/omit-if-no-ref/		[......]		/omit-if-no-ref/		rm_io14_uart3_tx: rm-io14-uart3-tx {			rockchip,pins =				<0 RK_PB6 20 &pcfg_pull_none>;		};	rm_io15 {		[.....]		/omit-if-no-ref/		rm_io15_uart3_rx: rm-io15-uart3-rx {			rockchip,pins =				<0 RK_PB7 21 &pcfg_pull_up>;		};

我们可以总结一个小技巧,对于使用RM_IO引脚复用配置,我们直接在rk3506-pinctrl-rmio.dtsi中查找;

RM_IO的引脚复用功能非常多,感兴趣的同学可以阅读rk3506-pinctrl-rmio.dtsi文件中获取详细的配一个引脚支持的功能;

总结

    本文讲述了在RK3506 Linux平台上IO引脚复用的配置方法,下一章,我们开启CAN模块;

最新文章

随机文章