You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Toradex Colibri IMX8X引脚63启用PWM失败求助

Toradex Colibri IMX8X引脚63(PWM_H - ADMA.FTM.CH2)PWM功能启用失败排查

我需要在Toradex Colibri IMX8X的引脚63(对应PWM_H - ADMA.FTM.CH2)上启用PWM功能,为此修改了imx8qxp-ss-adma.dtsi、imx8x-colibri.dtsi、imx8x-colibri-eval-v3.dtsi三个设备树文件,修改可正常编译并部署至SOM,但该引脚始终无PWM信号输出。

已尝试操作

  • 尝试不同pinmux选项(如IMX8QXP_UART2_RX_ADMA_FTM_CH0)及配置值(0x61、0x60、0x62)
  • 尝试用adma_pwm替代添加ftm_pwm0至imx8qxp-ss-adma.dtsi
  • 保留潜在冲突外设(lpuart2、flexcan1、backlight)启用状态,排除意外禁用导致的问题

系统报错与输出

启动时始终出现报错:fsl-ftm-pwm 5a8a0000.pwm: regmap init failed,表明PWM通道初始化异常。以下是SOM相关操作输出:

root@imx8-26:~# echo 255 > /sys/class/leds/col1_heater/brightness # 配置PWM占空比的操作

root@imx8-26:~# cat /sys/kernel/debug/pinctrl/*/pinmux-pins | grep -A5 -B5 "63"
pin 63 (IMX8QXP_ESAI0_TX4_RX1): (MUX UNCLAIMED) (GPIO UNCLAIMED)


root@imx8-26:~# dmesg | grep -i ftm
[    0.252602] fsl-ftm-pwm 5a8a0000.pwm: regmap init failed


root@imx8-26:~# cat /sys/kernel/debug/pwm 
platform/5a8a0000.pwm, 8 PWM devices
 pwm-0   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-2   (col1_heater         ): requested period: 1000000 ns duty: 0 ns polarity: normal
 pwm-3   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-4   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-5   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-6   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
 pwm-7   ((null)              ): period: 0 ns duty: 0 ns polarity: normal

相关设备树代码

imx8x-colibri.dtsi

&iomuxc {
    colibri-imx8qxp {
        pinctrl_ftm_pwm_0: ftmpwm0 {
            fsl,pins = <
                IMX8QXP_FLEXCAN1_RX_ADMA_FTM_CH2 0x60 /* SODIMM 63 */
            >;
        };
    };
};

imx8x-colibri-eval-v3.dtsi

/* Disable conflicting interfaces */
&lpuart2 {
    status = "disabled";
};

&flexcan1 {
    status = "disabled";
    /delete-property/ pinctrl-names;
    /delete-property/ pinctrl-0;
    /delete-property/ xceiver-supply;
};

&backlight {
    status = "disabled";
    /delete-property/ pwms;
};


&ftm_pwm0 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_ftm_pwm_0>;
    status = "okay";
};

/ {
    leds {
        compatible = "pwm-leds";

        col1_heater {
            label = "col1_heater";
            pwms = <&ftm_pwm0 2 1000000 0>; /* Channel 2 for FTM_CH2 */
            max-brightness = <255>;
            default-brightness-level = <0>;
        };
    };
};

问题排查与解决方案

核心问题分析

regmap init failed报错说明FTM PWM驱动无法正确初始化寄存器映射,通常关联以下因素:

  • ADMA子系统的时钟未正确启用
  • 设备树中FTM节点的寄存器地址或属性配置错误
  • 驱动依赖的硬件资源(如电源域)未正确初始化

具体修复步骤

1. 检查ADMA FTM时钟配置

在imx8qxp-ss-adma.dtsi中,确保ftm_pwm0节点的时钟配置正确:

ftm_pwm0: pwm@5a8a0000 {
    compatible = "fsl,imx8qxp-ftm-pwm";
    reg = <0x5a8a0000 0x10000>;
    clocks = <&clk IMX8QXP_ADMA_FTM0_CLK>, <&clk IMX8QXP_ADMA_FTM0_CLK>;
    clock-names = "ftm", "ftm_en";
    #pwm-cells = <3>;
    status = "disabled";
};

确认clocks和clock-names属性正确引用ADMA FTM的时钟源,且对应时钟在系统启动时已启用。

2. 修正Pinmux配置

根据Toradex Colibri IMX8X规格书,引脚63对应的Pinmux选项IMX8QXP_FLEXCAN1_RX_ADMA_FTM_CH2是正确的,但需调整配置值:

  • 将原配置值0x60改为0x61(启用高驱动强度,适配PWM信号输出需求)
  • 再次确认无其他外设占用该引脚

3. 确保ADMA子系统初始化正常

检查imx8qxp-ss-adma.dtsi中的ADMA子系统节点状态:

adma_subsys: bus@5a000000 {
    compatible = "fsl,imx8qxp-adma-subsys";
    reg = <0x5a000000 0x1000000>;
    clocks = <&clk IMX8QXP_ADMA_ROOT_CLK>;
    clock-names = "bus";
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0 0x5a000000 0x1000000>;
    status = "okay";
};

保证该节点status为okay,确保ADMA总线和时钟正常工作。

4. 验证PWM节点兼容性

确认ftm_pwm0节点的compatible属性为"fsl,imx8qxp-ftm-pwm",而非通用的"fsl,ftm-pwm",避免驱动匹配错误。

验证操作

修改完成后重新编译设备树并部署,执行以下步骤验证:

  1. 查看dmesg输出,确认无regmap init failed报错
  2. 执行cat /sys/kernel/debug/pinctrl/*/pinmux-pins | grep -A5 -B5 "63",确认引脚已被FTM PWM占用
  3. 配置PWM后用示波器测量引脚输出,或通过cat /sys/kernel/debug/pwm确认pwm-2的duty值是否更新

内容的提问来源于stack exchange,提问作者Allen McDermott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 20:34:53