1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Toshiba TC6393XB SoC support
4  *
5  * Copyright(c) 2005-2006 Chris Humbert
6  * Copyright(c) 2005 Dirk Opfer
7  * Copyright(c) 2005 Ian Molton <spyro@f2s.com>
8  * Copyright(c) 2007 Dmitry Baryshkov
9  *
10  * Based on code written by Sharp/Lineo for 2.4 kernels
11  * Based on locomo.c
12  */
13 
14 #ifndef MFD_TC6393XB_H
15 #define MFD_TC6393XB_H
16 
17 #include <linux/fb.h>
18 
19 /* Also one should provide the CK3P6MI clock */
20 struct tc6393xb_platform_data {
21 	u16	scr_pll2cr;	/* PLL2 Control */
22 	u16	scr_gper;	/* GP Enable */
23 
24 	int	(*enable)(struct platform_device *dev);
25 	int	(*disable)(struct platform_device *dev);
26 	int	(*suspend)(struct platform_device *dev);
27 	int	(*resume)(struct platform_device *dev);
28 
29 	int	irq_base;	/* base for subdevice irqs */
30 	int	gpio_base;
31 	int	(*setup)(struct platform_device *dev);
32 	void	(*teardown)(struct platform_device *dev);
33 
34 	struct tmio_nand_data	*nand_data;
35 	struct tmio_fb_data	*fb_data;
36 
37 	unsigned resume_restore : 1; /* make special actions
38 					to preserve the state
39 					on suspend/resume */
40 };
41 
42 extern int tc6393xb_lcd_mode(struct platform_device *fb,
43 			     const struct fb_videomode *mode);
44 extern int tc6393xb_lcd_set_power(struct platform_device *fb, bool on);
45 
46 /*
47  * Relative to irq_base
48  */
49 #define	IRQ_TC6393_NAND		0
50 #define	IRQ_TC6393_MMC		1
51 #define	IRQ_TC6393_OHCI		2
52 #define	IRQ_TC6393_FB		4
53 
54 #define	TC6393XB_NR_IRQS	8
55 
56 #endif
57