blob: 71e497d08d98de4438f65ffed6a5df10a675296f [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __UAPI_IR_COMMON_MESON_H__
#define __UAPI_IR_COMMON_MESON_H__
#include <linux/types.h>
#define MAX_KEYMAP_SIZE 256
#define CUSTOM_NAME_LEN 64
/*to ensure kernel and user spase use the same header file*/
#define SHARE_DATA_VERSION "v1.1.1"
union _codemap {
struct ir_key_map {
__u16 keycode;
__u16 scancode;
} map;
__u32 code;
};
/*
*struct cursor_codemap - codemap for mouse mode
*
*@fn_key_scancode: scancode of fn key which used to swicth mode
*@cursor_left_scancode: scancode of left key
*@cursor_right_scancode: scancode of right key
*@cursor_up_scancode: scancode of up key
*@cursor_down_scancode: scancode of down key
*@cursor_ok_scancode: scancode of ok key
*/
struct cursor_codemap {
__u16 fn_key_scancode;
__u16 cursor_left_scancode;
__u16 cursor_right_scancode;
__u16 cursor_up_scancode;
__u16 cursor_down_scancode;
__u16 cursor_ok_scancode;
};
/**
*struct ir_map_table - the IR key map table for different remote-control
*
*@custom_name: table name
*@cursor_code: mouse mode need
*@map_size: number of IR key
*@custom_code: custom code, identify different key mapping table
*@release_delay: release delay time
*@codemap[0]: code for IR key
*/
struct ir_map_tab {
char custom_name[CUSTOM_NAME_LEN];
struct cursor_codemap cursor_code;
__u16 map_size;
__u32 custom_code;
__u32 release_delay;
__u32 vendor;
__u32 product;
__u32 version;
union _codemap codemap[0];
};
/**
*struct ir_sw_decode_para - configuration parameters for software decode
*
*@max_frame_time: maximum frame time
*/
struct ir_sw_decode_para {
unsigned int max_frame_time;
};
/*IOCTL commands*/
#define IR_IOC_SET_KEY_NUMBER _IOW('I', 3, __u32)
#define IR_IOC_SET_KEY_MAPPING_TAB _IOW('I', 4, __u32)
#define IR_IOC_SET_SW_DECODE_PARA _IOW('I', 5, __u32)
#define IR_IOC_GET_DATA_VERSION _IOR('I', 121, __u32)
#endif