繁体   English   中英

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

[英]How do I use pwm-beeper module in Linux Kernel?

我已经按照Linux设备树文档设置了PWM驱动的蜂鸣器。 我看到这会在/ 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:参数长于属性
[6.716566] of_pwm_get():无法解析“ pwms”属性
[6.716574] pwm-beeper pwm-beeper:无法请求PWM设备:-22
[6.716590] pwm-beeper:pwm-beeper的探测失败,错误为-22

我完全感到困惑,因为关于在Linux中主流化的该设备驱动程序的信息很少!

您可以发布已添加的DT代码段的代码段吗? 试试这个块

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版本吗? 您可以在最新的稳定器上对其进行测试吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM