SAMA5D3 PWM拒绝工作



我正在使用SAMA5D31-EK板,我正在尝试让SAMA5D31内部PWM控制器通过PIO PIN输出信号:特别是PE31。板运行Linux 3.10.0 ,我正在使用SYSFS接口管理PWM。该接口似乎正确地执行:我可以创建设备(写入"导出"文件),激活它,更改ofere和tun_cycle文件的内容(当读回时,它们包含写给他们的最新值)。至于PIO PE31的配置

pwm0 {
    pinctrl_pwml1: pwml1-0 {
    atmel,pins =
        <AT91_PIOE 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /*PE31*/
    };
};
                pwm0: pwm@f002c000 {
                        compatible = "atmel,sama5d3-pwm";
                        reg = <0xf002c000 0x300>;
                        interrupts = <28 IRQ_TYPE_LEVEL_HIGH 4>;
                        #pwm-cells = <3>;
                        status = "disabled";
                };

pwm0的状态也从"禁用"更改为sama5d31.dts file

中的"确定"

互联网上的某个地方,我了解到这种行为可能与这些DTS文件中缺少的时钟定义有关。我读过的其他地方,我需要升级到3.11或3.12内核。

任何帮助将不胜感激。

谢谢琼。

最后,我设法让那个PWM工作;或更准确地说:通过GPIO引脚获得PWM输出信号。

上面的DTS代码有两个问题。首先,另一个过程使用PE31(所选的GPIO PIN)。但更重要的是:PWM控制器节点缺少一些Pinctrl定义和正确的PWM细胞数(5)。它应该读为:

                pwm0: pwm@f002c000 {
                        compatible = "atmel,sama5d3-pwm";
                        reg = <0xf002c000 0x300>;
                        interrupts = <28 IRQ_TYPE_LEVEL_HIGH 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_pwmh1>;
                        #pwm-cells = <5>;
                        status = "disabled";
                };

br,琼

最新更新