Home | History | Annotate | Download | only in asm
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef __ASM_SH_MOBILE_LCDC_H__
     13 #define __ASM_SH_MOBILE_LCDC_H__
     14 
     15 #include <linux/fb.h>
     16 
     17 enum { RGB8,
     18  RGB9,
     19  RGB12A,
     20  RGB12B,
     21  RGB16,
     22  RGB18,
     23  RGB24,
     24  SYS8A,
     25  SYS8B,
     26  SYS8C,
     27  SYS8D,
     28  SYS9,
     29  SYS12,
     30  SYS16A,
     31  SYS16B,
     32  SYS16C,
     33  SYS18,
     34  SYS24 };
     35 
     36 enum { LCDC_CHAN_DISABLED = 0,
     37  LCDC_CHAN_MAINLCD,
     38  LCDC_CHAN_SUBLCD };
     39 
     40 enum { LCDC_CLK_BUS, LCDC_CLK_PERIPHERAL, LCDC_CLK_EXTERNAL };
     41 
     42 struct sh_mobile_lcdc_sys_bus_cfg {
     43  unsigned long ldmt2r;
     44  unsigned long ldmt3r;
     45 };
     46 
     47 struct sh_mobile_lcdc_sys_bus_ops {
     48  void (*write_index)(void *handle, unsigned long data);
     49  void (*write_data)(void *handle, unsigned long data);
     50  unsigned long (*read_data)(void *handle);
     51 };
     52 
     53 struct sh_mobile_lcdc_board_cfg {
     54  void *board_data;
     55  int (*setup_sys)(void *board_data, void *sys_ops_handle,
     56  struct sh_mobile_lcdc_sys_bus_ops *sys_ops);
     57  void (*display_on)(void *board_data);
     58  void (*display_off)(void *board_data);
     59 };
     60 
     61 struct sh_mobile_lcdc_lcd_size_cfg {
     62  unsigned long width;
     63  unsigned long height;
     64 };
     65 
     66 struct sh_mobile_lcdc_chan_cfg {
     67  int chan;
     68  int bpp;
     69  int interface_type;
     70  int clock_divider;
     71  struct fb_videomode lcd_cfg;
     72  struct sh_mobile_lcdc_lcd_size_cfg lcd_size_cfg;
     73  struct sh_mobile_lcdc_board_cfg board_cfg;
     74  struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg;
     75 };
     76 
     77 struct sh_mobile_lcdc_info {
     78  unsigned long lddckr;
     79  int clock_source;
     80  struct sh_mobile_lcdc_chan_cfg ch[2];
     81 };
     82 
     83 #endif
     84