1 /*
2  * Toshiba TC6393XB SoC support
3  *
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
8  *
9  * Based on code written by Sharp/Lineo for 2.4 kernels
10  * Based on locomo.c
11  *
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.
15  */
16 
17 #ifndef MFD_TC6393XB_H
18 #define MFD_TC6393XB_H
19 
20 #include <linux/fb.h>
21 
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 */
26 
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);
31 
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);
36 
37 	struct tmio_nand_data	*nand_data;
38 	struct tmio_fb_data	*fb_data;
39 
40 	unsigned resume_restore : 1; /* make special actions
41 					to preserve the state
42 					on suspend/resume */
43 };
44 
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);
48 
49 /*
50  * Relative to irq_base
51  */
52 #define	IRQ_TC6393_NAND		0
53 #define	IRQ_TC6393_MMC		1
54 #define	IRQ_TC6393_OHCI		2
55 #define	IRQ_TC6393_FB		4
56 
57 #define	TC6393XB_NR_IRQS	8
58 
59 #endif
60