fb.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. /*
  2. * (C) Copyright 2012 Samsung Electronics
  3. * Donghwa Lee <dh09.lee@samsung.com>
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #ifndef __ASM_ARM_ARCH_FB_H_
  8. #define __ASM_ARM_ARCH_FB_H_
  9. #ifndef __ASSEMBLY__
  10. struct exynos_fb {
  11. unsigned int vidcon0;
  12. unsigned int vidcon1;
  13. unsigned int vidcon2;
  14. unsigned int vidcon3;
  15. unsigned int vidtcon0;
  16. unsigned int vidtcon1;
  17. unsigned int vidtcon2;
  18. unsigned int vidtcon3;
  19. unsigned int wincon0;
  20. unsigned int wincon1;
  21. unsigned int wincon2;
  22. unsigned int wincon3;
  23. unsigned int wincon4;
  24. unsigned int winshmap;
  25. unsigned int res1;
  26. unsigned int winchmap2;
  27. unsigned int vidosd0a;
  28. unsigned int vidosd0b;
  29. unsigned int vidosd0c;
  30. unsigned int res2;
  31. unsigned int vidosd1a;
  32. unsigned int vidosd1b;
  33. unsigned int vidosd1c;
  34. unsigned int vidosd1d;
  35. unsigned int vidosd2a;
  36. unsigned int vidosd2b;
  37. unsigned int vidosd2c;
  38. unsigned int vidosd2d;
  39. unsigned int vidosd3a;
  40. unsigned int vidosd3b;
  41. unsigned int vidosd3c;
  42. unsigned int res3;
  43. unsigned int vidosd4a;
  44. unsigned int vidosd4b;
  45. unsigned int vidosd4c;
  46. unsigned int res4[5];
  47. unsigned int vidw00add0b0;
  48. unsigned int vidw00add0b1;
  49. unsigned int vidw01add0b0;
  50. unsigned int vidw01add0b1;
  51. unsigned int vidw02add0b0;
  52. unsigned int vidw02add0b1;
  53. unsigned int vidw03add0b0;
  54. unsigned int vidw03add0b1;
  55. unsigned int vidw04add0b0;
  56. unsigned int vidw04add0b1;
  57. unsigned int res5[2];
  58. unsigned int vidw00add1b0;
  59. unsigned int vidw00add1b1;
  60. unsigned int vidw01add1b0;
  61. unsigned int vidw01add1b1;
  62. unsigned int vidw02add1b0;
  63. unsigned int vidw02add1b1;
  64. unsigned int vidw03add1b0;
  65. unsigned int vidw03add1b1;
  66. unsigned int vidw04add1b0;
  67. unsigned int vidw04add1b1;
  68. unsigned int res7[2];
  69. unsigned int vidw00add2;
  70. unsigned int vidw01add2;
  71. unsigned int vidw02add2;
  72. unsigned int vidw03add2;
  73. unsigned int vidw04add2;
  74. unsigned int res8[7];
  75. unsigned int vidintcon0;
  76. unsigned int vidintcon1;
  77. unsigned int res9[1];
  78. unsigned int w1keycon0;
  79. unsigned int w1keycon1;
  80. unsigned int w2keycon0;
  81. unsigned int w2keycon1;
  82. unsigned int w3keycon0;
  83. unsigned int w3keycon1;
  84. unsigned int w4keycon0;
  85. unsigned int w4keycon1;
  86. unsigned int w1keyalpha;
  87. unsigned int w2keyalpha;
  88. unsigned int w3keyalpha;
  89. unsigned int w4keyalpha;
  90. unsigned int dithmode;
  91. unsigned int res10[2];
  92. unsigned int win0map;
  93. unsigned int win1map;
  94. unsigned int win2map;
  95. unsigned int win3map;
  96. unsigned int win4map;
  97. unsigned int res11[1];
  98. unsigned int wpalcon_h;
  99. unsigned int wpalcon_l;
  100. unsigned int trigcon;
  101. unsigned int res12[2];
  102. unsigned int i80ifcona0;
  103. unsigned int i80ifcona1;
  104. unsigned int i80ifconb0;
  105. unsigned int i80ifconb1;
  106. unsigned int colorgaincon;
  107. unsigned int res13[2];
  108. unsigned int ldi_cmdcon0;
  109. unsigned int ldi_cmdcon1;
  110. unsigned int res14[1];
  111. /* To be updated */
  112. unsigned char res15[156];
  113. unsigned int dualrgb;
  114. unsigned char res16[16];
  115. unsigned int dp_mie_clkcon;
  116. };
  117. #endif
  118. /* LCD IF register offset */
  119. #define EXYNOS4_LCD_IF_BASE_OFFSET 0x0
  120. #define EXYNOS5_LCD_IF_BASE_OFFSET 0x20000
  121. static inline unsigned int exynos_fimd_get_base_offset(void)
  122. {
  123. if (cpu_is_exynos5())
  124. return EXYNOS5_LCD_IF_BASE_OFFSET;
  125. else
  126. return EXYNOS4_LCD_IF_BASE_OFFSET;
  127. }
  128. /*
  129. * Register offsets
  130. */
  131. #define EXYNOS_WINCON(x) (x * 0x04)
  132. #define EXYNOS_VIDOSD(x) (x * 0x10)
  133. #define EXYNOS_BUFFER_OFFSET(x) (x * 0x08)
  134. #define EXYNOS_BUFFER_SIZE(x) (x * 0x04)
  135. /*
  136. * Bit Definitions
  137. */
  138. /* VIDCON0 */
  139. #define EXYNOS_VIDCON0_DSI_DISABLE (0 << 30)
  140. #define EXYNOS_VIDCON0_DSI_ENABLE (1 << 30)
  141. #define EXYNOS_VIDCON0_SCAN_PROGRESSIVE (0 << 29)
  142. #define EXYNOS_VIDCON0_SCAN_INTERLACE (1 << 29)
  143. #define EXYNOS_VIDCON0_SCAN_MASK (1 << 29)
  144. #define EXYNOS_VIDCON0_VIDOUT_RGB (0 << 26)
  145. #define EXYNOS_VIDCON0_VIDOUT_ITU (1 << 26)
  146. #define EXYNOS_VIDCON0_VIDOUT_I80LDI0 (2 << 26)
  147. #define EXYNOS_VIDCON0_VIDOUT_I80LDI1 (3 << 26)
  148. #define EXYNOS_VIDCON0_VIDOUT_WB_RGB (4 << 26)
  149. #define EXYNOS_VIDCON0_VIDOUT_WB_I80LDI0 (6 << 26)
  150. #define EXYNOS_VIDCON0_VIDOUT_WB_I80LDI1 (7 << 26)
  151. #define EXYNOS_VIDCON0_VIDOUT_MASK (7 << 26)
  152. #define EXYNOS_VIDCON0_PNRMODE_RGB_P (0 << 17)
  153. #define EXYNOS_VIDCON0_PNRMODE_BGR_P (1 << 17)
  154. #define EXYNOS_VIDCON0_PNRMODE_RGB_S (2 << 17)
  155. #define EXYNOS_VIDCON0_PNRMODE_BGR_S (3 << 17)
  156. #define EXYNOS_VIDCON0_PNRMODE_MASK (3 << 17)
  157. #define EXYNOS_VIDCON0_PNRMODE_SHIFT (17)
  158. #define EXYNOS_VIDCON0_CLKVALUP_ALWAYS (0 << 16)
  159. #define EXYNOS_VIDCON0_CLKVALUP_START_FRAME (1 << 16)
  160. #define EXYNOS_VIDCON0_CLKVALUP_MASK (1 << 16)
  161. #define EXYNOS_VIDCON0_CLKVAL_F(x) (((x) & 0xff) << 6)
  162. #define EXYNOS_VIDCON0_VCLKEN_NORMAL (0 << 5)
  163. #define EXYNOS_VIDCON0_VCLKEN_FREERUN (1 << 5)
  164. #define EXYNOS_VIDCON0_VCLKEN_MASK (1 << 5)
  165. #define EXYNOS_VIDCON0_CLKDIR_DIRECTED (0 << 4)
  166. #define EXYNOS_VIDCON0_CLKDIR_DIVIDED (1 << 4)
  167. #define EXYNOS_VIDCON0_CLKDIR_MASK (1 << 4)
  168. #define EXYNOS_VIDCON0_CLKSEL_HCLK (0 << 2)
  169. #define EXYNOS_VIDCON0_CLKSEL_SCLK (1 << 2)
  170. #define EXYNOS_VIDCON0_CLKSEL_MASK (1 << 2)
  171. #define EXYNOS_VIDCON0_ENVID_ENABLE (1 << 1)
  172. #define EXYNOS_VIDCON0_ENVID_DISABLE (0 << 1)
  173. #define EXYNOS_VIDCON0_ENVID_F_ENABLE (1 << 0)
  174. #define EXYNOS_VIDCON0_ENVID_F_DISABLE (0 << 0)
  175. /* VIDCON1 */
  176. #define EXYNOS_VIDCON1_IVCLK_FALLING_EDGE (0 << 7)
  177. #define EXYNOS_VIDCON1_IVCLK_RISING_EDGE (1 << 7)
  178. #define EXYNOS_VIDCON1_IHSYNC_NORMAL (0 << 6)
  179. #define EXYNOS_VIDCON1_IHSYNC_INVERT (1 << 6)
  180. #define EXYNOS_VIDCON1_IVSYNC_NORMAL (0 << 5)
  181. #define EXYNOS_VIDCON1_IVSYNC_INVERT (1 << 5)
  182. #define EXYNOS_VIDCON1_IVDEN_NORMAL (0 << 4)
  183. #define EXYNOS_VIDCON1_IVDEN_INVERT (1 << 4)
  184. /* VIDCON2 */
  185. #define EXYNOS_VIDCON2_EN601_DISABLE (0 << 23)
  186. #define EXYNOS_VIDCON2_EN601_ENABLE (1 << 23)
  187. #define EXYNOS_VIDCON2_EN601_MASK (1 << 23)
  188. #define EXYNOS_VIDCON2_WB_DISABLE (0 << 15)
  189. #define EXYNOS_VIDCON2_WB_ENABLE (1 << 15)
  190. #define EXYNOS_VIDCON2_WB_MASK (1 << 15)
  191. #define EXYNOS_VIDCON2_TVFORMATSEL_HW (0 << 14)
  192. #define EXYNOS_VIDCON2_TVFORMATSEL_SW (1 << 14)
  193. #define EXYNOS_VIDCON2_TVFORMATSEL_MASK (1 << 14)
  194. #define EXYNOS_VIDCON2_TVFORMATSEL_YUV422 (1 << 12)
  195. #define EXYNOS_VIDCON2_TVFORMATSEL_YUV444 (2 << 12)
  196. #define EXYNOS_VIDCON2_TVFORMATSEL_YUV_MASK (3 << 12)
  197. #define EXYNOS_VIDCON2_ORGYUV_YCBCR (0 << 8)
  198. #define EXYNOS_VIDCON2_ORGYUV_CBCRY (1 << 8)
  199. #define EXYNOS_VIDCON2_ORGYUV_MASK (1 << 8)
  200. #define EXYNOS_VIDCON2_YUVORD_CBCR (0 << 7)
  201. #define EXYNOS_VIDCON2_YUVORD_CRCB (1 << 7)
  202. #define EXYNOS_VIDCON2_YUVORD_MASK (1 << 7)
  203. /* PRTCON */
  204. #define EXYNOS_PRTCON_UPDATABLE (0 << 11)
  205. #define EXYNOS_PRTCON_PROTECT (1 << 11)
  206. /* VIDTCON0 */
  207. #define EXYNOS_VIDTCON0_VBPDE(x) (((x) & 0xff) << 24)
  208. #define EXYNOS_VIDTCON0_VBPD(x) (((x) & 0xff) << 16)
  209. #define EXYNOS_VIDTCON0_VFPD(x) (((x) & 0xff) << 8)
  210. #define EXYNOS_VIDTCON0_VSPW(x) (((x) & 0xff) << 0)
  211. /* VIDTCON1 */
  212. #define EXYNOS_VIDTCON1_VFPDE(x) (((x) & 0xff) << 24)
  213. #define EXYNOS_VIDTCON1_HBPD(x) (((x) & 0xff) << 16)
  214. #define EXYNOS_VIDTCON1_HFPD(x) (((x) & 0xff) << 8)
  215. #define EXYNOS_VIDTCON1_HSPW(x) (((x) & 0xff) << 0)
  216. /* VIDTCON2 */
  217. #define EXYNOS_VIDTCON2_LINEVAL(x) (((x) & 0x7ff) << 11)
  218. #define EXYNOS_VIDTCON2_HOZVAL(x) (((x) & 0x7ff) << 0)
  219. #define EXYNOS_VIDTCON2_LINEVAL_E(x) ((((x) & 0x800) >> 11) << 23)
  220. #define EXYNOS_VIDTCON2_HOZVAL_E(x) ((((x) & 0x800) >> 11) << 22)
  221. /* Window 0~4 Control - WINCONx */
  222. #define EXYNOS_WINCON_DATAPATH_DMA (0 << 22)
  223. #define EXYNOS_WINCON_DATAPATH_LOCAL (1 << 22)
  224. #define EXYNOS_WINCON_DATAPATH_MASK (1 << 22)
  225. #define EXYNOS_WINCON_BUFSEL_0 (0 << 20)
  226. #define EXYNOS_WINCON_BUFSEL_1 (1 << 20)
  227. #define EXYNOS_WINCON_BUFSEL_MASK (1 << 20)
  228. #define EXYNOS_WINCON_BUFSEL_SHIFT (20)
  229. #define EXYNOS_WINCON_BUFAUTO_DISABLE (0 << 19)
  230. #define EXYNOS_WINCON_BUFAUTO_ENABLE (1 << 19)
  231. #define EXYNOS_WINCON_BUFAUTO_MASK (1 << 19)
  232. #define EXYNOS_WINCON_BITSWP_DISABLE (0 << 18)
  233. #define EXYNOS_WINCON_BITSWP_ENABLE (1 << 18)
  234. #define EXYNOS_WINCON_BITSWP_SHIFT (18)
  235. #define EXYNOS_WINCON_BYTESWP_DISABLE (0 << 17)
  236. #define EXYNOS_WINCON_BYTESWP_ENABLE (1 << 17)
  237. #define EXYNOS_WINCON_BYTESWP_SHIFT (17)
  238. #define EXYNOS_WINCON_HAWSWP_DISABLE (0 << 16)
  239. #define EXYNOS_WINCON_HAWSWP_ENABLE (1 << 16)
  240. #define EXYNOS_WINCON_HAWSWP_SHIFT (16)
  241. #define EXYNOS_WINCON_WSWP_DISABLE (0 << 15)
  242. #define EXYNOS_WINCON_WSWP_ENABLE (1 << 15)
  243. #define EXYNOS_WINCON_WSWP_SHIFT (15)
  244. #define EXYNOS_WINCON_INRGB_RGB (0 << 13)
  245. #define EXYNOS_WINCON_INRGB_YUV (1 << 13)
  246. #define EXYNOS_WINCON_INRGB_MASK (1 << 13)
  247. #define EXYNOS_WINCON_BURSTLEN_16WORD (0 << 9)
  248. #define EXYNOS_WINCON_BURSTLEN_8WORD (1 << 9)
  249. #define EXYNOS_WINCON_BURSTLEN_4WORD (2 << 9)
  250. #define EXYNOS_WINCON_BURSTLEN_MASK (3 << 9)
  251. #define EXYNOS_WINCON_ALPHA_MULTI_DISABLE (0 << 7)
  252. #define EXYNOS_WINCON_ALPHA_MULTI_ENABLE (1 << 7)
  253. #define EXYNOS_WINCON_BLD_PLANE (0 << 6)
  254. #define EXYNOS_WINCON_BLD_PIXEL (1 << 6)
  255. #define EXYNOS_WINCON_BLD_MASK (1 << 6)
  256. #define EXYNOS_WINCON_BPPMODE_1BPP (0 << 2)
  257. #define EXYNOS_WINCON_BPPMODE_2BPP (1 << 2)
  258. #define EXYNOS_WINCON_BPPMODE_4BPP (2 << 2)
  259. #define EXYNOS_WINCON_BPPMODE_8BPP_PAL (3 << 2)
  260. #define EXYNOS_WINCON_BPPMODE_8BPP (4 << 2)
  261. #define EXYNOS_WINCON_BPPMODE_16BPP_565 (5 << 2)
  262. #define EXYNOS_WINCON_BPPMODE_16BPP_A555 (6 << 2)
  263. #define EXYNOS_WINCON_BPPMODE_18BPP_666 (8 << 2)
  264. #define EXYNOS_WINCON_BPPMODE_18BPP_A665 (9 << 2)
  265. #define EXYNOS_WINCON_BPPMODE_24BPP_888 (0xb << 2)
  266. #define EXYNOS_WINCON_BPPMODE_24BPP_A887 (0xc << 2)
  267. #define EXYNOS_WINCON_BPPMODE_32BPP (0xd << 2)
  268. #define EXYNOS_WINCON_BPPMODE_16BPP_A444 (0xe << 2)
  269. #define EXYNOS_WINCON_BPPMODE_15BPP_555 (0xf << 2)
  270. #define EXYNOS_WINCON_BPPMODE_MASK (0xf << 2)
  271. #define EXYNOS_WINCON_BPPMODE_SHIFT (2)
  272. #define EXYNOS_WINCON_ALPHA0_SEL (0 << 1)
  273. #define EXYNOS_WINCON_ALPHA1_SEL (1 << 1)
  274. #define EXYNOS_WINCON_ALPHA_SEL_MASK (1 << 1)
  275. #define EXYNOS_WINCON_ENWIN_DISABLE (0 << 0)
  276. #define EXYNOS_WINCON_ENWIN_ENABLE (1 << 0)
  277. /* WINCON1 special */
  278. #define EXYNOS_WINCON1_VP_DISABLE (0 << 24)
  279. #define EXYNOS_WINCON1_VP_ENABLE (1 << 24)
  280. #define EXYNOS_WINCON1_LOCALSEL_FIMC1 (0 << 23)
  281. #define EXYNOS_WINCON1_LOCALSEL_VP (1 << 23)
  282. #define EXYNOS_WINCON1_LOCALSEL_MASK (1 << 23)
  283. /* WINSHMAP */
  284. #define EXYNOS_WINSHMAP_PROTECT(x) (((x) & 0x1f) << 10)
  285. #define EXYNOS_WINSHMAP_CH_ENABLE(x) (1 << (x))
  286. #define EXYNOS_WINSHMAP_CH_DISABLE(x) (1 << (x))
  287. #define EXYNOS_WINSHMAP_LOCAL_ENABLE(x) (0x20 << (x))
  288. #define EXYNOS_WINSHMAP_LOCAL_DISABLE(x) (0x20 << (x))
  289. /* VIDOSDxA, VIDOSDxB */
  290. #define EXYNOS_VIDOSD_LEFT_X(x) (((x) & 0x7ff) << 11)
  291. #define EXYNOS_VIDOSD_TOP_Y(x) (((x) & 0x7ff) << 0)
  292. #define EXYNOS_VIDOSD_RIGHT_X(x) (((x) & 0x7ff) << 11)
  293. #define EXYNOS_VIDOSD_BOTTOM_Y(x) (((x) & 0x7ff) << 0)
  294. #define EXYNOS_VIDOSD_RIGHT_X_E(x) (((x) & 0x1) << 23)
  295. #define EXYNOS_VIDOSD_BOTTOM_Y_E(x) (((x) & 0x1) << 22)
  296. /* VIDOSD0C, VIDOSDxD */
  297. #define EXYNOS_VIDOSD_SIZE(x) (((x) & 0xffffff) << 0)
  298. /* VIDOSDxC (1~4) */
  299. #define EXYNOS_VIDOSD_ALPHA0_R(x) (((x) & 0xf) << 20)
  300. #define EXYNOS_VIDOSD_ALPHA0_G(x) (((x) & 0xf) << 16)
  301. #define EXYNOS_VIDOSD_ALPHA0_B(x) (((x) & 0xf) << 12)
  302. #define EXYNOS_VIDOSD_ALPHA1_R(x) (((x) & 0xf) << 8)
  303. #define EXYNOS_VIDOSD_ALPHA1_G(x) (((x) & 0xf) << 4)
  304. #define EXYNOS_VIDOSD_ALPHA1_B(x) (((x) & 0xf) << 0)
  305. #define EXYNOS_VIDOSD_ALPHA0_SHIFT (12)
  306. #define EXYNOS_VIDOSD_ALPHA1_SHIFT (0)
  307. /* Start Address */
  308. #define EXYNOS_VIDADDR_START_VBANK(x) (((x) & 0xff) << 24)
  309. #define EXYNOS_VIDADDR_START_VBASEU(x) (((x) & 0xffffff) << 0)
  310. /* End Address */
  311. #define EXYNOS_VIDADDR_END_VBASEL(x) (((x) & 0xffffff) << 0)
  312. /* Buffer Size */
  313. #define EXYNOS_VIDADDR_OFFSIZE(x) (((x) & 0x1fff) << 13)
  314. #define EXYNOS_VIDADDR_PAGEWIDTH(x) (((x) & 0x1fff) << 0)
  315. #define EXYNOS_VIDADDR_OFFSIZE_E(x) ((((x) & 0x2000) >> 13) << 27)
  316. #define EXYNOS_VIDADDR_PAGEWIDTH_E(x) ((((x) & 0x2000) >> 13) << 26)
  317. /* WIN Color Map */
  318. #define EXYNOS_WINMAP_COLOR(x) ((x) & 0xffffff)
  319. /* VIDINTCON0 */
  320. #define EXYNOS_VIDINTCON0_SYSMAINCON_DISABLE (0 << 19)
  321. #define EXYNOS_VIDINTCON0_SYSMAINCON_ENABLE (1 << 19)
  322. #define EXYNOS_VIDINTCON0_SYSSUBCON_DISABLE (0 << 18)
  323. #define EXYNOS_VIDINTCON0_SYSSUBCON_ENABLE (1 << 18)
  324. #define EXYNOS_VIDINTCON0_SYSIFDONE_DISABLE (0 << 17)
  325. #define EXYNOS_VIDINTCON0_SYSIFDONE_ENABLE (1 << 17)
  326. #define EXYNOS_VIDINTCON0_FRAMESEL0_BACK (0 << 15)
  327. #define EXYNOS_VIDINTCON0_FRAMESEL0_VSYNC (1 << 15)
  328. #define EXYNOS_VIDINTCON0_FRAMESEL0_ACTIVE (2 << 15)
  329. #define EXYNOS_VIDINTCON0_FRAMESEL0_FRONT (3 << 15)
  330. #define EXYNOS_VIDINTCON0_FRAMESEL0_MASK (3 << 15)
  331. #define EXYNOS_VIDINTCON0_FRAMESEL1_NONE (0 << 13)
  332. #define EXYNOS_VIDINTCON0_FRAMESEL1_BACK (1 << 13)
  333. #define EXYNOS_VIDINTCON0_FRAMESEL1_VSYNC (2 << 13)
  334. #define EXYNOS_VIDINTCON0_FRAMESEL1_FRONT (3 << 13)
  335. #define EXYNOS_VIDINTCON0_INTFRMEN_DISABLE (0 << 12)
  336. #define EXYNOS_VIDINTCON0_INTFRMEN_ENABLE (1 << 12)
  337. #define EXYNOS_VIDINTCON0_FIFOSEL_WIN4 (1 << 11)
  338. #define EXYNOS_VIDINTCON0_FIFOSEL_WIN3 (1 << 10)
  339. #define EXYNOS_VIDINTCON0_FIFOSEL_WIN2 (1 << 9)
  340. #define EXYNOS_VIDINTCON0_FIFOSEL_WIN1 (1 << 6)
  341. #define EXYNOS_VIDINTCON0_FIFOSEL_WIN0 (1 << 5)
  342. #define EXYNOS_VIDINTCON0_FIFOSEL_ALL (0x73 << 5)
  343. #define EXYNOS_VIDINTCON0_FIFOSEL_MASK (0x73 << 5)
  344. #define EXYNOS_VIDINTCON0_FIFOLEVEL_25 (0 << 2)
  345. #define EXYNOS_VIDINTCON0_FIFOLEVEL_50 (1 << 2)
  346. #define EXYNOS_VIDINTCON0_FIFOLEVEL_75 (2 << 2)
  347. #define EXYNOS_VIDINTCON0_FIFOLEVEL_EMPTY (3 << 2)
  348. #define EXYNOS_VIDINTCON0_FIFOLEVEL_FULL (4 << 2)
  349. #define EXYNOS_VIDINTCON0_FIFOLEVEL_MASK (7 << 2)
  350. #define EXYNOS_VIDINTCON0_INTFIFO_DISABLE (0 << 1)
  351. #define EXYNOS_VIDINTCON0_INTFIFO_ENABLE (1 << 1)
  352. #define EXYNOS_VIDINTCON0_INT_DISABLE (0 << 0)
  353. #define EXYNOS_VIDINTCON0_INT_ENABLE (1 << 0)
  354. #define EXYNOS_VIDINTCON0_INT_MASK (1 << 0)
  355. /* VIDINTCON1 */
  356. #define EXYNOS_VIDINTCON1_INTVPPEND (1 << 5)
  357. #define EXYNOS_VIDINTCON1_INTI80PEND (1 << 2)
  358. #define EXYNOS_VIDINTCON1_INTFRMPEND (1 << 1)
  359. #define EXYNOS_VIDINTCON1_INTFIFOPEND (1 << 0)
  360. /* WINMAP */
  361. #define EXYNOS_WINMAP_ENABLE (1 << 24)
  362. /* WxKEYCON0 (1~4) */
  363. #define EXYNOS_KEYCON0_KEYBLEN_DISABLE (0 << 26)
  364. #define EXYNOS_KEYCON0_KEYBLEN_ENABLE (1 << 26)
  365. #define EXYNOS_KEYCON0_KEY_DISABLE (0 << 25)
  366. #define EXYNOS_KEYCON0_KEY_ENABLE (1 << 25)
  367. #define EXYNOS_KEYCON0_DIRCON_MATCH_FG (0 << 24)
  368. #define EXYNOS_KEYCON0_DIRCON_MATCH_BG (1 << 24)
  369. #define EXYNOS_KEYCON0_COMPKEY(x) (((x) & 0xffffff) << 0)
  370. /* WxKEYCON1 (1~4) */
  371. #define EXYNOS_KEYCON1_COLVAL(x) (((x) & 0xffffff) << 0)
  372. /* DUALRGB */
  373. #define EXYNOS_DUALRGB_BYPASS_SINGLE (0x00 << 0)
  374. #define EXYNOS_DUALRGB_BYPASS_DUAL (0x01 << 0)
  375. #define EXYNOS_DUALRGB_MIE_DUAL (0x10 << 0)
  376. #define EXYNOS_DUALRGB_MIE_SINGLE (0x11 << 0)
  377. #define EXYNOS_DUALRGB_LINESPLIT (0x0 << 2)
  378. #define EXYNOS_DUALRGB_FRAMESPLIT (0x1 << 2)
  379. #define EXYNOS_DUALRGB_SUB_CNT(x) ((x & 0xfff) << 4)
  380. #define EXYNOS_DUALRGB_VDEN_EN_DISABLE (0x0 << 16)
  381. #define EXYNOS_DUALRGB_VDEN_EN_ENABLE (0x1 << 16)
  382. #define EXYNOS_DUALRGB_MAIN_CNT(x) ((x & 0xfff) << 18)
  383. /* I80IFCONA0 and I80IFCONA1 */
  384. #define EXYNOS_LCD_CS_SETUP(x) (((x) & 0xf) << 16)
  385. #define EXYNOS_LCD_WR_SETUP(x) (((x) & 0xf) << 12)
  386. #define EXYNOS_LCD_WR_ACT(x) (((x) & 0xf) << 8)
  387. #define EXYNOS_LCD_WR_HOLD(x) (((x) & 0xf) << 4)
  388. #define EXYNOS_RSPOL_LOW (0 << 2)
  389. #define EXYNOS_RSPOL_HIGH (1 << 2)
  390. #define EXYNOS_I80IFEN_DISABLE (0 << 0)
  391. #define EXYNOS_I80IFEN_ENABLE (1 << 0)
  392. /* TRIGCON */
  393. #define EXYNOS_I80SOFT_TRIG_EN (1 << 0)
  394. #define EXYNOS_I80START_TRIG (1 << 1)
  395. #define EXYNOS_I80STATUS_TRIG_DONE (1 << 2)
  396. /* DP_MIE_CLKCON */
  397. #define EXYNOS_DP_MIE_DISABLE (0 << 0)
  398. #define EXYNOS_DP_CLK_ENABLE (1 << 1)
  399. #define EXYNOS_MIE_CLK_ENABLE (3 << 0)
  400. #endif /* _REGS_FB_H */