第十六章 PWM的配置

SSD201 和 SSD202拥有4路硬件 PWM。编号为 PWM0-PWM3,输出的GPIO可以通过 infinity2m-ssc011a-s01a-padmux-xxx.dtsi进行配置,调整PWM背光,需要屏蔽一下4个GPIO:

#<PAD_GPIO4         PINMUX_FOR_PWM0_MODE_3         MDRV_PUSE_PWM0 >,
#<PAD_GPIO5         PINMUX_FOR_PWM1_MODE_4         MDRV_PUSE_PWM1 >,
#<PAD_GPIO6         PINMUX_FOR_EJ_MODE_3           MDRV_PUSE_EJ_TDO >,
#<PAD_GPIO7         PINMUX_FOR_EJ_MODE_3           MDRV_PUSE_EJ_TDI >,


关于第二个参数,需要根据SSD201HWChecklistV6.xlsx[GPIOList]一表来确定是MODE_x:

接着修改 infinity2m-ssc011a-s01a-display.dtsi 的 pwm节点:

        pwm {
            compatible = "sstar,infinity-pwm";
            reg = <0x1F003400 0x600>;
            clocks = <&CLK_xtali_12m>;
            npwm = <4>;
            pad-ctrl = <PAD_GPIO4  PAD_GPIO5 PAD_UNKNOWN PAD_GPIO12>;
            status = "ok";  
        };

其中,npwm表示使用多少个PWM,pad-ctrl表示绑定的引脚,比如这里PWM0绑定PAD_GPIO4,PWM1绑定PAD_GPIO5。
kernel需要加载PWM驱动:

# cd kernel
# ARCH=arm make menuconfig

系统启动后,就可以看到/sys/class/pwm/pwmchip0目录了。
以下是操作PWM1的一个实例:

# cd /sys/class/pwm/pwmchip0
# echo 1 > export         表示输出
# cd pwm1
# echo 2000 > period      表示2kHz 的frequency 的pwm 波
# echo 25 > duty_cycle    表示占空比是25%
# echo 1 > enable         表示使能
# echo 0 > enable         表示使能
文档更新时间: 2022-05-26 17:09   作者:Aeeditor