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