linux/include/linux/mfd/tc6393xb.h
<<
>>
Prefs
   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 */
  20struct 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
  42extern int tc6393xb_lcd_mode(struct platform_device *fb,
  43                             const struct fb_videomode *mode);
  44extern 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