// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2016 Nexell Co., Ltd. * * Author: junghyun, kim */ #include #include #include #include #include "soc/s5pxx18_soc_disptop.h" static int rgb_switch(int module, int input, struct dp_sync_info *sync, struct dp_rgb_dev *dev) { int mpu = dev->lcd_mpu_type; int rsc = 0, sel = 0; switch (module) { case 0: sel = mpu ? 1 : 0; break; case 1: sel = rsc ? 3 : 2; break; default: printf("Fail, %s nuknown module %d\n", __func__, module); return -1; } nx_disp_top_set_primary_mux(sel); return 0; } void nx_rgb_display(int module, struct dp_sync_info *sync, struct dp_ctrl_info *ctrl, struct dp_plane_top *top, struct dp_plane_info *planes, struct dp_rgb_dev *dev) { struct dp_plane_info *plane = planes; int input = module == 0 ? DP_DEVICE_DP0 : DP_DEVICE_DP1; int count = top->plane_num; int i = 0; printf("RGB: dp.%d\n", module); dp_control_init(module); dp_plane_init(module); /* set plane */ dp_plane_screen_setup(module, top); for (i = 0; count > i; i++, plane++) { if (!plane->enable) continue; dp_plane_layer_setup(module, plane); dp_plane_layer_enable(module, plane, 1); } dp_plane_screen_enable(module, 1); rgb_switch(module, input, sync, dev); dp_control_setup(module, sync, ctrl); dp_control_enable(module, 1); }