Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

无法申请pwm1,这是驱动和log,麻烦看一下,提问很多天了

143

积分

0

威望

0

贡献

技术小白

积分
143

无法申请pwm1,这是驱动和log,麻烦看一下,提问很多天了

发表于 2016-8-26 14:10:52      浏览:15395 | 回复:12        打印      只看该作者   [复制链接] 楼主
/*pt.c*/
#include<linux/pwm.h>
#include<linux/init.h>
#include<linux/module.h>
#include <linux/kernel.h>
#include <linux/delay.h>

MODULE_LICENSE("GPL");
struct pwm_device * pwm1 = NULL;


static int __init pwm_init(void)
{
        pwm1 = pwm_request(1, "backlight-pwm");
        pwm_config(pwm1, 100000, 500000);
        printk("success\n");
        pwm_enable(pwm1);
        return 0;
}

static void __exit pwm_exit(void)
{
        printk("Exit pwm\n");
}

subsys_initcall(pwm_init);
module_exit(pwm_exit);


firefly@firefly:~/temp/makepra/pwm$ dmesg|tail
[  127.675031] bfa0: 814f4e00 c000da00 be97a6f4 be97a874 00000003 b6f85398 00000000 00000000
[  127.675044] bfc0: be97a6f4 be97a874 814f4e00 0000017b b6f91e08 00000000 b6f81b60 00000000
[  127.675057] bfe0: be97a6a0 be97a690 b6f7c177 b6eec982 80030030 00000003 00000000 00000000
[  127.675081] [<c028a454>] (pwm_config+0x40/0x60) from [<bf03a024>] (pwm_init+0x24/0x50 [pt])
[  127.675105] [<bf03a024>] (pwm_init+0x24/0x50 [pt]) from [<c00086a4>] (do_one_initcall+0x34/0xc8)
[  127.675126] [<c00086a4>] (do_one_initcall+0x34/0xc8) from [<c0080d34>] (do_init_module+0x44/0x168)
[  127.675144] [<c0080d34>] (do_init_module+0x44/0x168) from [<c00819bc>] (SyS_finit_module+0x6c/0x94)
[  127.675164] [<c00819bc>] (SyS_finit_module+0x6c/0x94) from [<c000da00>] (ret_fast_syscall+0x0/0x30)
[  127.675177] Code: e1540003 c3822001 e3520000 1a000005 (e5910010)
[  127.675258] ---[ end trace 0be8b8afa4266cfb ]---
:'(
回复

使用道具 举报

143

积分

0

威望

0

贡献

技术小白

积分
143
发表于 2016-8-26 14:12:24        只看该作者  沙发
还有就是注册pwm-rockchip.c这个驱动文件的具体步骤是什么
回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2016-8-26 14:35:57        只看该作者  板凳
zzj 发表于 2016-8-26 14:12
还有就是注册pwm-rockchip.c这个驱动文件的具体步骤是什么

无法申请应该具体看pwm_request报什么问题,一般申请不了都是占用,检查一下dts,那里也用到了pwm1
回复

使用道具 举报

143

积分

0

威望

0

贡献

技术小白

积分
143
发表于 2016-8-26 14:39:48        只看该作者  地板
leung先森 发表于 2016-8-26 14:35
无法申请应该具体看pwm_request报什么问题,一般申请不了都是占用,检查一下dts,那里也用到了pwm1

请问怎么检查dts?检查出来后又要怎么释放?用pwm_free()吗
回复

使用道具 举报

363

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
363
发表于 2016-8-26 16:11:52        只看该作者  5#
检查dts中是否被占用,disabled掉       pwm_request申请失败表明pwm1已经被占用,你可以直接操作它。若想自己另写驱动,那只能在sts中disabled,然后自己添加
回复

使用道具 举报

143

积分

0

威望

0

贡献

技术小白

积分
143
发表于 2016-8-28 14:29:49        只看该作者  6#
HelloBirthday 发表于 2016-8-26 16:11
检查dts中是否被占用,disabled掉       pwm_request申请失败表明pwm1已经被占用,你可以直接操作它。若想 ...

我把firefly rk3288.dts里和rk3288.dtsi里的pwm都设置成okay,然后跟你说的一样直接操作pwm1,函数调用顺序是struct pwm_device * pwm1;pwm_enable(pwm1);pwm_config(pwm1,100000,500000);
然后用示波器测pwm1口,结果没有电压变化,还是搞不明白:'(
回复

使用道具 举报

27

积分

0

威望

0

贡献

游客

积分
27
发表于 2016-8-28 15:38:18        只看该作者  7#
dmesg给全呀。log太少了
回复

使用道具 举报

143

积分

0

威望

0

贡献

技术小白

积分
143
发表于 2016-8-28 16:14:34        只看该作者  8#
xaityyy 发表于 2016-8-28 15:38
dmesg给全呀。log太少了

没办法:dizzy:,用的dmesg|tail命令只给这些
用dmesg的话就给的超出屏幕
回复

使用道具 举报

27

积分

0

威望

0

贡献

游客

积分
27
发表于 2016-8-28 16:21:51        只看该作者  9#
dmesg | tee dmesg.log。然后发dmesg.log出来。
如果是串口,打开log,就会有log到本地。
回复

使用道具 举报

42

积分

0

威望

0

贡献

技术小白

积分
42
发表于 2016-8-30 10:16:27        只看该作者  10#
pwm_regulator {
        compatible = "rockchip_pwm_regulator";
        pwms = <&pwm1 0 2000>;
        rockchip,pwm_id= <1>;
        rockchip,pwm_voltage_map= <925000 950000 975000 1000000 1025000 1050000 1075000 1100000 1125000 1150000 1175000 1200000 1225000 1250000 1275000 1300000 1325000 1350000 1375000 1400000>;
        rockchip,pwm_voltage= <1100000>;
        rockchip,pwm_min_voltage= <925000>;
        rockchip,pwm_max_voltage= <1400000>;
        rockchip,pwm_suspend_voltage= <950000>;
        rockchip,pwm_coefficient= <475>;
        regulators {
            #address-cells = <1>;
            #size-cells = <0>;
            pwm_reg0: regulator@0 {
                regulator-compatible = "pwm_dcdc1";
                regulator-name= "vdd_logic";
                regulator-min-microvolt = <925000>;
                regulator-max-microvolt = <1400000>;
                regulator-always-on;
                regulator-boot-on;
            };
        };
    };
dts中有这么一段,好像已经占用了pwm1,所以申请会失败,
但是这个是用来做电源控制吗,对应的硬件设备是什么?
回复

使用道具 举报

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

本版积分规则

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