android
2024-07-10 94101a2cd9baed60360f68096033dc75cbb1dcb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//#include "stdio.h"
#include "timing_delay.h"
#include "gpio_i2c.h"
#include "board_uart.h"
 
#ifndef __LT8911EXB_H_
#define __LT8911EXB_H_
 
#define _uart_debug_
//#define _read_edid_ // read eDP panel EDID
//#define _Test_Pattern_
#define _LT8911_RSTN_LOW  GPIO_WriteLow(GPIOA , GPIO_PIN_1);
#define _LT8911_RSTN_High GPIO_WriteHigh(GPIOA , GPIO_PIN_1);
 
#define _eDP_2G7_
#define _link_train_enable_
#define _1080P_eDP_Panel_
 
//bool    ScrambleMode = 0;
 
#ifdef _1080P_eDP_Panel_
 
#define eDP_lane        2
#define PCR_PLL_PREDIV    0x40
 
// ¸ù¾Ýǰ¶ËMIPIÐźŵÄTiming£¬ÐÞ¸ÄÒÔϲÎÊý£º
//According to the timing of the Mipi signal, modify the following parameters:
static int MIPI_Timing[] =
// hfp,    hs,    hbp,    hact,    htotal,    vfp,    vs,    vbp,    vact,    vtotal,    pixel_CLK/10000
{ 48,32,147,1920,2187,3,6,51,1080,1140,14960 };
 
#define _8bit_                                              // eDP panel Color Depth£¬16.7M color
 
#endif
 
#define _Nvid 0         // 0: 0x0080,default
static int Nvid_Val[] = { 0x0080, 0x0800 };
 
#define _MIPI_Lane_ 4   // 3 /2 / 1
#define _MIPI_data_PN_Swap_En    0xF0
#define _MIPI_data_PN_Swap_Dis    0x00
#define _MIPI_data_PN_ _MIPI_data_PN_Swap_Dis
#define _No_swap_            0x00    // 3210 default
#define _MIPI_data_3210_    0       // default
#define _MIPI_data_0123_    21
#define _MIPI_data_2103_    20
#define _MIPI_data_sequence_ _No_swap_
 
#define _eDP_data_No_swap_     0xe4 // default
#define _eDP_data_sequence_ _eDP_data_No_swap_ // default, no swap
 
#define _eDP_data_PN_Swap_En    0xF0 // Please refer to the notes below
#define _eDP_data_PN_Swap_Dis    0x00
#define _eDP_data_PN_ _eDP_data_PN_Swap_Dis // defailt ; disable
 
extern bool ScrambleMode;
extern bool    flag_mipi_on;
#ifdef _read_edid_ // read eDP panel EDID
 
extern u8        EDID_DATA[128];
extern u16    EDID_Timing[11];
 
extern bool    EDID_Reply;
#endif
 
enum {
    hfp = 0,
    hs,
    hbp,
    hact,
    htotal,
    vfp,
    vs,
    vbp,
    vact,
    vtotal,
    pclk_10khz
};
 
enum
{
    _Level0_ = 0,                                               // 27.8 mA  0x83/0x00
    _Level1_,                                                   // 26.2 mA  0x82/0xe0
    _Level2_,                                                   // 24.6 mA  0x82/0xc0
    _Level3_,                                                   // 23 mA    0x82/0xa0
    _Level4_,                                                   // 21.4 mA  0x82/0x80
    _Level5_,                                                   // 18.2 mA  0x82/0x40
    _Level6_,                                                   // 16.6 mA  0x82/0x20
    _Level7_,                                                   // 15mA     0x82/0x00  // level 1
    _Level8_,                                                   // 12.8mA   0x81/0x00  // level 2
    _Level9_,                                                   // 11.2mA   0x80/0xe0  // level 3
    _Level10_,                                                  // 9.6mA    0x80/0xc0  // level 4
    _Level11_,                                                  // 8mA      0x80/0xa0  // level 5
    _Level12_                                                  // 6mA      0x80/0x80  // level 6
};
 
extern u8    Swing_Setting1[];
extern u8    Swing_Setting2[];
extern u8    Level;                                          // normal
 
extern void LT8911EXB_GPIO_Init(void);
extern void Reset_LT8911EXB( void );
extern void LT8911EX_ChipID( void );
extern void LT8911EXB_MIPI_Video_Timing( void );
extern void LT8911EXB_eDP_Video_cfg( void );
extern void LT8911EXB_init( void );
extern void LT8911EXB_read_edid( void );
extern void LT8911EX_TxSwingPreSet( void );
extern void DpcdWrite( u32 Address, u8 Data );
extern void LT8911EX_link_train( void );
extern void LT8911EXB_LinkTrainResultCheck( void );
extern void LT8911EXB_video_check( void );
extern u8 DpcdRead( u32 Address );
extern void PCR_Status( void ); 
#endif