Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
[linux-2.6/linux-2.6-openrd.git] / include / linux / mfd / tc6393xb.h
blob626e448205c543ed8d6b2cd3a361d07d67719c4a
1 /*
2 * Toshiba TC6393XB SoC support
4 * Copyright(c) 2005-2006 Chris Humbert
5 * Copyright(c) 2005 Dirk Opfer
6 * Copyright(c) 2005 Ian Molton <spyro@f2s.com>
7 * Copyright(c) 2007 Dmitry Baryshkov
9 * Based on code written by Sharp/Lineo for 2.4 kernels
10 * Based on locomo.c
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
17 #ifndef MFD_TC6393XB_H
18 #define MFD_TC6393XB_H
20 #include <linux/fb.h>
22 /* Also one should provide the CK3P6MI clock */
23 struct tc6393xb_platform_data {
24 u16 scr_pll2cr; /* PLL2 Control */
25 u16 scr_gper; /* GP Enable */
27 int (*enable)(struct platform_device *dev);
28 int (*disable)(struct platform_device *dev);
29 int (*suspend)(struct platform_device *dev);
30 int (*resume)(struct platform_device *dev);
32 int irq_base; /* base for subdevice irqs */
33 int gpio_base;
34 int (*setup)(struct platform_device *dev);
35 void (*teardown)(struct platform_device *dev);
37 struct tmio_nand_data *nand_data;
38 struct tmio_fb_data *fb_data;
40 unsigned resume_restore : 1; /* make special actions
41 to preserve the state
42 on suspend/resume */
45 extern int tc6393xb_lcd_mode(struct platform_device *fb,
46 const struct fb_videomode *mode);
47 extern int tc6393xb_lcd_set_power(struct platform_device *fb, bool on);
50 * Relative to irq_base
52 #define IRQ_TC6393_NAND 0
53 #define IRQ_TC6393_MMC 1
54 #define IRQ_TC6393_OHCI 2
55 #define IRQ_TC6393_FB 4
57 #define TC6393XB_NR_IRQS 8
59 #endif