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 17enum { 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 36enum { LCDC_CHAN_DISABLED = 0, 37 LCDC_CHAN_MAINLCD, 38 LCDC_CHAN_SUBLCD }; 39 40enum { LCDC_CLK_BUS, LCDC_CLK_PERIPHERAL, LCDC_CLK_EXTERNAL }; 41 42struct sh_mobile_lcdc_sys_bus_cfg { 43 unsigned long ldmt2r; 44 unsigned long ldmt3r; 45}; 46 47struct 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 53struct 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 61struct sh_mobile_lcdc_lcd_size_cfg { 62 unsigned long width; 63 unsigned long height; 64}; 65 66struct 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 77struct 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