xref: /rk3399_rockchip-uboot/drivers/video/rk_eink/epdlut/epd_lut.c (revision 1e54c4330940469b5f7ddb396c47a4a5a89e3e21)
193a7515aSWenping Zhang // SPDX-License-Identifier: GPL-2.0
293a7515aSWenping Zhang /*
3*1e54c433SZhibin Huang  * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
493a7515aSWenping Zhang  *
593a7515aSWenping Zhang  * Author: Zorro Liu <zorro.liu@rock-chips.com>
693a7515aSWenping Zhang  */
7*1e54c433SZhibin Huang 
893a7515aSWenping Zhang #include <stdio.h>
993a7515aSWenping Zhang #include <common.h>
1093a7515aSWenping Zhang #include <stdlib.h>
1193a7515aSWenping Zhang 
1293a7515aSWenping Zhang #include "epd_lut.h"
1393a7515aSWenping Zhang 
14*1e54c433SZhibin Huang static int (*lut_get)(struct epd_lut_data *, enum epd_lut_type, int, int, int);
15*1e54c433SZhibin Huang 
epd_lut_from_mem_init(void * waveform)16*1e54c433SZhibin Huang int epd_lut_from_mem_init(void *waveform)
1793a7515aSWenping Zhang {
1893a7515aSWenping Zhang 	int ret = -1;
1993a7515aSWenping Zhang 
2093a7515aSWenping Zhang 	ret = rkf_wf_input(waveform);
2193a7515aSWenping Zhang 	if (ret < 0) {
2293a7515aSWenping Zhang 		printf("[lut]: failed to input RKF waveform\n");
2393a7515aSWenping Zhang 	} else {
2493a7515aSWenping Zhang 		printf("[lut]: RKF waveform\n");
25*1e54c433SZhibin Huang 		lut_get = rkf_wf_get_lut;
2693a7515aSWenping Zhang 		return 0;
2793a7515aSWenping Zhang 	}
2893a7515aSWenping Zhang 
2993a7515aSWenping Zhang 	ret = pvi_wf_input(waveform);
3093a7515aSWenping Zhang 	if (ret < 0) {
3193a7515aSWenping Zhang 		printf("[lut]: failed to input PVI waveform\n");
3293a7515aSWenping Zhang 	} else {
3393a7515aSWenping Zhang 		printf("[lut]: PVI waveform\n");
34*1e54c433SZhibin Huang 		lut_get = pvi_wf_get_lut;
3593a7515aSWenping Zhang 		return 0;
3693a7515aSWenping Zhang 	}
3793a7515aSWenping Zhang 
3893a7515aSWenping Zhang 	return ret;
3993a7515aSWenping Zhang }
4093a7515aSWenping Zhang 
epd_lut_get_wf_version(void)4193a7515aSWenping Zhang const char *epd_lut_get_wf_version(void)
4293a7515aSWenping Zhang {
4393a7515aSWenping Zhang 	if (rkf_wf_get_version())
4493a7515aSWenping Zhang 		return rkf_wf_get_version();
4593a7515aSWenping Zhang 	if (pvi_wf_get_version())
4693a7515aSWenping Zhang 		return pvi_wf_get_version();
4793a7515aSWenping Zhang 	return NULL;
4893a7515aSWenping Zhang }
49*1e54c433SZhibin Huang 
epd_lut_get(struct epd_lut_data * output,enum epd_lut_type lut_type,int temperture,int pic,int regal_pix)50*1e54c433SZhibin Huang int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperture, int pic, int regal_pix)
51*1e54c433SZhibin Huang {
52*1e54c433SZhibin Huang 	return lut_get(output, lut_type, temperture, pic, regal_pix);
53*1e54c433SZhibin Huang }
54*1e54c433SZhibin Huang 
55*1e54c433SZhibin Huang //you can change overlay lut mode here
epd_overlay_lut(void)56*1e54c433SZhibin Huang int epd_overlay_lut(void)
57*1e54c433SZhibin Huang {
58*1e54c433SZhibin Huang 	return WF_TYPE_GRAY2;
59*1e54c433SZhibin Huang }
60