Firefly开源社区

打印 上一主题 下一主题

[Linux] pwm3申请失败

28

积分

0

威望

0

贡献

技术小白

积分
28

pwm3申请失败

发表于 2018-12-21 11:26:56      浏览:8143 | 回复:3        打印      只看该作者   [复制链接] 楼主
如题,pwm3申请失败,wiki上面的教程里边提供的命令
cat /sys/kernel/debug/pwm
使用后,打印的信息如下
platform/ff420020.pwm, 1 PWM device
pwm-0   (vdd-log             ): requested enabled period: 24997 ns duty: 8243 ns polarity: inverse
platform/ff420010.pwm, 1 PWM device
pwm-0   ((null)              ): period: 0 ns duty: 0 ns polarity: inverse
platform/ff420000.pwm, 1 PWM device
pwm-0   (backlight           ): requested enabled period: 24997 ns duty: 10003 ns polarity: normal


ff420020  ff420010  ff420000对应的pwm2  pwm1  pwm0   ,申请的信息确实有了,比如占空比,周期,驱动名称等信息,
但是  没有pwm3,如果有,应该是ff420030  
,没错,事实上没有,让后申请的错误代码 -517
struct pwm_device *pwm_request(int pwm, const char *label)
{
struct pwm_device *dev;
int err;
if (pwm < 0 || pwm >= MAX_PWMS)
  return ERR_PTR(-EINVAL);
mutex_lock(&pwm_lock);
dev = pwm_to_device(pwm);
if (!dev) {
  dev = ERR_PTR(-EPROBE_DEFER);   //错误代码出处
  goto out;
}
err = pwm_device_request(dev, label);
if (err < 0)
  dev = ERR_PTR(err);
out:
mutex_unlock(&pwm_lock);
return dev;
}
猜测内核里边没有像pwm0~2那样去支持,现在想问的问题如下:
1.pwm3是否支持输出pwm波(应该能)
2.如果能,是否只能通过寄存器的形式
3.有没有pwm3的demo程序,麻烦提供一下,或者关于pwm
配置寄存器的详细说明,不要芯片手册,看过了,感觉不详细
回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2018-12-21 11:34:00        只看该作者  沙发
pwm3被用做IR红外,去disabled红外的配置或者屏蔽掉再试试
回复

使用道具 举报

28

积分

0

威望

0

贡献

技术小白

积分
28
发表于 2018-12-21 12:41:06        只看该作者  板凳
leung先森 发表于 2018-12-21 11:34
pwm3被用做IR红外,去disabled红外的配置或者屏蔽掉再试试

一样的,还是不行,就是去掉了那个驱动测试的,错误代码-517
回复

使用道具 举报

166

积分

1

威望

0

贡献

技术小白

积分
166
发表于 2018-12-21 18:32:06        只看该作者  地板
首先根据错误码-517,可以跟踪到linux/errno.h文件,有这个定义
#define EPROBE_DEFER    517 /* Driver requests probe retry */
从这个注释的意思大概推测是探测不到device,因此无法申请成功。
解决:
去到dts文件下找到*-port.dtsi文件,尝试这样修改,将原先的IR红外屏蔽掉,加上下面这句,打开pwm3
&pwm3{                                                                                                                                                                                                  
status = "okay";
};
我一开始也跟你一样的返回值,然后按照上面这样解决,然后就成功了。
输入命令 # cat /sys/kernel/debug/pwm
打印
platform/ff420030.pwm, 1 PWM device
pwm-0   (pwm-demo            ): requested enabled period: 10003 ns duty: 4991 ns polarity: inverse
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表