Firefly开源社区
标题:
pwm3申请失败
[打印本页]
作者:
public
时间:
2018-12-21 11:26
标题:
pwm3申请失败
如题,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
配置寄存器的详细说明,不要芯片手册,看过了,感觉不详细
作者:
leung先森
时间:
2018-12-21 11:34
pwm3被用做IR红外,去disabled红外的配置或者屏蔽掉再试试
作者:
public
时间:
2018-12-21 12:41
leung先森 发表于 2018-12-21 11:34
pwm3被用做IR红外,去disabled红外的配置或者屏蔽掉再试试
一样的,还是不行,就是去掉了那个驱动测试的,错误代码-517
作者:
飞神
时间:
2018-12-21 18:32
首先根据错误码-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
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1