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_PRIVATE_H_ 12 #define _DISP_PRIVATE_H_ 13 #include "include.h" 14 #include "disp_features.h" 15 #if defined(CONFIG_ARCH_SUN50IW1) 16 #include "./lowlevel_sun50iw1/disp_al.h" 17 #elif defined(CONFIG_ARCH_SUN50IW2) 18 #include "./lowlevel_v2x/disp_al.h" 19 #elif defined(CONFIG_ARCH_SUN50IW8) 20 #include "./lowlevel_v2x/disp_al.h" 21 #elif defined(CONFIG_ARCH_SUN8IW10) 22 #include "./lowlevel_sun8iw10/disp_al.h" 23 #elif defined(CONFIG_ARCH_SUN8IW11) 24 #include "./lowlevel_v2x/disp_al.h" 25 #elif defined(CONFIG_ARCH_SUN8IW12) || defined(CONFIG_ARCH_SUN8IW16)\ 26 || defined(CONFIG_ARCH_SUN8IW19) || defined(CONFIG_ARCH_SUN20IW1) 27 #include "./lowlevel_v2x/disp_al.h" 28 #elif defined(CONFIG_ARCH_SUN8IW15) 29 #include "./lowlevel_v2x/disp_al.h" 30 #elif defined(CONFIG_ARCH_SUN50IW10) 31 #include "./lowlevel_v2x/disp_al.h" 32 #elif defined(CONFIG_ARCH_SUN8IW6) 33 #include "./lowlevel_v2x/disp_al.h" 34 #elif defined(CONFIG_ARCH_SUN8IW7) || defined(CONFIG_ARCH_SUN8IW17) 35 #include "./lowlevel_v2x/disp_al.h" 36 #elif defined(CONFIG_ARCH_SUN8IW8) 37 #include "./lowlevel_sun8iw8/disp_al.h" 38 #elif defined(CONFIG_ARCH_SUN50IW3) || defined(CONFIG_ARCH_SUN50IW6) 39 #include "./lowlevel_v3x/disp_al.h" 40 #else 41 #error "undefined platform!!!" 42 #endif 43 44 45 extern struct disp_device *disp_get_lcd(u32 disp); 46 47 extern struct disp_device *disp_get_hdmi(u32 disp); 48 49 extern struct disp_manager *disp_get_layer_manager(u32 disp); 50 51 extern struct disp_layer *disp_get_layer(u32 disp, u32 chn, u32 layer_id); 52 extern struct disp_layer *disp_get_layer_1(u32 disp, u32 layer_id); 53 extern struct disp_smbl *disp_get_smbl(u32 disp); 54 extern struct disp_enhance *disp_get_enhance(u32 disp); 55 extern struct disp_capture *disp_get_capture(u32 disp); 56 57 extern s32 disp_delay_ms(u32 ms); 58 extern s32 disp_delay_us(u32 us); 59 extern s32 disp_init_lcd(struct disp_bsp_init_para *para); 60 extern s32 disp_exit_lcd(void); 61 extern s32 disp_init_hdmi(struct disp_bsp_init_para *para); 62 extern s32 disp_exit_hdmi(void); 63 extern s32 disp_init_tv(void); /* (struct disp_bsp_init_para * para); */ 64 extern s32 disp_exit_tv(void); /* (struct disp_bsp_init_para * para); */ 65 extern s32 disp_exit_vdpo(void); 66 extern s32 disp_tv_set_func(struct disp_device *ptv, struct disp_tv_func *func); 67 extern s32 disp_init_tv_para(struct disp_bsp_init_para *para); 68 extern s32 disp_exit_tv_para(void); 69 extern s32 disp_tv_set_hpd(struct disp_device *ptv, u32 state); 70 extern s32 disp_init_vga(void); 71 extern s32 disp_exit_vga(void); 72 extern s32 disp_init_vdpo(struct disp_bsp_init_para *para); 73 extern s32 disp_init_edp(struct disp_bsp_init_para *para); 74 75 extern s32 disp_init_feat(void); 76 extern s32 disp_exit_feat(void); 77 extern s32 disp_init_mgr(struct disp_bsp_init_para *para); 78 extern s32 disp_exit_mgr(void); 79 extern s32 disp_init_enhance(struct disp_bsp_init_para *para); 80 extern s32 disp_exit_enhance(void); 81 extern s32 disp_init_smbl(struct disp_bsp_init_para *para); 82 extern s32 disp_exit_smbl(void); 83 extern s32 disp_init_capture(struct disp_bsp_init_para *para); 84 extern s32 disp_exit_capture(void); 85 86 #ifdef CONFIG_EINK_PANEL_USED 87 extern s32 disp_init_eink(struct disp_bsp_init_para *para); 88 extern s32 disp_exit_eink(void); 89 extern s32 write_edma(struct disp_eink_manager *manager); 90 extern s32 disp_init_format_convert_manager(struct disp_bsp_init_para *para); 91 extern void disp_exit_format_convert_manager(void); 92 93 extern struct disp_eink_manager *disp_get_eink_manager(unsigned int disp); 94 extern int eink_display_one_frame(struct disp_eink_manager *manager); 95 #endif 96 extern void sync_event_proc(u32 disp, bool timeout); 97 98 #include "disp_device.h" 99 100 u32 dump_layer_config(struct disp_layer_config_data *data); 101 102 extern s32 disp_init_rotation_sw(struct disp_bsp_init_para *para); 103 extern struct disp_rotation_sw *disp_get_rotation_sw(u32 disp); 104 #endif 105