diff options
Diffstat (limited to 'bsps/lm32/include/bsp/milkymist_tmu.h')
-rw-r--r-- | bsps/lm32/include/bsp/milkymist_tmu.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/bsps/lm32/include/bsp/milkymist_tmu.h b/bsps/lm32/include/bsp/milkymist_tmu.h new file mode 100644 index 0000000000..94f8394ef7 --- /dev/null +++ b/bsps/lm32/include/bsp/milkymist_tmu.h @@ -0,0 +1,98 @@ +/** + * @file + * @ingroup lm32_milkymist_tmu lm32_milkymist_shared + * @brief Milkymist TMU driver + */ + +/* milkymist_tmu.h + * + * Milkymist TMU driver for RTEMS + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + * + * COPYRIGHT (c) 2010 Sebastien Bourdeauducq + */ + +/** + * @defgroup lm32_milkymist_tmu Milkymist TMU + * @ingroup lm32_milkymist_shared + * @brief Milkymist TMU driver + * @{ + */ + +#ifndef __MILKYMIST_TMU_H_ +#define __MILKYMIST_TMU_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Ioctls */ +#define TMU_EXECUTE 0x5400 +#define TMU_EXECUTE_NONBLOCK 0x5401 +#define TMU_EXECUTE_WAIT 0x5402 + +struct tmu_vertex { + int x; + int y; +} __attribute__((packed)); + +struct tmu_td { + unsigned int flags; + unsigned int hmeshlast; + unsigned int vmeshlast; + unsigned int brightness; + unsigned short chromakey; + struct tmu_vertex *vertices; + unsigned short *texfbuf; + unsigned int texhres; + unsigned int texvres; + unsigned int texhmask; + unsigned int texvmask; + unsigned short *dstfbuf; + unsigned int dsthres; + unsigned int dstvres; + int dsthoffset; + int dstvoffset; + unsigned int dstsquarew; + unsigned int dstsquareh; + unsigned int alpha; + + bool invalidate_before; + bool invalidate_after; +}; + +#define TMU_BRIGHTNESS_MAX (63) +#define TMU_MASK_NOFILTER (0x3ffc0) +#define TMU_MASK_FULL (0x3ffff) +#define TMU_FIXEDPOINT_SHIFT (6) +#define TMU_ALPHA_MAX (63) +#define TMU_MESH_MAXSIZE (128) + +#define TMU_FLAG_CHROMAKEY (2) +#define TMU_FLAG_ADDITIVE (4) + +rtems_device_driver tmu_initialize( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg +); + +rtems_device_driver tmu_control( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg +); + +#define TMU_DRIVER_TABLE_ENTRY {tmu_initialize, \ +NULL, NULL, NULL, NULL, tmu_control} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MILKYMIST_TMU_H_ */ |