acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

SSD1963_Init.h (9025B)

      1 #if defined (SSD1963_480_DRIVER)
      2 
      3   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
      4   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
      5   writedata(0x02);
      6   writedata(0x54);
      7   writecommand(0xE0);   // PLL enable
      8   writedata(0x01);
      9 
     10   delay(10);
     11 
     12   writecommand(0xE0);
     13   writedata(0x03);
     14 
     15   delay(10);
     16 
     17   writecommand(0x01);   // software reset
     18 
     19   delay(100);
     20 
     21   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
     22   writedata(0x01);
     23   writedata(0x1F);
     24   writedata(0xFF);
     25 
     26   writecommand(0xB0);   //LCD SPECIFICATION
     27   writedata(0x20);
     28   writedata(0x00);
     29   writedata(0x01);    //Set HDP 479
     30   writedata(0xDF);
     31   writedata(0x01);    //Set VDP 271
     32   writedata(0x0F);
     33   writedata(0x00);
     34 
     35   writecommand(0xB4);   //HSYNC
     36   writedata(0x02);    //Set HT  531
     37   writedata(0x13);
     38   writedata(0x00);    //Set HPS 8
     39   writedata(0x08);
     40   writedata(0x2B);    //Set HPW 43
     41   writedata(0x00);    //Set LPS 2
     42   writedata(0x02);
     43   writedata(0x00);
     44 
     45   writecommand(0xB6);   //VSYNC
     46   writedata(0x01);    //Set VT  288
     47   writedata(0x20);
     48   writedata(0x00);    //Set VPS 4
     49   writedata(0x04);
     50   writedata(0x0c);    //Set VPW 12
     51   writedata(0x00);    //Set FPS 2
     52   writedata(0x02);
     53 
     54   writecommand(0xBA);
     55   writedata(0x0F);    //GPIO[3:0] out 1
     56 
     57   writecommand(0xB8);
     58   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
     59   writedata(0x01);    //GPIO0 normal
     60 
     61   writecommand(0x36);   //rotation
     62   writedata(0x21 | TFT_MAD_COLOR_ORDER);
     63 
     64   writecommand(0xF0);   //pixel data interface
     65   writedata(0x00);      //8 bit bus
     66 
     67   delay(1);
     68 
     69   writecommand(0xB8);
     70   writedata(0x0f);    //GPIO is controlled by host GPIO[3:0]=output   GPIO[0]=1  LCD ON  GPIO[0]=1  LCD OFF 
     71   writedata(0x01);    //GPIO0 normal
     72 
     73   writecommand(0xBA);
     74   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
     75 
     76   writecommand(0x2A); 
     77   writedata(0);
     78   writedata(0);
     79   writedata((271 & 0xFF00)>>8);
     80   writedata(271 & 0xFF);
     81 
     82   writecommand(0x2B); 
     83   writedata(0);
     84   writedata(0);
     85   writedata((479 & 0xFF00)>>8);
     86   writedata(479 & 0xFF);
     87 
     88   writecommand(0x2C);
     89 
     90   writecommand(0x29);   //display on
     91 
     92   writecommand(0xBE);   //set PWM for B/L
     93   writedata(0x06);
     94   writedata(0xf0);
     95   writedata(0x01);
     96   writedata(0xf0);
     97   writedata(0x00);
     98   writedata(0x00);
     99 
    100   writecommand(0xd0); 
    101   writedata(0x0d);  
    102 
    103   writecommand(0x2C); 
    104 
    105 #elif defined (SSD1963_800_DRIVER)
    106 
    107   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
    108   writedata(0x1E);      //N=0x36 for 6.5M, 0x23 for 10M crystal
    109   writedata(0x02);
    110   writedata(0x54);
    111   writecommand(0xE0);   // PLL enable
    112   writedata(0x01);
    113 
    114   delay(10);
    115 
    116   writecommand(0xE0);
    117   writedata(0x03);
    118 
    119   delay(10);
    120 
    121   writecommand(0x01);   // software reset
    122 
    123   delay(100);
    124 
    125   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
    126   writedata(0x03);
    127   writedata(0xFF);
    128   writedata(0xFF);
    129 
    130   writecommand(0xB0);   //LCD SPECIFICATION
    131   writedata(0x20);
    132   writedata(0x00);
    133   writedata(0x03);    //Set HDP 799
    134   writedata(0x1F);
    135   writedata(0x01);    //Set VDP 479
    136   writedata(0xDF);
    137   writedata(0x00);
    138 
    139   writecommand(0xB4);   //HSYNC
    140   writedata(0x03);    //Set HT  928
    141   writedata(0xA0);
    142   writedata(0x00);    //Set HPS 46
    143   writedata(0x2E);
    144   writedata(0x30);    //Set HPW 48
    145   writedata(0x00);    //Set LPS 15
    146   writedata(0x0F);
    147   writedata(0x00);
    148 
    149   writecommand(0xB6);   //VSYNC
    150   writedata(0x02);    //Set VT  525
    151   writedata(0x0D);
    152   writedata(0x00);    //Set VPS 16
    153   writedata(0x10);
    154   writedata(0x10);    //Set VPW 16
    155   writedata(0x00);    //Set FPS 8
    156   writedata(0x08);
    157 
    158   writecommand(0xBA);
    159   writedata(0x0F);    //GPIO[3:0] out 1
    160 
    161   writecommand(0xB8);
    162   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
    163   writedata(0x01);    //GPIO0 normal
    164 
    165   writecommand(0x36);   //rotation
    166   writedata(0x21 | TFT_MAD_COLOR_ORDER);
    167 
    168   writecommand(0xF0);   //pixel data interface
    169   writedata(0x00);      //8 bit bus
    170 
    171   delay(1);
    172 
    173   writecommand(0xB8);
    174   writedata(0x0f);    //GPIO is controlled by host GPIO[3:0]=output   GPIO[0]=1  LCD ON  GPIO[0]=1  LCD OFF 
    175   writedata(0x01);    //GPIO0 normal
    176 
    177   writecommand(0xBA);
    178   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
    179 
    180   writecommand(0x2A); 
    181   writedata(0);
    182   writedata(0);
    183   writedata((479 & 0xFF00)>>8);
    184   writedata(479 & 0xFF);
    185 
    186   writecommand(0x2B); 
    187   writedata(0);
    188   writedata(0);
    189   writedata((799 & 0xFF00)>>8);
    190   writedata(799 & 0xFF);
    191 
    192   writecommand(0x2C);
    193 
    194   writecommand(0x29);   //display on
    195 
    196   writecommand(0xBE);   //set PWM for B/L
    197   writedata(0x06);
    198   writedata(0xf0);
    199   writedata(0x01);
    200   writedata(0xf0);
    201   writedata(0x00);
    202   writedata(0x00);
    203 
    204   writecommand(0xd0); 
    205   writedata(0x0d);  
    206 
    207   writecommand(0x2C); 
    208 
    209 #elif defined (SSD1963_800ALT_DRIVER)
    210 
    211   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
    212   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
    213   writedata(0x02);
    214   writedata(0x04);
    215   writecommand(0xE0);   // PLL enable
    216   writedata(0x01);
    217 
    218   delay(10);
    219 
    220   writecommand(0xE0);
    221   writedata(0x03);
    222 
    223   delay(10);
    224 
    225   writecommand(0x01);   // software reset
    226 
    227   delay(100);
    228 
    229   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
    230   writedata(0x04);
    231   writedata(0x93);
    232   writedata(0xE0);
    233 
    234   writecommand(0xB0);   //LCD SPECIFICATION
    235   writedata(0x00);  // 0x24
    236   writedata(0x00);
    237   writedata(0x03);    //Set HDP 799
    238   writedata(0x1F);
    239   writedata(0x01);    //Set VDP 479
    240   writedata(0xDF);
    241   writedata(0x00);
    242 
    243   writecommand(0xB4);   //HSYNC
    244   writedata(0x03);    //Set HT  928
    245   writedata(0xA0);
    246   writedata(0x00);    //Set HPS 46
    247   writedata(0x2E);
    248   writedata(0x30);    //Set HPW 48
    249   writedata(0x00);    //Set LPS 15
    250   writedata(0x0F);
    251   writedata(0x00);
    252 
    253   writecommand(0xB6);   //VSYNC
    254   writedata(0x02);    //Set VT  525
    255   writedata(0x0D);
    256   writedata(0x00);    //Set VPS 16
    257   writedata(0x10);
    258   writedata(0x10);    //Set VPW 16
    259   writedata(0x00);    //Set FPS 8
    260   writedata(0x08);
    261 
    262   writecommand(0xBA);
    263   writedata(0x05);    //GPIO[3:0] out 1
    264 
    265   writecommand(0xB8);
    266   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
    267   writedata(0x01);    //GPIO0 normal
    268 
    269   writecommand(0x36);   //rotation
    270   writedata(0x21 | TFT_MAD_COLOR_ORDER);    // -- Set rotation
    271 
    272   writecommand(0xF0);   //pixel data interface
    273   writedata(0x00);      //8 bit bus
    274 
    275   delay(10);
    276 
    277   writecommand(0x2A); 
    278   writedata(0);
    279   writedata(0);
    280   writedata((479 & 0xFF00)>>8);
    281   writedata(479 & 0xFF);
    282 
    283   writecommand(0x2B); 
    284   writedata(0);
    285   writedata(0);
    286   writedata((799 & 0xFF00)>>8);
    287   writedata(799 & 0xFF);
    288 
    289   writecommand(0x2C);
    290 
    291   writecommand(0x29);   //display on
    292 
    293   writecommand(0xBE);   //set PWM for B/L
    294   writedata(0x06);
    295   writedata(0xF0);
    296   writedata(0x01);
    297   writedata(0xF0);
    298   writedata(0x00);
    299   writedata(0x00);
    300 
    301   writecommand(0xD0); 
    302   writedata(0x0D);  
    303 
    304   writecommand(0x2C); 
    305 
    306 #elif defined (SSD1963_800BD_DRIVER) // Copied from Buy Display code
    307 
    308   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
    309   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
    310   writedata(0x02);
    311   writedata(0x54);
    312 
    313   writecommand(0xE0);   // PLL enable
    314   writedata(0x01);
    315 
    316   delay(10);
    317 
    318   writecommand(0xE0);
    319   writedata(0x03);
    320 
    321   delay(10);
    322 
    323   writecommand(0x01);   // software reset
    324 
    325   delay(100);
    326 
    327   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
    328   writedata(0x03);
    329   writedata(0x33);
    330   writedata(0x33);
    331 
    332   writecommand(0xB0);    //LCD SPECIFICATION
    333   writedata(0x20);
    334   writedata(0x00);
    335   writedata(799 >> 8);   //Set HDP 799
    336   writedata(799 & 0xFF);
    337   writedata(479 >> 8);   //Set VDP 479
    338   writedata(479 & 0xFF);
    339   writedata(0x00);
    340 
    341   writecommand(0xB4);   //HSYNC
    342   writedata(0x04);      //Set HT
    343   writedata(0x1F);
    344   writedata(0x00);      //Set HPS
    345   writedata(0xD2);
    346   writedata(0x00);      //Set HPW
    347   writedata(0x00);      //Set LPS
    348   writedata(0x00);
    349   writedata(0x00);
    350 
    351   writecommand(0xB6);   //VSYNC
    352   writedata(0x02);    //Set VT
    353   writedata(0x0C);
    354   writedata(0x00);    //Set VPS
    355   writedata(0x22);
    356   writedata(0x00);    //Set VPW
    357   writedata(0x00);    //Set FPS
    358   writedata(0x00);
    359 
    360   writecommand(0xB8);
    361   writedata(0x0F);      //GPIO3=input, GPIO[2:0]=output
    362   writedata(0x01);      //GPIO0 normal
    363 
    364   writecommand(0xBA);
    365   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
    366 
    367   writecommand(0x36);   //rotation
    368   writedata(0x21 | TFT_MAD_COLOR_ORDER);      //set to rotate
    369 
    370 	//writecommand(0x003A); //Set the current pixel format for RGB image data
    371 	//writedata(0x0050);    //16-bit/pixel
    372 
    373   writecommand(0xF0);   //pixel data interface
    374   writedata(0x00);      //000 = 8 bit bus, 011 = 16 bit, 110 = 9 bit
    375 
    376   writecommand(0xBC);
    377   writedata(0x40);     //contrast value
    378   writedata(0x80);     //brightness value
    379   writedata(0x40);     //saturation value
    380   writedata(0x01);     //Post Processor Enable
    381 
    382 
    383   delay(10);
    384 
    385   writecommand(0x29);   //display on
    386 
    387   writecommand(0xBE);   //set PWM for B/L
    388   writedata(0x06);
    389   writedata(0x80);
    390   writedata(0x01);
    391   writedata(0xF0);
    392   writedata(0x00);
    393   writedata(0x00);
    394 
    395   writecommand(0xD0); 
    396   writedata(0x0D);  
    397 
    398 #endif