1 /*
2  *
3  * Copyright (c) 2009 Nuvoton technology corporation
4  * All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  *   Author:
12  *        Wang Qiang(rurality.linux@gmail.com)  2009/12/16
13  */
14 
15 #ifndef __NUC900FB_H
16 #define __NUC900FB_H
17 
18 #include <mach/map.h>
19 #include <linux/platform_data/video-nuc900fb.h>
20 
21 enum nuc900_lcddrv_type {
22 	LCDDRV_NUC910,
23 	LCDDRV_NUC930,
24 	LCDDRV_NUC932,
25 	LCDDRV_NUC950,
26 	LCDDRV_NUC960,
27 };
28 
29 
30 #define PALETTE_BUFFER_SIZE	256
31 #define PALETTE_BUFF_CLEAR 	(0x80000000) /* entry is clear/invalid */
32 
33 struct nuc900fb_info {
34 	struct device		*dev;
35 	struct clk		*clk;
36 
37 	struct resource		*mem;
38 	void __iomem		*io;
39 	void __iomem		*irq_base;
40 	int 			drv_type;
41 	struct nuc900fb_hw	regs;
42 	unsigned long		clk_rate;
43 
44 #ifdef CONFIG_CPU_FREQ
45 	struct notifier_block	freq_transition;
46 #endif
47 
48 	/* keep these registers in case we need to re-write palette */
49 	u32			palette_buffer[PALETTE_BUFFER_SIZE];
50 	u32			pseudo_pal[16];
51 };
52 
53 int nuc900fb_init(void);
54 
55 #endif /* __NUC900FB_H */
56