Firefly开源社区

标题: RK3399 PWM3 的使用 [打印本页]

作者: jpchen    时间: 2019-11-28 11:11
标题: RK3399 PWM3 的使用
本帖最后由 jpchen 于 2019-12-16 11:58 编辑

在Firefly 中RK3399系列,我们选择AIO-3399C(AI) 机器,有一路PWM3是用做红外遥控的功能,但是如果用成普通的PWM功能改如何修改呢?其实比较简单,把dts里面配置PWM3红外的相关信息删除,然后在rk3399-firefly-demo.dtsi 里面设置pwm_id 为3,state设置
  1. --- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-demo.dtsi
  2. +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-demo.dtsi
  3. @@ -57,9 +57,9 @@
  4.          };

  5.         pwm_demo: pwm_demo {
  6. -                       status = "disabled";
  7. +                       status = "okay";
  8.                         compatible = "firefly,rk3399-pwm";
  9. -                       pwm_id = <1>;
  10. +                       pwm_id = <3>;
  11.                         min_period = <0>;
  12.                         max_period = <10000>;
  13.                         duty_ns = <5000>;
  14. --- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-port.dtsi
  15. +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-port.dtsi
  16. @@ -306,32 +306,10 @@

  17. };

  18. +
  19. &pwm3 {
  20.         status = "okay";
  21. -       interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH 0>;
  22. -       compatible = "rockchip,remotectl-pwm";
  23. -       remote_pwm_id = <3>;
  24. -       handle_cpu_id = <0>;
  25. -       remote_support_psci = <1>;
  26. -
  27. -    ir_key1{
  28. -        rockchip,usercode = <0xff00>;
  29. -        rockchip,key_table =
  30. -            <0xeb   KEY_POWER>,
  31. -            <0xec   KEY_MENU>,
  32. -            <0xfe   KEY_BACK>,
  33. -            <0xb7   KEY_HOME>,
  34. -            <0xa3   KEY_WWW>,
  35. -            <0xf4   KEY_VOLUMEUP>,
  36. -            <0xa7   KEY_VOLUMEDOWN>,
  37. -            <0xf8   KEY_REPLY>,
  38. -            <0xfc   KEY_UP>,
  39. -            <0xfd   KEY_DOWN>,
  40. -            <0xf1   KEY_LEFT>,
  41. -            <0xe5   KEY_RIGHT>;
  42. -    };
  43. };
复制代码


同时,我们可以cat节点看到对应pwm的信息
  1. rk3399_firefly_aioc_ai_lvds_box:/ # cat sys/kernel/debug/pwm                  
  2. platform/ff420030.pwm, 1 PWM device
  3. pwm-0   (firefly-pwm         ): requested enabled period: 10003 ns duty: 4991 ns polarity: inverse

  4. platform/ff420020.pwm, 1 PWM device
  5. pwm-0   (vdd-log             ): requested enabled period: 24997 ns duty: 16485 ns polarity: inverse

  6. platform/ff420010.pwm, 1 PWM device
  7. pwm-0   ((null)              ): period: 0 ns duty: 0 ns polarity: inverse

  8. platform/ff420000.pwm, 1 PWM device
  9. pwm-0   (backlight           ): requested enabled period: 24997 ns duty: 13524 ns polarity: inverse
复制代码
结果如图所示






作者: kiswih    时间: 2019-12-2 15:32
按照操作开机一直出现循环重启,错误提示: firefly-pwm pwm-demo: unable to request legacy PWM,错误代码: -517
作者: jpchen    时间: 2019-12-3 18:03
kiswih 发表于 2019-12-2 15:32
按照操作开机一直出现循环重启,错误提示: firefly-pwm pwm-demo: unable to request legacy PWM,错误代 ...

更新附件,然后修改dts就可以解决此问题

pwm-firefly.zip (1.75 KB, 下载次数: 35)

  1.            pwm_demo: pwm_demo {
  2.                 status = "okay";
  3.                 compatible = "firefly,rk3399-pwm";
  4.           pwms = <&pwm3 0 10000 1>;   //pwm1:PWM number   0 10000:PWM period in nanoseconds  1:polarity
  5.           duty_ns = <5000>;           //pwm duty cycle activation time, unit ns
  6.                  };
复制代码



作者: lovefish991    时间: 2020-2-19 16:58
学习下。。。
作者: greenburg    时间: 2020-5-6 20:01
jpchen 发表于 2019-12-3 18:03
更新附件,然后修改dts就可以解决此问题

thanks
作者: 苏云龙    时间: 2020-9-19 16:01

作者: loading    时间: 2021-7-12 16:01

作者: hutao    时间: 2021-9-7 10:36
学习了
作者: forenex    时间: 2021-9-30 10:39

作者: wx_HK_x6k    时间: 2022-1-7 09:23
学习 学习
作者: wx_哄哄_nPL    时间: 2022-1-7 15:18
学习下
作者: wx_哄哄_nPL    时间: 2022-1-7 15:33
学习下
作者: wx_哄哄_nPL    时间: 2022-1-7 15:37
学习下
作者: 葉呀叶啊YE    时间: 2023-4-5 18:46
学习下
作者: sun.shine    时间: 2023-9-6 09:36
学习了




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1