From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jimmy Rubin Subject: RFC: [PATCH 1/2] Video: Add support for MCDE frame buffer driver Date: Tue, 12 Oct 2010 09:42:26 +0200 Message-ID: <1286869347-8980-2-git-send-email-jimmy.rubin@stericsson.com> References: <1286869347-8980-1-git-send-email-jimmy.rubin@stericsson.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1286869347-8980-1-git-send-email-jimmy.rubin@stericsson.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-fbdev-devel@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Cc: Dan Johansson , Jimmy Rubin , Linus Walleij This patch adds support for the MCDE, Memory-to-display controller, found in the ST-Ericsson Ux500 products. This patch includes frame buffer device driver for MCDE. It also contains a generic display driver that supports DSI in command mode. Signed-off-by: Jimmy Rubin Acked-by: Linus Walleij --- drivers/video/Kconfig | 2 + drivers/video/Makefile | 1 + drivers/video/mcde/Kconfig | 39 + drivers/video/mcde/Makefile | 12 + drivers/video/mcde/display-generic_dsi.c | 152 + drivers/video/mcde/dsilink_regs.h | 2024 ++++++++++ drivers/video/mcde/mcde_bus.c | 259 ++ drivers/video/mcde/mcde_display.c | 427 ++ drivers/video/mcde/mcde_dss.c | 353 ++ drivers/video/mcde/mcde_fb.c | 697 ++++ drivers/video/mcde/mcde_hw.c | 2526 ++++++++++++ drivers/video/mcde/mcde_mod.c | 67 + drivers/video/mcde/mcde_regs.h | 5297 +++++++++++++++++++++++++ include/video/mcde/mcde.h | 387 ++ include/video/mcde/mcde_display-generic_dsi.h | 34 + include/video/mcde/mcde_display.h | 139 + include/video/mcde/mcde_dss.h | 78 + include/video/mcde/mcde_fb.h | 54 + 18 files changed, 12548 insertions(+), 0 deletions(-) create mode 100644 drivers/video/mcde/Kconfig create mode 100644 drivers/video/mcde/Makefile create mode 100644 drivers/video/mcde/display-generic_dsi.c create mode 100644 drivers/video/mcde/dsilink_regs.h create mode 100644 drivers/video/mcde/mcde_bus.c create mode 100644 drivers/video/mcde/mcde_display.c create mode 100644 drivers/video/mcde/mcde_dss.c create mode 100644 drivers/video/mcde/mcde_fb.c create mode 100644 drivers/video/mcde/mcde_hw.c create mode 100644 drivers/video/mcde/mcde_mod.c create mode 100644 drivers/video/mcde/mcde_regs.h create mode 100644 include/video/mcde/mcde.h create mode 100644 include/video/mcde/mcde_display-generic_dsi.h create mode 100644 include/video/mcde/mcde_display.h create mode 100644 include/video/mcde/mcde_dss.h create mode 100644 include/video/mcde/mcde_fb.h diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 43e90b8..a58be32 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -2258,6 +2258,8 @@ config FB_JZ4740 source "drivers/video/omap/Kconfig" source "drivers/video/omap2/Kconfig" +source "drivers/video/mcde/Kconfig" + source "drivers/video/backlight/Kconfig" source "drivers/video/display/Kconfig" diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 485e8ed..325cdcc 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -128,6 +128,7 @@ obj-$(CONFIG_FB_SH_MOBILE_HDMI) += sh_mobile_hdmi.o obj-$(CONFIG_FB_SH_MOBILE_LCDC) += sh_mobile_lcdcfb.o obj-$(CONFIG_FB_OMAP) += omap/ obj-y += omap2/ +obj-$(CONFIG_FB_MCDE) += mcde/ obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o obj-$(CONFIG_FB_CARMINE) += carminefb.o obj-$(CONFIG_FB_MB862XX) += mb862xx/ diff --git a/drivers/video/mcde/Kconfig b/drivers/video/mcde/Kconfig new file mode 100644 index 0000000..5dab37b --- /dev/null +++ b/drivers/video/mcde/Kconfig @@ -0,0 +1,39 @@ +config FB_MCDE + tristate "MCDE support" + depends on FB + select FB_SYS_FILLRECT + select FB_SYS_COPYAREA + select FB_SYS_IMAGEBLIT + select FB_SYS_FOPS + ---help--- + This enables support for MCDE based frame buffer driver. + + Please read the file + +config MCDE_DISPLAY_GENERIC_DSI + tristate "Generic display driver" + depends on FB_MCDE + +config FB_MCDE_DEBUG + bool "MCDE debug messages" + depends on FB_MCDE + ---help--- + Say Y here if you want the MCDE driver to output debug messages + +config FB_MCDE_VDEBUG + bool "MCDE verbose debug messages" + depends on FB_MCDE_DEBUG + ---help--- + Say Y here if you want the MCDE driver to output more debug messages + +config MCDE_FB_AVOID_REALLOC + bool "MCDE early allocate framebuffer" + default n + depends on FB_MCDE + ---help--- + If you say Y here maximum frame buffer size is allocated and + used for all resolutions. If you say N here, the frame buffer is + reallocated when resolution is changed. This reallocation might + fail because of fragmented memory. Note that this memory will + never be deallocated, while the MCDE framebuffer is used. + diff --git a/drivers/video/mcde/Makefile b/drivers/video/mcde/Makefile new file mode 100644 index 0000000..f90979a --- /dev/null +++ b/drivers/video/mcde/Makefile @@ -0,0 +1,12 @@ + +mcde-objs := mcde_mod.o mcde_hw.o mcde_dss.o mcde_display.o mcde_bus.o mcde_fb.o +obj-$(CONFIG_FB_MCDE) += mcde.o + +obj-$(CONFIG_MCDE_DISPLAY_GENERIC_DSI) += display-generic_dsi.o + +ifdef CONFIG_FB_MCDE_DEBUG +EXTRA_CFLAGS += -DDEBUG +endif +ifdef CONFIG_FB_MCDE_VDEBUG +EXTRA_CFLAGS += -DVERBOSE_DEBUG +endif diff --git a/drivers/video/mcde/display-generic_dsi.c b/drivers/video/mcde/display-generic_dsi.c new file mode 100644 index 0000000..1c1d266 --- /dev/null +++ b/drivers/video/mcde/display-generic_dsi.c @@ -0,0 +1,152 @@ +/* + * Copyright (C) ST-Ericsson SA 2010 + * + * ST-Ericsson MCDE generic DCS display driver + * + * Author: Marcus Lorentzon + * for ST-Ericsson. + * + * License terms: GNU General Public License (GPL), version 2. + */ + +#include +#include +#include +#include +#include + +#include