====== VIM3/3L IR remote ======
This documentation is only used for Android.
This document guides you to add IR input keys on Android.
===== Hardware Configuration =====
''IR_IN'' (Infrared input signal) <-> ''GPIOAO_5'' (Infrared input port)
===== Android 9 software configuration =====
1. For VIM3, add the mapping from remote control code value to key value, enable remote control driver configuration in ''common/arch/arm/boot/dts/amlogic/mesong12b.dtsi''
```c
remote:rc@0xff808040 {
compatible = "amlogic, aml_remote";
dev_name = "meson-remote";
reg = <0xff808040 0x44>, /*Multi-format IR controller*/
<0xff808000 0x20>; /*Legacy IR controller*/
status = "okay";
protocol = ;
interrupts = <0 196 1>;
pinctrl-names = "default";
pinctrl-0 = <&remote_pins>;
map = <&custom_maps>;
max_frame_time = <200>; /*set software decoder max frame time*/
};
custom_maps:custom_maps {
mapnum = <1>;
map0 = <&map_0>;
map_0: map_0{
mapname = "khadas-ir";
customcode = <0xff00>;
release_delay = <80>;
fn_key_scancode = <0x5b>;
cursor_left_scancode = <0x0e>;
cursor_right_scancode = <0x1a>;
cursor_up_scancode = <0x03>;
cursor_down_scancode = <0x02>;
cursor_ok_scancode = <0x07>;
size = <13>; /*keymap size*/
keymap = ;
};
};
```
At present, the VIM3/VIM3L Android 9 platform is only equipped with the infrared remote control of khadas IR. if you need to add the remote control of NEC protocol, you can add the mapping of key values in the same location, such as ''map1'', ''map2'', the customer code of the remote control and so on. finally, ''mapnum'' is incremented by 1.
2. Add the Keylayout File ''device/khadas/kvim3/files/Vendor_0001_Product_0001.kl'', and compile to ''/vendor/usr/keylayout'' directory
```shell
$vi device/khadas/kvim3/files/Vendor_0001_Product_0001.kl
key 139 MENU
key 125 MENU
key 60 NOTIFICATION
key 127 SEARCH
key 217 SEARCH
key 228 POUND
key 227 STAR
key 231 CALL
key 61 CALL
key 97 DPAD_CENTER
key 232 DPAD_CENTER
key 108 DPAD_DOWN
key 103 DPAD_UP
key 102 HOME
key 105 DPAD_LEFT
key 106 DPAD_RIGHT
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 104 VOLUME_UP
key 109 VOLUME_DOWN
key 212 CAMERA
```
=== Remote key value query ===
If the driver and *.kl file are added correctly, Enter the command ''getevent -l'' and press the remote control to view the key value.
```shell
# getevent -l
/dev/input/event0: 0004 000400000068 <--- IR Code 0x68=104
/dev/input/event0: 0001 0042 00000001
/dev/input/event0:EV_MSC MSC_SCAN 00000068
/dev/input/event0:EV_KEY KEY_VOLUME_UP DOWN <--- linux key name KEY_VOLUME_UP
```