From mboxrd@z Thu Jan 1 00:00:00 1970 From: Donghwa Lee Date: Fri, 27 Jan 2012 09:12:40 +0000 Subject: [PATCH v8 1/2] video: support MIPI-DSI controller driver Message-Id: <4F226A88.8080301@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org Samsung S5PC210 and EXYNOS SoC platform has MIPI-DSI controller and MIPI-DSI based LCD Panel could be used with it. This patch supports MIPI-DSI driver based Samsung SoC chip. LCD panel driver based MIPI-DSI should be registered to MIPI-DSI driver at machine code and LCD panel driver specific function registered to mipi_dsim_ddi structure at lcd panel init function called system init. In the MIPI-DSI driver, find lcd panel driver by using registered lcd panel name, and then initialize lcd panel driver. Changes since v7: - create new directory related exynos video driver - move all new files to driver/video/exynos - change name from "mipi_dsim.h" to "exynos_mipi_dsim.h". Signed-off-by: Donghwa Lee Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park Acked-by: Jingoo Han --- drivers/video/Kconfig | 1 + drivers/video/Makefile | 2 + drivers/video/exynos/Kconfig | 22 + drivers/video/exynos/Makefile | 6 + drivers/video/exynos/exynos_mipi_dsi.c | 600 +++++++++++++++ drivers/video/exynos/exynos_mipi_dsi_common.c | 896 +++++++++++++++++++++++ drivers/video/exynos/exynos_mipi_dsi_common.h | 46 ++ drivers/video/exynos/exynos_mipi_dsi_lowlevel.c | 618 ++++++++++++++++ drivers/video/exynos/exynos_mipi_dsi_lowlevel.h | 112 +++ drivers/video/exynos/exynos_mipi_dsi_regs.h | 149 ++++ include/video/exynos_mipi_dsim.h | 359 +++++++++ 11 files changed, 2811 insertions(+), 0 deletions(-) create mode 100644 drivers/video/exynos/Kconfig create mode 100644 drivers/video/exynos/Makefile create mode 100644 drivers/video/exynos/exynos_mipi_dsi.c create mode 100644 drivers/video/exynos/exynos_mipi_dsi_common.c create mode 100644 drivers/video/exynos/exynos_mipi_dsi_common.h create mode 100644 drivers/video/exynos/exynos_mipi_dsi_lowlevel.c create mode 100644 drivers/video/exynos/exynos_mipi_dsi_lowlevel.h create mode 100644 drivers/video/exynos/exynos_mipi_dsi_regs.h create mode 100644 include/video/exynos_mipi_dsim.h diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index d83e967..f2e05c0 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -2414,6 +2414,7 @@ source "drivers/video/omap2/Kconfig" source "drivers/video/backlight/Kconfig" source "drivers/video/display/Kconfig" +source "drivers/video/exynos/Kconfig" if VT source "drivers/video/console/Kconfig" diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 9b9d8ff..762a916 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -15,6 +15,8 @@ obj-$(CONFIG_VT) += console/ obj-$(CONFIG_LOGO) += logo/ obj-y += backlight/ display/ +obj-$(CONFIG_EXYNOS_VIDEO) += exynos/ + obj-$(CONFIG_FB_CFB_FILLRECT) += cfbfillrect.o obj-$(CONFIG_FB_CFB_COPYAREA) += cfbcopyarea.o obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig new file mode 100644 index 0000000..645b8a5 --- /dev/null +++ b/drivers/video/exynos/Kconfig @@ -0,0 +1,22 @@ +# +# Exynos Video configuration +# + +menuconfig EXYNOS_VIDEO + bool "Exynos Video driver support" + help + This enables support for EXYNOS Video device. + +if EXYNOS_VIDEO + +# +# MIPI DSI driver +# + +config EXYNOS_MIPI_DSI + bool "EXYNOS MIPI DSI driver support." + depends on (ARCH_S5PV210 || ARCH_EXYNOS) + help + This enables support for MIPI-DSI device. + +endif # EXYNOS_VIDEO diff --git a/drivers/video/exynos/Makefile b/drivers/video/exynos/Makefile new file mode 100644 index 0000000..a1ae82a --- /dev/null +++ b/drivers/video/exynos/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for the exynos video drivers. +# + +obj-$(CONFIG_EXYNOS_MIPI_DSI) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \ + exynos_mipi_dsi_lowlevel.o diff --git a/drivers/video/exynos/exynos_mipi_dsi.c b/drivers/video/exynos/exynos_mipi_dsi.c new file mode 100644 index 0000000..557091d --- /dev/null +++ b/drivers/video/exynos/exynos_mipi_dsi.c @@ -0,0 +1,600 @@ +/* linux/drivers/video/exynos/exynos_mipi_dsi.c + * + * Samsung SoC MIPI-DSIM driver. + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd + * + * InKi Dae, + * Donghwa Lee, + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include