|
|
(3 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | [[PWM|English]] | + | [[PWM|English]]<br> |
− | ===H3上配置SYS_PWM===
| + | TODO |
− | ====先确定内核已经打了这个补丁====
| + | |
− | <syntaxhighlight lang="bash"> | + | |
− | https://github.com/torvalds/linux/commit/179a79fd740b6b2f66b64bae5cb6ecd483987d20
| + | |
− | </syntaxhighlight>
| + | |
− | ====修改内核dts配置, 启用SYS_PWM (在NanoPi NEO上, 引脚与POWER LED复用)====
| + | |
− | 参考以下补丁, 配置POWER LED对应的引脚为PWM功能,然后编译并测试:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
| + | |
− | index b9826c150c0a..ca62502ad9a3 100644
| + | |
− | --- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
| + | |
− | +++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
| + | |
− | @@ -45,6 +45,10 @@
| + | |
− | / {
| + | |
− | model = "FriendlyElec NanoPi-NEO";
| + | |
− | compatible = "friendlyelec,nanopi-neo", "allwinner,sun8i-h3";
| + | |
− | +
| + | |
− | + aliases {
| + | |
− | + pwm1 = &r_pwm;
| + | |
− | + };
| + | |
− | };
| + | |
− |
| + | |
− | &emac {
| + | |
− | @@ -52,4 +56,14 @@
| + | |
− | phy-mode = "mii";
| + | |
− | allwinner,leds-active-low;
| + | |
− | status = "okay";
| + | |
− | -};
| + | |
− | \ No newline at end of file
| + | |
− | +};
| + | |
− | +
| + | |
− | +&gpio_leds {
| + | |
− | + pinctrl-0 = <&leds_npi>;
| + | |
− | +
| + | |
− | + /delete-node/ pwr;
| + | |
− | +};
| + | |
− | +
| + | |
− | +&r_pwm {
| + | |
− | + status = "okay";
| + | |
− | +};
| + | |
− | diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
| + | |
− | index 5eeb41744735..1802f8ca2c56 100644
| + | |
− | --- a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
| + | |
− | +++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
| + | |
− | @@ -89,7 +89,7 @@
| + | |
− | };
| + | |
− | };
| + | |
− |
| + | |
− | - leds {
| + | |
− | + gpio_leds: leds {
| + | |
− | compatible = "gpio-leds";
| + | |
− | pinctrl-names = "default";
| + | |
− | pinctrl-0 = <&leds_npi>, <&leds_r_npi>;
| + | |
− | </syntaxhighlight>
| + | |
− | ====在NanoPi NEO上测试, 可看到 POWER LED闪烁====
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | #!/bin/bash
| + | |
− | | + | |
− | sys_pwm=/sys/class/pwm/pwmchip0
| + | |
− | | + | |
− | [ -d $sys_pwm ] || exit 1
| + | |
− | | + | |
− | if [ ! -d $sys_pwm/pwm0 ]; then
| + | |
− | echo 0 > $sys_pwm/export
| + | |
− | fi
| + | |
− | | + | |
− | echo 1000 > $sys_pwm/pwm0/period
| + | |
− | echo 1 > $sys_pwm/pwm0/enable
| + | |
− | | + | |
− | for n in $(seq 10); do
| + | |
− | for d in $(seq 0 50 1000); do
| + | |
− | echo $d > $sys_pwm/pwm0/duty_cycle
| + | |
− | sleep .02
| + | |
− | done
| + | |
− | sleep 1
| + | |
− | done
| + | |
− | </syntaxhighlight>
| + | |