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(CONFIG_ARCH_SUN8IW6)
16 #include "lowlevel_v2x/de_feat.h"
17 #elif defined(CONFIG_ARCH_SUN8IW7)
18 #include "lowlevel_v2x/de_feat.h"
19 #elif defined(CONFIG_ARCH_SUN8IW8)
20 #include "lowlevel_sun8iw8/de_feat.h"
21 #elif defined(CONFIG_ARCH_SUN8IW9)
22 #include "lowlevel_sun8iw9/de_feat.h"
23 #elif defined(CONFIG_ARCH_SUN8IW10)
24 #include "./lowlevel_sun8iw10/de_feat.h"
25 #elif defined(CONFIG_ARCH_SUN8IW11)
26 #include "./lowlevel_v2x/de_feat.h"
27 #elif defined(CONFIG_ARCH_SUN50IW1)
28 #include "./lowlevel_sun50iw1/de_feat.h"
29 #elif defined(CONFIG_ARCH_SUN50IW2)
30 #include "./lowlevel_v2x/de_feat.h"
31 #elif defined(CONFIG_ARCH_SUN50IW8)
32 #include "./lowlevel_v2x/de_feat.h"
33 #elif defined(CONFIG_ARCH_SUN8IW12) || defined(CONFIG_ARCH_SUN8IW16)\
34     || defined(CONFIG_ARCH_SUN8IW19) || defined(CONFIG_ARCH_SUN20IW1)
35 #include "./lowlevel_v2x/de_feat.h"
36 #elif defined(CONFIG_ARCH_SUN8IW15) || defined(CONFIG_ARCH_SUN8IW17)
37 #include "./lowlevel_v2x/de_feat.h"
38 #elif defined(CONFIG_ARCH_SUN50IW10)
39 #include "./lowlevel_v2x/de_feat.h"
40 #elif defined(CONFIG_ARCH_SUN50IW3) || defined(CONFIG_ARCH_SUN50IW6)
41 #include "./lowlevel_v3x/de_feat.h"
42 #else
43 #error "undefined platform!!!"
44 #endif
45 
46 #define DISP_DEVICE_NUM DEVICE_NUM
47 #define DISP_SCREEN_NUM DE_NUM
48 
49 struct disp_features {
50     const s32 num_screens;
51     const s32 *num_channels;
52     const s32 *num_layers;
53     const s32 *is_support_capture;
54     const s32 *supported_output_types;
55 };
56 
57 s32 bsp_disp_feat_get_num_screens(void);
58 s32 bsp_disp_feat_get_num_devices(void);
59 s32 bsp_disp_feat_get_num_channels(u32 disp);
60 s32 bsp_disp_feat_get_num_layers(u32 screen_id);
61 s32 bsp_disp_feat_get_num_layers_by_chn(u32 disp, u32 chn);
62 s32 bsp_disp_feat_is_supported_output_types(u32 screen_id,
63                         u32 output_type);
64 s32 bsp_disp_feat_is_support_capture(u32 disp);
65 s32 bsp_disp_feat_is_support_smbl(u32 disp);
66 s32 bsp_disp_feat_is_support_enhance(u32 disp);
67 u32 bsp_disp_feat_get_num_vdpo(void);
68 s32 disp_init_feat(void);
69 s32 disp_exit_feat(void);
70 
71 #endif
72