首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux内核中使用pwm-传呼机模块?

如何在Linux内核中使用pwm-传呼机模块?
EN

Stack Overflow用户
提问于 2019-06-07 15:16:43
回答 1查看 1.8K关注 0票数 3

我已经按照Linux设备树文档设置了PWM驱动的传呼机。我看到这会在/sys/class/ input中产生额外的输入设备:

代码语言:javascript
复制
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-传呼机有很大的误解,因为它显然是作为输入设备创建的。请帮帮我!

更新

我的dts中的变化

代码语言:javascript
复制
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 %:/pwm-传呼机:参数比属性长 6.716566 of_pwm_get():无法解析"pwms“属性 6.716574 PWM传呼机PWM传呼机:未能请求PWM设备:-22 6.716590 pwm传呼机:pwm传呼机探头失败,错误为22

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

EN

回答 1

Stack Overflow用户

发布于 2019-06-18 07:12:22

你能张贴你添加的DT块的片段吗?试一下这个块

代码语言:javascript
复制
pwm-beeper {
    compatible = "pwm-beeper";
    pwms = <&pwm4 0 5000>;
    volume-levels = <0 8 20 40 500>;
    default-volume-level = <4>;
};

更新1

TLDR;或者将#pwm-单元减少到2,或者再添加一个字段,即第三个字段,如pwms =<&pwm405000 1>;

代码语言:javascript
复制
phandle1: node1 {
     #list-cells = <2>;
}   

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

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

在这里,注意列表有#列表-单元格不同

phadle1有2

phadle2有1

因此,list有条目。

这会起作用的,你的linux版本是什么?你能在最新的马厩里测试一下吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56497094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档