gh_vo_mixer.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. /*!
  2. *******************************************************************************
  3. **
  4. ** \file gh_vo_mixer.h
  5. **
  6. ** \brief VO Mixer access function.
  7. **
  8. ** Copyright: 2012 - 2016 (C) GoKe Microelectronics
  9. **
  10. ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
  11. ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
  12. ** OMMISSIONS.
  13. **
  14. ** \note Do not modify this file as it is generated automatically.
  15. **
  16. ******************************************************************************/
  17. #ifndef _GH_VO_MIXER_H
  18. #define _GH_VO_MIXER_H
  19. #ifdef __LINUX__
  20. #include "reg4linux.h"
  21. #else
  22. #define FIO_ADDRESS(block,address) (address)
  23. #define FIO_MOFFSET(block,moffset) (moffset)
  24. #endif
  25. #ifndef __LINUX__
  26. #include "gtypes.h" /* global type definitions */
  27. #include "gh_lib_cfg.h" /* configuration */
  28. #endif
  29. #define GH_VO_MIXER_ENABLE_DEBUG_PRINT 0
  30. #ifdef __LINUX__
  31. #define GH_VO_MIXER_DEBUG_PRINT_FUNCTION printk
  32. #else
  33. #define GH_VO_MIXER_DEBUG_PRINT_FUNCTION printf
  34. #endif
  35. #ifndef __LINUX__
  36. #if GH_VO_MIXER_ENABLE_DEBUG_PRINT
  37. #include <stdio.h>
  38. #endif
  39. #endif
  40. /*----------------------------------------------------------------------------*/
  41. /* registers */
  42. /*----------------------------------------------------------------------------*/
  43. #define REG_VO_MIXER_CONTROL FIO_ADDRESS(VO_MIXER,0x90008500) /* read/write */
  44. #define REG_VO_MIXER_STATUS FIO_ADDRESS(VO_MIXER,0x90008504) /* read */
  45. #define REG_VO_MIXER_ACTIVE_SIZE FIO_ADDRESS(VO_MIXER,0x90008508) /* read/write */
  46. #define REG_VO_MIXER_VIDEO_START FIO_ADDRESS(VO_MIXER,0x9000850C) /* read/write */
  47. #define REG_VO_MIXER_VIDEO_END FIO_ADDRESS(VO_MIXER,0x90008510) /* read/write */
  48. #define REG_VO_MIXER_OSD_START FIO_ADDRESS(VO_MIXER,0x9000851C) /* read/write */
  49. #define REG_VO_MIXER_OSD_END FIO_ADDRESS(VO_MIXER,0x90008520) /* read/write */
  50. #define REG_VO_MIXER_BACKGROUND FIO_ADDRESS(VO_MIXER,0x90008524) /* read/write */
  51. #define REG_VO_MIXER_HIGHLIGHT FIO_ADDRESS(VO_MIXER,0x90008528) /* read/write */
  52. #define REG_VO_MIXER_OSD_CONTROL FIO_ADDRESS(VO_MIXER,0x9000852C) /* read/write */
  53. #define REG_VO_MIXER_ENABLE_CTRL FIO_ADDRESS(VO_MIXER,0x90008550) /* read/write */
  54. #define REG_VO_MIXER_INPUT_VIDEO_SYNC FIO_ADDRESS(VO_MIXER,0x90008554) /* read/write */
  55. #define REG_VO_MIXER_OUTPUT_SYNC FIO_ADDRESS(VO_MIXER,0x9000855C) /* read/write */
  56. #define REG_VO_MIXER_SMEM_INPUT FIO_ADDRESS(VO_MIXER,0x90008560) /* read/write */
  57. #define REG_VO_MIXER_SMEM_OUT FIO_ADDRESS(VO_MIXER,0x90008568) /* read/write */
  58. #define REG_VO_MIXER_FRAME_ENABLE FIO_ADDRESS(VO_MIXER,0x9000856C) /* read/write */
  59. #define REG_VO_MIXER_CLUT_B FIO_ADDRESS(VO_MIXER,0x90009400) /* read/write */
  60. /*----------------------------------------------------------------------------*/
  61. /* bit group structures */
  62. /*----------------------------------------------------------------------------*/
  63. typedef union { /* VO_MIXER_CONTROL */
  64. U32 all;
  65. struct {
  66. U32 : 31;
  67. U32 reset : 1;
  68. } bitc;
  69. } GH_VO_MIXER_CONTROL_S;
  70. typedef union { /* VO_MIXER_STATUS */
  71. U32 all;
  72. struct {
  73. U32 : 31;
  74. U32 reset : 1;
  75. } bitc;
  76. } GH_VO_MIXER_STATUS_S;
  77. typedef union { /* VO_MIXER_ACTIVE_SIZE */
  78. U32 all;
  79. struct {
  80. U32 vertical : 14;
  81. U32 : 2;
  82. U32 horizontal : 14;
  83. U32 : 2;
  84. } bitc;
  85. } GH_VO_MIXER_ACTIVE_SIZE_S;
  86. typedef union { /* VO_MIXER_VIDEO_START */
  87. U32 all;
  88. struct {
  89. U32 vertical : 14;
  90. U32 : 2;
  91. U32 horizontal : 14;
  92. U32 : 2;
  93. } bitc;
  94. } GH_VO_MIXER_VIDEO_START_S;
  95. typedef union { /* VO_MIXER_VIDEO_END */
  96. U32 all;
  97. struct {
  98. U32 vertical : 14;
  99. U32 : 2;
  100. U32 horizontal : 14;
  101. U32 : 2;
  102. } bitc;
  103. } GH_VO_MIXER_VIDEO_END_S;
  104. typedef union { /* VO_MIXER_OSD_START */
  105. U32 all;
  106. struct {
  107. U32 vertical : 14;
  108. U32 : 2;
  109. U32 horizontal : 14;
  110. U32 : 2;
  111. } bitc;
  112. } GH_VO_MIXER_OSD_START_S;
  113. typedef union { /* VO_MIXER_OSD_END */
  114. U32 all;
  115. struct {
  116. U32 vertical : 14;
  117. U32 : 2;
  118. U32 horizontal : 14;
  119. U32 : 2;
  120. } bitc;
  121. } GH_VO_MIXER_OSD_END_S;
  122. typedef union { /* VO_MIXER_BACKGROUND */
  123. U32 all;
  124. struct {
  125. U32 v : 8;
  126. U32 u : 8;
  127. U32 y : 8;
  128. U32 : 8;
  129. } bitc;
  130. } GH_VO_MIXER_BACKGROUND_S;
  131. typedef union { /* VO_MIXER_HIGHLIGHT */
  132. U32 all;
  133. struct {
  134. U32 v : 8;
  135. U32 u : 8;
  136. U32 y : 8;
  137. U32 threshold : 8;
  138. } bitc;
  139. } GH_VO_MIXER_HIGHLIGHT_S;
  140. typedef union { /* VO_MIXER_OSD_CONTROL */
  141. U32 all;
  142. struct {
  143. U32 global_blend : 8;
  144. U32 premultiplied : 1;
  145. U32 mode : 3;
  146. U32 enable_transparent_color : 1;
  147. U32 : 3;
  148. U32 transparent_color : 16;
  149. } bitc;
  150. } GH_VO_MIXER_OSD_CONTROL_S;
  151. typedef union { /* VO_MIXER_ENABLE_CTRL */
  152. U32 all;
  153. struct {
  154. U32 enable : 1;
  155. U32 mapped_direct : 2;
  156. U32 smem : 1;
  157. U32 display : 1;
  158. U32 : 27;
  159. } bitc;
  160. } GH_VO_MIXER_ENABLE_CTRL_S;
  161. typedef union { /* VO_MIXER_INPUT_VIDEO_SYNC */
  162. U32 all;
  163. struct {
  164. U32 sync_mode : 2;
  165. U32 line : 3;
  166. U32 video : 6;
  167. U32 decrement : 1;
  168. U32 : 20;
  169. } bitc;
  170. } GH_VO_MIXER_INPUT_VIDEO_SYNC_S;
  171. typedef union { /* VO_MIXER_OUTPUT_SYNC */
  172. U32 all;
  173. struct {
  174. U32 sync_mode : 1;
  175. U32 : 1;
  176. U32 number : 3;
  177. U32 counter : 6;
  178. U32 sync : 1;
  179. U32 frame : 6;
  180. U32 : 14;
  181. } bitc;
  182. } GH_VO_MIXER_OUTPUT_SYNC_S;
  183. typedef union { /* VO_MIXER_SMEM_INPUT */
  184. U32 all;
  185. struct {
  186. U32 luma_number : 8;
  187. U32 chroma_number : 8;
  188. U32 osd_number : 8;
  189. U32 priority : 2;
  190. U32 video_length : 2;
  191. U32 osd_length : 2;
  192. U32 : 2;
  193. } bitc;
  194. } GH_VO_MIXER_SMEM_INPUT_S;
  195. typedef union { /* VO_MIXER_SMEM_OUT */
  196. U32 all;
  197. struct {
  198. U32 luma_number : 8;
  199. U32 chroma_number : 8;
  200. U32 priority : 2;
  201. U32 : 14;
  202. } bitc;
  203. } GH_VO_MIXER_SMEM_OUT_S;
  204. typedef union { /* VO_MIXER_FRAME_ENABLE */
  205. U32 all;
  206. struct {
  207. U32 enable : 1;
  208. U32 : 31;
  209. } bitc;
  210. } GH_VO_MIXER_FRAME_ENABLE_S;
  211. /*----------------------------------------------------------------------------*/
  212. /* mirror variables */
  213. /*----------------------------------------------------------------------------*/
  214. #ifdef __cplusplus
  215. extern "C" {
  216. #endif
  217. /*----------------------------------------------------------------------------*/
  218. /* register VO_MIXER_CONTROL (read/write) */
  219. /*----------------------------------------------------------------------------*/
  220. /*! \brief Writes the register 'VO_MIXER_CONTROL'. */
  221. void GH_VO_MIXER_set_CONTROL(U32 data);
  222. /*! \brief Reads the register 'VO_MIXER_CONTROL'. */
  223. U32 GH_VO_MIXER_get_CONTROL(void);
  224. /*! \brief Writes the bit group 'Reset' of register 'VO_MIXER_CONTROL'. */
  225. void GH_VO_MIXER_set_CONTROL_Reset(U8 data);
  226. /*! \brief Reads the bit group 'Reset' of register 'VO_MIXER_CONTROL'. */
  227. U8 GH_VO_MIXER_get_CONTROL_Reset(void);
  228. /*----------------------------------------------------------------------------*/
  229. /* register VO_MIXER_STATUS (read) */
  230. /*----------------------------------------------------------------------------*/
  231. /*! \brief Reads the register 'VO_MIXER_STATUS'. */
  232. U32 GH_VO_MIXER_get_STATUS(void);
  233. /*! \brief Reads the bit group 'Reset' of register 'VO_MIXER_STATUS'. */
  234. U8 GH_VO_MIXER_get_STATUS_Reset(void);
  235. /*----------------------------------------------------------------------------*/
  236. /* register VO_MIXER_ACTIVE_SIZE (read/write) */
  237. /*----------------------------------------------------------------------------*/
  238. /*! \brief Writes the register 'VO_MIXER_ACTIVE_SIZE'. */
  239. void GH_VO_MIXER_set_ACTIVE_SIZE(U32 data);
  240. /*! \brief Reads the register 'VO_MIXER_ACTIVE_SIZE'. */
  241. U32 GH_VO_MIXER_get_ACTIVE_SIZE(void);
  242. /*! \brief Writes the bit group 'Vertical' of register 'VO_MIXER_ACTIVE_SIZE'. */
  243. void GH_VO_MIXER_set_ACTIVE_SIZE_Vertical(U16 data);
  244. /*! \brief Reads the bit group 'Vertical' of register 'VO_MIXER_ACTIVE_SIZE'. */
  245. U16 GH_VO_MIXER_get_ACTIVE_SIZE_Vertical(void);
  246. /*! \brief Writes the bit group 'Horizontal' of register 'VO_MIXER_ACTIVE_SIZE'. */
  247. void GH_VO_MIXER_set_ACTIVE_SIZE_Horizontal(U16 data);
  248. /*! \brief Reads the bit group 'Horizontal' of register 'VO_MIXER_ACTIVE_SIZE'. */
  249. U16 GH_VO_MIXER_get_ACTIVE_SIZE_Horizontal(void);
  250. /*----------------------------------------------------------------------------*/
  251. /* register VO_MIXER_VIDEO_START (read/write) */
  252. /*----------------------------------------------------------------------------*/
  253. /*! \brief Writes the register 'VO_MIXER_VIDEO_START'. */
  254. void GH_VO_MIXER_set_VIDEO_START(U32 data);
  255. /*! \brief Reads the register 'VO_MIXER_VIDEO_START'. */
  256. U32 GH_VO_MIXER_get_VIDEO_START(void);
  257. /*! \brief Writes the bit group 'Vertical' of register 'VO_MIXER_VIDEO_START'. */
  258. void GH_VO_MIXER_set_VIDEO_START_Vertical(U16 data);
  259. /*! \brief Reads the bit group 'Vertical' of register 'VO_MIXER_VIDEO_START'. */
  260. U16 GH_VO_MIXER_get_VIDEO_START_Vertical(void);
  261. /*! \brief Writes the bit group 'Horizontal' of register 'VO_MIXER_VIDEO_START'. */
  262. void GH_VO_MIXER_set_VIDEO_START_Horizontal(U16 data);
  263. /*! \brief Reads the bit group 'Horizontal' of register 'VO_MIXER_VIDEO_START'. */
  264. U16 GH_VO_MIXER_get_VIDEO_START_Horizontal(void);
  265. /*----------------------------------------------------------------------------*/
  266. /* register VO_MIXER_VIDEO_END (read/write) */
  267. /*----------------------------------------------------------------------------*/
  268. /*! \brief Writes the register 'VO_MIXER_VIDEO_END'. */
  269. void GH_VO_MIXER_set_VIDEO_END(U32 data);
  270. /*! \brief Reads the register 'VO_MIXER_VIDEO_END'. */
  271. U32 GH_VO_MIXER_get_VIDEO_END(void);
  272. /*! \brief Writes the bit group 'Vertical' of register 'VO_MIXER_VIDEO_END'. */
  273. void GH_VO_MIXER_set_VIDEO_END_Vertical(U16 data);
  274. /*! \brief Reads the bit group 'Vertical' of register 'VO_MIXER_VIDEO_END'. */
  275. U16 GH_VO_MIXER_get_VIDEO_END_Vertical(void);
  276. /*! \brief Writes the bit group 'Horizontal' of register 'VO_MIXER_VIDEO_END'. */
  277. void GH_VO_MIXER_set_VIDEO_END_Horizontal(U16 data);
  278. /*! \brief Reads the bit group 'Horizontal' of register 'VO_MIXER_VIDEO_END'. */
  279. U16 GH_VO_MIXER_get_VIDEO_END_Horizontal(void);
  280. /*----------------------------------------------------------------------------*/
  281. /* register VO_MIXER_OSD_START (read/write) */
  282. /*----------------------------------------------------------------------------*/
  283. /*! \brief Writes the register 'VO_MIXER_OSD_START'. */
  284. void GH_VO_MIXER_set_OSD_START(U32 data);
  285. /*! \brief Reads the register 'VO_MIXER_OSD_START'. */
  286. U32 GH_VO_MIXER_get_OSD_START(void);
  287. /*! \brief Writes the bit group 'Vertical' of register 'VO_MIXER_OSD_START'. */
  288. void GH_VO_MIXER_set_OSD_START_Vertical(U16 data);
  289. /*! \brief Reads the bit group 'Vertical' of register 'VO_MIXER_OSD_START'. */
  290. U16 GH_VO_MIXER_get_OSD_START_Vertical(void);
  291. /*! \brief Writes the bit group 'Horizontal' of register 'VO_MIXER_OSD_START'. */
  292. void GH_VO_MIXER_set_OSD_START_Horizontal(U16 data);
  293. /*! \brief Reads the bit group 'Horizontal' of register 'VO_MIXER_OSD_START'. */
  294. U16 GH_VO_MIXER_get_OSD_START_Horizontal(void);
  295. /*----------------------------------------------------------------------------*/
  296. /* register VO_MIXER_OSD_END (read/write) */
  297. /*----------------------------------------------------------------------------*/
  298. /*! \brief Writes the register 'VO_MIXER_OSD_END'. */
  299. void GH_VO_MIXER_set_OSD_END(U32 data);
  300. /*! \brief Reads the register 'VO_MIXER_OSD_END'. */
  301. U32 GH_VO_MIXER_get_OSD_END(void);
  302. /*! \brief Writes the bit group 'Vertical' of register 'VO_MIXER_OSD_END'. */
  303. void GH_VO_MIXER_set_OSD_END_Vertical(U16 data);
  304. /*! \brief Reads the bit group 'Vertical' of register 'VO_MIXER_OSD_END'. */
  305. U16 GH_VO_MIXER_get_OSD_END_Vertical(void);
  306. /*! \brief Writes the bit group 'Horizontal' of register 'VO_MIXER_OSD_END'. */
  307. void GH_VO_MIXER_set_OSD_END_Horizontal(U16 data);
  308. /*! \brief Reads the bit group 'Horizontal' of register 'VO_MIXER_OSD_END'. */
  309. U16 GH_VO_MIXER_get_OSD_END_Horizontal(void);
  310. /*----------------------------------------------------------------------------*/
  311. /* register VO_MIXER_BACKGROUND (read/write) */
  312. /*----------------------------------------------------------------------------*/
  313. /*! \brief Writes the register 'VO_MIXER_BACKGROUND'. */
  314. void GH_VO_MIXER_set_BACKGROUND(U32 data);
  315. /*! \brief Reads the register 'VO_MIXER_BACKGROUND'. */
  316. U32 GH_VO_MIXER_get_BACKGROUND(void);
  317. /*! \brief Writes the bit group 'V' of register 'VO_MIXER_BACKGROUND'. */
  318. void GH_VO_MIXER_set_BACKGROUND_V(U8 data);
  319. /*! \brief Reads the bit group 'V' of register 'VO_MIXER_BACKGROUND'. */
  320. U8 GH_VO_MIXER_get_BACKGROUND_V(void);
  321. /*! \brief Writes the bit group 'U' of register 'VO_MIXER_BACKGROUND'. */
  322. void GH_VO_MIXER_set_BACKGROUND_U(U8 data);
  323. /*! \brief Reads the bit group 'U' of register 'VO_MIXER_BACKGROUND'. */
  324. U8 GH_VO_MIXER_get_BACKGROUND_U(void);
  325. /*! \brief Writes the bit group 'Y' of register 'VO_MIXER_BACKGROUND'. */
  326. void GH_VO_MIXER_set_BACKGROUND_Y(U8 data);
  327. /*! \brief Reads the bit group 'Y' of register 'VO_MIXER_BACKGROUND'. */
  328. U8 GH_VO_MIXER_get_BACKGROUND_Y(void);
  329. /*----------------------------------------------------------------------------*/
  330. /* register VO_MIXER_HIGHLIGHT (read/write) */
  331. /*----------------------------------------------------------------------------*/
  332. /*! \brief Writes the register 'VO_MIXER_HIGHLIGHT'. */
  333. void GH_VO_MIXER_set_HIGHLIGHT(U32 data);
  334. /*! \brief Reads the register 'VO_MIXER_HIGHLIGHT'. */
  335. U32 GH_VO_MIXER_get_HIGHLIGHT(void);
  336. /*! \brief Writes the bit group 'V' of register 'VO_MIXER_HIGHLIGHT'. */
  337. void GH_VO_MIXER_set_HIGHLIGHT_V(U8 data);
  338. /*! \brief Reads the bit group 'V' of register 'VO_MIXER_HIGHLIGHT'. */
  339. U8 GH_VO_MIXER_get_HIGHLIGHT_V(void);
  340. /*! \brief Writes the bit group 'U' of register 'VO_MIXER_HIGHLIGHT'. */
  341. void GH_VO_MIXER_set_HIGHLIGHT_U(U8 data);
  342. /*! \brief Reads the bit group 'U' of register 'VO_MIXER_HIGHLIGHT'. */
  343. U8 GH_VO_MIXER_get_HIGHLIGHT_U(void);
  344. /*! \brief Writes the bit group 'Y' of register 'VO_MIXER_HIGHLIGHT'. */
  345. void GH_VO_MIXER_set_HIGHLIGHT_Y(U8 data);
  346. /*! \brief Reads the bit group 'Y' of register 'VO_MIXER_HIGHLIGHT'. */
  347. U8 GH_VO_MIXER_get_HIGHLIGHT_Y(void);
  348. /*! \brief Writes the bit group 'threshold' of register 'VO_MIXER_HIGHLIGHT'. */
  349. void GH_VO_MIXER_set_HIGHLIGHT_threshold(U8 data);
  350. /*! \brief Reads the bit group 'threshold' of register 'VO_MIXER_HIGHLIGHT'. */
  351. U8 GH_VO_MIXER_get_HIGHLIGHT_threshold(void);
  352. /*----------------------------------------------------------------------------*/
  353. /* register VO_MIXER_OSD_CONTROL (read/write) */
  354. /*----------------------------------------------------------------------------*/
  355. /*! \brief Writes the register 'VO_MIXER_OSD_CONTROL'. */
  356. void GH_VO_MIXER_set_OSD_CONTROL(U32 data);
  357. /*! \brief Reads the register 'VO_MIXER_OSD_CONTROL'. */
  358. U32 GH_VO_MIXER_get_OSD_CONTROL(void);
  359. /*! \brief Writes the bit group 'Global_Blend' of register 'VO_MIXER_OSD_CONTROL'. */
  360. void GH_VO_MIXER_set_OSD_CONTROL_Global_Blend(U8 data);
  361. /*! \brief Reads the bit group 'Global_Blend' of register 'VO_MIXER_OSD_CONTROL'. */
  362. U8 GH_VO_MIXER_get_OSD_CONTROL_Global_Blend(void);
  363. /*! \brief Writes the bit group 'Premultiplied' of register 'VO_MIXER_OSD_CONTROL'. */
  364. void GH_VO_MIXER_set_OSD_CONTROL_Premultiplied(U8 data);
  365. /*! \brief Reads the bit group 'Premultiplied' of register 'VO_MIXER_OSD_CONTROL'. */
  366. U8 GH_VO_MIXER_get_OSD_CONTROL_Premultiplied(void);
  367. /*! \brief Writes the bit group 'Mode' of register 'VO_MIXER_OSD_CONTROL'. */
  368. void GH_VO_MIXER_set_OSD_CONTROL_Mode(U8 data);
  369. /*! \brief Reads the bit group 'Mode' of register 'VO_MIXER_OSD_CONTROL'. */
  370. U8 GH_VO_MIXER_get_OSD_CONTROL_Mode(void);
  371. /*! \brief Writes the bit group 'Enable_Transparent_Color' of register 'VO_MIXER_OSD_CONTROL'. */
  372. void GH_VO_MIXER_set_OSD_CONTROL_Enable_Transparent_Color(U8 data);
  373. /*! \brief Reads the bit group 'Enable_Transparent_Color' of register 'VO_MIXER_OSD_CONTROL'. */
  374. U8 GH_VO_MIXER_get_OSD_CONTROL_Enable_Transparent_Color(void);
  375. /*! \brief Writes the bit group 'Transparent_Color' of register 'VO_MIXER_OSD_CONTROL'. */
  376. void GH_VO_MIXER_set_OSD_CONTROL_Transparent_Color(U16 data);
  377. /*! \brief Reads the bit group 'Transparent_Color' of register 'VO_MIXER_OSD_CONTROL'. */
  378. U16 GH_VO_MIXER_get_OSD_CONTROL_Transparent_Color(void);
  379. /*----------------------------------------------------------------------------*/
  380. /* register VO_MIXER_ENABLE_CTRL (read/write) */
  381. /*----------------------------------------------------------------------------*/
  382. /*! \brief Writes the register 'VO_MIXER_ENABLE_CTRL'. */
  383. void GH_VO_MIXER_set_ENABLE_CTRL(U32 data);
  384. /*! \brief Reads the register 'VO_MIXER_ENABLE_CTRL'. */
  385. U32 GH_VO_MIXER_get_ENABLE_CTRL(void);
  386. /*! \brief Writes the bit group 'enable' of register 'VO_MIXER_ENABLE_CTRL'. */
  387. void GH_VO_MIXER_set_ENABLE_CTRL_enable(U8 data);
  388. /*! \brief Reads the bit group 'enable' of register 'VO_MIXER_ENABLE_CTRL'. */
  389. U8 GH_VO_MIXER_get_ENABLE_CTRL_enable(void);
  390. /*! \brief Writes the bit group 'mapped_direct' of register 'VO_MIXER_ENABLE_CTRL'. */
  391. void GH_VO_MIXER_set_ENABLE_CTRL_mapped_direct(U8 data);
  392. /*! \brief Reads the bit group 'mapped_direct' of register 'VO_MIXER_ENABLE_CTRL'. */
  393. U8 GH_VO_MIXER_get_ENABLE_CTRL_mapped_direct(void);
  394. /*! \brief Writes the bit group 'smem' of register 'VO_MIXER_ENABLE_CTRL'. */
  395. void GH_VO_MIXER_set_ENABLE_CTRL_smem(U8 data);
  396. /*! \brief Reads the bit group 'smem' of register 'VO_MIXER_ENABLE_CTRL'. */
  397. U8 GH_VO_MIXER_get_ENABLE_CTRL_smem(void);
  398. /*! \brief Writes the bit group 'display' of register 'VO_MIXER_ENABLE_CTRL'. */
  399. void GH_VO_MIXER_set_ENABLE_CTRL_display(U8 data);
  400. /*! \brief Reads the bit group 'display' of register 'VO_MIXER_ENABLE_CTRL'. */
  401. U8 GH_VO_MIXER_get_ENABLE_CTRL_display(void);
  402. /*----------------------------------------------------------------------------*/
  403. /* register VO_MIXER_INPUT_VIDEO_SYNC (read/write) */
  404. /*----------------------------------------------------------------------------*/
  405. /*! \brief Writes the register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  406. void GH_VO_MIXER_set_INPUT_VIDEO_SYNC(U32 data);
  407. /*! \brief Reads the register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  408. U32 GH_VO_MIXER_get_INPUT_VIDEO_SYNC(void);
  409. /*! \brief Writes the bit group 'sync_mode' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  410. void GH_VO_MIXER_set_INPUT_VIDEO_SYNC_sync_mode(U8 data);
  411. /*! \brief Reads the bit group 'sync_mode' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  412. U8 GH_VO_MIXER_get_INPUT_VIDEO_SYNC_sync_mode(void);
  413. /*! \brief Writes the bit group 'line' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  414. void GH_VO_MIXER_set_INPUT_VIDEO_SYNC_line(U8 data);
  415. /*! \brief Reads the bit group 'line' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  416. U8 GH_VO_MIXER_get_INPUT_VIDEO_SYNC_line(void);
  417. /*! \brief Writes the bit group 'video' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  418. void GH_VO_MIXER_set_INPUT_VIDEO_SYNC_video(U8 data);
  419. /*! \brief Reads the bit group 'video' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  420. U8 GH_VO_MIXER_get_INPUT_VIDEO_SYNC_video(void);
  421. /*! \brief Writes the bit group 'decrement' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  422. void GH_VO_MIXER_set_INPUT_VIDEO_SYNC_decrement(U8 data);
  423. /*! \brief Reads the bit group 'decrement' of register 'VO_MIXER_INPUT_VIDEO_SYNC'. */
  424. U8 GH_VO_MIXER_get_INPUT_VIDEO_SYNC_decrement(void);
  425. /*----------------------------------------------------------------------------*/
  426. /* register VO_MIXER_OUTPUT_SYNC (read/write) */
  427. /*----------------------------------------------------------------------------*/
  428. /*! \brief Writes the register 'VO_MIXER_OUTPUT_SYNC'. */
  429. void GH_VO_MIXER_set_OUTPUT_SYNC(U32 data);
  430. /*! \brief Reads the register 'VO_MIXER_OUTPUT_SYNC'. */
  431. U32 GH_VO_MIXER_get_OUTPUT_SYNC(void);
  432. /*! \brief Writes the bit group 'sync_mode' of register 'VO_MIXER_OUTPUT_SYNC'. */
  433. void GH_VO_MIXER_set_OUTPUT_SYNC_sync_mode(U8 data);
  434. /*! \brief Reads the bit group 'sync_mode' of register 'VO_MIXER_OUTPUT_SYNC'. */
  435. U8 GH_VO_MIXER_get_OUTPUT_SYNC_sync_mode(void);
  436. /*! \brief Writes the bit group 'number' of register 'VO_MIXER_OUTPUT_SYNC'. */
  437. void GH_VO_MIXER_set_OUTPUT_SYNC_number(U8 data);
  438. /*! \brief Reads the bit group 'number' of register 'VO_MIXER_OUTPUT_SYNC'. */
  439. U8 GH_VO_MIXER_get_OUTPUT_SYNC_number(void);
  440. /*! \brief Writes the bit group 'counter' of register 'VO_MIXER_OUTPUT_SYNC'. */
  441. void GH_VO_MIXER_set_OUTPUT_SYNC_counter(U8 data);
  442. /*! \brief Reads the bit group 'counter' of register 'VO_MIXER_OUTPUT_SYNC'. */
  443. U8 GH_VO_MIXER_get_OUTPUT_SYNC_counter(void);
  444. /*! \brief Writes the bit group 'sync' of register 'VO_MIXER_OUTPUT_SYNC'. */
  445. void GH_VO_MIXER_set_OUTPUT_SYNC_sync(U8 data);
  446. /*! \brief Reads the bit group 'sync' of register 'VO_MIXER_OUTPUT_SYNC'. */
  447. U8 GH_VO_MIXER_get_OUTPUT_SYNC_sync(void);
  448. /*! \brief Writes the bit group 'frame' of register 'VO_MIXER_OUTPUT_SYNC'. */
  449. void GH_VO_MIXER_set_OUTPUT_SYNC_frame(U8 data);
  450. /*! \brief Reads the bit group 'frame' of register 'VO_MIXER_OUTPUT_SYNC'. */
  451. U8 GH_VO_MIXER_get_OUTPUT_SYNC_frame(void);
  452. /*----------------------------------------------------------------------------*/
  453. /* register VO_MIXER_SMEM_INPUT (read/write) */
  454. /*----------------------------------------------------------------------------*/
  455. /*! \brief Writes the register 'VO_MIXER_SMEM_INPUT'. */
  456. void GH_VO_MIXER_set_SMEM_INPUT(U32 data);
  457. /*! \brief Reads the register 'VO_MIXER_SMEM_INPUT'. */
  458. U32 GH_VO_MIXER_get_SMEM_INPUT(void);
  459. /*! \brief Writes the bit group 'luma_number' of register 'VO_MIXER_SMEM_INPUT'. */
  460. void GH_VO_MIXER_set_SMEM_INPUT_luma_number(U8 data);
  461. /*! \brief Reads the bit group 'luma_number' of register 'VO_MIXER_SMEM_INPUT'. */
  462. U8 GH_VO_MIXER_get_SMEM_INPUT_luma_number(void);
  463. /*! \brief Writes the bit group 'chroma_number' of register 'VO_MIXER_SMEM_INPUT'. */
  464. void GH_VO_MIXER_set_SMEM_INPUT_chroma_number(U8 data);
  465. /*! \brief Reads the bit group 'chroma_number' of register 'VO_MIXER_SMEM_INPUT'. */
  466. U8 GH_VO_MIXER_get_SMEM_INPUT_chroma_number(void);
  467. /*! \brief Writes the bit group 'osd_number' of register 'VO_MIXER_SMEM_INPUT'. */
  468. void GH_VO_MIXER_set_SMEM_INPUT_osd_number(U8 data);
  469. /*! \brief Reads the bit group 'osd_number' of register 'VO_MIXER_SMEM_INPUT'. */
  470. U8 GH_VO_MIXER_get_SMEM_INPUT_osd_number(void);
  471. /*! \brief Writes the bit group 'priority' of register 'VO_MIXER_SMEM_INPUT'. */
  472. void GH_VO_MIXER_set_SMEM_INPUT_priority(U8 data);
  473. /*! \brief Reads the bit group 'priority' of register 'VO_MIXER_SMEM_INPUT'. */
  474. U8 GH_VO_MIXER_get_SMEM_INPUT_priority(void);
  475. /*! \brief Writes the bit group 'video_length' of register 'VO_MIXER_SMEM_INPUT'. */
  476. void GH_VO_MIXER_set_SMEM_INPUT_video_length(U8 data);
  477. /*! \brief Reads the bit group 'video_length' of register 'VO_MIXER_SMEM_INPUT'. */
  478. U8 GH_VO_MIXER_get_SMEM_INPUT_video_length(void);
  479. /*! \brief Writes the bit group 'osd_length' of register 'VO_MIXER_SMEM_INPUT'. */
  480. void GH_VO_MIXER_set_SMEM_INPUT_osd_length(U8 data);
  481. /*! \brief Reads the bit group 'osd_length' of register 'VO_MIXER_SMEM_INPUT'. */
  482. U8 GH_VO_MIXER_get_SMEM_INPUT_osd_length(void);
  483. /*----------------------------------------------------------------------------*/
  484. /* register VO_MIXER_SMEM_OUT (read/write) */
  485. /*----------------------------------------------------------------------------*/
  486. /*! \brief Writes the register 'VO_MIXER_SMEM_OUT'. */
  487. void GH_VO_MIXER_set_SMEM_OUT(U32 data);
  488. /*! \brief Reads the register 'VO_MIXER_SMEM_OUT'. */
  489. U32 GH_VO_MIXER_get_SMEM_OUT(void);
  490. /*! \brief Writes the bit group 'luma_number' of register 'VO_MIXER_SMEM_OUT'. */
  491. void GH_VO_MIXER_set_SMEM_OUT_luma_number(U8 data);
  492. /*! \brief Reads the bit group 'luma_number' of register 'VO_MIXER_SMEM_OUT'. */
  493. U8 GH_VO_MIXER_get_SMEM_OUT_luma_number(void);
  494. /*! \brief Writes the bit group 'chroma_number' of register 'VO_MIXER_SMEM_OUT'. */
  495. void GH_VO_MIXER_set_SMEM_OUT_chroma_number(U8 data);
  496. /*! \brief Reads the bit group 'chroma_number' of register 'VO_MIXER_SMEM_OUT'. */
  497. U8 GH_VO_MIXER_get_SMEM_OUT_chroma_number(void);
  498. /*! \brief Writes the bit group 'priority' of register 'VO_MIXER_SMEM_OUT'. */
  499. void GH_VO_MIXER_set_SMEM_OUT_priority(U8 data);
  500. /*! \brief Reads the bit group 'priority' of register 'VO_MIXER_SMEM_OUT'. */
  501. U8 GH_VO_MIXER_get_SMEM_OUT_priority(void);
  502. /*----------------------------------------------------------------------------*/
  503. /* register VO_MIXER_FRAME_ENABLE (read/write) */
  504. /*----------------------------------------------------------------------------*/
  505. /*! \brief Writes the register 'VO_MIXER_FRAME_ENABLE'. */
  506. void GH_VO_MIXER_set_FRAME_ENABLE(U32 data);
  507. /*! \brief Reads the register 'VO_MIXER_FRAME_ENABLE'. */
  508. U32 GH_VO_MIXER_get_FRAME_ENABLE(void);
  509. /*! \brief Writes the bit group 'enable' of register 'VO_MIXER_FRAME_ENABLE'. */
  510. void GH_VO_MIXER_set_FRAME_ENABLE_enable(U8 data);
  511. /*! \brief Reads the bit group 'enable' of register 'VO_MIXER_FRAME_ENABLE'. */
  512. U8 GH_VO_MIXER_get_FRAME_ENABLE_enable(void);
  513. /*----------------------------------------------------------------------------*/
  514. /* register VO_MIXER_CLUT_B (read/write) */
  515. /*----------------------------------------------------------------------------*/
  516. /*! \brief Writes the register 'VO_MIXER_CLUT_B'. */
  517. void GH_VO_MIXER_set_CLUT_B(U16 index, U32 data);
  518. /*! \brief Reads the register 'VO_MIXER_CLUT_B'. */
  519. U32 GH_VO_MIXER_get_CLUT_B(U16 index);
  520. /*----------------------------------------------------------------------------*/
  521. /* init function */
  522. /*----------------------------------------------------------------------------*/
  523. /*! \brief Initialises the registers and mirror variables. */
  524. void GH_VO_MIXER_init(void);
  525. #ifdef SRC_INLINE
  526. #define SRC_INC 1
  527. #include "gh_vo_mixer.c"
  528. #undef SRC_INC
  529. #endif
  530. #ifdef __cplusplus
  531. }
  532. #endif
  533. #endif /* _GH_VO_MIXER_H */
  534. /*----------------------------------------------------------------------------*/
  535. /* end of file */
  536. /*----------------------------------------------------------------------------*/