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