xref: /openbmc/linux/drivers/video/fbdev/pxa3xx-gcu.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2f7018c21STomi Valkeinen #ifndef __PXA3XX_GCU_H__
3f7018c21STomi Valkeinen #define __PXA3XX_GCU_H__
4f7018c21STomi Valkeinen 
5f7018c21STomi Valkeinen #include <linux/types.h>
6f7018c21STomi Valkeinen 
7f7018c21STomi Valkeinen /* Number of 32bit words in display list (ring buffer). */
8f7018c21STomi Valkeinen #define PXA3XX_GCU_BUFFER_WORDS  ((256 * 1024 - 256) / 4)
9f7018c21STomi Valkeinen 
10f7018c21STomi Valkeinen /* To be increased when breaking the ABI */
11f7018c21STomi Valkeinen #define PXA3XX_GCU_SHARED_MAGIC  0x30000001
12f7018c21STomi Valkeinen 
13f7018c21STomi Valkeinen #define PXA3XX_GCU_BATCH_WORDS   8192
14f7018c21STomi Valkeinen 
15f7018c21STomi Valkeinen struct pxa3xx_gcu_shared {
16f7018c21STomi Valkeinen 	u32            buffer[PXA3XX_GCU_BUFFER_WORDS];
17f7018c21STomi Valkeinen 
18f7018c21STomi Valkeinen 	bool           hw_running;
19f7018c21STomi Valkeinen 
20f7018c21STomi Valkeinen 	unsigned long  buffer_phys;
21f7018c21STomi Valkeinen 
22f7018c21STomi Valkeinen 	unsigned int   num_words;
23f7018c21STomi Valkeinen 	unsigned int   num_writes;
24f7018c21STomi Valkeinen 	unsigned int   num_done;
25f7018c21STomi Valkeinen 	unsigned int   num_interrupts;
26f7018c21STomi Valkeinen 	unsigned int   num_wait_idle;
27f7018c21STomi Valkeinen 	unsigned int   num_wait_free;
28f7018c21STomi Valkeinen 	unsigned int   num_idle;
29f7018c21STomi Valkeinen 
30f7018c21STomi Valkeinen 	u32            magic;
31f7018c21STomi Valkeinen };
32f7018c21STomi Valkeinen 
33f7018c21STomi Valkeinen /* Initialization and synchronization.
34f7018c21STomi Valkeinen  * Hardware is started upon write(). */
35f7018c21STomi Valkeinen #define PXA3XX_GCU_IOCTL_RESET		_IO('G', 0)
36f7018c21STomi Valkeinen #define PXA3XX_GCU_IOCTL_WAIT_IDLE	_IO('G', 2)
37f7018c21STomi Valkeinen 
38f7018c21STomi Valkeinen #endif /* __PXA3XX_GCU_H__ */
39f7018c21STomi Valkeinen 
40