我已经按照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-传呼机有很大的误解,因为它显然是作为输入设备创建的。请帮帮我!
更新
我的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 %:/pwm-传呼机:参数比属性长 6.716566 of_pwm_get():无法解析"pwms“属性 6.716574 PWM传呼机PWM传呼机:未能请求PWM设备:-22 6.716590 pwm传呼机:pwm传呼机探头失败,错误为22
我非常困惑,因为在Linux中这个设备驱动程序的信息太少了!
发布于 2019-06-18 07:12:22
你能张贴你添加的DT块的片段吗?试一下这个块
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>;
phandle1: node1 {
#list-cells = <2>;
}
phandle2: node2 {
#list-cells = <1>;
}
node3 {
list = <&phandle1 1 2 &phandle2 3>;
}在这里,注意列表有#列表-单元格不同
phadle1有2
phadle2有1
因此,list有条目。
这会起作用的,你的linux版本是什么?你能在最新的马厩里测试一下吗?
https://stackoverflow.com/questions/56497094
复制相似问题