7.2.2. CIR配置

7.2.2.1. 内核配置

Device Drivers
    <*> Remote Controller support--->
            [*] LIRC user interface
            [*] Remote controller decoders--->
                    <*> Enable IR raw decoder for the NEC protocol
                    < > Enable IR raw decoder for the RC-5 protocol
                    < > Enable IR raw decoder for the RC-6 protocol
                    < > Enable IR raw decoder for the Sony protocol
                    < > Enable IR raw decoder for the Sanyo protocol
            [*] Remote Controller devices--->
                    <*> ZX IR remote control

备注

上图只是说明需要选择相应的红外协议,实际使用中可根据需要选择相应协议,CIR模块驱动可支持的协议有:NEC、RC5、RC6、Sony、Sanyo。

7.2.2.2. DTS配置

7.2.2.2.1. M4配置

CIR模块基本配置

cir: cir@19260000 {
    compatible = "zx,aic-cir-v1.0";
    reg = <0x0 0x19260000 0x0 0x400>;
    interrupts-extended = <&plic0 95 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&cmu CLK_CIR>;
    resets = <&rst RESET_CIR>;
};

xxx-board.dts配置

&cir {
    pinctrl-names = "default";
    pinctrl-0 = <&cir_pins_a>;
    rx-level = <1>;
    linux,rc-map-name = "rc-empty";
    status = "okay";
};

备注

  1. rx-level为1,表示在空闲状态下,RX为高电平,激活状态下为低电平;

  2. rx-level为0,表示在空闲状态下,RX为低电平,激活状态下为高电平。

  3. rx-level参数的设置与PCB板的硬件电路设计相关

备注

属性linux,rc-map-name表示该红外模块使用的“keycode-scancode”的映射表,默认使用内核中的空表,该属性可设置的值可参考rc-map.h