立即注册
查看: 776|回复: 7

[资料] 全志D1-H Tina Linux PWM 开发指南

已绑定手机
发表于 2022-12-16 09:45:36 | 显示全部楼层 |阅读模式 来自 广东省深圳市南山区
介绍全志PWM 的使用方法。

1.2 适用范围
表1-1: 适用产品列表
产品名称:D1-H
内核版本: Linux-5.4
驱动文件: pwm-sunxi-group.c

1.3 相关人员
PWM 驱动和应用开发人员。

2 模块介绍
2.1 源码结构说明
本模块借助于标准Linux PWM 子系统。其代码路径为:
tina/lichee/linux-5.4/drivers/pwm/pwm-sunxi-group.c

2.2 模块配置说明
2.2.1 内核配置
在tina 根目录下,执行make kernel_menuconfig,进行内核驱动的配置。

2.2.1.1 pwm-sunxi-group.c
  1. Device Drivers
  2. └─>Pulse-Width Modulation (PWM) Support
  3. └─>SUNXI PWM SELECT.
  4. └─>Sunxi PWM group support
复制代码

2.2.2 dts 配置
通过命令cdts 可以跳转到方案dts 的路径。
方案dts 路径:
tina/lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi

pwm 配置如下:
  1. pwm: pwm@2000c00 {
  2. #pwm-cells = <0x3>;
  3. compatible = "Allwinner,sunxi-pwm";
  4. reg = <0x0 0x02000c00 0x0 0x3ff>;
  5. clocks = <&ccu CLK_BUS_PWM>;
  6. resets = <&ccu RST_BUS_PWM>;
  7. pwm-number = <8>;
  8. pwm-base = <0x0>;
  9. sunxi-pwms = <&pwm0>, <&pwm1>, <&pwm2>, <&pwm3>, <&pwm4>,
  10. <&pwm5>, <&pwm6>, <&pwm7>;
  11. };
  12. pwm0: pwm0@2000c10 {
  13. compatible = "allwinner,sunxi-pwm0";
  14. reg = <0x0 0x02000c10 0x0 0x4>;
  15. reg_base = <0x02000c00>;
  16. };
  17. pwm1: pwm1@2000c11 {
  18. compatible = "allwinner,sunxi-pwm1";
  19. reg = <0x0 0x02000c11 0x0 0x4>;
  20. reg_base = <0x02000c00>;
  21. };
  22. pwm2: pwm2@2000c12 {
  23. compatible = "allwinner,sunxi-pwm2";
  24. reg = <0x0 0x02000c12 0x0 0x4>;
  25. reg_base = <0x02000c00>;
  26. };
  27. pwm3: pwm3@2000c13 {
  28. compatible = "allwinner,sunxi-pwm3";
  29. reg = <0x0 0x02000c13 0x0 0x4>;
  30. reg_base = <0x02000c00>;
  31. };
  32. pwm4: pwm4@2000c14 {
  33. compatible = "allwinner,sunxi-pwm4";
  34. reg = <0x0 0x02000c14 0x0 0x4>;
  35. reg_base = <0x02000c00>;
  36. };
  37. pwm5: pwm5@2000c15 {
  38. compatible = "allwinner,sunxi-pwm5";
  39. reg = <0x0 0x02000c15 0x0 0x4>;
  40. reg_base = <0x02000c00>;
  41. };
  42. pwm6: pwm6@2000c16 {
  43. compatible = "allwinner,sunxi-pwm6";
  44. reg = <0x0 0x02000c16 0x0 0x4>;
  45. reg_base = <0x02000c00>;
  46. };
  47. pwm7: pwm7@2000c17 {
  48. compatible = "allwinner,sunxi-pwm7";
  49. reg = <0x0 0x02000c17 0x0 0x4>;
  50. reg_base = <0x02000c00>;
  51. };
复制代码

板级dts 主要是配置pwm 的引脚设置,通过cconfigs 可以跳转到板级dts 的路径下:
tina/device/config/chips/d1-h/configs/nezha/linux/board.dts

board.dts 配置如下所示:
  1. &pio {
  2. ...............//省略其他模块的引脚设置
  3. pwm0_pin_a: pwm0@0 {
  4. pins = "PD16";
  5. function = "pwm0";
  6. drive-strength = <10>;
  7. bias-pull-up;
  8. };
  9. pwm0_pin_b: pwm0@1 {
  10. pins = "PD16";
  11. function = "gpio_in";
  12. bias-disable;
  13. };
  14. pwm2_pin_a: pwm2@0 {
  15. pins = "PD18";
  16. function = "pwm2";
  17. drive-strength = <10>;
  18. bias-pull-up;
  19. };
  20. pwm2_pin_b: pwm2@1 {
  21. pins = "PD18";
  22. function = "gpio_in";
  23. };
  24. pwm7_pin_a: pwm7@0 {
  25. pins = "PD22";
  26. function = "pwm7";
  27. drive-strength = <10>;
  28. bias-pull-up;
  29. };
  30. pwm7_pin_b: pwm7@1 {
  31. pins = "PD22";
  32. function = "gpio_in";
  33. };
  34. ...............//省略其他模块的引脚设置
  35. };
  36. &pwm0 {
  37. pinctrl-names = "active", "sleep";
  38. pinctrl-0 = <&pwm0_pin_a>;
  39. pinctrl-1 = <&pwm0_pin_b>;
  40. status = "okay";
  41. };
  42. &pwm2 {
  43. pinctrl-names = "active", "sleep";
  44. pinctrl-0 = <&pwm2_pin_a>;
  45. pinctrl-1 = <&pwm2_pin_b>;
  46. status = "okay";
  47. };
  48. &pwm7 {
  49. pinctrl-names = "active", "sleep";
  50. pinctrl-0 = <&pwm7_pin_a>;
  51. pinctrl-1 = <&pwm7_pin_b>;
  52. status = "okay";
  53. };
复制代码

游客,如果您要查看本帖隐藏内容请回复

已绑定手机
发表于 2023-4-3 09:06:57 来自手机 | 显示全部楼层 来自 广东省深圳市
很好的资料
已绑定手机
发表于 2023-5-11 10:04:51 | 显示全部楼层 来自 浙江省杭州市
附件在哪儿下
已绑定手机
发表于 2023-5-11 10:05:04 | 显示全部楼层 来自 浙江省杭州市
附件在哪儿下
已绑定手机
发表于 2023-5-11 10:05:16 | 显示全部楼层 来自 浙江省杭州市
附件在哪儿下
已绑定手机
发表于 2023-7-10 10:54:20 | 显示全部楼层 来自 广东省深圳市
感谢分享
已绑定手机
发表于 2023-12-16 12:00:13 | 显示全部楼层 来自 亚太地区
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
已绑定手机
发表于 2024-1-16 09:30:38 | 显示全部楼层 来自 广东省深圳市
谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表