初级会员

- 积分
- 55
- 金钱
- 55
- 注册时间
- 2018-3-2
- 在线时间
- 9 小时
|
本帖最后由 lhb292 于 2025-10-16 17:59 编辑
这段代码是Linux设备树中针对RK系列芯片(如RK3588、RK3568)UART2接口的引脚复用配置定义,主要涉及引脚功能复用模式和电气特性设置
关键配置解析
节点结构‌
uart2_xfer_pins子节点定义了UART2数据传输引脚组,包含接收(RX)和发送(TX)两个引脚的配置。/omit-if-no-ref/表示该节点未被引用时不会编译到最终设备树中,避免资源冲突
引脚复用参数‌
rockchip,pins属性格式为<bank pin_num mux_func &phandle>:
bank:引脚所属的GPIO组编号(如1表示GPIO1组)
pin_num:引脚在组内的编号(如RK_PC2表示GPIO1组的C2引脚)
mux_func:复用功能编号(18/19对应UART2的TX/RX功能)
phandle:电气配置引用(如pcfg_pull_up启用上拉电阻)
电气特性‌
RX引脚配置&pcfg_pull_up启用上拉电阻,增强信号稳定性
TX引脚配置&pcfg_pull_none不启用上下拉,符合UART输出特性
典型应用场景
该配置通常用于嵌入式开发中调试串口或外设通信,需配合内核驱动完成以下操作:
在板级设备树(如rk3588s-pinctrl.dtsi)中声明该节点
通过pinctrl-0属性引用该引脚组
配置8250串口驱动实现数据传输
可以查这个复用功能列表:
&pinctrl {
rm_io0 {
/omit-if-no-ref/
rm_io0_uart1_tx: rm-io0-uart1-tx {
rockchip,pins =
<0 RK_PA0 16 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart1_rx: rm-io0-uart1-rx {
rockchip,pins =
<0 RK_PA0 17 &pcfg_pull_up>;
};
/omit-if-no-ref/
rm_io0_uart2_tx: rm-io0-uart2-tx {
rockchip,pins =
<0 RK_PA0 18 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart2_rx: rm-io0-uart2-rx {
rockchip,pins =
<0 RK_PA0 19 &pcfg_pull_up>;
};
/omit-if-no-ref/
rm_io0_uart3_tx: rm-io0-uart3-tx {
rockchip,pins =
<0 RK_PA0 20 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart3_rx: rm-io0-uart3-rx {
rockchip,pins =
<0 RK_PA0 21 &pcfg_pull_up>;
};
/omit-if-no-ref/
rm_io0_uart3_ctsn: rm-io0-uart3-ctsn {
rockchip,pins =
<0 RK_PA0 22 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart3_rtsn: rm-io0-uart3-rtsn {
rockchip,pins =
<0 RK_PA0 23 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart4_tx: rm-io0-uart4-tx {
rockchip,pins =
<0 RK_PA0 24 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart4_rx: rm-io0-uart4-rx {
rockchip,pins =
<0 RK_PA0 25 &pcfg_pull_up>;
};
/omit-if-no-ref/
rm_io0_uart4_ctsn: rm-io0-uart4-ctsn {
rockchip,pins =
<0 RK_PA0 26 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_uart4_rtsn: rm-io0-uart4-rtsn {
rockchip,pins =
<0 RK_PA0 27 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_mipite: rm-io0-mipite {
rockchip,pins =
<0 RK_PA0 28 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_clk_32k: rm-io0-clk-32k {
rockchip,pins =
<0 RK_PA0 29 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c0_scl: rm-io0-i2c0-scl {
rockchip,pins =
<0 RK_PA0 30 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c0_sda: rm-io0-i2c0-sda {
rockchip,pins =
<0 RK_PA0 31 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c1_scl: rm-io0-i2c1-scl {
rockchip,pins =
<0 RK_PA0 32 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c1_sda: rm-io0-i2c1-sda {
rockchip,pins =
<0 RK_PA0 33 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c2_scl: rm-io0-i2c2-scl {
rockchip,pins =
<0 RK_PA0 34 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_i2c2_sda: rm-io0-i2c2-sda {
rockchip,pins =
<0 RK_PA0 35 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_clk0: rm-io0-pdm-clk0 {
rockchip,pins =
<0 RK_PA0 36 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_sdi0: rm-io0-pdm-sdi0 {
rockchip,pins =
<0 RK_PA0 37 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_sdi1: rm-io0-pdm-sdi1 {
rockchip,pins =
<0 RK_PA0 38 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_sdi2: rm-io0-pdm-sdi2 {
rockchip,pins =
<0 RK_PA0 39 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_sdi3: rm-io0-pdm-sdi3 {
rockchip,pins =
<0 RK_PA0 40 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_can1_tx: rm-io0-can1-tx {
rockchip,pins =
<0 RK_PA0 41 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_can1_rx: rm-io0-can1-rx {
rockchip,pins =
<0 RK_PA0 42 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_can0_tx: rm-io0-can0-tx {
rockchip,pins =
<0 RK_PA0 43 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_can0_rx: rm-io0-can0-rx {
rockchip,pins =
<0 RK_PA0 44 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm0_ch0: rm-io0-pwm0-ch0 {
rockchip,pins =
<0 RK_PA0 45 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm0_ch1: rm-io0-pwm0-ch1 {
rockchip,pins =
<0 RK_PA0 46 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm0_ch2: rm-io0-pwm0-ch2 {
rockchip,pins =
<0 RK_PA0 47 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm0_ch3: rm-io0-pwm0-ch3 {
rockchip,pins =
<0 RK_PA0 48 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch0: rm-io0-pwm1-ch0 {
rockchip,pins =
<0 RK_PA0 49 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch1: rm-io0-pwm1-ch1 {
rockchip,pins =
<0 RK_PA0 50 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch2: rm-io0-pwm1-ch2 {
rockchip,pins =
<0 RK_PA0 51 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch3: rm-io0-pwm1-ch3 {
rockchip,pins =
<0 RK_PA0 52 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch4: rm-io0-pwm1-ch4 {
rockchip,pins =
<0 RK_PA0 53 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch5: rm-io0-pwm1-ch5 {
rockchip,pins =
<0 RK_PA0 54 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch6: rm-io0-pwm1-ch6 {
rockchip,pins =
<0 RK_PA0 55 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_pwm1_ch7: rm-io0-pwm1-ch7 {
rockchip,pins =
<0 RK_PA0 56 &pcfg_pull_none_drv_level_1>;
};
/omit-if-no-ref/
rm_io0_touch_key_drive: rm-io0-touch-key-drive {
rockchip,pins =
<0 RK_PA0 57 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in0: rm-io0-touch-key-in0 {
rockchip,pins =
<0 RK_PA0 58 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in1: rm-io0-touch-key-in1 {
rockchip,pins =
<0 RK_PA0 59 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in2: rm-io0-touch-key-in2 {
rockchip,pins =
<0 RK_PA0 60 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in3: rm-io0-touch-key-in3 {
rockchip,pins =
<0 RK_PA0 61 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in4: rm-io0-touch-key-in4 {
rockchip,pins =
<0 RK_PA0 62 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in5: rm-io0-touch-key-in5 {
rockchip,pins =
<0 RK_PA0 63 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in6: rm-io0-touch-key-in6 {
rockchip,pins =
<0 RK_PA0 64 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_touch_key_in7: rm-io0-touch-key-in7 {
rockchip,pins =
<0 RK_PA0 65 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_mclk: rm-io0-sai0-mclk {
rockchip,pins =
<0 RK_PA0 66 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sclk: rm-io0-sai0-sclk {
rockchip,pins =
<0 RK_PA0 67 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_lrck: rm-io0-sai0-lrck {
rockchip,pins =
<0 RK_PA0 68 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sdi0: rm-io0-sai0-sdi0 {
rockchip,pins =
<0 RK_PA0 69 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sdi1: rm-io0-sai0-sdi1 {
rockchip,pins =
<0 RK_PA0 70 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sdi2: rm-io0-sai0-sdi2 {
rockchip,pins =
<0 RK_PA0 71 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sdi3: rm-io0-sai0-sdi3 {
rockchip,pins =
<0 RK_PA0 72 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai0_sdo: rm-io0-sai0-sdo {
rockchip,pins =
<0 RK_PA0 73 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_mclk: rm-io0-sai1-mclk {
rockchip,pins =
<0 RK_PA0 74 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sclk: rm-io0-sai1-sclk {
rockchip,pins =
<0 RK_PA0 75 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_lrck: rm-io0-sai1-lrck {
rockchip,pins =
<0 RK_PA0 76 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sdi: rm-io0-sai1-sdi {
rockchip,pins =
<0 RK_PA0 77 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sdo0: rm-io0-sai1-sdo0 {
rockchip,pins =
<0 RK_PA0 78 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sdo1: rm-io0-sai1-sdo1 {
rockchip,pins =
<0 RK_PA0 79 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sdo2: rm-io0-sai1-sdo2 {
rockchip,pins =
<0 RK_PA0 80 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_sai1_sdo3: rm-io0-sai1-sdo3 {
rockchip,pins =
<0 RK_PA0 81 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_spi0_clk: rm-io0-spi0-clk {
rockchip,pins =
<0 RK_PA0 82 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi0_mosi: rm-io0-spi0-mosi {
rockchip,pins =
<0 RK_PA0 83 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi0_miso: rm-io0-spi0-miso {
rockchip,pins =
<0 RK_PA0 84 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi0_csn0: rm-io0-spi0-csn0 {
rockchip,pins =
<0 RK_PA0 85 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi0_csn1: rm-io0-spi0-csn1 {
rockchip,pins =
<0 RK_PA0 86 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi1_clk: rm-io0-spi1-clk {
rockchip,pins =
<0 RK_PA0 87 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi1_mosi: rm-io0-spi1-mosi {
rockchip,pins =
<0 RK_PA0 88 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi1_miso: rm-io0-spi1-miso {
rockchip,pins =
<0 RK_PA0 89 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi1_csn0: rm-io0-spi1-csn0 {
rockchip,pins =
<0 RK_PA0 90 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_spi1_csn1: rm-io0-spi1-csn1 {
rockchip,pins =
<0 RK_PA0 91 &pcfg_pull_none_drv_level_3>;
};
/omit-if-no-ref/
rm_io0_wdt_tsadc_shut: rm-io0-wdt-tsadc-shut {
rockchip,pins =
<0 RK_PA0 92 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pmu_sleep: rm-io0-pmu-sleep {
rockchip,pins =
<0 RK_PA0 93 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_core_power_off: rm-io0-core-power-off {
rockchip,pins =
<0 RK_PA0 94 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_spdif_tx: rm-io0-spdif-tx {
rockchip,pins =
<0 RK_PA0 95 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_spdif_rx: rm-io0-spdif-rx {
rockchip,pins =
<0 RK_PA0 96 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a0: rm-io0-pwm1-bip-cntr-a0 {
rockchip,pins =
<0 RK_PA0 97 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a1: rm-io0-pwm1-bip-cntr-a1 {
rockchip,pins =
<0 RK_PA0 98 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a2: rm-io0-pwm1-bip-cntr-a2 {
rockchip,pins =
<0 RK_PA0 99 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a3: rm-io0-pwm1-bip-cntr-a3 {
rockchip,pins =
<0 RK_PA0 100 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a4: rm-io0-pwm1-bip-cntr-a4 {
rockchip,pins =
<0 RK_PA0 101 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_a5: rm-io0-pwm1-bip-cntr-a5 {
rockchip,pins =
<0 RK_PA0 102 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b0: rm-io0-pwm1-bip-cntr-b0 {
rockchip,pins =
<0 RK_PA0 103 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b1: rm-io0-pwm1-bip-cntr-b1 {
rockchip,pins =
<0 RK_PA0 104 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b2: rm-io0-pwm1-bip-cntr-b2 {
rockchip,pins =
<0 RK_PA0 105 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b3: rm-io0-pwm1-bip-cntr-b3 {
rockchip,pins =
<0 RK_PA0 106 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b4: rm-io0-pwm1-bip-cntr-b4 {
rockchip,pins =
<0 RK_PA0 107 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pwm1_bip_cntr_b5: rm-io0-pwm1-bip-cntr-b5 {
rockchip,pins =
<0 RK_PA0 108 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_pdm_clk1: rm-io0-pdm-clk1 {
rockchip,pins =
<0 RK_PA0 109 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_eth_rmii0_ppsclk: rm-io0-eth-rmii0-ppsclk {
rockchip,pins =
<0 RK_PA0 110 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_eth_rmii0_ppstrig: rm-io0-eth-rmii0-ppstrig {
rockchip,pins =
<0 RK_PA0 111 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_eth_rmii1_ppsclk: rm-io0-eth-rmii1-ppsclk {
rockchip,pins =
<0 RK_PA0 112 &pcfg_pull_none>;
};
/omit-if-no-ref/
rm_io0_eth_rmii1_ppstrig: rm-io0-eth-rmii1-ppstrig {
rockchip,pins =
<0 RK_PA0 113 &pcfg_pull_none>;
};
};
|
|