IR-RX
介绍IR的配置和调试方式
模块介绍
红外接收模块主要功能是接收红外信号。
功能介绍
在k1平台中外接红外接收头(解调器)收到解调后的电信号在驱动和内核IR框架中进行解码并上报事件。
源码结构介绍
IR-RX控制器驱动代码在drivers/media/rc目录下:
drivers/media/rc
|--rc-ir-raw.c #内核ir框架接口代码
|--ir-nec-decoder.c #内核ir解码电信号代码
|--ir-spacemit.c #k1 ir驱动
关键特性
特性 |
---|
可配置噪声阈值 |
32Bytes大小RX FIFO |
配置介绍
主要包括驱动使能配置和dts配置
CONFIG配置
CONFIG_IR_SPACEMIT=y
Symbol: IR_SPACEMIT [=y]
Device Drivers
-> Remote Controller support (RC_CORE [=y])
-> Remote Controller devices (RC_DEVICES [=y])
-> SPACEMIT IR remote Recriver control (IR_SPACEMIT [=y])
dts配置
pinctrl
可查看linux仓库的arch/riscv/boot/dts/spacemit/k1-x_pinctrl.dtsi,参考已配置好的pwm节点配置,如下:
pinctrl_ir_rx_1: ir_rx_1_grp {
pinctrl-single,pins = <
K1X_PADCONF(GPIO_79, MUX_MODE1, (EDGE_NONE | PULL_UP | PAD_3V_DS4)) /* ir_rx */
>;
};
dtsi配置示例
dtsi中配置IR控制器基地址和时钟复位资源,正常情况无需改动
ircrx: irc-rx@d4017f00 {
compatible = "spacemit,k1x-irc";
reg = <0x0 0xd4017f00 0x0 0x100>;
interrupts = <69>;
interrupt-parent = <&intc>;
clocks = <&ccu CLK_IR>;
resets = <&reset RESET_IR>;
clock-frequency = <102400000>;
status = "disabled";
};