xref: /rk3399_rockchip-uboot/drivers/video/rk_eink/epdlut/epd_lut.c (revision 1e54c4330940469b5f7ddb396c47a4a5a89e3e21)
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 #include <stdio.h>
9 #include <common.h>
10 #include <stdlib.h>
11 
12 #include "epd_lut.h"
13 
14 static int (*lut_get)(struct epd_lut_data *, enum epd_lut_type, int, int, int);
15 
epd_lut_from_mem_init(void * waveform)16 int epd_lut_from_mem_init(void *waveform)
17 {
18 	int ret = -1;
19 
20 	ret = rkf_wf_input(waveform);
21 	if (ret < 0) {
22 		printf("[lut]: failed to input RKF waveform\n");
23 	} else {
24 		printf("[lut]: RKF waveform\n");
25 		lut_get = rkf_wf_get_lut;
26 		return 0;
27 	}
28 
29 	ret = pvi_wf_input(waveform);
30 	if (ret < 0) {
31 		printf("[lut]: failed to input PVI waveform\n");
32 	} else {
33 		printf("[lut]: PVI waveform\n");
34 		lut_get = pvi_wf_get_lut;
35 		return 0;
36 	}
37 
38 	return ret;
39 }
40 
epd_lut_get_wf_version(void)41 const char *epd_lut_get_wf_version(void)
42 {
43 	if (rkf_wf_get_version())
44 		return rkf_wf_get_version();
45 	if (pvi_wf_get_version())
46 		return pvi_wf_get_version();
47 	return NULL;
48 }
49 
epd_lut_get(struct epd_lut_data * output,enum epd_lut_type lut_type,int temperture,int pic,int regal_pix)50 int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperture, int pic, int regal_pix)
51 {
52 	return lut_get(output, lut_type, temperture, pic, regal_pix);
53 }
54 
55 //you can change overlay lut mode here
epd_overlay_lut(void)56 int epd_overlay_lut(void)
57 {
58 	return WF_TYPE_GRAY2;
59 }
60