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