blob: c8030a1e6b9b90605dd5907e192f40d667d4a9b3 [file] [log] [blame] [edit]
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef _DV_IOC_H_
#define _DV_IOC_H_
#include <linux/types.h>
enum pq_item_e {
PQ_BRIGHTNESS = 0, /*Brightness */
PQ_CONTRAST = 1, /*Contrast */
PQ_COLORSHIFT = 2, /*ColorShift or Tint*/
PQ_SATURATION = 3 /*Saturation or color */
};
enum pq_reset_e {
RESET_ALL = 0, /*reset picture mode / pq for all picture mode*/
RESET_PQ_FOR_ALL = 1, /*reset pq for all picture mode*/
RESET_PQ_FOR_CUR = 2 /*reset pq for current picture mode */
};
struct pic_mode_info_s {
int pic_mode_id;
unsigned char name[32];
};
struct dv_pq_info_s {
int pic_mode_id;
enum pq_item_e item;
__s16 value;
};
struct dv_full_pq_info_s {
int pic_mode_id;
__s16 brightness; /*Brightness */
__s16 contrast; /*Contrast */
__s16 colorshift; /*ColorShift or Tint*/
__s16 saturation; /*Saturation or color */
};
struct dv_config_file_s {
unsigned char bin_name[256];
unsigned char cfg_name[256];
};
struct ambient_cfg_s {
__u32 update_flag;
__u32 ambient; /* 1<<16 */
__u32 t_rearLum;
__u32 t_frontLux;
__u32 t_whiteX; /* 1<<15 */
__u32 t_whiteY; /* 1<<15 */
__u32 dark_detail;
};
struct dv_config_data_s {
unsigned int file_name; // 0:cfg 1:bin
unsigned int file_size;
union {
void *file_data;
long long file_table;
};
};
#define DV_M 'D'
/* get Number of Picture Mode */
#define DV_IOC_GET_DV_PIC_MODE_NUM _IOR((DV_M), 0x0, int)
/* get Picture Mode Name of input pic_mode_id */
#define DV_IOC_GET_DV_PIC_MODE_NAME _IOWR((DV_M), 0x1, struct pic_mode_info_s)
/* get current active picture mode */
#define DV_IOC_GET_DV_PIC_MODE_ID _IOR((DV_M), 0x2, int)
/* select active picture mode */
#define DV_IOC_SET_DV_PIC_MODE_ID _IOW((DV_M), 0x3, int)
/* get single pq(contrast or brightness or colorshift or saturation) */
#define DV_IOC_GET_DV_SINGLE_PQ_VALUE _IOWR((DV_M), 0x4, struct dv_pq_info_s)
/* get all pq(contrast, brightness,colorshift ,saturation) */
#define DV_IOC_GET_DV_FULL_PQ_VALUE _IOWR((DV_M), 0x5, struct dv_full_pq_info_s)
/* set single pq(contrast or brightness or colorshift or saturation) */
#define DV_IOC_SET_DV_SINGLE_PQ_VALUE _IOWR((DV_M), 0x6, struct dv_pq_info_s)
/* set all pq(contrast,brightness ,colorshift , saturation) */
#define DV_IOC_SET_DV_FULL_PQ_VALUE _IOWR((DV_M), 0x7, struct dv_full_pq_info_s)
/* reset all pq item for current picture mode */
#define DV_IOC_SET_DV_PQ_RESET _IOWR((DV_M), 0x8, enum pq_reset_e)
/* set Amlogic_cfg.txt and dv_config.bin dir */
#define DV_IOC_SET_DV_CONFIG_FILE _IOW((DV_M), 0x9, struct dv_config_file_s)
/* set ambient light */
#define DV_IOC_SET_DV_AMBIENT _IOW((DV_M), 0xa, struct ambient_cfg_s)
/*1: disable dv GD, 0: restore dv GD*/
#define DV_IOC_CONFIG_DV_BL _IOW((DV_M), 0xb, int)
/*1: enable dv dark detail, 0: disable dv GD*/
#define DV_IOC_SET_DV_DARK_DETAIL _IOW((DV_M), 0xc, int)
/* set Amlogic_cfg.txt and dv_config.bin data */
#define DV_IOC_SET_DV_CONFIG_DATA _IOW((DV_M), 0xd, struct dv_config_data_s)
#endif