本文介绍瑞芯微RK356X系列复用接口配置的方法,基于触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。
复用接口介绍
由下图可知,红圈内容当前引脚可配置为SPI0或者PWM0功能。
由标准系统固件以及相关系统手册可得,当前接口默认配置为SPI0功能:
console:/ # ls dev/spidev0.0
dev/spidev0.0
再由原理图可知当前GPIO为GPIO0_C3,下面开始将SPI0功能配置为PWM0功能。
设备树配置
设备树路径:
kernel-5.10/arch/arm64/boot/dts/rockchip/
第1步,禁用SPI功能,文件路径如下:ido-evb3562-v1b.dtsi
&spi0 {
+ status = "disabled";
pinctrl-0 = <&spi0m0_pins &spi0m0_csn0>;
spi_dev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <12000000>;
spi-lsb-first;
};
};
第2步,获取PWM0配置属性,在rk3562-pinctrl.dtsi文件获取PWM0 pinctrl属性,结合GPIO编号GPIO0_C3获取。
pwm0 {
/omit-if-no-ref/
pwm0m0_pins: pwm0m0-pins {
rockchip,pins =
/* pwm0_m0 */
<0 RK_PC3 2 &pcfg_pull_none_drv_level_1>;
};
...
};
由上可得,当前PWM0 princtrl属性为:pwm0m0_pins
第3步,配置PWM0
&pwm0 {
pinctrl-0 = <&pwm0m0_pins>;
status = "okay";
};
编译并测试
修改完成后单独编译内核,单独烧录kernel-5.10/boot.img包测试即可,然后开始测试。
开启PWM0节点:
#开启pwm0节点
echo 0 > sys/class/pwm/pwmchip0/export
#设置频率为10KHz
echo 10000 > sys/class/pwm/pwmchip0/pwm0/period
#设置占空比为50%
echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
#设置电平方向,默认为inversed
echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
#使能PWM输出
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable