| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 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 |  | 
| Ian Molton | 25d6cbd | 2008-08-10 23:32:07 +0200 | [diff] [blame] | 17 | #ifndef MFD_TC6393XB_H | 
|  | 18 | #define MFD_TC6393XB_H | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 19 |  | 
| Dmitry Baryshkov | 9e78cfe | 2008-10-04 00:50:36 +0200 | [diff] [blame] | 20 | #include <linux/fb.h> | 
|  | 21 |  | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 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 */ | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 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 |  | 
| Ian Molton | 25d6cbd | 2008-08-10 23:32:07 +0200 | [diff] [blame] | 32 | int	irq_base;	/* base for subdevice irqs */ | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 33 | int	gpio_base; | 
| Dmitry Baryshkov | 1c1b6ff | 2008-09-24 23:36:23 +0200 | [diff] [blame] | 34 | int	(*setup)(struct platform_device *dev); | 
|  | 35 | void	(*teardown)(struct platform_device *dev); | 
| Dmitry Baryshkov | f024ff1 | 2008-06-27 10:37:57 +0100 | [diff] [blame] | 36 |  | 
|  | 37 | struct tmio_nand_data	*nand_data; | 
| Dmitry Baryshkov | 9e78cfe | 2008-10-04 00:50:36 +0200 | [diff] [blame] | 38 | struct tmio_fb_data	*fb_data; | 
| Dmitry Baryshkov | f98a0bd | 2008-09-24 23:46:10 +0200 | [diff] [blame] | 39 |  | 
|  | 40 | unsigned resume_restore : 1; /* make special actions | 
|  | 41 | to preserve the state | 
|  | 42 | on suspend/resume */ | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 43 | }; | 
|  | 44 |  | 
| Dmitry Baryshkov | 9e78cfe | 2008-10-04 00:50:36 +0200 | [diff] [blame] | 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 |  | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 49 | /* | 
|  | 50 | * Relative to irq_base | 
|  | 51 | */ | 
|  | 52 | #define	IRQ_TC6393_NAND		0 | 
|  | 53 | #define	IRQ_TC6393_MMC		1 | 
| Dmitry Baryshkov | 51a5562 | 2008-10-03 20:11:36 +0200 | [diff] [blame] | 54 | #define	IRQ_TC6393_OHCI		2 | 
| Dmitry Baryshkov | 9e78cfe | 2008-10-04 00:50:36 +0200 | [diff] [blame] | 55 | #define	IRQ_TC6393_FB		4 | 
| Dmitry Baryshkov | d631594 | 2008-06-22 12:01:58 +0100 | [diff] [blame] | 56 |  | 
|  | 57 | #define	TC6393XB_NR_IRQS	8 | 
|  | 58 |  | 
|  | 59 | #endif |