跳到主要内容

红外遥控

1. 简介

Omni3576 的红外传感器默认连接的是 PWM0_CH0_M0 引脚下,本小节主要描述如何测试和配置红外遥控。红外接收器位于 Omni3576 电源接口旁侧。

2. 测试

  1. 查看输入事件设备,其中pwm-event对应的就是红外遥控。

    root@luckfox:/home/luckfox# ls -l /dev/input/by-path/
    total 0
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-27330000.pwm-event -> ../event0
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-2ac40000.i2c-platform-rk805-pwrkey.2.auto-event -> ../event1
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-dp0-sound-event -> ../event3
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-wireless-bluetooth-event -> ../event2
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-xhci-hcd.0.auto-usb-0:1.4:1.0-event-kbd -> ../event4
    lrwxrwxrwx 1 root root 9 Oct 17 06:47 platform-xhci-hcd.0.auto-usb-0:1.4:1.1-event -> ../event6
  2. 获取红外遥控键值。

    echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
    • 调试串口会打印出红外遥控的按键值,ADB 和 SSH 等终端需要使用dmesg命令查看

3. 设备树简介

  1. 设备文件路径位于kernel-6.1/arch/arm64/boot/dts/rockchip/luckfox-omni3576.dts,开启IR的代码片段如下:

    &pwm0_2ch_0 {

    //compatible = "rockchip,remotectl-pwm";
    compatible = "rockchip,remotectl-pwm-v4";
    status = "okay";
    pinctrl-0 = <&pwm0m0_ch0>;
    pinctrl-names = "default";
    //interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
    remote_pwm_id = <3>;
    handle_cpu_id = <1>;
    remote_support_psci = <0>;

    ir_key_luckfox{
    rockchip,usercode = <0xff00>;
    rockchip,key_table =
    <0xb7 KEY_BACK>,
    <0xe9 KEY_UP>,
    <0xe8 KEY_DOWN>,
    <0xe6 KEY_LEFT>,
    <0xe7 KEY_RIGHT>,
    <0x6b KEY_HOME>,
    <0xbb KEY_VOLUMEUP>,
    <0xbc KEY_VOLUMEDOWN>,
    <0xf2 KEY_POWER>,
    <0xea KEY_ENTER>,
    <0xeb KEY_MENU>;
    };
    };