fbdev: add new TMIO framebuffer driver

Add driver for TMIO framebuffer cells as found e.g. in Toshiba TC6393XB
chips.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Ian Molton <spyro@f2s.com>
Acked-by: Samuel Ortiz <sameo@openedhand.com>
Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Dmitry Baryshkov 2008-10-15 22:03:55 -07:00 committed by Linus Torvalds
parent d5ca900603
commit b53cde3557
4 changed files with 1092 additions and 0 deletions

View file

@ -1896,6 +1896,28 @@ config FB_SH_MOBILE_LCDC
---help--- ---help---
Frame buffer driver for the on-chip SH-Mobile LCD controller. Frame buffer driver for the on-chip SH-Mobile LCD controller.
config FB_TMIO
tristate "Toshiba Mobile IO FrameBuffer support"
depends on FB && MFD_CORE
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---help---
Frame buffer driver for the Toshiba Mobile IO integrated as found
on the Sharp SL-6000 series
This driver is also available as a module ( = code which can be
inserted and removed from the running kernel whenever you want). The
module will be called tmiofb. If you want to compile it as a module,
say M here and read <file:Documentation/kbuild/modules.txt>.
If unsure, say N.
config FB_TMIO_ACCELL
bool "tmiofb acceleration"
depends on FB_TMIO
default y
config FB_S3C2410 config FB_S3C2410
tristate "S3C2410 LCD framebuffer support" tristate "S3C2410 LCD framebuffer support"
depends on FB && ARCH_S3C2410 depends on FB && ARCH_S3C2410

View file

@ -98,6 +98,7 @@ obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o
obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o
obj-$(CONFIG_FB_PXA) += pxafb.o obj-$(CONFIG_FB_PXA) += pxafb.o
obj-$(CONFIG_FB_W100) += w100fb.o obj-$(CONFIG_FB_W100) += w100fb.o
obj-$(CONFIG_FB_TMIO) += tmiofb.o
obj-$(CONFIG_FB_AU1100) += au1100fb.o obj-$(CONFIG_FB_AU1100) += au1100fb.o
obj-$(CONFIG_FB_AU1200) += au1200fb.o obj-$(CONFIG_FB_AU1200) += au1200fb.o
obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o

1050
drivers/video/tmiofb.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,8 @@
#ifndef MFD_TMIO_H #ifndef MFD_TMIO_H
#define MFD_TMIO_H #define MFD_TMIO_H
#include <linux/fb.h>
#define tmio_ioread8(addr) readb(addr) #define tmio_ioread8(addr) readb(addr)
#define tmio_ioread16(addr) readw(addr) #define tmio_ioread16(addr) readw(addr)
#define tmio_ioread16_rep(r, b, l) readsw(r, b, l) #define tmio_ioread16_rep(r, b, l) readsw(r, b, l)
@ -25,4 +27,21 @@ struct tmio_nand_data {
unsigned int num_partitions; unsigned int num_partitions;
}; };
#define FBIO_TMIO_ACC_WRITE 0x7C639300
#define FBIO_TMIO_ACC_SYNC 0x7C639301
struct tmio_fb_data {
int (*lcd_set_power)(struct platform_device *fb_dev,
bool on);
int (*lcd_mode)(struct platform_device *fb_dev,
const struct fb_videomode *mode);
int num_modes;
struct fb_videomode *modes;
/* in mm: size of screen */
int height;
int width;
};
#endif #endif