aboutsummaryrefslogtreecommitdiff
path: root/src/soc/qualcomm/sc7180/include/soc/display/dsi_phy.h
blob: 91d7adee649e71418ffd5f26952cdfdee25fb7c7 (plain)
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
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef _SOC_DISPLAY_DSI_PHY_H
#define _SOC_DISPLAY_DSI_PHY_H

#include <stdint.h>
#include <soc/display/dsi_phy_pll.h>

#define MAX_REGULATOR_CONFIG            7
#define MAX_BIST_CONFIG                 6
#define MAX_TIMING_CONFIG               40
#define MAX_LANE_CONFIG                 45
#define MAX_STRENGTH_CONFIG             10
#define MAX_CTRL_CONFIG                 4
#define DMA_TPG_FIFO_LEN                64

struct msm_panel_info;
struct mipi_dsi_phy_ctrl {
	uint32_t regulator[5];
	uint32_t timing[12];
	uint32_t ctrl[4];
	uint32_t strength[4];
	uint32_t pll[21];
};

enum dsi_reg_mode {
	DSI_PHY_REGULATOR_DCDC_MODE,
	DSI_PHY_REGULATOR_LDO_MODE,
};

enum {
	DSI_PLL_TYPE_10NM,
	DSI_PLL_TYPE_MAX,
};

struct msm_dsi_phy_ctrl {
	uint32_t clk_pre;
	uint32_t clk_post;
	uint32_t clk_zero;
	uint32_t clk_trail;
	uint32_t clk_prepare;
	uint32_t hs_exit;
	uint32_t hs_zero;
	uint32_t hs_prepare;
	uint32_t hs_trail;
	uint32_t hs_rqst;
	uint32_t ta_go;
	uint32_t ta_sure;
	uint32_t ta_get;
	uint32_t half_byte_clk_en;
	bool clk_pre_inc_by_2;
};

struct mdss_dsi_phy_ctrl {
	uint32_t regulator[MAX_REGULATOR_CONFIG];
	uint32_t timing[MAX_TIMING_CONFIG];
	uint32_t ctrl[MAX_CTRL_CONFIG];
	uint32_t strength[MAX_STRENGTH_CONFIG];
	char bistCtrl[MAX_BIST_CONFIG];
	char laneCfg[MAX_LANE_CONFIG];
	enum dsi_reg_mode regulator_mode;
	int pll_type;
};

enum cb_err mdss_dsi_phy_10nm_init(struct edid *edid, uint32_t num_of_lanes, uint32_t bpp);

#endif