5 * linux/drivers/video/pxafb.h
6 * -- Intel PXA250/210 LCD Controller Frame Buffer Device
8 * Copyright (C) 1999 Eric A. Thomas.
9 * Copyright (C) 2004 Jean-Frederic Clere.
10 * Copyright (C) 2004 Ian Campbell.
11 * Copyright (C) 2004 Jeff Lackey.
12 * Based on sa1100fb.c Copyright (C) 1999 Eric A. Thomas
14 * Based on acornfb.c Copyright (C) Russell King.
16 * 2001-08-03: Cliff Brake <cbrake@acclent.com>
17 * - ported SA1100 code to PXA
19 * This file is subject to the terms and conditions of the GNU General Public
20 * License. See the file COPYING in the main directory of this archive
24 /* PXA LCD DMA descriptor */
25 struct pxafb_dma_descriptor
{
53 /* maximum palette size - 256 entries, each 4 bytes long */
54 #define PALETTE_SIZE (256 * 4)
55 #define CMD_BUFF_SIZE (1024 * 50)
57 /* NOTE: the palette and frame dma descriptors are doubled to allow
58 * the 2nd set for branch settings (FBRx)
60 struct pxafb_dma_buff
{
61 unsigned char palette
[PAL_MAX
* PALETTE_SIZE
];
62 uint16_t cmd_buff
[CMD_BUFF_SIZE
];
63 struct pxafb_dma_descriptor pal_desc
[PAL_MAX
* 2];
64 struct pxafb_dma_descriptor dma_desc
[DMA_MAX
* 2];
72 void __iomem
*mmio_base
;
74 struct pxafb_dma_buff
*dma_buff
;
76 dma_addr_t dma_buff_phys
;
77 dma_addr_t fdadr
[DMA_MAX
* 2];
79 void __iomem
*video_mem
; /* virtual address of frame buffer */
80 unsigned long video_mem_phys
; /* physical address of frame buffer */
81 size_t video_mem_size
; /* size of the frame buffer */
82 u16
* palette_cpu
; /* virtual address of palette memory */
99 unsigned long hsync_time
;
101 volatile u_char state
;
102 volatile u_char task_state
;
103 struct mutex ctrlr_lock
;
104 wait_queue_head_t ctrlr_wait
;
105 struct work_struct task
;
107 struct completion disable_done
;
109 #ifdef CONFIG_FB_PXA_SMARTPANEL
110 uint16_t *smart_cmds
;
112 struct completion command_done
;
113 struct completion refresh_done
;
114 struct task_struct
*smart_thread
;
117 #ifdef CONFIG_CPU_FREQ
118 struct notifier_block freq_transition
;
119 struct notifier_block freq_policy
;
122 void (*lcd_power
)(int, struct fb_var_screeninfo
*);
123 void (*backlight_power
)(int);
126 #define TO_INF(ptr,member) container_of(ptr,struct pxafb_info,member)
129 * These are the actions for set_ctrlr_state
131 #define C_DISABLE (0)
133 #define C_DISABLE_CLKCHANGE (2)
134 #define C_ENABLE_CLKCHANGE (3)
135 #define C_REENABLE (4)
136 #define C_DISABLE_PM (5)
137 #define C_ENABLE_PM (6)
138 #define C_STARTUP (7)
140 #define PXA_NAME "PXA"
143 * Minimum X and Y resolutions
148 /* maximum X and Y resolutions - note these are limits from the register
149 * bits length instead of the real ones
151 #define MAX_XRES 1024
152 #define MAX_YRES 1024
154 #endif /* __PXAFB_H__ */