rk3688pwm3申请失败

#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
#include <linux/backlight.h>
#include <linux/err.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/slab.h>

static struct of_device_id pwm3_test_of_match = {
{ .compatible = “pwm3_test” },
{ }
};

static int pwm3_test_probe(struct platform_device *pdev)
{
struct pwm_device *pwm3=NULL;

pwm3= pwm_request(3,"pwm3_test");

if(IS_ERR(pwm3))
{
     printk("BBBBBBBBBBBBBBB \n");
     return -1;
}

pwm_config(pwm3, 500000, 1000000);
pwm_enable(pwm3);

printk("AAAAAAAAAAAAAAAAA");

return 0;

}

static int pwm3_test_remove(struct platform_device *pdev)
{

return 0;

}

static struct platform_driver pwm3_test_driver = {
.driver = {
.name = “pwm3_test”,
.owner = THIS_MODULE,

	.of_match_table	= of_match_ptr(pwm3_test_of_match),
},
.probe		= pwm3_test_probe,
.remove		= pwm3_test_remove,

};

module_platform_driver(pwm3_test_driver);

MODULE_LICENSE(“GPL”);

接着是设备树

pwm3_test:pwm3_test{
	compatible = "pwm3_test";

};

然后是dtsi

pwm3: pwm@ff680030 {
	compatible = "rockchip,rk-pwm";
	reg = <0x0 0xff680030 0x0 0x10>;
	#pwm-cells = <2>;
	pinctrl-names = "default";
	pinctrl-0 = <&pwm3_pin>;
	clocks = <&clk_gates13 6>;
	clock-names = "pclk_pwm";
	status = "okay";
};

然后就申请失败,,失败的原因是pwm_request函数下的pwm_to_device函数里面的
return radix_tree_lookup(&pwm_tree, pwm);
出错了。
有没有哪位知道为什么这个出错了

有没有人看到啊,不会的留个言好让我知道这个帖子已经发上去了

其他PWM申请不会有问题吗??

奔跑 发表于 2016-12-28 16:44
有没有人看到啊,不会的留个言好让我知道这个帖子已经发上去了

楼主解决了么

社区里RK3688的资料太少了。

学习下