]> Git Repo - J-u-boot.git/blob - drivers/video/nexell/s5pxx18_dp_rgb.c
Merge branch '2020-07-28-misc-soc-improvements'
[J-u-boot.git] / drivers / video / nexell / s5pxx18_dp_rgb.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (C) 2016  Nexell Co., Ltd.
4  *
5  * Author: junghyun, kim <[email protected]>
6  */
7
8 #include <config.h>
9 #include <common.h>
10 #include <errno.h>
11
12 #include <asm/arch/display.h>
13
14 #include "soc/s5pxx18_soc_disptop.h"
15
16 static int rgb_switch(int module, int input, struct dp_sync_info *sync,
17                       struct dp_rgb_dev *dev)
18 {
19         int mpu = dev->lcd_mpu_type;
20         int rsc = 0, sel = 0;
21
22         switch (module) {
23         case 0:
24                 sel = mpu ? 1 : 0;
25                 break;
26         case 1:
27                 sel = rsc ? 3 : 2;
28                 break;
29         default:
30                 printf("Fail, %s nuknown module %d\n", __func__, module);
31                 return -1;
32         }
33
34         nx_disp_top_set_primary_mux(sel);
35         return 0;
36 }
37
38 void nx_rgb_display(int module,
39                     struct dp_sync_info *sync, struct dp_ctrl_info *ctrl,
40                     struct dp_plane_top *top, struct dp_plane_info *planes,
41                     struct dp_rgb_dev *dev)
42 {
43         struct dp_plane_info *plane = planes;
44         int input = module == 0 ? DP_DEVICE_DP0 : DP_DEVICE_DP1;
45         int count = top->plane_num;
46         int i = 0;
47
48         printf("RGB:   dp.%d\n", module);
49
50         dp_control_init(module);
51         dp_plane_init(module);
52
53         /* set plane */
54         dp_plane_screen_setup(module, top);
55
56         for (i = 0; count > i; i++, plane++) {
57                 if (!plane->enable)
58                         continue;
59                 dp_plane_layer_setup(module, plane);
60                 dp_plane_layer_enable(module, plane, 1);
61         }
62
63         dp_plane_screen_enable(module, 1);
64
65         rgb_switch(module, input, sync, dev);
66
67         dp_control_setup(module, sync, ctrl);
68         dp_control_enable(module, 1);
69 }
This page took 0.028992 seconds and 4 git commands to generate.