From a00904f1035ecf6f443b4dc18ccffbbb87792621 Mon Sep 17 00:00:00 2001 From: ChiHun Won Date: Wed, 4 Jul 2018 15:14:41 +0900 Subject: [PATCH] fbdev: dpu20: sync-up dpu panel code Change-Id: Ide0732f669b599411308056a795220fd7b4716a6 Signed-off-by: ChiHun Won --- drivers/video/fbdev/exynos/dpu20/dsim.h | 1 + drivers/video/fbdev/exynos/dpu20/dsim_drv.c | 2 + .../video/fbdev/exynos/dpu20/panels/Kconfig | 5 + .../video/fbdev/exynos/dpu20/panels/Makefile | 1 + .../exynos/dpu20/panels/s6e3fa7_lcd_ctrl.c | 323 +++++++++++++++ .../exynos/dpu20/panels/s6e3fa7_mipi_lcd.c | 374 ++++++++++++++++++ .../fbdev/exynos/dpu20/panels/s6e3ha8_param.h | 4 +- 7 files changed, 708 insertions(+), 2 deletions(-) create mode 100644 drivers/video/fbdev/exynos/dpu20/panels/s6e3fa7_lcd_ctrl.c create mode 100644 drivers/video/fbdev/exynos/dpu20/panels/s6e3fa7_mipi_lcd.c diff --git a/drivers/video/fbdev/exynos/dpu20/dsim.h b/drivers/video/fbdev/exynos/dpu20/dsim.h index e456974b9270..481ae72add38 100644 --- a/drivers/video/fbdev/exynos/dpu20/dsim.h +++ b/drivers/video/fbdev/exynos/dpu20/dsim.h @@ -92,6 +92,7 @@ extern struct dsim_lcd_driver s6e3ha6_mipi_lcd_driver; extern struct dsim_lcd_driver s6e3ha8_mipi_lcd_driver; extern struct dsim_lcd_driver s6e3aa2_mipi_lcd_driver; extern struct dsim_lcd_driver s6e3fa0_mipi_lcd_driver; +extern struct dsim_lcd_driver s6e3fa7_mipi_lcd_driver; /* define video timer interrupt */ enum { diff --git a/drivers/video/fbdev/exynos/dpu20/dsim_drv.c b/drivers/video/fbdev/exynos/dpu20/dsim_drv.c index 0f2b46f0abab..db0f8f477fa8 100644 --- a/drivers/video/fbdev/exynos/dpu20/dsim_drv.c +++ b/drivers/video/fbdev/exynos/dpu20/dsim_drv.c @@ -1470,6 +1470,8 @@ static void dsim_register_panel(struct dsim_device *dsim) dsim->panel_ops = &s6e3aa2_mipi_lcd_driver; #elif IS_ENABLED(CONFIG_EXYNOS_DECON_LCD_S6E3FA0) dsim->panel_ops = &s6e3fa0_mipi_lcd_driver; +#elif IS_ENABLED(CONFIG_EXYNOS_DECON_LCD_S6E3FA7) + dsim->panel_ops = &s6e3fa7_mipi_lcd_driver; #elif IS_ENABLED(CONFIG_EXYNOS_DECON_LCD_EMUL_DISP) dsim->panel_ops = &emul_disp_mipi_lcd_driver; #else diff --git a/drivers/video/fbdev/exynos/dpu20/panels/Kconfig b/drivers/video/fbdev/exynos/dpu20/panels/Kconfig index c083ae5576cf..df2a3383b277 100644 --- a/drivers/video/fbdev/exynos/dpu20/panels/Kconfig +++ b/drivers/video/fbdev/exynos/dpu20/panels/Kconfig @@ -31,6 +31,11 @@ config EXYNOS_DECON_LCD_S6E3FA0 tristate "S6E3FA0 AMOLED HD LCD driver(1080 x 1920)" default n +config EXYNOS_DECON_LCD_S6E3FA7 + depends on EXYNOS_DECON_LCD && EXYNOS_MIPI_DSIM + tristate "S6E3FA7 AMOLED FHD LCD driver(1080 x 2220)" + default n + config EXYNOS_DECON_LCD_EMUL_DISP depends on EXYNOS_DECON_LCD && EXYNOS_MIPI_DSIM tristate "Virtual LCD driver for emulator(800 x 1280)" diff --git a/drivers/video/fbdev/exynos/dpu20/panels/Makefile b/drivers/video/fbdev/exynos/dpu20/panels/Makefile index d22f4b052ec0..9774c668ac30 100644 --- a/drivers/video/fbdev/exynos/dpu20/panels/Makefile +++ b/drivers/video/fbdev/exynos/dpu20/panels/Makefile @@ -4,4 +4,5 @@ obj-$(CONFIG_EXYNOS_DECON_LCD_S6E3HA6) += s6e3ha6_mipi_lcd.o s6e3ha6_lcd_ctrl.o obj-$(CONFIG_EXYNOS_DECON_LCD_S6E3HA8) += s6e3ha8_mipi_lcd.o s6e3ha8_lcd_ctrl.o obj-$(CONFIG_EXYNOS_DECON_LCD_S6E3AA2) += s6e3aa2_mipi_lcd.o s6e3aa2_lcd_ctrl.o obj-$(CONFIG_EXYNOS_DECON_LCD_S6E3FA0) += s6e3fa0_mipi_lcd.o s6e3fa0_lcd_ctrl.o +obj-$(CONFIG_EXYNOS_DECON_LCD_S6E3FA7) += s6e3fa7_mipi_lcd.o s6e3fa7_lcd_ctrl.o obj-$(CONFIG_EXYNOS_DECON_LCD_EMUL_DISP) += emul_disp_mipi_lcd.o emul_disp_lcd_ctrl.o diff --git a/drivers/video/fbdev/exynos/dpu20/panels/s6e3fa7_lcd_ctrl.c b/drivers/video/fbdev/exynos/dpu20/panels/s6e3fa7_lcd_ctrl.c new file mode 100644 index 000000000000..d8cb6b272878 --- /dev/null +++ b/drivers/video/fbdev/exynos/dpu20/panels/s6e3fa7_lcd_ctrl.c @@ -0,0 +1,323 @@ +/* drivers/video/exynos/panels/s6e3fa7_lcd_ctrl.c + * + * Samsung SoC MIPI LCD CONTROL functions + * + * Copyright (c) 2014 Samsung Electronics + * + * Jiun Yu, + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ +#include "lcd_ctrl.h" + +#include "../dsim.h" +#include