1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (c) 2020 Rockchip Electronics Co. Ltd. 4 * 5 * Author: Zorro Liu <zorro.liu@rock-chips.com> 6 */ 7 8 #ifndef EPD_LUT_H 9 #define EPD_LUT_H 10 11 enum epd_lut_type { 12 WF_TYPE_RESET = 1, 13 WF_TYPE_GRAY16 = 2, 14 WF_TYPE_GRAY4 = 3, 15 WF_TYPE_GRAY2 = 4, 16 WF_TYPE_AUTO = 5, 17 WF_TYPE_A2 = 6, 18 WF_TYPE_GC16 = 7, 19 WF_TYPE_GL16 = 8, 20 WF_TYPE_GLR16 = 9, 21 WF_TYPE_GLD16 = 10, 22 WF_TYPE_GCC16 = 11, 23 WF_TYPE_MAX = 12, 24 }; 25 26 enum pvi_wf_mode { 27 PVI_WF_RESET = 0, 28 PVI_WF_DU = 1, 29 PVI_WF_DU4 = 2, 30 PVI_WF_GC16 = 3, 31 PVI_WF_GL16 = 4, 32 PVI_WF_GLR16 = 5, 33 PVI_WF_GLD16 = 6, 34 PVI_WF_A2 = 7, 35 PVI_WF_GCC16 = 8, 36 PVI_WF_MAX, 37 }; 38 39 struct epd_lut_data { 40 unsigned int frame_num; 41 unsigned int *data; 42 u8 *wf_table; 43 }; 44 45 /* 46 * EPD LUT module export symbols 47 */ 48 int epd_lut_from_mem_init(void *waveform); 49 int epd_lut_from_file_init(struct device *dev, void *waveform, int size); 50 const char *epd_lut_get_wf_version(void); 51 int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperture); 52 53 /* 54 * PVI Waveform Interfaces 55 */ 56 int pvi_wf_input(void *waveform_file); 57 const char *pvi_wf_get_version(void); 58 int pvi_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperture); 59 60 /* 61 * RKF Waveform Interfaces 62 */ 63 int rkf_wf_input(void *waveform_file); 64 const char *rkf_wf_get_version(void); 65 int rkf_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperture); 66 #endif 67