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