gpt4 book ai didi

linux - 我如何在 Linux 内核中使用 pwm-beeper 模块?

转载 作者:太空狗 更新时间:2023-10-29 12:39:00 25 4
gpt4 key购买 nike

我已经根据 Linux 设备树设置了 PWM 驱动的蜂鸣器 documentation .我看到这会在/sys/class/input 中产生一个额外的输入设备:

root:/sys/class/input/input0# ls
capabilities device event0 id modalias name phys power properties subsystem uevent uniq
root:/sys/class/input/input0# cat name
pwm-beeper

但是,我没有看到任何与占空比、极性等相关的内容来实际控制蜂鸣器。也许我对 pwm-beeper 有很大误解,因为它显然是作为一个输入 设备创建的。请帮忙!

[更新]

我的 dts 的变化:

pwm15: dmtimer-pwm@15 {                                                                                                                                                                                                                                                           
compatible = "ti,omap-dmtimer-pwm";
ti,timers = <&timer15>;
#pwm-cells = <3>;
};
beeper: pwm-beeper {
compatible = "pwm-beeper";
pwms = <&pwm15 0 5000>;
volume-levels = <0 8 20 40 500>;
default-volume-level = <4>;
};

相关dmesg:

[ 6.716560] OF: /pwm-beeper: arguments longer than property
[ 6.716566] of_pwm_get(): can't parse "pwms" property
[ 6.716574] pwm-beeper pwm-beeper: Failed to request PWM device: -22
[ 6.716590] pwm-beeper: probe of pwm-beeper failed with error -22

我非常困惑,因为关于这个在 Linux 中主流化的设备驱动程序的信息太少了!

最佳答案

你能发布你添加的 DT block 的片段吗? 试试这个 block

pwm-beeper {
compatible = "pwm-beeper";
pwms = <&pwm4 0 5000>;
volume-levels = <0 8 20 40 500>;
default-volume-level = <4>;
};

更新1

TLDR;要么将你的#pwm-cells 减少到 2或者再添加一个字段,即要列出的第三个字段喜欢 pwms = <&pwm4 0 5000 1>;

phandle1: node1 {
#list-cells = <2>;
}

phandle2: node2 {
#list-cells = <1>;
}

node3 {
list = <&phandle1 1 2 &phandle2 3>;
}

这里注意列表有#list-cells 不同

phadle1 有 2 个

phadle2 有 1

因此相应地列表有条目。

这会起作用 你的linux版本是多少?你能在最新的稳定版上测试它吗?

关于linux - 我如何在 Linux 内核中使用 pwm-beeper 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56497094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com