This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3354:无法将 DMTimer 配置为 PWM

Guru**** 2585275 points
Other Parts Discussed in Thread: AM3354

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/629859/linux-am3354-unable-to-configure-dmtimer-as-pwm

器件型号:AM3354

工具/软件:Linux

大家好、

硬件说明、

  • SoC 使用了 AM3354BZCZ60
  • 定制电路板

SW 说明、

  • SDK 版本- 03.03、内核版本- 4.4.4.41-gf9f6f0db2d、u-boot 版本- u-boot-2016.05+gitAUTOINC+4db46a6bd-g4db46a6bd

问题场景、

我通过引用以下链接中附加的脚本、将 timer7 (GPIO1_8)配置为用户空间下的 PWM、

e2e.ti.com/.../440723

在用户空间脚本中、我参考 AM335x TRM 的第20.1.5节、将 timer7寄存器配置为生成 PWM 信号。 Timer7被配置为使用24MHz 主时钟作为时钟源。一旦我运行脚本、它就会抱怨以下错误消息:

/ti.mer.sh:行54: 2229总线错误              (转储内核) evmem2 0x4804a04c w 0xFFFFFF9C
/dev/mem 已打开。
映射到地址 bb6fa0000的内存。[ 3036.452740]未处理故障:在 bb6fa0044的非线性获取(0x1018)上的外部中止
[3036.466501] PgD = d536c000
[3036.46921][b6fa0044]* PgD=9b623831、* Pte=4804a303、* Ppte=4804aa33
[3036.475712] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!

./timer.sh:第58行: 2231总线错误              (转储内核) devmem2 0x4804a044 w 0x00000000
/dev/mem 已打开。
映射在地址 bbb6f1b000处的内存。[ 3036.506486]未处理故障:在 bb6f1b010处的非线性获取(0x1018)上的外部中止
[3036.520767] PgD = d5300000
[3036.523486][b6f1b010]* PgD=9530a831、* Pte=4804a303、* Ppte=4804aa33
[3036.530003] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!

./timer.sh:第62行: 2233总线错误              (转储内核) devmem2 0x4804a010 w 0x8
/dev/mem 已打开。
映射在地址 bb6f8d000处的内存。[3036.560894]未处理故障:在 bb6f8d038处的非线性蚀刻(0x1018)上的外部中止
[3036.574340] PgD = d52b0000
[3036.577061][b6f8d038]* PgD=952d4831、* Pte=4804a303、* Ppte=4804aa33
[3036.583556] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!

./timer.sh:第65行: 2235总线错误              (转储内核) devmem2 0x4804a038 w 0x186B
定时器值1
/dev/mem 已打开。
映射到地址 bb6f97000的内存。[ 3036.615355]未处理故障:在 bb6f9703c 的非线性获取(0x1018)上的外部中止
[3036.629573] PgD = d536c000
[3036.632292][b6f9703c]* PgD=95366831、* Pte=4804a303、* Ppte=4804aa33
[3036.638811] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!

./timer.sh:第70行: 2237总线错误              (转储内核) devmem2 0x4804a03C
计时器正在运行!


定时器值2
/dev/mem 已打开。
映射到地址 bb6f67000的内存。[ 3037.683757]未处理故障:在 bb6f6703c 的非线性获取(0x1018)上的外部中止
[3037.695746] PgD = d52b0000
[3037.698479][b6f6703c]* PgD=9c533831、* Pte=4804a303、* Ppte=4804aa33
[3037.705103] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!

./timer.sh:第70行: 2240总线错误              (转储内核) devmem2 0x4804a03C
计时器正在运行!

我的 timer7引脚始终保持低电平。 请帮助我 使用 timer7e2e.ti.com/.../8737.timer.doc 生成 PWM 信号

请查看以下内核日志以了解计时器、
[0.000000]   OMAP 时钟事件源:timer2为24000000 Hz
[0.000046]   时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
[0.000060]   OMAP 时钟源:Timer1为24000000 Hz
[0.249064]   时钟源:切换到时钟源 Timer1
[0.267737]   OMAP-TIMER4804a000.TIMER:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/timer7_pins_dee 的 pctldev

以下是我的器件树对 timer7的更改、

timer7_PINS_DEFAULT:timer7_PINS_DEFAULT{
               pinctrl-single、pins =<
                       0x168 (PIN_OUTPUT | MUX_MODE5)/*(E18) uart0_CTSN.timer7 */
               >;
 };

&timer7{
       状态="正常";
       pinctrl-names ="default";
       pinctrl-0 =<&timer7_PINS_DEFAULT>;
};

请查找随附的用户空间脚本以供参考。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Rrahikumar、

    您能否浏览下面的 wiki 和 e2e 主题、看看这些主题是否有帮助?

    processors.wiki.ti.com/.../Linux_Core_CPSW_User's_Guide

    e2e.ti.com/.../571543
    e2e.ti.com/.../534175
    e2e.ti.com/.../359886

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    非常感谢您的回复。

    我一直在尝试上述所有链接、用户空间脚本对我无效。 我通过引用上述链接之一编写了 DM 计时器驱动程序、并修改了我的 DTS 文件。 以下是我的引脚多路复用器和计时器节点、

    /*计时器7与 E18上相同*/
    timer7_PINS_DEFAULT:timer7_PINS_DEFAULT{
                   pinctrl-single、pins =<
                           0x168 (PIN_OUTPUT | MUX_MODE5 | PULL_DISABLE)/*(E18) uart0_CTSN.timer7 *
                   >;
    };
    &timer7{
           状态="正常";
           pinctrl-names ="default";
           pinctrl-0 =<&timer7_PINS_DEFAULT>;
    };

    am33xx-test_module_timer{
                   兼容="test、am33xx-test_module_timer";
                   状态="正常";
                   pinctrl-names ="default";
                   pinctrl-0 =<&timer7_PINS_DEFAULT>;
                   DMtimer =<&timer7>;
                       //reg =<0x4804a000 0x4804afff>;
                       //interrupts =<95>;
                       //ti、hwmods ="timer7";
                       //ti、timer-PWM;
     };

    编译和重建内核后、内核日志中出现以下错误、

    root@AM335x-EVM:~# dmesg | grep 计时器    
    [0.000000]   OMAP 时钟事件源:timer2为24000000 Hz
    [0.000045]   时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
    [0.000057]   OMAP 时钟源:Timer1为24000000 Hz
    [0.249073]   时钟源:切换到时钟源 Timer1
    [0.267731]   OMAP-TIMER4804a000.TIMER:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/timer7_pines_dee 的 pctldev
    [0.289424]   test_module_timer:am33xx-test_module_timer 的探测器失败、错误-1

    此外、我还附上了我的计时器驱动程序文件、请参考、如果需要 added.e2e.ti.com/.../pwm_2D00_omap_2D00_timer.c 提供任何内容、建议我使用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    等待您的回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    在第一个链接中、提到以下节点将 timer7用作 PWM。
    pwm7:dmtimer-PWM{
    兼容="ti、omap-dmtimer-pwm";
    TI、定时器=<&timer7>;
    #PWM-Cells =<3>;
    };

    从上面我不知道"OMAP-dmtimer-PWM"驱动程序在 SDK 中的什么位置? 我盲目地尝试将上述节点包括在 DTS 中。 但在/sys/class/pwm 下没有创建任何内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G">在第一个链接中,提到以下节点将 timer7用作 PWM。
    pwm7:dmtimer-PWM{
    兼容="ti、omap-dmtimer-pwm";
    TI、定时器=<&timer7>;
    #PWM-Cells =<3>;
    };

    从上面我不知道"OMAP-dmtimer-PWM"驱动程序在 SDK 中的什么位置? 我盲目地尝试将上述节点包括在 DTS 中。 但在/sys/class/pwm 下没有创建任何内容。

    此 dmtimer PWM 驱动程序可从 PSDK v4.00及更高版本(内核4.9.28)获取。 我建议您切换到最新的 PSDK v4.01 (内核4.9.41)或至少切换到 PSDK v4.00、以便能够使用该驱动程序:

    {PSDK4.x}/board-support/linux-4.9.x/drivers/pwm/pwm-omap-dmtimer.c

    您应该通过 menuconfig (CONFIG_PWM_OMAP-DMTIMER=y)启用该驱动程序、因为它在 AM335x EVM 配置文件中默认处于禁用状态:

    {PSDK4.x}/board-support/linux-4.9.x/arch/arm/configs/tisdk_am335x-evm_defconfig

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Pavel 的答复。

    我无法使用 PSDK v4.0、因为我们对 PSDK v3.3移植进行了大多数更改、因此我们的应用将变得困难。

    我可以使用上面链接中提供的驱动程序之一切换 timer7引脚。 但问题是、我需要从用户空间对其进行控制(更改时间段)、因为我需要控制 LCD 背光。 如果您能帮助我实现这一点、那将会很棒。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../4834.pwm_2D00_omap_2D00_timer.cI已附上驱动程序文件供您参考、下面是我的 DTS 节点。

    am33xx-test_module_timer{

            兼容="test、am33xx-test_module_timer";

            状态="正常";

            pinctrl-names ="default";

            pinctrl-0 =<&timer7_PINS_DEFAULT>;

            DMtimer =<&timer7>;

    };

    请查看此内容并建议如何从用户空间控制此内容

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G">我无法使用 PSDK v4.0、因为我们对 PSDK v3.3移植进行了大多数更改、因此我们的应用将非常困难。

    我可以使用上面链接中提供的驱动程序之一切换 timer7引脚。 但问题是、我需要从用户空间对其进行控制(更改时间段)、因为我需要控制 LCD 背光。 如果您能帮助我实现这一点、那将会很棒。

    您可以在 PSDK v3.3中返回端口 PSDK4 PWM-OMAP-dmtimer、然后使用以下用户空间命令(与 CPSW wiki 页面相同)来控制引脚:

    启用 Timer7在 CPTS HW4_TS_PUSH 输入引脚上触发1秒周期性脉冲:

    # echo 1000000000 >/sys/class/pwm/pwmchip0/pwm0/period
    # echo 500000000 >/sys/class/pwm/pwmchip0/pwm0/duty_cycle
    # echo 1 >/sys/class/pwm/pwmchip0/pwm0/enable
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我已将 PWM-OMAP-dmtimer 移植回 SDK3.3。 内核编译成功。 在 dmesg 输出中、我会得到以下误差、

    root@AM335x-EVM:~# dmesg | grep dmtimer

    [0.289089]  OMAP-dmtimer-PWM dmtimer-PWM@7:缺少 dmtimer 平台数据

    [0.289397]  OMAP-dmtimer-PWM:探测 dmtimer-PWM@7失败、错误-22

     

    为了使 Timer7能够在 CPTS HW4_TS_PUSH 输入引脚上触发、我已在我的 pwm7节点中添加"CPT-ext-ts-inputs =<4>"、如下所示:

    pwm7:dmtimer-PWM@7{
                   //status ="确定";
                   兼容="ti、omap-dmtimer-pwm";
                   TI、定时器=<&timer7>;
                   CPT-ext-ts-inputs =<4>;
    };

    是这样吗? 或者我没有其他东西?

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Pavel、我想在 AM3354、ZCZ 封装的 E18引脚(即 GPIO1_8)上生成 PWM 信号。 我已经尝试使用引脚多路复用配置来配置该引脚、结果是相同的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    等待您的回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ravikumar G"]Pavel、我想在 E18引脚(即 GPIO1_8)上为 AM3354、ZCZ 封装生成 PWM 信号。 我已经尝试使用 pinmux 配置来配置该引脚、结果是相同的。

    关于 TIMER7、这是要使用的正确引脚(E18)、请确保将其配置为多路复用模式5 (timer7)、而不是多路复用模式7 (GPIO1_8)。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    为了使 Timer7能够在 CPTS HW4_TS_PUSH 输入引脚上触发、我已在我的 pwm7节点中添加"CPT-ext-ts-inputs =<4>"、如下所示:

    pwm7:dmtimer-PWM@7{
                   //status ="确定";
                   兼容="ti、omap-dmtimer-pwm";
                   TI、定时器=<&timer7>;
                   CPT-ext-ts-inputs =<4>;
    };

    是这样吗? 或者我没有其他东西?

    [/报价]

    不、这看起来不正确。 HW4_TS_PUSH 是以太网子系统的一部分、用于硬件时间戳。 Timer7 PWM 输出沿两个方向输出、一个从外部到 timer7引脚输出(E18)、另一个从内部到 AM335x 以太网子系统。 有关更多详细信息、请参阅 AM335x TRM:

    CH14以太网子系统

    图20-3. Timer2-7集成

    根据我的理解、您的目标是在 E18引脚上提供 Timer7 PWM 信号。 您不需要以太网硬件时间戳。 如果我的理解是正确的、那么您不需要 pwm7节点中的 CPT-ext-ts-input。

    [引用 user="Ravikumar G"]

    我已将 PWM-OMAP-dmtimer 移植回 SDK3.3。 内核编译成功。 在 dmesg 输出中、我会得到以下误差、

    root@AM335x-EVM:~# dmesg | grep dmtimer

    [0.289089]  OMAP-dmtimer-PWM dmtimer-PWM@7:缺少 dmtimer 平台数据

    [0.289397]  OMAP-dmtimer-PWM:探测 dmtimer-PWM@7失败、错误-22

    [/报价]

    背面端口中有缺失或错误的东西。 您有补丁吗? 您能否附加您的更改(补丁)以在 PSDK3.3中添加(后端口) PWM 计时器支持?

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Pavel 的答复。

    是的、我已在 MODE5中将其配置为输出。 您可以找到随附的 DTS file.e2e.ti.com/.../am335x_2D00_evm.tar.gz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pavel Botev

    不、这看起来不正确。 HW4_TS_PUSH 是以太网子系统的一部分、用于硬件时间戳。 Timer7 PWM 输出沿两个方向输出、一个从外部到 timer7引脚输出(E18)、另一个从内部到 AM335x 以太网子系统。 有关更多详细信息、请参阅 AM335x TRM:

    CH14以太网子系统

    图20-3. Timer2-7集成

    我已从  我的 pwm7节点中删除"CPT-ext-ts-inputs =<4>;"行

    Pavel Botev

    根据我的理解、您的目标是在 E18引脚上提供 Timer7 PWM 信号。 您不需要以太网硬件时间戳。 如果我的理解是正确的、那么您不需要 pwm7节点中的 CPT-ext-ts-input。

    是的、我想在 E18上生成 Timer7 PWM 信号。

    Pavel Botev

    背面端口中有缺失或错误的东西。 您有补丁吗? 您能否附加您的更改(补丁)以在 PSDK3.3中添加(后端口) PWM 计时器支持?

    将 "PSDK 4.1中的"PWM-OMAP-dmtimer.c"文件复制到"board-support/linux-4.4.41.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/drivers/PWM"文件夹、 将 "PWM_OMAP-dmtimer.h"复制到"board-support/linux-f9f6f6db2d/drivers/f6fdwm"文件夹、并将"f6f2d/swm_def/f6_dmtimer.h"复制到下面的"board/f41"文件夹中、并将"board/linux_fd_def/f6db2d/fold

    diff --git a/drivers/PWM/Makefile b/drivers/PWM/Makefile
    索引69b8275.f7148c3 100644
    -- A/驱动程序/PWM/Makefile
    ++ b/drivers/PWM/Makefile
    @@-41、3 +41、4 @@ obj-$(CONFIG_PWM_TIPWMSS)    += PWM-tiwms.o
     obj-$(CONFIG_PWM_TWL)         += PWM-TWL.o
     obj-$(CONFIG_PWM_TWL_LED)     += PWM-TWL-LED.o
     obj-$(CONFIG_PWM_VT8500)      += PWM-vt8500.o
    +obj-$(CONFIG_OMAP_DM_TIMER)   += PWM-OMAP-dmtimer.o

    这些是完成的更改。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G">是的、我已在 MODE5中将其配置为输出。 您可以找到随附的 DTS 文件。(请访问站点以查看此文件)

    我已经查看了您的 DTS 文件。 我看到一些错误。 首先、让我澄清一下、我们在多个 AM335x 模块/子系统中具有 PWM 功能:计时器、eCAP、eHRPWM、PRU-ICSS。 eCAP 和 eHRPWM 属于 PWMSS。  

    默认情况下、在 AM335x TI EVM 的 PSDK3.3 DTS 文件中、我们使用引脚 eCAP0_IN_PWM0_OUT 生成 PWM 输出信号、该信号用于 LCD LED 背光控制(亮度):

    epwms0{(&E)
       状态="正常";

       ecap0:ECAP@48300100{
          状态="正常";
          pinctrl-names ="default";
          pinctrl-0 =<&ecap0_PINs>;
       };
    };

    LCD_BL:背光{
          兼容="PWM 背光";
          PWM =<&ecap0 50000 0>;
          亮度等级=<0 51 53 56 62 75 101 152 255>;
          default-brightse-level =<8>;
       };

    面板{
          兼容="ti、tilcdc、panel ";
          状态="正常";
          pinctrl-names ="default";
          pinctrl-0 =<&LCD_PINS_s0>;
          背光=<&LCD_BL>;
          面板信息{
             交流偏置          =<255>;
             AC-BIAS-INtrpt   =<0>;
             dma-burse-SZ     =<16>;
             bpp              =<32>;
             FDD              =<0x80>;
             同步边沿        =<0>;
             SYNC-Ctrl        =<1>;
             栅格顺序     =<0>;
             FIFO-TH          =<0>;
          };

    ecap0_pins:backlight_pins{
          pinctrl-single、pins =<
             AM33XX_IOPAD (0x964、MUX_MODE0)   /* eCAP0_IN_PWM0_OUT.eCAP0_IN_PWM0_OUT *
          >;
       };

    另请参阅以下 wiki 页面、其中介绍了 LCD 背光 PWM 控制:

    processors.wiki.ti.com/.../Linux_Core_PWM_User's_Guide

     

    processors.wiki.ti.com/.../AM335x_PWM_Driver's_Guide

     

     

    关于定制板、您是否要将 LCD LED 背光/亮度控制从 eCAP0_IN_PWM0_OUT PWM 输出引脚更改为 timer7 PWM 输出引脚? 您是否已将引脚 E18 (timer7 PWM 输出)物理连接到 LCD LED 背光控制输入引脚?

    不应将 timer7 PWM 输出和 ecap0 PWM 输出混合使用:

    epwms0{(&E)
       状态="正常";
       
       #if 0
       ecap0:ECAP@48300100{
          状态="正常";
          pinctrl-names ="default";
          pinctrl-0 =<&ecap0_PINs>;
       };
       
       pwm7:dmtimer-PWM@7{
          状态="正常";
              兼容="ti、omap-dmtimer-pwm";
              TI、定时器=<&timer7>;
              #PWM-Cells =<3>;
              pinctrl-names ="default";
              pinctrl-0 =<&timer7_PINS_DEFAULT>;
       };
       #endif
    };

     

    有关如何通过 AM335x EVM 上的 eCAP PWM 输出控制 LCD 背光以及 PSDK3.3中的 Starterkit 的更多信息、请参阅 EVM/Starterkit 硬件用户指南、原理图和 DTS 文件(AM335x-EVM.dts、AM335x-evmsk.dts)

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    在我的定制板上、引脚 E18物理连接到 LCD 背光灯控制。 在本例中、我们使用的是 AM3354 ZCZ 封装、 引脚 E18无法配置为 eCAP0_IN_PWM0_OUT 模式、但可以配置为 timer7、因此我的目标是在此引脚上生成 PWM 信号。

    由于我们不应混合 timer7输出和 ecap0 PWM 输出、因此我将尝试从 DTS 中禁用&epwms0节点。

    请查找随附的 LCD 电路原理图 heree2e.ti.com/.../7230.PWM_5F00_Backlight_5F00_schema.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、avel、

    我已尝试从 DTS 文件中禁用&epwmss0节点,错误保持不变。 请找到以下 dmesg 输出。

    root@AM335x-EVM:~# dmesg | grep 计时器
    [0.000000] OMAP 时钟事件源:timer2为24000000 Hz
    [0.000047]时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
    [0.000060] OMAP 时钟源:Timer1为24000000 Hz
    [0.249721]时钟源:切换到时钟源 Timer1
    [0.26834] OMAP_TIMER 4804a000.timer:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/timer7_pins_dee 的 pctldev
    [0.289654] OMAP-dmtimer-PWM dmtimer-PWM@7:缺少 dmtimer 平台数据
    [0.289692] OMAP-dmtimer-PWM:dmtimer-PWM@7的探头失败、错误-22
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G">我已尝试从 DTS 文件中禁用&epwmss0节点,错误仍然相同。 [/报价]

    请附上最新的 DTS 文件以供查看。


    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    将 "PSDK 4.1中的"PWM-OMAP-dmtimer.c"文件复制到"board-support/linux-4.4.41.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/drivers/PWM"文件夹、 将 "PWM_OMAP-dmtimer.h"复制到"board-support/linux-f9f6f6db2d/drivers/f6fdwm"文件夹、并将"f6f2d/swm_def/f6_dmtimer.h"复制到下面的"board/f41"文件夹中、并将"board/linux_fd_def/f6db2d/fold

    diff --git a/drivers/PWM/Makefile b/drivers/PWM/Makefile
    索引69b8275.f7148c3 100644
    -- A/驱动程序/PWM/Makefile
    ++ b/drivers/PWM/Makefile
    @@-41、3 +41、4 @@ obj-$(CONFIG_PWM_TIPWMSS)    += PWM-tiwms.o
     obj-$(CONFIG_PWM_TWL)         += PWM-TWL.o
     obj-$(CONFIG_PWM_TWL_LED)     += PWM-TWL-LED.o
     obj-$(CONFIG_PWM_VT8500)      += PWM-vt8500.o
    +obj-$(CONFIG_OMAP_DM_TIMER)   += PWM-OMAP-dmtimer.o

    [/报价]

    应为 drivers/PWM/Makefile - obj-$(CONFIG_PWM_OMAP-DMTIMER)   += PWM-OMAP-dmtimer.o

    关于 dmtimer-PWM、我们还在以下 PSDK4.1文件中提供了代码:

    drivers/PWM/Kconfig - config PWM_OMA_DMTIMER

    arch/arm/configs/tisdk_AM335x-evm_defconfig -# CONFIG_PWM_OMAP-DMTIMIER 未设置

    您应该通过 menuconfig 功能启用 PWM_OMAP-DMTIGER 驱动程序

    您还应该在 下面的文件中添加 PWM_OMAP-dmtimer、OMAP-dmtimer-PWM:

    arch/arm/mach-omap2/pdata-quirks.c

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    很抱歉耽误你的答复。

    Pavel Botev

    应为 drivers/PWM/Makefile - obj-$(CONFIG_PWM_OMAP-DMTIMER)   += PWM-OMAP-dmtimer.o

    在我的 SDK 3.3中、如果我包含上述行、PWM-OMAP-dmtimer.c 不会编译、而是使用 CONFIG_OMAP-DM_TIMER 成功编译。

     

    Pavel Botev

    arch/arm/configs/tisdk_AM335x-evm_defconfig -# CONFIG_PWM_OMAP-DMTIMIER 未设置

    您应该通过 menuconfig 功能启用 PWM_OMAP-DMTIGER 驱动程序

    在我的情况下、通过 menuconfig、我看不到 PWM_OMAP-DMTIMIER 选项(您可以参阅以下屏幕截图)


     

    但我仍然在 arch/arm/configs/tisdk_am335x-evm_defconfig 文件中取消设置。

     

    Pavel Botev

    您还应该在 下面的文件中添加 PWM_OMAP-dmtimer、OMAP-dmtimer-PWM:

    arch/arm/mach-omap2/pdata-quirks.c

    在我的 PSDK_3.3中、我找不到文件 arch/arm/mach-omap2/pdata-quirks.c 文件。 无需任何修改即可将此文件从 PSDK4.1复制到 PSDK3.3?

     

    另外、请查看随附的更新的 DTS file.e2e.ti.com/.../am335x_5F00_dts.tar

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    Pavel Botev

    应为 drivers/PWM/Makefile - obj-$(CONFIG_PWM_OMAP-DMTIMER)   += PWM-OMAP-dmtimer.o

    在我的 SDK 3.3中、如果我包含上述行、PWM-OMAP-dmtimer.c 不会编译、而是使用 CONFIG_OMAP-DM_TIMER 成功编译。

    [/报价]

    这是不正确的、您不能在 PWM makefile 中使用 OMAP-DM_TIMER。

    PWM_OMAP-DMTIMER_OMAP-DMATM_TIMER 是两个不同的驱动程序、并且在两个不同的 Makefiles 中使用。

    PWM_OMAP_DMTIMER:

    Linux 内核/驱动程序/PWM/PWM-OMAP-dmtimer.c

    linux-kernel/drivers/pwm/Makefile  obj-$(CONFIG_PWM_OMAP-DMTIMER)   += PWM-OMAP-dmtimer.o

    linux-kernel/arch/arm/configs/tisdk_am335x-evm_defconfig   CONFIG_PWM_OMAP-DMTIMIER

    OMAP_DM_TIMER:

    linux-kernel/arch/arm/plat-omap/dmtimer.c

    linux-kernel/arch/arm/plat-omap/makefile   obj-$(CONFIG_omap_dm_timer)+= dmtimer.o

    linux-kernel/arch/arm/configs/tisdk_am335x-evm_defconfig  CONFIG_omap_dm_timer

    [引用 user="Ravikumar G"]

    Pavel Botev

    arch/arm/configs/tisdk_AM335x-evm_defconfig -# CONFIG_PWM_OMAP-DMTIMIER 未设置

    您应该通过 menuconfig 功能启用 PWM_OMAP-DMTIGER 驱动程序

    在我的情况下、通过 menuconfig、我看不到 PWM_OMAP-DMTIMIER 选项(您可以参阅以下屏幕截图)

    [/报价]

    成功移植后、您将能够看到它。

    [引用 user="Ravikumar G"]

    Pavel Botev

    您还应该在 下面的文件中添加 PWM_OMAP-dmtimer、OMAP-dmtimer-PWM:

    arch/arm/mach-omap2/pdata-quirks.c

    在我的 PSDK_3.3中、我找不到文件 arch/arm/mach-omap2/pdata-quirks.c 文件。 无需任何修改即可将此文件从 PSDK4.1复制到 PSDK3.3?

    [/报价]

    我不确定、您可能会尝试。 您将从4.9内核移植到4.4内核、因此可能需要其他东西。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    Pavel Botev

    您还应该在 下面的文件中添加 PWM_OMAP-dmtimer、OMAP-dmtimer-PWM:

    arch/arm/mach-omap2/pdata-quirks.c

    在我的 PSDK_3.3中、我找不到文件 arch/arm/mach-omap2/pdata-quirks.c 文件。 无需任何修改即可将此文件从 PSDK4.1复制到 PSDK3.3?

    [/报价]

    我在 PSDK3.3的我的安装中找到了这个 pdata-quirks.c 文件:

    TI-processor-sdk-linux-am335x-evm-03.03.00.04/board-support/linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/arch/arm/mach-omap2/pdata-quiriks.c

    您可以再次检查吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]并请查找随附的更新的 DTS 文件。(请访问站点查看此文件)

    缺少 pwm7节点的 PWM 单元条目。 此条目是必须的、不可选的、请参阅以下文档:

    Linux-kernel/Documentation/devicetree/bindings/PWM/pwm-omap-dmtimer.txt

    LCD_BL:背光节点看起来也不正确。 有关通过计时器 PWM 进行 LCD 背光的示例、请参阅以下文件:

    linux-kernel/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts

    linux-kernel/arch/arm/boot/dts/omap3-gta04.dtsi

    Linux-kernel/Documentation/devicetree/bindings/LEDs/backlight/pwm-backlight.txt
    Linux-kernel/Documentation/devicetree/bindings/PWM/pwm.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    Pavel Botev

    TI-processor-sdk-linux-am335x-evm-03.03.00.04/board-support/linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/arch/arm/mach-omap2/pdata-quiriks.c

    您可以再次检查吗?

    我找到了该文件并添加了 PWM-OMAP-dmtimer 和 OMAP-dmtm。 编译后、我遇到编译错误。 请查找随附的日志。

    e2e.ti.com/.../8507.logs.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G">我找到了该文件并添加了 PWM-OMAP-dmtimer 和 OMAP-dmtm。 编译后、我遇到编译错误。 请查找随附的日志。

    似乎缺少头文件。 您是否可以附加 arch/arm/mach-omap2/pdata-quirks.c 进行检查?

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    请找到随附的 pdata-quirks.c 文件 e2e.ti.com/.../pdata_2D00_quirks.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]请找到所附的 pda-quirks.c 文件

    omap_dm_timer_request_by_node ()在以下 c/h 文件中声明和定义:

    Linux-kernel/arch/arm/plat-omap/include/plat/dmtimer.h

    linux-kernel/arch/arm/plat-omap/dmtimer.c

    我看到您未将 dmtimer.h 文件包含在 pdata-quirks.c 文件中

    #include

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Pavel。 我将进行修改和测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    大多数错误都会被删除。 编译器仍然抱怨以下错误、

    在 arch/arm/mach-omap2/pdata-quirks.c:15:0中包含的文件中:

    include/linux/for_platform.h:50:52:错误:预期标识符或"{"标记之前的"(")

    #define of _DEV_AUXDATA (_compat、_phys、_name、_pdata){.compatible =_compat、.phys_addr =_phys、.name =_name、.platform_data =_pdat

                              ^μ A

    arch/arm/mach-omap2/pdata-quiriks.c:684:9:注意:在宏"of _dev_AUXDATA"的扩展中

        of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、

        ^μ A

    arch/arm/mach-omap2/pdata-quirks.c:684:75:错误:预期的标识符或"、"标记之前的"(")

        of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、

     

    请查找所附文件 e2e.ti.com/.../2625.pdata_2D00_quirks.ce2e.ti.com/.../of_5F00_platform.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    我能够成功编译它。 我将在 DTS 中启用背光、并告诉您结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    使用 pwm7和背光节点编译内核后、结果如下:

    root@AM335x-EVM:~# dmesg | grep 计时器
    [0.000000]   OMAP 时钟事件源:timer2为24000000 Hz
    [0.000046]   时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
    [0.000059]   OMAP 时钟源:Timer1为24000000 Hz
    [0.249080]   时钟源:切换到时钟源 Timer1
    [0.267703]   OMAP_TIMER 4804a000.TIMER:找不到节点/ocp/l4_wkup@44c00000/SCM@210000/引脚多路复用@800/timer7_PINS_DEE 的 pctldev
    [0.290889]   /背光:无法为/dmtimer-PWM@7获取#PWM-cells

    root@AM335x-EVM:~# dmesg | grep PWM
    [0.290557]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.290582]   PWM 背光灯:使用器件树进行 GPIO 查找
    [0.290889]   /背光:无法为/dmtimer-PWM@7获取#PWM-cells
    [0.290910]   PWM 背光灯:无法请求 PWM
    [0.291128]   PWM 背光:背光探测失败,错误-22

    下面是我的节点和引脚多路复用器详细信息、

    pwm7:dmtimer-PWM@7{

            兼容="ti、omap-dmtimer-pwm";

            TI、定时器=<&timer7>;

            PWM 单元=<4>;

        };

    LCD_BL:背光{

            兼容="PWM 背光";

            pinctrl-names ="default";

            pinctrl-0 =<&timer7_PINS_DEFAULT>;

            PWM =<&pwm7 0 5000000 0>;

            亮度级别=<0 32 64 96 128 160 192 224 255>;

            default-brightse-level =<8>;

            ENABLE-GPIO =<&GPIO1 28 GPIO_ACTIVE_HIGH_>;

        };

    &timer7{

        状态="正常";

        pinctrl-names ="default";

        pinctrl-0 =<&timer7_PINS_DEFAULT>;

    };

    /*计时器7与 E18上相同*/

        timer7_PINS_DEFAULT:timer7_PINS_DEFAULT{

            pinctrl-single、pins =<

                0x168 (PIN_OUTPUT | MUX_MODE5 | PULL_DISABLE)/*(E18) uart0_CTSN.timer7 *

            >;

        };

    向我建议我需要添加的其他内容。 还可以找到 他随附的 DTS 文件 e2e.ti.com/.../am335x_5F00_evm.tar.gz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    大多数错误都会被删除。 编译器仍然抱怨以下错误、

    在 arch/arm/mach-omap2/pdata-quirks.c:15:0中包含的文件中:

    include/linux/for_platform.h:50:52:错误:预期标识符或"{"标记之前的"(")

    #define of _DEV_AUXDATA (_compat、_phys、_name、_pdata){.compatible =_compat、.phys_addr =_phys、.name =_name、.platform_data =_pdat

                              ^μ A

    arch/arm/mach-omap2/pdata-quiriks.c:684:9:注意:在宏"of _dev_AUXDATA"的扩展中

        of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、

        ^μ A

    arch/arm/mach-omap2/pdata-quirks.c:684:75:错误:预期的标识符或"、"标记之前的"(")

        of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、

     

    请查找随附的文件(请访问站点查看此文件)(请访问站点查看此文件)

    [/报价]

    pdata-quirk.c 文件中、您正在调用 dev_AUXDATA ("ti、omap-dmtimer-pwm"、0、NULL、&pwm_dmtimer_pdata)、Out of _dev_auxdata omap_auxdata_lookup[]

    pdata-quirks.c 文件中、您有:

    #if is 已启用(CONFIG_OMAP_DM_TIMER)
    静态结构 PWM_OMAP-dmtimer_pdata PWM_dmtimer_pdata ={
           request_by_node = omap_dm_timer_request_by_node、
           .request_specific = OMAP-dm_timer_request_specific、
           .request = OMAP_dm_timer_request、
           Set_source = OMAP-dm_timer_set_source、
           get_IRQ = OMAP-dm_timer_get_IRQ、
           .set_int_enable = OMAP-dm_timer_set_int_enable、
           .set_int_disable = omap_dm_timer_set_int_disable、
           免费= OMAP-dm_timer_free、
           .enable = OMAP-dm_timer_enable、
           .disable = OMAP-dm_timer_disable、
           get_fclk = omap_dm_timer_get_fclk、
           .start = OMAP-dm_timer_start、
           .stop = omap_dm_timer_stop、
           Set_load = OMAP-dm_timer_set_load、
           Set_Match = OMAP-dm_timer_set_match、
           Set_PWM = OMAP-dm_timer_set_PWM、
           Set_prescaler = OMAP-dm_timer_set_prescaler、
           read_counter = OMAP-dm_timer_read_counter、
           write_counter = OMAP-dm_timer_write_counter、
           read_status = OMAP-dm_timer_read_status、
           write_status = OMAP-dm_timer_write_status、
    };
    #endif

    #if is 已启用(CONFIG_OMAP_DM_TIMER)
           of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、 --- >这不在正确的位置
    #endif

    应放置/调用如下所示:

    static struct of _dev_auxdata omap_auxdata_lookup[]__initdata ={


    #if is 已启用(CONFIG_OMAP_DM_TIMER)
       of _dev_AUXDATA ("ti、OMAP-dmtimer-PWM"、0、NULL、&PWM_dmtimer_pdata)、
    #endif


    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    pwm7:dmtimer-PWM@7{

            兼容="ti、omap-dmtimer-pwm";

            TI、定时器=<&timer7>;

            PWM 单元=<4>;

        };

    [/报价]

    更改如下所示的 PWM 单元条目:

    -pwm-单元格=<4>;

    +#PWM-Cells =<3>;

    [引用 user="Ravikumar G"]

    LCD_BL:背光{

            兼容="PWM 背光";

            pinctrl-names ="default";

            pinctrl-0 =<&timer7_PINS_DEFAULT>;

            PWM =<&pwm7 0 5000000 0>;

            亮度级别=<0 32 64 96 128 160 192 224 255>;

            default-brightse-level =<8>;

            ENABLE-GPIO =<&GPIO1 28 GPIO_ACTIVE_HIGH_>;

        };

    [/报价]

    使能 GPIO 输入是可选的、用于 GPIO 引脚启用/禁用背光。 如果您没有此类 GPIO 引脚、则应删除该条目。

    [引用 user="Ravikumar G"]

    &timer7{

        状态="正常";

        pinctrl-names ="default";

        pinctrl-0 =<&timer7_PINS_DEFAULT>;

    };

    [/报价]

    是否使用默认的 am33xx.dtsi 文件?

    我认为不需要这个节点。 am33xx.dtsi 文件中介绍了 timer7、该文件未禁用、因此无需在 AM335x-evm.dts 文件中启用它。 此外、pinmux 在背光节点中完成、您可以复制此 timer7节点。 我想您可以从 AM335x-EVM.dts 文件中删除该 timer7节点。

    我还看到您错过了面板节点中的背光条目、请添加它。

    面板{

    背光=<&LCD_BL>;

    修改 DTS 文件并重试。 从用户空间检查 timer7引脚是否正确为多路复用模式。 如果没有、我们可以尝试将 pinmux 条目从 背光节点传输到 timer7节点(在本例中、我们将再次将 timer7节点放入 DTS 文件中)。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    感谢您的回复。

    我进行了上述更改、结果如下所示、

    root@AM335x-EVM:/sys/class/pwm dmesg | grep PWM
    [0.290458]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.290484]   PWM 背光背光:使用器件树进行 GPIO 查找
    [0.290529]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.290543]   PWM 背光灯:查找 GPIO 使能失败
    [0.716720]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.716741]   PWM 背光:使用器件树进行 GPIO 查找
    [0.716785]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.716799]   PWM 背光灯:查找 GPIO 使能失败
    [0.760973]   PWM 背光灯:GPIO 查找以启用消费类产品

    我已经注释掉了 DTS 中 LCD_BL 节点的 timer7节点、ENABLE-GPIO 条目。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ravikumar、

    是否使用默认的 am33xx.dtsi 文件或进行了更改?

    请提供您最新的 DTS 文件以供查看。

    请检查 timer7 pinmux 是否正确、使用 devmem2工具或 omapconf 工具从用户空间进行检查。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pavel、

    是的、我使用的是默认的 am33xx.dtsi 文件、但未进行任何重新编程。

    请查找随附的 DTS e2e.ti.com/.../8015.am335x_5F00_evm.tar.gz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ravikumar、

    启动时、能否检查 conf_uart0_CTSN/0x44E10968寄存器的寄存器值? 您可以通过 devmem2工具进行检查。 请向我提供您的价值。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您也可以尝试在下面修改 DTS 文件。 请告诉我结果。

    LCD_BL:背光{
    兼容="PWM 背光";
    PWM =<&pwm7 0 5000000 0>;
    亮度级别=<0 32 64 96 128 160 192 224 255>;
    default-brightse-level =<8>;
    };

    pwm7:dmtimer-PWM@7{
    兼容="ti、omap-dmtimer-pwm";
    TI、定时器=<&timer7>;
    #PWM-Cells =<3>;
    };

    &timer7{
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&timer7_PINS_DEFAULT>;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    很抱歉耽误你的回答。

    以下是 devmem2的输出、

    root@AM335x-EVM:~# devmem2 0x44E10968            
    /dev/mem 已打开。
    映射到地址 bb6fc0000的内存。
    在地址 0x44E10968 (b6fc0968)读取:0x0000000D

     


    我还尝试了您提供的 DTS 更改、以下是内核日志、

    root@AM335x-EVM:/sys/class/pwm dmesg | grep PWM
    [0.290458]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.290484]   PWM 背光背光:使用器件树进行 GPIO 查找
    [0.290529]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.290543]   PWM 背光灯:查找 GPIO 使能失败
    [0.716720]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.716741]   PWM 背光:使用器件树进行 GPIO 查找
    [0.716785]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.716799]   PWM 背光灯:查找 GPIO 使能失败
    [0.760973]   PWM 背光灯:GPIO 查找以启用消费类产品

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ravikumar G"]

    我还尝试了您提供的 DTS 更改、以下是内核日志、

    root@AM335x-EVM:/sys/class/pwm dmesg | grep PWM
    [0.290458]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.290484]   PWM 背光背光:使用器件树进行 GPIO 查找
    [0.290529]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.290543]   PWM 背光灯:查找 GPIO 使能失败
    [0.716720]   PWM 背光灯:GPIO 查找以启用消费类产品
    [0.716741]   PWM 背光:使用器件树进行 GPIO 查找
    [0.716785]   PWM 背光灯:使用查找表进行 GPIO 查找
    [0.716799]   PWM 背光灯:查找 GPIO 使能失败
    [0.760973]   PWM 背光灯:GPIO 查找以启用消费类产品

    [/报价]

    在这种情况下(在 DTS 文件修改之后)、您还可以检查 conf_uart0_CTSN/0x44E10968寄存器值吗? 您是否仍然具有相同的值(0xD)?

    另请提供完整的启动日志(SPL、u-boot、内核、rootfs)。 将其放入 txt 文件中、并将 txt 文件附加到论坛中的此处。

    同时附上最新版本的 DTS 文件。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    是的、即使在 DTS 修改之后、devmem2的输出也是0xD。

    请查找随附的日志文件和最新的 DTS file.e2e.ti.com/.../2248.Logs.txte2e.ti.com/.../1680.am335x_5F00_evm.tar.gz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ravikumar、

    日志中包含以下消息:

    PWM 背光灯:GPIO 查找以启用消费类产品

    PWM 背光:使用器件树进行 GPIO 查找

    of_get_named_gpio_FLAGS:无法解析节点'/backlight[0]的'ENABLE-GPIO'属性

    of_get_named_gpio_FLAGS:无法解析节点'/backlight[0]的'ENABLE-GPIO'属性

    PWM 背光:使用查找表进行 GPIO 查找

    PWM 背光灯:查找 GPIO 使能失败

    在我看来、您使用的是基于旧 DTS 文件的 DTB 文件。 修改 DTS 文件时,是否将其编译为 dtb 文件,以及在引导时使用此新的 dtb 文件? 从这个日志中、我觉得您的 DTB 文件中仍然有"ENABLE-GPIOs"条目。

    omap_timer 4804a000.timer:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/timer7_pins_default 的 pctldev、延迟探针

    上述消息看起来也不正确。 您还可以在该方向进行调试。

    此致、
    帕维尔