以NXP芯片中配置pwm波为例:
①定义一个字符设备,在设备树的根节点下添加一个pwm子节点
/{ /表示根节点
model=""
compatible=""
chosen="" 根节点中关于开发板的信息
pwmtest{
compatible="" 写入字符设备名称,在对应字符设备驱动初始化时,会通过此参数进行绑定
pinctrl-names="default"
pinctrl-0="" 实际的pwm引脚地址
pwm-id1=<0> ID
period1=<20000> ns,周期即频率
ontime1=<0> 占空比
如果还使用了pwm2等可在后面增加
delay_time=<0> 延时
}
②在io复用中定义引脚
&iomuxc{
imx8mm-evk{
...
pinctrl_pwm1:pwm1_grp{ 定义引脚
fsl,pins=<MX8MMIOMUXC_GPIO1_IO01_PWM1_OUT 0X06> 引脚号地址和偏移地址
}
同理如果使用别的pwm在后面增加
...
}
}
③设定pwm的状态
&pwm1{
pinctrl-names="default"
pinctrl-0 = <pinctrl_pwm1> 设定实际引脚地址
status = "okay" 设定状态可用
}
即可设定pwm字符设备,使能okay,输出引脚为GPIO1_01,初始id为0,周期20000ns,占空比为0