Edit online

CIR 配置

5 Dec 2024
Read time: 2 minute(s)

内核配置

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。

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";
    };
    
    参数
    rx-level
    配置值与 PCB 板的硬件电路设计相关:
    • 1,表示在空闲状态下,RX 为高电平,激活状态下为低电平。

    • 0,表示在空闲状态下,RX 为低电平,激活状态下为高电平。

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