Linux之IR驱动
背景
在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。红外遥控成本很低,以前广泛应用在电视,空调等电器的控制上面,现在随着蓝牙遥控器慢慢普及,红外遥控越来越少,但在某些场景,还保留着红外通信
红外属于media子系统里面的rc(remote control)模块,所以相关驱动代码目录为 drivers/media/rc/
相关内核文档:
Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
Documentation/devicetree/bindings/media/rc.yaml
下面就从红外的接收、发送和编解码协议简单记录下
接收
红外接收的处理有很多种方式,有些soc有专门的硬件模块,有些使用的是通用的gpio,这里以常见的gpio为例,其他的都大同小异。
用通用的GPIO来接收红外原理比较简单,代码实现主要在:
drivers/media/rc/gpio-ir-recv.c
drivers/media/rc/rc-main.c
drivers/media/rc/rc-ir-raw.c
主要流程
。。。。。。