• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Allwinner SoCs display driver.
3  *
4  * Copyright (C) 2016 Allwinner.
5  *
6  * This file is licensed under the terms of the GNU General Public
7  * License version 2.  This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 
11 #ifndef _DISP_FEATURES_H_
12 #define _DISP_FEATURES_H_
13 
14 /* #include "include.h" */
15 #if defined(DE_VERSION_V33X) || defined(CONFIG_ARCH_SUN50IW9)
16 #include "./lowlevel_v33x/de330/de_feat.h"
17 #include "./lowlevel_v33x/tcon_feat.h"
18 #elif defined(CONFIG_ARCH_SUN8IW6)
19 #include "lowlevel_v2x/de_feat.h"
20 #elif defined(CONFIG_ARCH_SUN8IW7)
21 #include "lowlevel_v2x/de_feat.h"
22 #elif defined(CONFIG_ARCH_SUN8IW8)
23 #include "lowlevel_sun8iw8/de_feat.h"
24 #elif defined(CONFIG_ARCH_SUN8IW9)
25 #include "lowlevel_sun8iw9/de_feat.h"
26 #elif defined(CONFIG_ARCH_SUN8IW10)
27 #include "./lowlevel_sun8iw10/de_feat.h"
28 #elif defined(CONFIG_ARCH_SUN8IW11)
29 #include "./lowlevel_v2x/de_feat.h"
30 #elif defined(CONFIG_ARCH_SUN50IW1)
31 #include "./lowlevel_sun50iw1/de_feat.h"
32 #elif defined(CONFIG_ARCH_SUN50IW2)
33 #include "./lowlevel_v2x/de_feat.h"
34 #elif defined(CONFIG_ARCH_SUN50IW8)
35 #include "./lowlevel_v2x/de_feat.h"
36 #elif defined(CONFIG_ARCH_SUN8IW12) || defined(CONFIG_ARCH_SUN8IW16)\
37     || defined(CONFIG_ARCH_SUN8IW19) || defined(CONFIG_ARCH_SUN8IW20)\
38     || defined(CONFIG_ARCH_SUN20IW1)
39 #include "./lowlevel_v2x/de_feat.h"
40 #elif defined(CONFIG_ARCH_SUN8IW15) || defined(CONFIG_ARCH_SUN8IW17)
41 #include "./lowlevel_v2x/de_feat.h"
42 #elif defined(CONFIG_ARCH_SUN50IW10)
43 #include "./lowlevel_v2x/de_feat.h"
44 #elif defined(CONFIG_ARCH_SUN50IW3) || defined(CONFIG_ARCH_SUN50IW6)
45 #include "./lowlevel_v3x/de_feat.h"
46 #else
47 #error "undefined platform!!!"
48 #endif
49 
50 #define DISP_DEVICE_NUM DEVICE_NUM
51 #define DISP_SCREEN_NUM DE_NUM
52 #define DISP_WB_NUM DE_NUM
53 
54 struct disp_features {
55 	const int num_screens;
56 	const int *num_channels;
57 	const int *num_layers;
58 	const int *is_support_capture;
59 	const int *supported_output_types;
60 };
61 
62 struct disp_feat_init {
63 	unsigned int chn_cfg_mode;
64 };
65 
66 int bsp_disp_feat_get_num_screens(void);
67 int bsp_disp_feat_get_num_devices(void);
68 int bsp_disp_feat_get_num_channels(unsigned int disp);
69 int bsp_disp_feat_get_num_layers(unsigned int screen_id);
70 int bsp_disp_feat_get_num_layers_by_chn(unsigned int disp, unsigned int chn);
71 int bsp_disp_feat_is_supported_output_types(unsigned int screen_id,
72 					    unsigned int output_type);
73 int bsp_disp_feat_is_support_capture(unsigned int disp);
74 int bsp_disp_feat_is_support_smbl(unsigned int disp);
75 int bsp_disp_feat_is_support_enhance(unsigned int disp);
76 unsigned int bsp_disp_feat_get_num_vdpo(void);
77 int disp_init_feat(struct disp_feat_init *feat_init);
78 int disp_exit_feat(void);
79 int disp_feat_is_using_rcq(unsigned int disp);
80 int disp_feat_is_using_wb_rcq(unsigned int wb);
81 
82 #endif
83