Advertisement
Guest User

Untitled

a guest
Apr 1st, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.55 KB | None | 0 0
  1. LCD_NVIDIA_Interface_Init:
  2.  
  3. X1=4
  4. X2=4
  5. X3=0
  6.  
  7. Y1=1
  8. Y2=3
  9. Y3=5
  10.  
  11.  
  12.  
  13.  
  14. 0x600600C |= 0x1000000 (DEV_EN)
  15. 0x60060DC = (24000000/4895360) <= (240+X2+X3+X1)*(320+Y3+Y2+Y1)*60 /* z zaokr czy bez */
  16.  
  17. _backlight_off();
  18.  
  19. 0x70009224 bics 0x70 or 0x30 /* 18 BPP */
  20. 0x70009224 bics 0x02
  21.  
  22. 0x7000924C bics 0x8000
  23. 0x7000924C bics 0x1F00
  24. 0x7000924C bics 0xF0000
  25. 0x7000924C or 0x4000
  26. 0x7000924C bics 0x0FF or 0x08
  27. 0x7000924C bics 0x100000
  28. 0x7000924C bics 0x800000
  29. 0x7000924C bics 0x400000
  30.  
  31. 0x70009200 bic 0x7FF or X2
  32. 0x70009200 and 0xF800FFFF or ((240-1+X2) << 16)
  33.  
  34. 0x70009208 bic 0x7FF or (X2-1)
  35. 0x70009208 and 0x7800FFFF or ((240+1+(X2-1)) << 16)
  36.  
  37. 0x70009204 bic 0x0FFFF or (X1-1)
  38. 0x70009204 and 0xF800FFFF or ((240-1+X2+X3) << 16)
  39.  
  40. 0x7000920C bic 0x7FF or Y2
  41. 0x7000920C and 0xF800FFFF or ((320-1+Y2) << 16)
  42.  
  43. 0x70009214 bic 0x7FF or (Y2-1)
  44. 0x70009214 and 0x07800FFFF or ((320+1+(Y2-1)) << 16)
  45.  
  46. 0x70009210 bic 0x0FFFF or (Y1-1)
  47. 0x70009210 and 0x0F800FFFF or ((320+Y2+Y3) << 16)
  48.  
  49. 0x70009234 and 0x0F800F800
  50. 0x70009238 and 0x0F800FFFF or ((240-1) << 16)
  51. 0x70009238 and 0x7FF or (320-1)
  52.  
  53. 0x70009220 or 0x80
  54. 0x70009220 or 0x40
  55. 0x70009220 or 0x20
  56. 0x70009228 = 0
  57. 0x70009240 = 0
  58. 0x70009224 or 0x01
  59. 0x70009224 or 0x0C
  60. 0x70009224 bic 0x80
  61. 0x70009224 bics 0x300
  62. 0x70009224 bics 0x400
  63. 0x70009224 bics 0x800
  64. 0x70009224 bics 0x1000
  65. 0x70009224 bics 0x2000
  66. 0x70009224 bics 0x4000
  67. 0x70009224 bics 0x8000
  68. 0x70009224 bics 0x70000
  69. 0x70009224 bics 0x80000
  70. 0x70009224 and 0x803FFFFF
  71.  
  72. 0x60010000 bics 0x380000 or 0x100000
  73. 0x60010080 bics 0x0000ffff or (240 >> 4)
  74. 0x60010080 bics 0xffff0000 or ((320 >> 4) << 16)
  75. 0x60010000 bics 0x7ffff or 0x4E000
  76. 0x60010000 bics 0x400000
  77. 0x60010000 bics 0x1800000 or 0x800000
  78. 0x60010000 bics 0x6000000 or 0x2000000
  79.  
  80. LCD_Init();
  81.  
  82. 0x70009280 = 0xABCD
  83.  
  84.  
  85. LCD_Init:
  86.  
  87. outl(inl(0x70000010) | 0xFC000000, 0x70000010);
  88. outl(inl(0x70000014) | 0xC300000, 0x70000014);
  89. GPIOE_ENABLE = 0;
  90. GPIOM_ENABLE &= ~0x3;
  91. GPIOF_ENABLE = 0;
  92. GPIOJ_ENABLE &= ~0x1a;
  93. GPIOB_ENABLE &= ~0x8;
  94.  
  95. // LCD_Init_SPI
  96.  
  97. GPIOH_OUTPUT_VAL |= 0x80;
  98. GPIOH_ENABLE |= 0x80;
  99. GPIOH_OUTPUT_EN |= 0x80;
  100.  
  101. GPIOH_OUTPUT_VAL |= 0x40;
  102. GPIOH_ENABLE |= 0x40;
  103. GPIOH_OUTPUT_EN |= 0x40;
  104.  
  105. GPIOH_OUTPUT_VAL |= 0x20;
  106. GPIOH_ENABLE |= 0x20;
  107. GPIOH_OUTPUT_EN |= 0x20;
  108.  
  109. GPIOH_OUTPUT_VAL |= 0x10;
  110. GPIOH_ENABLE |= 0x10;
  111. GPIOH_OUTPUT_EN |= 0x10;
  112.  
  113. sleep(HZ/10); //delay 100ms
  114.  
  115. //continuation
  116. GPIOH_OUTPUT_VAL &= ~0x01;
  117. GPIOH_ENABLE |= 0x01;
  118. GPIOH_OUTPUT_EN |= 0x01;
  119.  
  120. GPIOF_OUTPUT_VAL |= 0x04;
  121. GPIOF_ENABLE |= 0x04;
  122. GPIOF_OUTPUT_EN |= 0x04;
  123.  
  124. DEV_INIT2 = 0x42000000;
  125.  
  126. // lcd_reset
  127. GPIOB_OUTPUT_VAL |= 4; // GPIOB => nRESET pin
  128. sleep(HZ/1000); /* 1ms */
  129. GPIOB_OUTPUT_VAL &= ~4;
  130. sleep(HZ/20); /* 50ms */
  131. GPIOB_OUTPUT_VAL |= 4;
  132. sleep(HZ/1000); /* 1ms */
  133.  
  134. GPIOG_ENABLE |= 0x8;
  135. GPIOG_OUTPUT_EN &= ~0x8;
  136.  
  137. if (GPIOG_INPUT_VAL & 0x8) lcd_type = 0;
  138. else lcd_type = 1;
  139.  
  140. lcd_write_reg(0xE5, 0x8000);
  141. lcd_write_reg(0x0, 0x1);
  142. lcd_write_reg(0x1, 0x100);
  143. lcd_write_reg(0x2, 0x700);
  144. lcd_write_reg(0x3, 0x1230);
  145. lcd_write_reg(0x4, 0x0);
  146. lcd_write_reg(0x8, 0x408);
  147. lcd_write_reg(0x9, 0x0);
  148. lcd_write_reg(0xa, 0x0);
  149. lcd_write_reg(0xd, 0x0);
  150. lcd_write_reg(0xf, 0x2);
  151. lcd_write_reg(0x10, 0x0);
  152. lcd_write_reg(0x11, 0x0);
  153. lcd_write_reg(0x12, 0x0);
  154. lcd_write_reg(0x13, 0x0);
  155. sleep(HZ/5);
  156. lcd_write_reg(0x10, 0x17B0);
  157. lcd_write_reg(0x11, 0x7);
  158. sleep(HZ/20);
  159. lcd_write_reg(0x12, 0x13c);
  160. sleep(HZ/20);
  161.  
  162.  
  163. if (lcd_type==0)
  164. {
  165. lcd_write_reg(0x13, 0x1700);
  166. lcd_write_reg(0x29, 0x10);
  167. sleep(HZ/20);
  168. lcd_write_reg(0x20, 0x0);
  169. lcd_write_reg(0x21, 0x0);
  170. lcd_write_reg(0x30, 0x7);
  171. lcd_write_reg(0x31, 0x403);
  172. lcd_write_reg(0x32, 0x400);
  173. lcd_write_reg(0x35, 0x3);
  174. lcd_write_reg(0x36, 0xF07);
  175. lcd_write_reg(0x37, 0x606);
  176. lcd_write_reg(0x38, 0x106);
  177. }
  178. else
  179. {
  180. lcd_write_reg(0x13, 0x1800);
  181. lcd_write_reg(0x29, 0x13);
  182. sleep(HZ/20);
  183. lcd_write_reg(0x20, 0x0);
  184. lcd_write_reg(0x21, 0x0);
  185. lcd_write_reg(0x30, 0x2);
  186. lcd_write_reg(0x31, 0x606);
  187. lcd_write_reg(0x32, 0x501);
  188. lcd_write_reg(0x35, 0x206);
  189. lcd_write_reg(0x36, 0x504);
  190. lcd_write_reg(0x37, 0x707);
  191. lcd_write_reg(0x38, 0x306);
  192. }
  193.  
  194. lcd_write_reg(0x39, 0x7);
  195. lcd_write_reg(0x3c, 0x700);
  196. lcd_write_reg(0x3d, 0x700);
  197.  
  198. lcd_write_reg(0x50, 0x0);
  199. lcd_write_reg(0x51, 0xef); /* 239 - LCD_WIDTH */
  200. lcd_write_reg(0x52, 0x0);
  201. lcd_write_reg(0x53, 0x13f); /* 319 - LCD_HEIGHT */
  202.  
  203. lcd_write_reg(0x60, 0x2700);
  204. lcd_write_reg(0x61, 0x1);
  205. lcd_write_reg(0x6a, 0x0);
  206.  
  207. lcd_write_reg(0x80, 0x0);
  208. lcd_write_reg(0x81, 0x0);
  209. lcd_write_reg(0x82, 0x0);
  210. lcd_write_reg(0x83, 0x0);
  211. lcd_write_reg(0x84, 0x0);
  212. lcd_write_reg(0x85, 0x0);
  213.  
  214. lcd_write_reg(0x90, 0x10);
  215. lcd_write_reg(0x92, 0x0);
  216. lcd_write_reg(0x93, 0x3);
  217. lcd_write_reg(0x95, 0x110);
  218. lcd_write_reg(0x97, 0x0);
  219. lcd_write_reg(0x98, 0x0);
  220.  
  221. lcd_write_reg(0xc, 0x110);
  222. lcd_write_reg(0x7, 0x173);
  223. sleep(HZ/100);
  224.  
  225. /*--------------------------------------------------------------------------*/
  226.  
  227. LCD_Display_On:
  228.  
  229. LCD_Init_SPI
  230. lcd_write_reg(0x10, 0x17B0); //SAP, BT[3:0], AP, DSTB, SLP, STB
  231. sleep(HZ/10000);
  232. lcd_write_reg(0x7, 0x173); //262K color and display ON
  233.  
  234. /*--------------------------------------------------------------------------*/
  235.  
  236. LCD_Display_Off:
  237. in OF 01.03.02:
  238. empty proc !!!
  239.  
  240.  
  241. in OF 01.01.06, 01.02.09:
  242. lcd_write_reg(0x7, 0x160); // display OFF ??? - partially wrong
  243. lcd_write_reg(0x10, 0x17B1); //SAP, BT[3:0], AP, DSTB, SLP, STB - wrong !!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement