【问题标题】:Enabling PWM sysfs entry启用 PWM sysfs 条目
【发布时间】:2017-03-01 13:18:26
【问题描述】:

我正在尝试在 /sys/class/pwm/ 下启用 pwm。我期待的是 pwmchip0/export 等。我经历了以下事情:

  1. 检查了配置中的 PWM_SYSFS 是否为 =y。
  2. dtsi 文件包含正确的 pwm 条目。
  3. pwm 的驱动程序正在正确编译。

但是当我在目标上运行构建时,我只能看到 /sys/class/pwm 而下面什么都没有。

我根本没有接触过 dts 文件。

如果有人能指出我正确的方向或指出要检查的事情清单,我将不胜感激。

请询问我是否遗漏了问题中提到的任何内容。

【问题讨论】:

  • 能否提供您正在使用的 dts 文件和 KConfig。可能以某种方式禁用了 pwm 设备(在 dts 或 kconfig 中)。检查引导日志以获取 pwm 驱动程序消息。
  • 嗨亚历山大谢谢你的回复。是的,这是正确的,在我的 dtsi 文件中,pwm 像所有其他设备一样被设置为默认值。像这样的东西: pwm: pwm@f015c000 { compatible = "img,xyz-pwm";注册=; img,cr-periph = ;状态=“禁用”;必须从 dts 文件中启用,如下所示: &pwm { status = "okay"; };此后,内核开始调用 pwm 探测函数。探测功能是通过 sysfs 导出设备的功能。更改后我现在可以看到 /sys/class/pwm/pwmchip0 等等。
  • @VivekB 我遇到了类似的问题,在 /sys/class/pwm 下没有任何内容。您能否详细说明(或提供链接)您的解决方案?在任何 boot/* 文本文件中都没有对 /pwm/i 的引用,在整个 / 树上也没有 dts(i) 文件。

标签: linux mips dts pwm


【解决方案1】:

这其实很简单。缺少 PWM 条目的原因是根本没有调用驱动程序探测器,这意味着内核不知道存在 PWM 驱动程序。我从内核日志和驱动程序代码中的额外打印文件中注意到了这一点。

内核没有调用 PWM 驱动程序探测的原因是设备没有在 dtsi 文件中启用:

pwm: pwm@xxxxxxxx {
                compatible = "aaa,bbb-pwm";
                reg = <0xxxxxxxxx 0x200>;
                status = "disabled";
        };

要启用它,我必须修改(为 PWM 添加条目).dts 文件:

&pwm {
        status = "okay";
};

在我的例子中,驱动程序已经编写好了,所以我可以在这点之后立即看到 PWM 条目。如果您正在编写新的驱动程序,您可能必须根据需要创建所有必要的 sysfs 条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多