Edit online

CIR 配置

CIR 包括以下配置内容:
  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--->
                        <*> ArtInChip IR remote control
    

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

  2. DTS 配置

    D211 配置

    CIR 模块基本配置

    cir: cir@19260000 {
        compatible = "artinchip,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