本文档主要讲解在 iMX6 开发板设备树内核如何配置 pwm,文档以蜂鸣器的 PWM 为
例,将默认的 GPIO 配置设置为 PWM。
1 设备树修改
这里选择蜂鸣器的网络 CSI_PWN 来配置,对应的 IO 为 SD1_DAT2。
打开“arch/arm/boot/dts/imx6qdl-sabresd.dtsi”设备树文件,默认的配置是
“MX6QDL_PAD_SD1_DAT2__GPIO1_IO19”,如下图所示,将其注释掉。
在设备树代码中,增加以下 PWM 配置。
如下图所示。
增加 PWM2 的设备
增加之后如下图所示。
重新编译烧写到开发板中。
2 sys 测试
这里我们不增加驱动代码,直接利用 sys 即可,默认 pwm 的 sys 已经配置。
烧写新的设备树镜像之后,使用命令
echo 0 > sys/class/pwm/pwmchip1/export 初始化 pwm,将其配置为 pwm
取消的话使用“echo 0 > sys/class/pwm/pwmchip1/unexport”命令。
配置为 pwm 之后,使用命令以下命令:
echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable 使能
echo 1000000 > /sys/class/pwm/pwmchip1/pwm0/period 配置 period 为
1000000
echo 500000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 为
500000,可以听到蜂鸣器响
echo 100000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 为
100000,可以听到蜂鸣器响
echo 0 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 为 0,蜂
鸣器停止响。