根据您提供的原始设备树、修改后设备树、修改前的GPIO状态和修改后的GPIO状态我通过对比分析总结出以下引脚配置的变化。这些变化反映了您基于BCU原理图对设备树进行的调整。一、设备树修改概览主要修改集中在以下几个部分新增/启用了 CAN2 接口使用了can2_m0_pins引脚组新增/启用了 UART9 接口使用了uart9m1_xfer引脚组禁用了 5G 模块的电源控制将5g-rst和5g-pwr的状态从okay改为disabled禁用了耳机检测功能rk_headset状态从okay改为disabled禁用了 PWM5 和 PWM14 对应的背光将dsi1_backlight和lvds_backlight设为disabled但保留了 PWM 控制器本身后面会看到实际效果I2C2 总线被禁用i2c2状态从okay改为disabledSPI2 的子节点变化spi1被删除只保留spi0其他引脚复用调整例如新增了uart9m1_xfer和can2_m0_pins的 pinctrl 定义下面详细列出每个被修改的引脚及其变化。二、引脚配置变化设备树层面1. CAN2 相关引脚GPIO4_B4, GPIO4_B5原始设备树CAN2 未启用引脚未配置或使用其他功能如 I2C2修改后设备树新增了can2_m0_pins定义dtscan2_m0_pins: can2-m0-pins { rockchip,pins 4 RK_PB4 3 pcfg_pull_none, 4 RK_PB5 3 pcfg_pull_none; };并在can2节点中启用dtscan2 { status okay; compatible rockchip,can-1.0; assigned-clocks cru CLK_CAN2; assigned-clock-rates 200000000; pinctrl-names default; pinctrl-0 can2_m0_pins; };效果将 GPIO4_B4 和 GPIO4_B5 的复用功能改为Alt3对应 CAN2_RX_M0 和 CAN2_TX_M0。2. UART9 相关引脚GPIO4_PC5, GPIO4_PC6原始设备树无 UART9 配置这两个引脚可能用于其他功能如触摸屏修改后设备树新增了uart9m1_xfer定义dtsuart9m1_xfer: uart9m1-xfer { rockchip,pins 4 RK_PC5 4 pcfg_pull_up, 4 RK_PC6 4 pcfg_pull_up; };并启用uart9dtsuart9 { status okay; pinctrl-names default; pinctrl-0 uart9m1_xfer; };效果将 GPIO4_PC5 和 GPIO4_PC6 的复用功能改为Alt4对应 UART9_TX 和 UART9_RX。3. 5G 模块电源控制引脚GPIO1_PB1, GPIO1_PB2原始设备树5g-pwr和5g-rst节点状态为okay对应 GPIO1_PB1、GPIO1_PB2 被用作输出电源使能/复位。修改后设备树这两个节点的status改为disabled。效果这两个 GPIO 不再被驱动变为未使用状态在 pinmux 中显示为(MUX UNCLAIMED)或变为 GPIO 输入。4. 耳机检测引脚GPIO4_PD2原始设备树rk_headset节点状态为okay使用headset_gpio gpio4 RK_PD2 GPIO_ACTIVE_HIGH。修改后设备树rk_headset状态改为disabled。效果该引脚不再被音频驱动占用变为未使用状态。5. PWM5 和 PWM14 背光控制引脚GPIO0_PC4, GPIO3_PC4注意在设备树中dsi1_backlight和lvds_backlight节点被设置了status disabled但对应的 PWM 控制器pwm5和pwm14并未被禁用仍为okay。因此引脚仍然被 PWM 控制器占用但背光设备不工作。效果GPIO0_PC4PWM5和 GPIO3_PC4PWM14仍然配置为 PWM 功能但背光节点被禁用后不会产生实际背光控制。6. I2C2 总线引脚GPIO4_PC0, GPIO4_PC1不I2C2 在 RK3568 上通常使用 GPIO4_PB4 和 GPIO4_PB5等一下需要核实注意您设备树中i2c2的status从okay改为disabled。但 I2C2 的引脚在 RK3568 上默认是GPIO4_B4和GPIO4_B5也就是前面 CAN2 使用的引脚。由于 CAN2 启用了同一组引脚Alt3而 I2C2 被禁用所以引脚被 CAN2 占用。实际上i2c2m1_xfer的引脚定义与can2_m0_pins冲突但 CAN2 的优先级高因为 I2C2 被禁用了。效果原本可能用于 I2C2 的引脚现在被 CAN2 占用。7. SPI2 子节点删除的影响原始设备树中spi2有两个子节点spi0和spi1修改后只保留了spi0。这会影响 SPI2 的片选引脚CS1 不再使用但不一定影响引脚复用本身因为 SPI2 的引脚如GPIO2_C0等仍然被 SPI2 控制器占用。不过由于删除了一个子节点对应的片选引脚GPIO2_C5? 需要查表可能不再被驱动但 pinmux 状态可能不变。8. 新增的 pinctrl 组uart9m1_xfer,can2_m0_pins这些是全新的引脚配置组之前不存在。三、实际 Pinmux 状态变化对比新旧 GPIO 状态文件从您提供的两个pinmux-pins输出中我们重点对比发生变化的部分原状态部分关键引脚textpin 41 (gpio1-9): 5g-pwr gpio1:41 function 5g group net_5g_pwr_gpio pin 42 (gpio1-10): 5g-rst gpio1:42 function 5g group net_5g_rst_gpio pin 116 (gpio3-20): fe700020.pwm (GPIO UNCLAIMED) function pwm14 group pwm14m0-pins pin 140 (gpio4-12): fe5b0000.i2c (GPIO UNCLAIMED) function i2c2 group i2c2m1-xfer pin 141 (gpio4-13): fe5b0000.i2c (GPIO UNCLAIMED) function i2c2 group i2c2m1-xfer pin 146 (gpio4-18): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins pin 147 (gpio4-19): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins pin 149 (gpio4-21): (MUX UNCLAIMED) (GPIO UNCLAIMED) (UART9 未启用) pin 150 (gpio4-22): (MUX UNCLAIMED) (GPIO UNCLAIMED) pin 154 (gpio4-26): rk-headset gpio4:154 function headphone group hp-det新状态修改后textpin 41 (gpio1-9): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 5g-pwr 被禁用 pin 42 (gpio1-10): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 5g-rst 被禁用 pin 116 (gpio3-20): (MUX UNCLAIMED) (GPIO UNCLAIMED) // pwm14 仍然存在但新状态显示 UNCLAIMED等一下检查 pin 140 (gpio4-12): (MUX UNCLAIMED) (GPIO UNCLAIMED) // i2c2 被禁用 pin 141 (gpio4-13): (MUX UNCLAIMED) (GPIO UNCLAIMED) // i2c2 被禁用 pin 146 (gpio4-18): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins // 未变 pin 147 (gpio4-19): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins // 未变 pin 149 (gpio4-21): fe6d0000.serial (GPIO UNCLAIMED) function uart9 group uart9m1-xfer // UART9 启用 pin 150 (gpio4-22): fe6d0000.serial (GPIO UNCLAIMED) function uart9 group uart9m1-xfer // UART9 启用 pin 154 (gpio4-26): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 耳机检测被禁用 另外pin 92 (gpio2-28): 原状态为 fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m1-cs1 新状态中变为 (MUX UNCLAIMED) (GPIO UNCLAIMED) 实际上新状态中 pin 92 显示为 (MUX UNCLAIMED) (GPIO UNCLAIMED)说明 SPI2 的 CS1 引脚不再被使用因为删除了 spi1 子节点。重要发现GPIO0_PC4 (pin 20)在新状态中显示为fe6e0010.pwm (GPIO UNCLAIMED) function pwm5 group pwm5-pins说明 PWM5 依然启用与设备树一致。GPIO3_PC4 (pin 116)在新状态中却显示为(MUX UNCLAIMED)这意味着PWM14 实际上没有被占用但设备树中pwm14是okay这可能是由于lvds_backlight被禁用后PWM14 没有被任何设备使用但 PWM 控制器本身仍然可以工作只是没有 consumer所以 pinmux 可能没有将其配置为 PWM这需要进一步分析。但根据您的测试系统可以运行说明问题不大。四、总结您改变了哪些 pin 的配置是怎么改的引脚 (pin)原始功能修改后功能修改方式在设备树中GPIO1_PB1 (pin 41)5g-pwr 输出未使用禁用将5g-pwr节点的status改为disabledGPIO1_PB2 (pin 42)5g-rst 输出未使用禁用将5g-rst节点的status改为disabledGPIO4_PB4 (pin 140)I2C2_SDA_M1CAN2_RX_M0禁用 I2C2启用 CAN2配置can2_m0_pins为 Alt3GPIO4_PB5 (pin 141)I2C2_SCL_M1CAN2_TX_M0同上GPIO4_PC5 (pin 149)未使用UART9_TX_M1新增uart9m1_xfer启用 UART9配置为 Alt4GPIO4_PC6 (pin 150)未使用UART9_RX_M1同上GPIO4_PD2 (pin 154)耳机检测输入未使用将rk_headset节点的status改为disabledGPIO3_PC4 (pin 116)PWM14_M0未使用因背光禁用将lvds_backlight的status改为disabled但 PWM14 控制器仍为okay实际 pinmux 显示未使用可能是由于缺少 consumer。GPIO0_PC4 (pin 20)PWM5保持 PWM5但背光禁用将dsi1_backlight的status改为disabledPWM5 控制器仍为okaypinmux 仍显示为 PWM。GPIO2_C5 (pin 92)SPI2_CS1用于 spi1未使用删除了spi2下的spi1子节点导致该片选引脚不再被使用。GPIO4_B4, B5 还涉及 I2C2 禁用--i2c2的status改为disabled其他未列出的引脚如 CAN0、CAN1、UART8 等未发生变化。五、注意事项您的新设备树中pwm5和pwm14仍然为okay但对应的背光节点被禁用这可能导致 PWM 控制器没有使用者但不会影响系统启动。实际 pinmux 显示 PWM14 引脚未被使用可能是因为没有驱动申请该 PWM 通道。I2C2 与 CAN2 共用同一组引脚GPIO4_B4/B5由于您禁用了 I2C2 并启用了 CAN2因此没有冲突。删除 SPI2 的第二个子节点只影响 CS1 引脚GPIO2_C5该引脚不再被任何设备使用。以上就是您基于 BCU 原理图对设备树进行修改后引脚配置的变化总结。
设备树驱动修改
发布时间:2026/5/30 19:54:41
根据您提供的原始设备树、修改后设备树、修改前的GPIO状态和修改后的GPIO状态我通过对比分析总结出以下引脚配置的变化。这些变化反映了您基于BCU原理图对设备树进行的调整。一、设备树修改概览主要修改集中在以下几个部分新增/启用了 CAN2 接口使用了can2_m0_pins引脚组新增/启用了 UART9 接口使用了uart9m1_xfer引脚组禁用了 5G 模块的电源控制将5g-rst和5g-pwr的状态从okay改为disabled禁用了耳机检测功能rk_headset状态从okay改为disabled禁用了 PWM5 和 PWM14 对应的背光将dsi1_backlight和lvds_backlight设为disabled但保留了 PWM 控制器本身后面会看到实际效果I2C2 总线被禁用i2c2状态从okay改为disabledSPI2 的子节点变化spi1被删除只保留spi0其他引脚复用调整例如新增了uart9m1_xfer和can2_m0_pins的 pinctrl 定义下面详细列出每个被修改的引脚及其变化。二、引脚配置变化设备树层面1. CAN2 相关引脚GPIO4_B4, GPIO4_B5原始设备树CAN2 未启用引脚未配置或使用其他功能如 I2C2修改后设备树新增了can2_m0_pins定义dtscan2_m0_pins: can2-m0-pins { rockchip,pins 4 RK_PB4 3 pcfg_pull_none, 4 RK_PB5 3 pcfg_pull_none; };并在can2节点中启用dtscan2 { status okay; compatible rockchip,can-1.0; assigned-clocks cru CLK_CAN2; assigned-clock-rates 200000000; pinctrl-names default; pinctrl-0 can2_m0_pins; };效果将 GPIO4_B4 和 GPIO4_B5 的复用功能改为Alt3对应 CAN2_RX_M0 和 CAN2_TX_M0。2. UART9 相关引脚GPIO4_PC5, GPIO4_PC6原始设备树无 UART9 配置这两个引脚可能用于其他功能如触摸屏修改后设备树新增了uart9m1_xfer定义dtsuart9m1_xfer: uart9m1-xfer { rockchip,pins 4 RK_PC5 4 pcfg_pull_up, 4 RK_PC6 4 pcfg_pull_up; };并启用uart9dtsuart9 { status okay; pinctrl-names default; pinctrl-0 uart9m1_xfer; };效果将 GPIO4_PC5 和 GPIO4_PC6 的复用功能改为Alt4对应 UART9_TX 和 UART9_RX。3. 5G 模块电源控制引脚GPIO1_PB1, GPIO1_PB2原始设备树5g-pwr和5g-rst节点状态为okay对应 GPIO1_PB1、GPIO1_PB2 被用作输出电源使能/复位。修改后设备树这两个节点的status改为disabled。效果这两个 GPIO 不再被驱动变为未使用状态在 pinmux 中显示为(MUX UNCLAIMED)或变为 GPIO 输入。4. 耳机检测引脚GPIO4_PD2原始设备树rk_headset节点状态为okay使用headset_gpio gpio4 RK_PD2 GPIO_ACTIVE_HIGH。修改后设备树rk_headset状态改为disabled。效果该引脚不再被音频驱动占用变为未使用状态。5. PWM5 和 PWM14 背光控制引脚GPIO0_PC4, GPIO3_PC4注意在设备树中dsi1_backlight和lvds_backlight节点被设置了status disabled但对应的 PWM 控制器pwm5和pwm14并未被禁用仍为okay。因此引脚仍然被 PWM 控制器占用但背光设备不工作。效果GPIO0_PC4PWM5和 GPIO3_PC4PWM14仍然配置为 PWM 功能但背光节点被禁用后不会产生实际背光控制。6. I2C2 总线引脚GPIO4_PC0, GPIO4_PC1不I2C2 在 RK3568 上通常使用 GPIO4_PB4 和 GPIO4_PB5等一下需要核实注意您设备树中i2c2的status从okay改为disabled。但 I2C2 的引脚在 RK3568 上默认是GPIO4_B4和GPIO4_B5也就是前面 CAN2 使用的引脚。由于 CAN2 启用了同一组引脚Alt3而 I2C2 被禁用所以引脚被 CAN2 占用。实际上i2c2m1_xfer的引脚定义与can2_m0_pins冲突但 CAN2 的优先级高因为 I2C2 被禁用了。效果原本可能用于 I2C2 的引脚现在被 CAN2 占用。7. SPI2 子节点删除的影响原始设备树中spi2有两个子节点spi0和spi1修改后只保留了spi0。这会影响 SPI2 的片选引脚CS1 不再使用但不一定影响引脚复用本身因为 SPI2 的引脚如GPIO2_C0等仍然被 SPI2 控制器占用。不过由于删除了一个子节点对应的片选引脚GPIO2_C5? 需要查表可能不再被驱动但 pinmux 状态可能不变。8. 新增的 pinctrl 组uart9m1_xfer,can2_m0_pins这些是全新的引脚配置组之前不存在。三、实际 Pinmux 状态变化对比新旧 GPIO 状态文件从您提供的两个pinmux-pins输出中我们重点对比发生变化的部分原状态部分关键引脚textpin 41 (gpio1-9): 5g-pwr gpio1:41 function 5g group net_5g_pwr_gpio pin 42 (gpio1-10): 5g-rst gpio1:42 function 5g group net_5g_rst_gpio pin 116 (gpio3-20): fe700020.pwm (GPIO UNCLAIMED) function pwm14 group pwm14m0-pins pin 140 (gpio4-12): fe5b0000.i2c (GPIO UNCLAIMED) function i2c2 group i2c2m1-xfer pin 141 (gpio4-13): fe5b0000.i2c (GPIO UNCLAIMED) function i2c2 group i2c2m1-xfer pin 146 (gpio4-18): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins pin 147 (gpio4-19): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins pin 149 (gpio4-21): (MUX UNCLAIMED) (GPIO UNCLAIMED) (UART9 未启用) pin 150 (gpio4-22): (MUX UNCLAIMED) (GPIO UNCLAIMED) pin 154 (gpio4-26): rk-headset gpio4:154 function headphone group hp-det新状态修改后textpin 41 (gpio1-9): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 5g-pwr 被禁用 pin 42 (gpio1-10): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 5g-rst 被禁用 pin 116 (gpio3-20): (MUX UNCLAIMED) (GPIO UNCLAIMED) // pwm14 仍然存在但新状态显示 UNCLAIMED等一下检查 pin 140 (gpio4-12): (MUX UNCLAIMED) (GPIO UNCLAIMED) // i2c2 被禁用 pin 141 (gpio4-13): (MUX UNCLAIMED) (GPIO UNCLAIMED) // i2c2 被禁用 pin 146 (gpio4-18): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins // 未变 pin 147 (gpio4-19): fe580000.can (GPIO UNCLAIMED) function can1 group can1m1-pins // 未变 pin 149 (gpio4-21): fe6d0000.serial (GPIO UNCLAIMED) function uart9 group uart9m1-xfer // UART9 启用 pin 150 (gpio4-22): fe6d0000.serial (GPIO UNCLAIMED) function uart9 group uart9m1-xfer // UART9 启用 pin 154 (gpio4-26): (MUX UNCLAIMED) (GPIO UNCLAIMED) // 耳机检测被禁用 另外pin 92 (gpio2-28): 原状态为 fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m1-cs1 新状态中变为 (MUX UNCLAIMED) (GPIO UNCLAIMED) 实际上新状态中 pin 92 显示为 (MUX UNCLAIMED) (GPIO UNCLAIMED)说明 SPI2 的 CS1 引脚不再被使用因为删除了 spi1 子节点。重要发现GPIO0_PC4 (pin 20)在新状态中显示为fe6e0010.pwm (GPIO UNCLAIMED) function pwm5 group pwm5-pins说明 PWM5 依然启用与设备树一致。GPIO3_PC4 (pin 116)在新状态中却显示为(MUX UNCLAIMED)这意味着PWM14 实际上没有被占用但设备树中pwm14是okay这可能是由于lvds_backlight被禁用后PWM14 没有被任何设备使用但 PWM 控制器本身仍然可以工作只是没有 consumer所以 pinmux 可能没有将其配置为 PWM这需要进一步分析。但根据您的测试系统可以运行说明问题不大。四、总结您改变了哪些 pin 的配置是怎么改的引脚 (pin)原始功能修改后功能修改方式在设备树中GPIO1_PB1 (pin 41)5g-pwr 输出未使用禁用将5g-pwr节点的status改为disabledGPIO1_PB2 (pin 42)5g-rst 输出未使用禁用将5g-rst节点的status改为disabledGPIO4_PB4 (pin 140)I2C2_SDA_M1CAN2_RX_M0禁用 I2C2启用 CAN2配置can2_m0_pins为 Alt3GPIO4_PB5 (pin 141)I2C2_SCL_M1CAN2_TX_M0同上GPIO4_PC5 (pin 149)未使用UART9_TX_M1新增uart9m1_xfer启用 UART9配置为 Alt4GPIO4_PC6 (pin 150)未使用UART9_RX_M1同上GPIO4_PD2 (pin 154)耳机检测输入未使用将rk_headset节点的status改为disabledGPIO3_PC4 (pin 116)PWM14_M0未使用因背光禁用将lvds_backlight的status改为disabled但 PWM14 控制器仍为okay实际 pinmux 显示未使用可能是由于缺少 consumer。GPIO0_PC4 (pin 20)PWM5保持 PWM5但背光禁用将dsi1_backlight的status改为disabledPWM5 控制器仍为okaypinmux 仍显示为 PWM。GPIO2_C5 (pin 92)SPI2_CS1用于 spi1未使用删除了spi2下的spi1子节点导致该片选引脚不再被使用。GPIO4_B4, B5 还涉及 I2C2 禁用--i2c2的status改为disabled其他未列出的引脚如 CAN0、CAN1、UART8 等未发生变化。五、注意事项您的新设备树中pwm5和pwm14仍然为okay但对应的背光节点被禁用这可能导致 PWM 控制器没有使用者但不会影响系统启动。实际 pinmux 显示 PWM14 引脚未被使用可能是因为没有驱动申请该 PWM 通道。I2C2 与 CAN2 共用同一组引脚GPIO4_B4/B5由于您禁用了 I2C2 并启用了 CAN2因此没有冲突。删除 SPI2 的第二个子节点只影响 CS1 引脚GPIO2_C5该引脚不再被任何设备使用。以上就是您基于 BCU 原理图对设备树进行修改后引脚配置的变化总结。