工具/软件:Linux
您好!
我尝试配置 BeagleBone Black EHRPWM0、EHRPWM1、EHRPWM2将 PWM 信号输出到 P8、P9。 我在关注这个线程 https://e2e.ti.com/support/processors/f/791/t/677964、但是、在我的 Linux 内核 DTS 目录中、我找不到相关的引脚名称。
我修改的文件是 Linux 内核源代码下的 arch/arm/boot/dts/am33xx.dtsi。 下面显示了与 PWM 相关的片段(以 epwms0为例):
epwms0:epwmss@48300000{
兼容="ti、am33xx-pwms";
REG =<0x48300000 0x10>;
ti、hwmonds ="epwmss0";
(笑声)
状态="正常";
ecap0:ECAP@48300100{
兼容="ti、am3352-ecap"、
"TI、am33xx-ECAP";
(笑声)
状态="正常";
};
ehrpwm0:PWM@48300200{
兼容="ti、am3352-ehrpwm"、
"TI、am33xx-ehrpwm";
(笑声)
状态="正常";
};
};
我将状态从"禁用"更改为"确定"。 将填充/sys/class/pwm 下的目录结构。 但 P9 EHRPWM1A 和其他引脚上没有输出信号。
root@AM335x-EVM://# ls -l /sys/class/pwm
(笑声)
lrwxrwxrwx 1 root root root 用户0 Jan 1 1970 pwmchip3 ->../../devices/platform/ocp/48302000.epwmss/48302100.ecap/pwm/pwmchip3
lrwxrwxrwx 1 root root 用户 0 Jan 1 1970 pwmchip4 ->../../devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip4
(笑声)
作为 Linux 器件树和 PWM 新手、我有以下一些问题:
配置中仍然缺少哪些内容? 我在 Linux 内核源代码下的任何.dts 或 dtsi 中都没有看到这些代码段。 我怀疑需要添加这些内容。 但是、我在哪里添加它们呢?
(笑声)
ehrpwm2a_pins:pinmux_ehrpwm2a_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x820、PIN_OUTPUT | MUX_Mode4)/* GPMC_ad8.ehrpwm2A *
>;
};
(笑声)
请解释我的理解是否不正确、或者还有更多需要做的事情。
2.我使用的构建系统是 Yocto。 我想我只需要修改.dts (或.dtsi)文件并生成器件树的补丁、然后构建内核。 这是正确的、还是需要通过其他方式来实现?
我使用的 poky 和 meta-ti 标签分别为"Rocko-18.0.3"和"ti2018.03"。 Linux 内核版本为:
root@AM335x-EVM:// uname -a
Linux AM335x-EVM 4.14.67-g735eec7413
非常感谢您的帮助!