硬件基础
在我们的开发板上集成了一颗RGB灯组,引脚连接着主控的三路PWM输出,因此我们可以通过三路PWM输出进行调色的功能,硬件原理图如下:
![1.jpg](//www.obk20.com/file/web2/M00/6C/B9/poYBAGMypmSAIxugAACuDnr1-vw324.jpg)
内核设备树
我们把设备树补丁文件放在目录:~/share/patchs/pwm-dts
![1.jpg](//www.obk20.com/file/web2/M00/6C/B9/poYBAGMypn-APc5xAABnYq8V81M794.jpg)
板载的RGB灯珠连接的是主控的三路PWM
(PWM1,PWM2,PWM3);这三路PWM的设备树节点在rk3308.dtsi中;默认情况下是disabled的状态,我们只需要将disabled改成okay即可,补丁文件其实就是做了这个事情,可以通过patchloader.sh进行补丁。
![1.jpg](//www.obk20.com/file/web2/M00/6D/50/pYYBAGMyppqASlqAAAF7x-4Se-8774.jpg)
打补丁后再编译内核即可,要求rk3308.dtsi是原生未改动的,因为补丁也会调用之前有对rk3308.dtsi修改的补丁。
![1.jpg](//www.obk20.com/file/web2/M00/6D/50/pYYBAGMyprGAQt1HAAF7R8hH99Y501.jpg)
应用
烧录内核后,我们可以在板子上看到PWM的设备节点:
![1.jpg](//www.obk20.com/file/web2/M00/6D/50/pYYBAGMypsWAKRaPAABPi6NGYAg537.jpg)
说明一下:pwmchip0实际上是原厂评估板的LCD背光灯驱动,我们可以在设备树中将其关调,这里忽略pwmchip0;其他的对应我们的三路PWM,
导出三路PWM: echo 0 > pwmchipx/export
![1.jpg](//www.obk20.com/file/web2/M00/6D/51/pYYBAGMypwOABBqxAAE_CAZNdqE350.jpg)
![1.jpg](//www.obk20.com/file/web2/M00/6D/50/pYYBAGMypuSAQg9bAAG7so0cvmI275.jpg)
原作者:ByteHouse
|