rk3288-mipi-dsi: add mipi screen driver.
[firefly-linux-kernel-4.4.55.git] / drivers / video / rockchip / screen / lcd_B080XAN02_mipi.c
1 #ifndef __LCD_B080XAN02__
2 #define __LCD_B080XAN02__
3
4 #if defined(CONFIG_MIPI_DSI)
5 #include "../transmitter/mipi_dsi.h"
6 #endif
7 #include <linux/delay.h>
8
9
10
11 #define RK_SCREEN_INIT  1
12
13 /* about mipi */
14 #define MIPI_DSI_LANE 4
15 #define MIPI_DSI_HS_CLK 528*1000000 //1000*1000000
16
17
18 #if defined(RK_SCREEN_INIT)
19 static struct rk29lcd_info *gLcd_info = NULL;
20
21 int rk_lcd_init(void) {
22
23         u8 dcs[16] = {0};
24         if(dsi_is_active() != 1)
25                 return -1;
26         /*below is changeable*/
27         dsi_enable_hs_clk(1);
28
29         dcs[0] = LPDT;
30         dcs[1] = dcs_exit_sleep_mode; 
31         dsi_send_dcs_packet(dcs, 2);
32         msleep(1);
33         dcs[0] = LPDT;
34         dcs[1] = dcs_set_display_on;
35         dsi_send_dcs_packet(dcs, 2);
36         msleep(10);
37         //dsi_enable_command_mode(0);
38         dsi_enable_video_mode(1);
39         
40         printk("++++++++++++++++%s:%d\n", __func__, __LINE__);
41     return 0;
42 }
43
44 int rk_lcd_standby(u8 enable) {
45
46         u8 dcs[16] = {0};
47         if(dsi_is_active() != 1)
48                 return -1;
49                 
50         if(enable) {
51                 /*below is changeable*/
52                 dcs[0] = LPDT;
53                 dcs[1] = dcs_set_display_off; 
54                 dsi_send_dcs_packet(dcs, 2);
55                 msleep(1);
56                 dcs[0] = LPDT;
57                 dcs[1] = dcs_enter_sleep_mode; 
58                 dsi_send_dcs_packet(dcs, 2);
59                 msleep(1);
60
61                 printk("++++enable++++++++++++%s:%d\n", __func__, __LINE__);
62         
63         } else {
64                 /*below is changeable*/
65                 rk_lcd_init();
66                 printk("++++++++++++++++%s:%d\n", __func__, __LINE__);  
67         }
68     return 0;
69 }
70 #endif
71
72 #endif